Имя: Пароль:
1C
1С v8
Запрос к дополнительным сведениям
0 ONE1
 
12.08.22
13:35
Подскажите пожалуйста, как получить в запросе документы с доп сведениями у которых указано значение Ложь? Запрос выводит только где указано Истина :(
🥺

ВЫБРАТЬ
    РеестрДокументов.Ссылка КАК Ссылка,
    ДополнительныеСведения.Свойство КАК Свойство,
    ЕСТЬNULL(ДополнительныеСведения.Значение, Ложь) КАК Значение
ИЗ
    РегистрСведений.РеестрДокументов КАК РеестрДокументов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО (ДополнительныеСведения.Объект = РеестрДокументов.Ссылка)
ГДЕ
    ТИПЗНАЧЕНИЯ(РеестрДокументов.Ссылка) = ТИП(Документ.РеализацияТоваровУслуг)
    И ДополнительныеСведения.Свойство = &Свойство
1 unbred
 
12.08.22
13:42
может твой параметр отсекает остальные
2 unbred
 
12.08.22
13:43
убери условие и посмотри.
3 Dmitrii
 
гуру
12.08.22
13:44
(0) А что ты передаешь в значение параметра &Свойство?
4 Dmitrii
 
гуру
12.08.22
13:46
И ты уверен, что есть документы с допсведениями у которых указано значение Ложь?
Может пользователи заполняли это допсведение только у тех документов, где надо было установить значение Истина? А где нужно было Ложь, не заполняли это доспечедение вообще?
5 maxx079
 
12.08.22
13:47
В регистр доп.сведений (и в т.ч. доп.реквизитов) не пишутся записи/строки c пустыми значениями (ложь для булево, 0 для чисел, "" для строк) - если записи/строки с непустыми значениями этого свойства были, они удалятся.
Т.е. надо не искать записи, где значение = ЛОЖЬ, а искать документы, для которых нет записей с этим свойством.
6 Dmitrii
 
гуру
12.08.22
13:48
(0) Перенеси условие  И ДополнительныеСведения.Свойство = &Свойство из раздела ГДЕ в условия соединеня таблиц.
7 maxx079
 
12.08.22
13:49
Для полной уверенности можно оставить объединение с запросом на условие Значение = ЛОЖЬ, но наличие таких записей будет нештатной ситуацией.
8 Фрэнки
 
12.08.22
13:49
(5) +

и надо перенести условие на Свойство в условие к левому соединению
9 ONE1
 
12.08.22
13:54
https://ibb.co/xSp9JpW тогда свойство выводится пустым или так и должно быть? (5)
10 maxx079
 
12.08.22
13:57
(9) И много таких? По идее, эти записи должны были быть очищены.
Тогда надо объединять два запроса - этот, и запрос, который соберет все документы, для которых нет никаких записей с этим свойством.
11 Dmitrii
 
гуру
12.08.22
13:59
(9) >> так и должно быть?

Для того текста запроса, что приведён на картинке, так и должно быть.
12 Mihasya
 
12.08.22
14:01
(0)

ВЫБРАТЬ
    РеестрДокументов.Ссылка КАК Ссылка,
    ДополнительныеСведения.Свойство КАК Свойство,
    ЕСТЬNULL(ДополнительныеСведения.Значение, Ложь) КАК Значение
ИЗ
    РегистрСведений.РеестрДокументов КАК РеестрДокументов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО (ДополнительныеСведения.Объект = РеестрДокументов.Ссылка и И ДополнительныеСведения.Свойство = &Свойство)
ГДЕ
    ТИПЗНАЧЕНИЯ(РеестрДокументов.Ссылка) = ТИП(Документ.РеализацияТоваровУслуг)
13 ONE1
 
12.08.22
14:03
чего-то не того в запросе делаю. В регистре только одна запись. А как то можно в запросе получить строки где не заполнено свойство?
14 maxx079
 
12.08.22
14:06
(13) Выбрать все документы, соединить с регистром по нужному условию, и из результата выбрать строки, где ссылка на регистр есть Null
15 ONE1
 
12.08.22
14:15
(5) в приниципе такой запрос подходит
16 ONE1
 
12.08.22
14:15
https://ibb.co/1LKdSDf беда пришла откуда не ждали :((((
17 ONE1
 
12.08.22
14:45
Все гуд, maxx079 лучший ❤
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший