Конструкция в запросе

  1. 7 г. назад

    наткнулся на одно выражение в запросе. Вот кусок Запроса

    ...
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ТиповойДвиженияССубконто.Период КАК Период,
    ТиповойДвиженияССубконто.Регистратор КАК Регистратор,
    ТиповойДвиженияССубконто.СчетДт КАК СчетДт,
    ТиповойДвиженияССубконто.СчетКт КАК СчетКт,
    ТиповойДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
    ТиповойДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
    ТиповойДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
    ТиповойДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
    ТиповойДвиженияССубконто.Организация КАК Организация,
    СУММА(ТиповойДвиженияССубконто.Сумма) КАК Сумма,
    ТиповойДвиженияССубконто.Шлюз КАК Шлюз
    ИЗ
    РегистрБухгалтерии.Типовой.ДвиженияССубконто(
    &НачалоПериода,
    &КонецПериода,
    (ВЫРАЗИТЬ(СубконтоКт1 КАК Справочник.Контрагенты)) = &Контрагент
    И (ВЫРАЗИТЬ(СубконтоКт2 КАК Справочник.ДоговорыКонтрагентов)) = &Договор
    И (ВЫРАЗИТЬ(Счет.Код КАК СТРОКА(4))) = "3315"
    И ВЫРАЗИТЬ(Регистратор КАК Документ.QD) ССЫЛКА Документ.QD
    И (ВЫРАЗИТЬ(СчетДт.Код КАК СТРОКА(4))) = "1420"
    И (ВЫРАЗИТЬ(СчетКт.Код КАК СТРОКА(4))) = "3315"
    И Организация = &Организация
    И Шлюз В ("25264"),
    ,
    ) КАК ТиповойДвиженияССубконто
    ...

    Скажите, пожалуйста. Нафига такие навороты?

    Почему ВЫРАЗИТЬ(СубконтоКт1 КАК Справочник.Контрагенты)) = &Контрагент
    а не СубконтоКт1 = &Контрагент ?

    Почему ВЫРАЗИТЬ(Регистратор КАК Документ.QD) ССЫЛКА Документ.QD
    а не Регистратор ССЫЛКА Документ.QD ?

    Почему Шлюз В ("25264")
    а не Шлюз = "25264" ?

    Все эти обороты как-то ускоряют запрос? Нафига это всё?

    Ответы: (1) (9)
  2. 08.09.2016 14:18:45 отредактировано sda553

    (0) это какой то конструктор так построил с наворотами. Не парься

    Ответы: (7)
  3. я знаю даже имя этого "Конструктора"

  4. Про шлюз зачотно...

  5. это универсальный код, писался для другого а потом подсократили

    Ответы: (5)
  6. (4) это говнокод

  7. Лениво проверять, такая конструкция синтакс чек хотя бы проходит?

    И Шлюз В ("25264")
    Ответы: (8)
  8. (1) А если тип субконто будет не справочник, а примитивный, например?

  9. (6) А что ей может помешать?

  10. (0) надеюсь переписал ?

    Ответы: (11) (14)
  11. это тесла писал...палюбому...

  12. (9) естественно. Скорость увеличилась в десятки раз

    Ответы: (13) (14)
  13. Автор сего творения любил смотреть видео по оптимизации, но нифига не понимал в написании запросов. Видно где то услышал, что привидение типов через выразить ускоряет запрос ...

  14. (11) А че так мало? Куево написал- переписывай!

  15. 1Сергей (9) естественно. Скорость увеличилась в десятки раз

    покажи что получилось?

    Ответы: (15)
  16. (14)

    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ТиповойДвиженияССубконто.Период КАК Период,
    | ТиповойДвиженияССубконто.Регистратор КАК Регистратор,
    | ТиповойДвиженияССубконто.СчетДт КАК СчетДт,
    | ТиповойДвиженияССубконто.СчетКт КАК СчетКт,
    | ТиповойДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
    | ТиповойДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
    | ТиповойДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
    | ТиповойДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
    | ТиповойДвиженияССубконто.Организация КАК Организация,
    | СУММА(ТиповойДвиженияССубконто.Сумма) КАК Сумма,
    | ТиповойДвиженияССубконто.Шлюз КАК Шлюз
    | ИЗ
    | РегистрБухгалтерии.Типовой.ДвиженияССубконто(
    | &НачалоПериода,
    | &КонецПериода,
    | СубконтоКт2 = &Договор
    | И Регистратор ССЫЛКА Документ.QD
    | И СчетДт = &Счет1420
    | И СчетКт = &Счет3315
    | И Организация = &Организация
    | И Шлюз = ""25264"",
    | ,
    | ) КАК ТиповойДвиженияССубконто

    Ответы: (16) (17) (28) (36)
  17. (15) Условие на Регистратор лучше настраивать в конструкции "Где", насколько я слышал

    Ответы: (19)
  18. (15) Если типЗнч(СубконтоКт2) =Тип("СправочникСылка.Договора") то нормально. А если нет, или составной тип?

    Ответы: (18) (20)
  19. (17) Тогда песда Сереженьке

  20. (16) Подними ТЖ и увидишь, что без разницы

  21. (17) без разницы, хоть составной, хоть нет, вероятность, что у объектов одинаковые значения ссылок мала

    Ответы: (22)
  22. Собственно, была еще ошибка:

    10132967 (SW784730) Виртуальная таблица движений с субконто регистра бухгалтерии

    Проблема:
    Запросы, использующие виртуальную таблицу движений с субконто регистра бухгалтерии, выполняются неоправданно продолжительное время.
    Дата публикации:
    2013-12-03

    Исправлена в 8.2.19.80 и 8.3.5.1068

  23. (20) При чем здесь вероятность одинаковых ссылок? Ограничивают тип поля через "выразить" для избежания неявного джойна таблиц объектов, участвующих в составном типе. Никогда не видел сообщения скуля, что превышено допустимое кол-во таблиц в запросе?

    Ответы: (23) (25) (26) (27)
  24. (22) а какой у скуля максимум кстати??

    Ответы: (24)
  25. (23) 256

  26. (22) Неявного соединения не будет

  27. (22) Если передается массив или множество, то да, такое возможно, при условии равенства неявных joinов нет, если только не поработает оптимизатор.

  28. (22) Собственно, выразить как ссылочный тип или использование конструкции ССЫЛКА приводит к внутреннему соединению.

  29. (15) что за говнокод?

    1. Убрать вложенный запрос
    2. Зачем тебе типдокумента? Тебе важна проводка
    3. Шлюз это измерение? Переделать тип на справочник

    Ответы: (29) (30) (31)
  30. (28) Так его интересуют проводки тока одного регистратора)

    Ответы: (32)
  31. (28) Шлюз- это реквизит походу, чето непонятно зачем оно вообще нужно
    (вложенный запрос есть а левое соединение по каким полям объединяется непонятно- муть какаято))

  32. (28) Вот тебе задачка напиши окд который бы выводл пирамиду чисел

    Ответы: (34)
  33. (29) с т.з. проводок -- должно быть всё равно на регистратор

    Ответы: (33)
  34. (32) Думаю, надо попросить автора выложить весь запрос, а то ваще нипаняннна че хочет он узнать

    Ответы: (34)
  35. (31) (33) чё ?

    Ответы: (35)
  36. (34) На мисте была задачка про пирамиду чисел

  37. (15) проверь версию платформы, см(21)

    Ответы: (37)
  38. (36) версия старше

или зарегистрируйтесь чтобы ответить!