Сейчас допиливаю некоторые формы списков в ЗУП
там в типовой используются динамические списки вот с такими конструкциями:
ЖурналДокументовВедомостиНаВыплатуЗарплаты.Комментарий КАК Комментарий,
ЖурналДокументовВедомостиНаВыплатуЗарплаты.Тип КАК Тип,
ВЫБОР
КОГДА ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
РегистрСведений.ОплатаВедомостейНаВыплатуЗарплаты КАК ОплатаВедомостейНаВыплатуЗарплаты
ГДЕ
ОплатаВедомостейНаВыплатуЗарплаты.Ведомость = ЖурналДокументовВедомостиНаВыплатуЗарплаты.Ссылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьОплаты
ИЗ
ЖурналДокументов.ВедомостиНаВыплатуЗарплаты КАК ЖурналДокументовВедомостиНаВыплатуЗарплаты
т.е. в поле выборки подзапрос сидит.... не очень пойму насколько это оптимально?
Не значит ли это что подзапрос выполнится ровно столько раз сколько строк в выборке?
динамический список же поидее чтобы работать быстро должен использовать мегаоптимальный запрос - а тут вот какая развесистая конструкция получется.
(0) Запись странная, но поскольку соединение не с виртуальной таблицей, ничего неоптимального тут нет. Просто не часто встречающийся вариант получения факта наличия записей в другой таблице, а так должно работать
(0) Если это типовой код, то нормально. Другие варианты скорее всего хуже.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший