![]() |
|
В СКД значение Булево не выводится "Нет" | ☑ | ||
---|---|---|---|---|
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) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |