Имя: Пароль:
1C
 
СКД, отбор по ложь.
0 buumble
 
26.07.24
10:36
Сделал вычисляемое поле в СКД,Отправлено - ЗначениеЗаполнено(Статус), делаю отбор по полю отправлено. Если ставлю Отправлено = ДА, то в отчет показывает все записи у которых в этой колонке "Да", если ставлю нет то отчет пустой хотя записи с "Нет" есть без отбора. Если поставить Отправлено Не равно "ДА", то же пустой отчет. подскажите кто сталкивался как решить ?
1 buumble
 
26.07.24
10:38
Отбор делаю в самом отчете, а не в детальных записях
2 Ненавижу 1С
 
26.07.24
10:41
Статус имеет какой тип?
3 Wern
 
26.07.24
10:45
Скорей у тебя там NULL. NULL это не ложь потому отбор пустой. В то время условие NULL не равно да это тоже ложь. Ставь условие "не заполнено" получишь свои записи.
4 buumble
 
26.07.24
10:48
(2) Строка
5 Ненавижу 1С
 
26.07.24
10:49
(4) надеюсь Да/Нет в отборе это булево?
6 buumble
 
26.07.24
10:49
(3) пробовал прописывать isnull( ЗначениеЗаполнено(Статус),Ложь) не работает
7 buumble
 
26.07.24
10:50
(5) Да
8 buumble
 
26.07.24
10:51
(3) если ставить просто не заполнено, то тоже не работает
9 buumble
 
26.07.24
11:00
ВЫБОР КОГДА НЕ ЗначениеЗаполнено(Статус) Тогда "Отправлен" Иначе "Не отправлен" КОНЕЦ
Добавил вот такое выражение, в вычисляемое поле. Проиходит магия, если делаю отбор "равно Отправлен" отчет работает, если делаю отбор " равно Не отправлен" отчет пустой. Тут везде текст, даже "начинается с не" выводит пустой отчет.
10 Ненавижу 1С
 
26.07.24
11:02
(9) а если отбор наложить на само поле Статус, кстати какие все-таки значения оно принимает?
11 buumble
 
26.07.24
11:15
(10) Только текстовые
12 Ненавижу 1С
 
26.07.24
11:15
(11) конкретно какие
13 Ненавижу 1С
 
26.07.24
11:15
(11) там вообще есть пустая строка?
14 Greeen
 
26.07.24
11:20
Отправлено - ЗначениеЗаполнено(Статус)
и
ВЫБОР КОГДА НЕ ЗначениеЗаполнено(Статус) Тогда "Отправлен" Иначе "Не отправлен" КОНЕЦ
Это противоположные условия

Лучше весь текст запроса покажите
15 buumble
 
26.07.24
11:42
(14) Ой там
ВЫБОР КОГДА ЗначениеЗаполнено(Статус) Тогда "Отправлен" Иначе "Не отправлен" КОНЕЦ
То же самое, но не отрабатывает по "Не отправлен"
16 buumble
 
26.07.24
11:46
Вот
17 Fragster
 
26.07.24
11:46
вангую, что там соединение наборов.
в таком случае отбор нужно устанавливать не на уровне отчета, а на уровне группировки
18 buumble
 
26.07.24
11:47
(17) Все верно, соединение наборов
19 buumble
 
26.07.24
14:41
Разобрался ребята! Кому будет интересно, все дело в особенностях работы isnull. В моем примере isnull( ЗначениеЗаполнено(Статус),Ложь), поле статус это поле компоновки данных и примитивные типы данных isnull не может к нему привести.
То есть:
допустим переменная А строка (2,0)
isnull(а,"проверка") вернет значение - "пр"

Добавил В первую таблицу поле(СтатусРеал) со значением "" Получилось ВЫБОР КОГДА isnull(Статус,СтатусРеал) = "" Тогда ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ
И все отборы заработали!
20 Ненавижу 1С
 
26.07.24
14:59
(19) тебе давно говорили - выведи значения статусов из запроса и посмотри
насчет приведения типов - это можно сделать явно через ВЫРАЗИТЬ
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший