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