Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

В СКД значение Булево не выводится "Нет"

В СКД значение Булево не выводится "Нет"
Я
   x-fa
 
05.10.21 - 14:01
В СКД значение Булево не выводится "Нет", NULL и неопределено не помогает

ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_Договора
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА ДоговорыКонтрагентовДополнительныеРеквизиты.Значение ЕСТЬ NULL
            ТОГДА "Нет"
        ИНАЧЕ "Да"
    КОНЕЦ КАК Значение,
    ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_Статусы
ИЗ
    Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
ГДЕ
    ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство = &Свойство
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Договора.Ссылка КАК Ссылка,
    ВТ_Статусы.Значение КАК Значение
ИЗ
    ВТ_Договора КАК ВТ_Договора
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Статусы КАК ВТ_Статусы
        ПО ВТ_Договора.Ссылка = ВТ_Статусы.Ссылка
   gul_Sayan
 
1 - 05.10.21 - 14:03
(0) проверяй на пустую ссылку.
   x-fa
 
2 - 05.10.21 - 14:16
(1)а как Булево проверить на пустую ссылку?
   Kassern
 
3 - 05.10.21 - 14:22
(2) консоль запросов вам в помощь. Скорее всего у вас есть договора с пустой ТЧ доп реквизитов. Сформируйте попакетно данный запрос и посмотрите что во временных таблицах.
   Kassern
 
4 - 05.10.21 - 14:24
(3) если ТЧ пустая у договора, то строчка с этим договором будет пустая. А далее вы таблицу договоров полным соединением цепляете с таблицей, где нет вообще этого договора (т.к. ТЧ пустая), поэтому у вас в значении пусто.
   Eiffil123
 
5 - 05.10.21 - 14:25
(2) Как-то так. Если конечно тип доп.реквизита - значение доп.свойств.

ВЫБРАТЬ
    ВЫБОР
        КОГДА ДоговорыКонтрагентовДополнительныеРеквизиты.Значение ЕСТЬ NULL
            ТОГДА "Нет"
        КОГДА ДоговорыКонтрагентовДополнительныеРеквизиты.Значение = ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)
            ТОГДА "Нет"
        ИНАЧЕ "Да"
    КОНЕЦ КАК Значение,
    ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_Статусы
ИЗ
    Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
ГДЕ
    ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство = &Свойство
   Eiffil123
 
6 - 05.10.21 - 14:26
(4) а, и это тоже. нужно левое соединение.
   Kassern
 
7 - 05.10.21 - 14:27
(5) это не сканает, проблема в том, что если ТЧ пустая, то отбирая по Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты у вас будет пустая строчка по данному договору.
   Kassern
 
8 - 05.10.21 - 14:28
(7) проще говоря, если отобрать по конкретному договору обе ВТ. То в первой таблице будет 1 строчка с договором, а во второй вообще пусто. А потом вы их 2 объединяете в 1 таблицу и удивляетесь, а почему статус не проставляется)
   pechkin
 
9 - 05.10.21 - 14:32
проще формат поля
   Eiffil123
 
10 - 05.10.21 - 14:37
Пора уже изобрести виртуальные таблицы у объектов для работы с допреквизитами и допсвойствами )
   Kassern
 
11 - 05.10.21 - 14:38
проще было в одном пакете левым соединением привязать таблицу договоров с таблицей ТЧ доп реквизитов. В связи прописать нужное свойство для отбора ТЧ. А в ВЫБРАТЬ просто написать
Выбор когда ЕстьNull(ДоговорыКонтрагентовДополнительныеРеквизиты.Значение,Ложь)=Ложь тогда "Нет" Иначе "Да" Конец. Вот и все дела
   Kassern
 
12 - 05.10.21 - 14:40
(11) тут главное именно во вкладке связи прописать отбор, чтобы только ТЧ отобралась, а не на вкладке отбора (тогда уже обрежутся все договора с пустой тч, либо если там нет нужного свойства).
   x-fa
 
13 - 05.10.21 - 14:44
(12) не понятно, что имеете виду?
   Kassern
 
14 - 05.10.21 - 14:45
(13) а что тут не понятного?)
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
        ПО (ДоговорыКонтрагентов.Ссылка = ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка)
            И (ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство = &НужноеСвойство)
   Kassern
 
15 - 05.10.21 - 14:46
в таком виде у вас слева будут все договора, а справа лишь строки со свойством НужноеСвойство
   Kassern
 
16 - 05.10.21 - 14:47
А если вы сделаете вот так:
ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    ДоговорыКонтрагентовДополнительныеРеквизиты.Значение КАК Значение
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
        ПО ДоговорыКонтрагентов.Ссылка = ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка
ГДЕ
    ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство = &Свойство

То вы обрежете левую таблицу по отбору и у вас будут лишь строчки с данным свойством
   Kassern
 
17 - 05.10.21 - 14:48
а все потому, что вначале отрабатывают связи, а только потом уже отбор по результату связи
   x-fa
 
18 - 05.10.21 - 14:50
(16) (17) мне надо все договора, с условием да и нет статусов, не подходит такой вариант, все равно Нет нет
   Kassern
 
19 - 05.10.21 - 14:51
(18) походу вы не поняли ничего, что я вам написал..Выше в (14) я вам рабочий пример написал как вам сделать.
   Kassern
 
20 - 05.10.21 - 14:51
сравните портянку в (0) и попробуйте вот такой кусочек кода:
ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Договор,
    ВЫБОР
        КОГДА ЕСТЬNULL(ДоговорыКонтрагентовДополнительныеРеквизиты.Значение, ЛОЖЬ) = ЛОЖЬ
            ТОГДА "Нет"
        ИНАЧЕ "Да"
    КОНЕЦ КАК Статус
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
        ПО ДоговорыКонтрагентов.Ссылка = ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка
            И (ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство = &Свойство)
   x-fa
 
21 - 05.10.21 - 15:03
(20) спасибо


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.