Как в запросе проверить заполненность табличной части документа и вывести этот результат дополнительной колонкой на ФормуСписка
Все привет, подскажите, пожалуйста ка реализовать следующую. доработку. Мне необходимо добавить в ФормуСписка дополнительную колонку, в которой будет отображаться информация о заполненности табличной части документа. Как это реализовать, дополнив запрос динамического списка? Я попробовал добавить дополнительное поле в запрос со следующим произвольным выражением:
Может быть необходимо составить вложенный запрос?
В результате запроса у меня получилось, что там где в табличной части есть данные выводится столько "Да", сколько строк в табличной части. Как сделать так, чтобы выводилось только одно значение.
ВЫБОР
КОГДА ЗаказыНаПроизводствоОстаткиИОбороты.ЗаказНаПроизводство.Запасы.НомерСтроки ЕСТЬ НЕ NULL
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
Может быть необходимо составить вложенный запрос?
В результате запроса у меня получилось, что там где в табличной части есть данные выводится столько "Да", сколько строк в табличной части. Как сделать так, чтобы выводилось только одно значение.
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Скажите, пожалуйста, мне таблицу документа соединить с проверяемой ТЧ нужно? Или добавить табличную часть (ЗаказНаПроизводствоЗапасы и сделать левое соединение?
ВЫБРАТЬ
ЗаказНаПроизводство.Ссылка КАК Ссылка,
ВЫБОР
КОГДА ЕСТЬNULL(ЗаказНаПроизводствоЗапасы.НомерСтроки, 0) > 0
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Поле1
ИЗ
Документ.ЗаказНаПроизводство.Запасы КАК ЗаказНаПроизводствоЗапасы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ПО (ЗаказНаПроизводствоЗапасы.Ссылка = ЗаказНаПроизводство.Ссылка)
И (ЗаказНаПроизводствоЗапасы.НомерСтроки = 1)
Показать
Правильно ли я понял, что мне нужно присоединить левым соединением таблице запроса, на основе которого формируется форма списка, таблицу с результатами вложенного запроса, где я проверяю заполненность табличной части документа.
(4) Получается, если вложенный запрос не нужен, то текст запроса так будет выглядить?
ВЫБОР
КОГДА ЕСТЬNULL(ЗаказНаПроизводствоЗапасы.НомерСтроки, 0) > 0
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Поле1
ИЗ
Документ.ЗаказНаПроизводство КАК ДокументЗаказНаПроизводство
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыНаПроизводство.ОстаткиИОбороты КАК ЗаказыНаПроизводствоОстаткиИОбороты
ПО (ДокументЗаказНаПроизводство.Ссылка = ЗаказыНаПроизводствоОстаткиИОбороты.ЗаказНаПроизводство)}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
ПО (ДокументЗаказНаПроизводство.Ссылка = НаличиеФайлов.ОбъектСФайлами)}
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Запасы КАК ЗаказНаПроизводствоЗапасы
ПО (ЗаказНаПроизводствоЗапасы.Ссылка = ДокументЗаказНаПроизводство.Ссылка)
И (ЗаказНаПроизводствоЗапасы.Ссылка = 1)
Показать
Соединяй не с табличной частью, а с
А в чистом SQL обычно не заморачиваются и пишут примерно такую конструкцию:
(Выбрать тч.Ссылка, макс(тч.НомерСтроки) Из Док.ТабличнаяЧасть как тч Сгруппировать по тч.Ссылка)
А в чистом SQL обычно не заморачиваются и пишут примерно такую конструкцию:
sel ect
t1.id_doc
isnull((select top 1 t2.nomer_str fr om tabchast as t2 wh ere t1.id_doc = t2.id_doc order by t2.nomer_str), 'NO', 'YES') as pole2
fr om tdoc as t1.....
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот