Получить список контрагентов с незаполненным дополнительным реквизитом

1. fregat 12 15.09.15 14:47 Сейчас в теме
Доброго дня!
В базе Бухгалтерия предприятия, редакция 3.0 для справочника контрагенты добавлен дополнительный реквизит с типом значения "Булево". Возможно ли запросом получить список контрагентов у которых данный реквизит не заполнен?
По теме из базы знаний
Найденные решения
29. fregat 12 15.09.15 17:00 Сейчас в теме
(23) Tangram, Да, все получилось!!! Изменил запрос под себя, в результате получилось:

ВЫБРАТЬ
ВложенныйЗапрос.Контрагент
ИЗ
(ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
ЕСТЬNULL(КонтрагентыДополнительныеРеквизиты.Значение, ЛОЖЬ) КАК Значение
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ПО (КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство)
И Контрагенты.Ссылка = КонтрагентыДополнительныеРеквизиты.Ссылка
ГДЕ
НЕ Контрагенты.ЭтоГруппа) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.Значение = Ложь


Всем спасибо за участие, проблема решена!
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
12. superkuzja 3 15.09.15 15:53 Сейчас в теме
(1) fregat,
ВЫБРАТЬ
	Контрагенты.Ссылка
ИЗ
	Справочник.Контрагенты КАК Контрагенты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		ПО Контрагенты.Ссылка = ДополнительныеСведения.Объект
ГДЕ
	ДополнительныеСведения.Свойство = &Свойство
	И ДополнительныеСведения.Значение ЕСТЬ NULL 
Показать
minor-50; +1 Ответить
14. fregat 12 15.09.15 15:59 Сейчас в теме
(12) superkuzja, Пустой результат запроса получается.
25. superkuzja 3 15.09.15 16:40 Сейчас в теме
(14) fregat, у меня торговля и для Контрагентов нет доп. Свойств, а вот для Партнеров прекрасно работает вот такой запрос:
ВЫБРАТЬ
	Партнеры.Ссылка,
	ВложенныйЗапрос.Значение
ИЗ
	Справочник.Партнеры КАК Партнеры
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ДополнительныеСведения.Объект КАК Объект,
			ДополнительныеСведения.Значение КАК Значение
		ИЗ
			РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		ГДЕ
			ДополнительныеСведения.Свойство = &Свойство
			И ДополнительныеСведения.Объект ССЫЛКА Справочник.Партнеры) КАК ВложенныйЗапрос
		ПО Партнеры.Ссылка = ВложенныйЗапрос.Объект
ГДЕ
	ВложенныйЗапрос.Значение ЕСТЬ NULL 
Показать


В результате выбираются только те, у кого вообще данное свойство не установлено.
26. superkuzja 3 15.09.15 16:42 Сейчас в теме
(25)
ВложенныйЗапрос.Значение
можно не выбирать, это от теста осталось...
23. Tangram 160 15.09.15 16:39 Сейчас в теме
(1) fregat,
"ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
ЕСТЬNULL(КонтрагентыДополнительныеРеквизиты.Значение, ЛОЖЬ) КАК НеОбрабатывается
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ПО (КонтрагентыДополнительныеРеквизиты.Свойство.Заголовок = "Не обрабатывается")
И Контрагенты.Ссылка = КонтрагентыДополнительныеРеквизиты.Ссылка
ГДЕ
Контрагенты.Ссылка В ИЕРАРХИИ(&ГруппаДачники)
И НЕ Контрагенты.ЭтоГруппа"
Кусок моего рабочего запроса, работает в реальной базе. Из него выбираешь "...ГДЕ НеОбрабатывается = ЛОЖЬ".
Соответственно "Не обрабатывается" надо заменить на имя твоего свойства.
29. fregat 12 15.09.15 17:00 Сейчас в теме
(23) Tangram, Да, все получилось!!! Изменил запрос под себя, в результате получилось:

ВЫБРАТЬ
ВложенныйЗапрос.Контрагент
ИЗ
(ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
ЕСТЬNULL(КонтрагентыДополнительныеРеквизиты.Значение, ЛОЖЬ) КАК Значение
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ПО (КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство)
И Контрагенты.Ссылка = КонтрагентыДополнительныеРеквизиты.Ссылка
ГДЕ
НЕ Контрагенты.ЭтоГруппа) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.Значение = Ложь


Всем спасибо за участие, проблема решена!
2. minor-50 15.09.15 15:26 Сейчас в теме
Можно получить либо со значением Истина или Ложь. В случае если возможно установка ложь и это считается "заполненным значением" то увы нет.
4. Зеленоград 15.09.15 15:28 Сейчас в теме
(2) minor-50, вы меня уже вдвоём удивляете.
3. Зеленоград 15.09.15 15:27 Сейчас в теме
В войсках всегда было мало программистов и много сильных.

В чём сложность, показывай свой...

запрос.
minor-50; +1 Ответить
6. fregat 12 15.09.15 15:32 Сейчас в теме
(3)Сложность в том, что если дополнительный реквизит не заполнен у элемента справочника, то у элемента справочника в ТЧ "ДополнительныеРеквизиты" нет вообще никакой информации об этом дополнительном реквизите.
7. Зеленоград 15.09.15 15:34 Сейчас в теме
(6) fregat, мы, судя по расчётно-платёжной ведомости, программисты. Код показывай.
8. fregat 12 15.09.15 15:44 Сейчас в теме
(7) Зеленоград, с кодом как раз таки проблема)) Код для получения выборки элементов с заполненными значениями дополнительного реквизита предельно прост:

ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ГДЕ
КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство
И КонтрагентыДополнительныеРеквизиты.Значение = ИСТИНА

А вот с не заполненными не соображу как написать.
9. Xershi 1490 15.09.15 15:48 Сейчас в теме
(8) fregat,
ВЫБРАТЬ 
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка 
ИЗ 
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты 
ГДЕ 
КонтрагентыДополнительныеРеквизиты.Значение = ЛОЖЬ


Не выводит?
13. fregat 12 15.09.15 15:58 Сейчас в теме
(9) Xershi, (10) minor-50, Здесь нюанс состоят в том, что в ТЧ "ДополнительныеРеквизиты" ссылка на дополнительный реквизит со значением "Истина" появляется только если установлен флаг в карточке контрагента. Если флаг убираем, то в ТЧ нет информации о том что этот дополнительный реквизит имеет значение "Ложь".
15. minor-50 15.09.15 15:59 Сейчас в теме
(13) fregat, значит вариант с NULL
16. Зеленоград 15.09.15 16:01 Сейчас в теме
(13) fregat, а сейчас это не важно. Логика форм может быть сколь угодно противоестественной, незадокументированной и непроверенной во всех комбинациях действий пользователя.

Или уточняй постановку задачи.
18. fregat 12 15.09.15 16:08 Сейчас в теме
(16) Зеленоград, Постановка задачи проста- выбрать тех контрагентов, у которых не установлен флаг у дополнительного реквизита. Я может насчет дополнительного реквизита неясно объяснил - он добавлен не из конфигуратора, а через механизм "Дополнительные реквизиты и сведения".
19. Зеленоград 15.09.15 16:21 Сейчас в теме
(18) fregat, я понял. Значит, надо отбирать всех контрагентов, кроме тех, у кого значение доп. реквизита равно "Ложь" или "Истина". А что там написано в модулях формы - сейчас не важно.
21. fregat 12 15.09.15 16:26 Сейчас в теме
(19) Зеленоград, Насколько я понял, у дополнительно реквизита не может быть значения "Ложь". Если флаг не установлен, то в ТЧ ДополнительныеРеквизиты вообще нет строки с этим дополнительным реквизитом.
20. Xershi 1490 15.09.15 16:26 Сейчас в теме
(18) fregat, ну так в чем проблема заменить условие на не равно истина? Консоль запросов открыл погонял условия и получил результат...
22. fregat 12 15.09.15 16:28 Сейчас в теме
(20) Xershi, проблема в том, что условие "не равно истина" не на что накладывать - в ТЧ "ДополнительныеРеквизиты" пусто у тех у кого не заполнен дополнительный реквизит.
27. superkuzja 3 15.09.15 16:57 Сейчас в теме
(22) fregat, просто если доп. свойство может быть в трёх состояниях Истина, Ложь и не назначено (просто не создается соответствующая запись в регистре сведений). Механиз "Дополнительные свойства" полностью идентичен ранее используемому "Свойства и категории".
28. fregat 12 15.09.15 16:58 Сейчас в теме
(27) superkuzja, В БП 3 радакции дополнительные реквизиты хранятся не в РС, а в ТЧ каждого элемента справочника. Отсюда и различия при работе с ними.
superkuzja; +1 Ответить
10. minor-50 15.09.15 15:51 Сейчас в теме
(8) fregat,
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ГДЕ
КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство
И НЕ КонтрагентыДополнительныеРеквизиты.Значение
5. minor-50 15.09.15 15:29 Сейчас в теме
по дефолту ложь или я не прав?
11. Зеленоград 15.09.15 15:51 Сейчас в теме
Не, это не настоящий военный.

Настоящий бы так сделал:

"Умные, выйти из строя и бегом на кухню!"

Через 10 секунд -

"А теперь займёмся отборными бойцами!"

Первую выборку в таблицу, второй запрос - все, кроме умных.
17. fregat 12 15.09.15 16:01 Сейчас в теме
(11) Зеленоград, Да, тоже об этом думаю, что из полной выборки по справочнику нужно будет исключить тех, у кого дополнительный реквизит установлен в значение Истина.
24. Зеленоград 15.09.15 16:40 Сейчас в теме
Что ты привязался к ТЧ, которую писали усталые упоротые сотрудники отдела вредительства? Консоль запросов из "Инструментов разработчика" сам найдёшь или показать?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот