Выгрузка свойств номенклатуры

1. Farhat95 20.12.22 13:44 Сейчас в теме
Добрый день! Есть небольшой запрос в котором надо сделать так чтобы не заполненные свойства тоже выгружались а значения к ним были пустыми.

ТекстЗапроса = "ВЫБРАТЬ
	               |	спр.Ссылка КАК Номенклатура,
	               |	ЗначенияСвойствОбъектов.Свойство,
	               |	ЗначенияСвойствОбъектов.Значение
	               |ИЗ
	               |	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	               |		ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК спр
	               |		ПО ЗначенияСвойствОбъектов.Объект = спр.Ссылка
	               |ГДЕ
	               |	НЕ спр.ЭтоГруппа
	               |{ГДЕ
	               |	спр.Ссылка.* КАК Номенклатура,
	               |	ЗначенияСвойствОбъектов.Свойство.*,
	               |	ЗначенияСвойствОбъектов.Значение.*}";
	ОтборТовара.Текст = текстЗапроса;
	ОтборТовара.Отбор.Добавить("Номенклатура");
	ОтборТовара.Отбор.Добавить("Свойство");
	ОтборТовара.Отбор.Номенклатура.ВидСравнения = ВидСравнения.ВИерархии;
Показать
По теме из базы знаний
Найденные решения
22. VictorRGB2 13 25.12.22 00:35 Сейчас в теме
(20) по сути нет

если я правильно понимаю задачу - нужны все свойства номенклатуры, даже если они не имеют значения
имеем по данным БД
- все свойства вообще, относящиеся к справочнику Номенклатура, соответственно перечислены в Дополнительных реквизитах и сведениях
- свойства, имеющие значения, привязаны к конкретному элементу справочника (объекту) и хранятся на регистре сведений
- свойства, не имеющие значения не привязаны к конкретной номенклатуре (объекту) и соответственно на регистре записи о них отсутствуют

итого
- отбираем все свойства, относящиеся к справочнику Номенклатура из Доп. реквизитов и сведений, помещаем их в ВР, здесь главное все свойства соединить со всей Номенклатурой (ну или с отбором по Номенклатуре) - это будут вообще все возможные свойства для Номенклатуры
- отбираем все свойства со значениями из регистра - это будут свойства конкретного элемента со значениями
- левым соединением с ВР по Объект = ВР.Номенклатура получаем оставшиеся из возможных свойства без значений
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. DBV 20.12.22 14:33 Сейчас в теме
(1) попробуйте добавить в связи ПВХ ДополнительныеРеквизитыИСведения
21. Farhat95 24.12.22 10:09 Сейчас в теме
(4)у меня УТ10,3 тут нет такого справочника( в УНФ я видел такой.
17. VictorRGB2 13 23.12.22 19:05 Сейчас в теме
(1) получить через Допрекивзиты и сведения все свойства, относящиеся к номенклатуре, запихнуть во временную таблицу
выбрать значения свойств номенклатуры, соединить с временной таблицей по свойству
все, что не имеет значения = 0
20. Farhat95 24.12.22 09:57 Сейчас в теме
(17) а свойства относящиеся к номенклатуре те свойства которые уже заполнены ) или я не правильно понял ?
22. VictorRGB2 13 25.12.22 00:35 Сейчас в теме
(20) по сути нет

если я правильно понимаю задачу - нужны все свойства номенклатуры, даже если они не имеют значения
имеем по данным БД
- все свойства вообще, относящиеся к справочнику Номенклатура, соответственно перечислены в Дополнительных реквизитах и сведениях
- свойства, имеющие значения, привязаны к конкретному элементу справочника (объекту) и хранятся на регистре сведений
- свойства, не имеющие значения не привязаны к конкретной номенклатуре (объекту) и соответственно на регистре записи о них отсутствуют

итого
- отбираем все свойства, относящиеся к справочнику Номенклатура из Доп. реквизитов и сведений, помещаем их в ВР, здесь главное все свойства соединить со всей Номенклатурой (ну или с отбором по Номенклатуре) - это будут вообще все возможные свойства для Номенклатуры
- отбираем все свойства со значениями из регистра - это будут свойства конкретного элемента со значениями
- левым соединением с ВР по Объект = ВР.Номенклатура получаем оставшиеся из возможных свойства без значений
24. Farhat95 26.12.22 08:46 Сейчас в теме
(22) у меня 1с УТ10.3, там нет этого справочника. Есть хранилище доп информации. Дополнительные реквизиты и сведения я не нашел.
25. VictorRGB2 13 26.12.22 13:12 Сейчас в теме
(24) в УТ 10.3 это можно сделать через регистр НазначениеСвойтсвОбъектов
там есть и Объект и Свойство - выбираем все свойства по Объекту (тип справочник Номенклатура)
28. Farhat95 26.12.22 16:53 Сейчас в теме
(25) У меня получилось двумя запросами выгрузить сначало все свойства а потом значения. Еще чуть чуть и вопрос решится) спасибо Вам
29. Farhat95 26.12.22 16:57 Сейчас в теме
(22)Остался вопрос как выгрузить именно свойства номенклатуры?
30. VictorRGB2 13 26.12.22 18:47 Сейчас в теме
(29) через ограничение по типу, например через Ссылка
что-то типа НазначениеСвойствОбъектов.Объект ССЫЛКА Спраовник.Номенклатура
31. Farhat95 27.12.22 11:01 Сейчас в теме
(30) Выводит все заполненные свойства всей номенклатуры. (
18. independ 1520 23.12.22 21:45 Сейчас в теме
(1) СКД запрос спр.номенклатура с левым соед.к РС.ЗСО и вывод через кросстаблицу
19. Farhat95 24.12.22 09:56 Сейчас в теме
(18) Я так сделал изначально, свойства выгружаются но только заполненные, левое правое любое соединение.
2. Farhat95 20.12.22 13:45 Сейчас в теме
Делаю простую обработку через которую можно будет посмотреть что именно не заполнено у группы товара. Вот не получается пустые свойства вывести. Выводятся только заполненные!
3. Farhat95 20.12.22 13:47 Сейчас в теме
Я понимаю что запрос выбирает привязанные к номенклатуре свойства. А нужно чтобы все свойства выгружались а значения именно привязанные
5. SObuhov152 20.12.22 14:35 Сейчас в теме
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЗначенияСвойствОбъектов.Свойство КАК Свойство,
	Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов,
	Справочник.Номенклатура КАК Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица.Ссылка КАК Ссылка,
	ВременнаяТаблица.Свойство КАК Свойство,
	Естьnull(ЗначенияСвойствОбъектов.Значение, 0) КАК Значение
	ИЗ
	ВременнаяТаблица КАК ВременнаяТаблица
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		ПО ВременнаяТаблица.Ссылка = ЗначенияСвойствОбъектов.Объект И
		ВременнаяТаблица.Свойство = ЗначенияСвойствОбъектов.Свойство
Показать
6. Farhat95 20.12.22 14:40 Сейчас в теме
(5)Этот запрос все свойства отобразит ?
7. Farhat95 20.12.22 14:42 Сейчас в теме
Вообще в идеале было бы если свойства как колонки пошли а значения как строки. Но так по моему нельзя сделать!
8. SObuhov152 20.12.22 14:43 Сейчас в теме
Да, если значения у свойства нет, то он выведет к примеру: номенклатура - ложка, свойство - вес, значение 0, прилагаю скрины
Прикрепленные файлы:
9. Farhat95 20.12.22 14:47 Сейчас в теме
(8)Благодарю! Сейчас у себя проверю.
10. Farhat95 20.12.22 14:54 Сейчас в теме
(8) в Ут 10,3 по моему такое не работает
11. Farhat95 20.12.22 15:16 Сейчас в теме
Не получается, временнаяТаблица.ССылка не найдено
12. beldieff 20.12.22 15:23 Сейчас в теме
(1) Номенклатура левое соединение к РС. В любом случае будет вся номенклатура независимо от заполненности свойства
13. Farhat95 20.12.22 15:39 Сейчас в теме
(12)у меня отбор, я могу выбрать группу.
14. SObuhov152 20.12.22 17:21 Сейчас в теме
(11) Странно. Попробуйте вот так еще

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЗначенияСвойствОбъектов.Свойство КАК Свойство,
	Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов,
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Объект) = ТИП(Справочник.Номенклатура)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица.Ссылка КАК Ссылка,
	ВременнаяТаблица.Свойство КАК Свойство,
	ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0) КАК Значение
ИЗ
	ВременнаяТаблица КАК ВременнаяТаблица
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		ПО ВременнаяТаблица.Ссылка = ЗначенияСвойствОбъектов.Объект
			И ВременнаяТаблица.Свойство = ЗначенияСвойствОбъектов.Свойство
Показать
15. Farhat95 23.12.22 13:57 Сейчас в теме
А может кто знает как из выгрузки разнести именно значения по созданным колонкам в ТЗ на форме.
16. Farhat95 23.12.22 15:38 Сейчас в теме
(14)
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗначенияСвойствОбъектов.Свойство КАК Свойство,
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов,
Справочник.Номенклатура КАК Номенклатура
ГДЕ
ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Объект) = ТИП(Справочник.Номенклатура)
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Ссылка КАК Ссылка,
ВременнаяТаблица.Свойство КАК Свойство,
ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0) КАК Значение
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ПО ВременнаяТаблица.Ссылка = ЗначенияСвойствОбъектов.Объект
И ВременнаяТаблица.Свойство = ЗначенияСвойствОбъектов.Свойство
Показать





Не правильно выгружает
23. Vitaly1C8 25.12.22 00:41 Сейчас в теме
(14) ВЫБРАТЬ РАЗЛИЧНЫЕ отбирает различные по всем полям в выборке !
Поэтому в первом запросе поместите во временную таблицу без поля Ссылка.
26. aatm 26.12.22 13:19 Сейчас в теме
надо исправить запрос
27. SGordon1 26.12.22 16:08 Сейчас в теме
А точно методически правильно в регистр лезть я бы из пвх по назначению искал ...
ВЫБРАТЬ
	СвойстваОбъектов.НазначениеСвойства,
	СвойстваОбъектов.Ссылка
ИЗ
	ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов  где......
Оставьте свое сообщение

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