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




По теме из базы знаний
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Описание почти всех событий технологического журнала
- Варианты применения СКД вне отчетов в отраслевых конфигурациях
- Пример программной работы с отчетом на основе СКД. Запуск типового перестроенного программно отчета по событию формы
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
1) В виртуальной таблице есть место где
2)могу показать консоль запросов, выдает "да/нет"
3) условное оформление на ложь, как видно на фото, отрабатывает на ура
1) В виртуальной таблице есть место где
МАКСИМУМ(ВЫБОР
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ОригиналДоговора
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ОригиналДоговора,
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ОригиналДоговора
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ОригиналДоговора,
2)могу показать консоль запросов, выдает "да/нет"
3) условное оформление на ложь, как видно на фото, отрабатывает на ура
У тебя левым соединением к временной таблице вт_данные цепляется заказ покупателя.
Поскольку у тебя это доп. реквизиты, то в случае, когда такой реквизит не заполнен, то его просто нет. Соответственно такой запрос будет выводить только данные со значением истина.
Поменяй соединение : к заказам левым соединением цепляй ВТ_Данные
Поскольку у тебя это доп. реквизиты, то в случае, когда такой реквизит не заполнен, то его просто нет. Соответственно такой запрос будет выводить только данные со значением истина.
Поменяй соединение : к заказам левым соединением цепляй ВТ_Данные
(8)
Я вытягиваю реквизиты, если его нет - ложб. группирую, если есть истина - выпадает истина, иначе нулл, потом заменяю нулл на ложь
Я вытягиваю реквизиты, если его нет - ложб. группирую, если есть истина - выпадает истина, иначе нулл, потом заменяю нулл на ложь
ВЫБРАТЬ
МАКСИМУМ(ВЫБОР
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ФормаВзаиморасчетов
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ФормаВзаиморасчетов,
МАКСИМУМ(ВЫБОР
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ОригиналДоговора
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ОригиналДоговора,
МАКСИМУМ(ВЫБОР
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ОригиналРасходной
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ОригиналРасходной,
МАКСИМУМ(ВЫБОР
КОГДА ЗаказПокупателяДополнительныеРеквизиты.Свойство = &ОригиналДоверенности
ТОГДА ЗаказПокупателяДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ) КАК ОригиналДоверенности,
ВложенныйЗапрос.ЗаказСсылка
ПОМЕСТИТЬ ВТДанные
ИЗ
(ВЫБРАТЬ
ЗаказыПокупателей.ЗаказПокупателя КАК ЗаказСсылка
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
ГДЕ
ТИПЗНАЧЕНИЯ(ЗаказыПокупателей.Регистратор) = ТИП(Документ.ЗаказПокупателя)
И ЗаказыПокупателей.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
ЗаказыПокупателей.ЗаказПокупателя) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ДополнительныеРеквизиты КАК ЗаказПокупателяДополнительныеРеквизиты
ПО ВложенныйЗапрос.ЗаказСсылка = ЗаказПокупателяДополнительныеРеквизиты.Ссылка.Ссылка
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.ЗаказСсылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ВТДанные.ФормаВзаиморасчетов, ЛОЖЬ) КАК ФормаВзаиморасчетов,
ЕСТЬNULL(ВТДанные.ОригиналДоговора, ЛОЖЬ) КАК ОригиналДоговора,
ЕСТЬNULL(ВТДанные.ОригиналРасходной, ЛОЖЬ) КАК ОригиналРасходной,
ЕСТЬNULL(ВТДанные.ОригиналДоверенности, ЛОЖЬ) КАК ОригиналДоверенности,
ВТДанные.ЗаказСсылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.СостояниеЗаказа,
ЗаказПокупателя.СуммаДокумента
ИЗ
ВТДанные КАК ВТДанные
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
ПО ВТДанные.ЗаказСсылка = ЗаказПокупателя.Ссылка
Показать
(10)Правильно, если Null- то сравнение не пройдет, и вернется "Иначе Null". ИМХО, если бы запрос был бы неправильный - не отрабатывалось бы условное оформление, и Консоль запросов не выдавала бы ложь. Или вы считаете что отбор накладывается не на результат запроса?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот