БСП 3.1 Свойства, программно определяемый предопределенный набор свойств в запросах

1. zhenyat 6 08.10.19 18:21 Сейчас в теме
Злравствуйте
В БСП 3.1 вместо конфигурационно-предопределенных данных перешли на программно-предеопределенные.
Теперь в коде, например, вместо
Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие

надо использовать
УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие")


И что то я не могу сообразить как теперь обращаться к этим элементам в запросах?

Там где было
"ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие)"


Что теперь надо писать?
По теме из базы знаний
Найденные решения
7. zhenyat 6 10.10.19 13:42 Сейчас в теме
Все оказалось до примитивного просто. Непонятно почему в документации 1С этого нигде не отразила толком.
Даже в демо они развели зоопарк старых конфигурационно-предопределенных элементов и программных

А всего-то в УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств вместо кода из документации надо писать:
	// Наборы справочника: Номенклатура
	Набор = Наборы.Строки.Добавить();
	Набор.Имя = "Справочник_Номенклатура";
	Набор.ЭтоГруппа = Истина;
	Набор.Идентификатор = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура.УникальныйИдентификатор();
	//Новый УникальныйИдентификатор("42eaf341-3bfc-4f47-b0e8-02db150f69f2");
	
	ДочернийНабор = Набор.Строки.Добавить();
	ДочернийНабор.Имя = "Справочник_Номенклатура_Общие";
	ДочернийНабор.Идентификатор = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие.УникальныйИдентификатор();
	//Новый УникальныйИдентификатор("91895104-9e5b-4d90-81b8-452058a0f697");
Показать

И все!
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. zhenyat 6 08.10.19 18:31 Сейчас в теме
Пока писала вопрос сама додумалась до ответа %)
Вместо использования &ОбщийНабор как элемента для замены
		|ГДЕ
		|	(ДополнительныеРеквизиты.Ссылка = &ОбщийНабор
		|			ИЛИ ДополнительныеРеквизиты.Ссылка = &НаборВида)
		|	И НЕ ДополнительныеРеквизиты.ПометкаУдаления";
		
		Если НазначениеДопРеквизитов = "Номенклатура" Тогда
			ОбщийНабор =  "ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие)";
		КонецЕсли;
		
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбщийНабор", ОбщийНабор);  	
Показать


Нужно использовать &ОбщийНабор как параметр
		|ГДЕ
		|	(ДополнительныеРеквизиты.Ссылка = &ОбщийНабор
		
		Если НазначениеДопРеквизитов = "Номенклатура" Тогда
			ОбщийНабор = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие");
		КонецЕсли;
		
	Запрос.УстановитьПараметр("ОбщийНабор", ОбщийНабор);
Показать
3. nomad_irk 76 08.10.19 18:59 Сейчас в теме
(2)Выполнив поиск ссылки методом УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"), вы создали лишнюю транзакцию "формирование запроса к БД - получения данных", в то время как указание предопределенного значения в тексте запроса этой транзакции не вызывает.
4. zhenyat 6 09.10.19 12:28 Сейчас в теме
(3) Блин, это совсем плохо :(

Хотя нет, там в коде БСП результат запроса программно-предопределенных наборов кешируется.

Но как же теперь быть то с запросами?
Да и поторопилась я закрыть тему - если встречается предопределенное значение как реквизит запроса, то как здесь то быть?
Типа:
	|ВЫБРАТЬ
	|	НаборыДополнительныхРеквизитов.Свойство,
	|	ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие),
	|	НаборыДополнительныхРеквизитов.Свойство.Заголовок


Физически теперь этих элементов нет.
Как к ним обращаться в запросах то?
5. nomad_irk 76 09.10.19 12:43 Сейчас в теме
(4)Так понимаю, для написания запросов все осталось, как было, либо нужно разбираться с кодом в УправлениеСвойствами.НаборСвойствПоИмени(), куда переселили жить сам набор доп. реквизитов. Я пока далек от мысли, что они совсем отказались от справочника/плана вида характеристик в качестве хранилища списка.

УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие") можно использовать для корректного отображения представлений доп. реквизитов для пользователя.
6. zhenyat 6 09.10.19 13:40 Сейчас в теме
(5) Да вот не как было :(
Обращение к предопределенному набору по имени теперь вызывает ошибку - ведь физически этого элемента нет...
7. zhenyat 6 10.10.19 13:42 Сейчас в теме
Все оказалось до примитивного просто. Непонятно почему в документации 1С этого нигде не отразила толком.
Даже в демо они развели зоопарк старых конфигурационно-предопределенных элементов и программных

А всего-то в УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств вместо кода из документации надо писать:
	// Наборы справочника: Номенклатура
	Набор = Наборы.Строки.Добавить();
	Набор.Имя = "Справочник_Номенклатура";
	Набор.ЭтоГруппа = Истина;
	Набор.Идентификатор = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура.УникальныйИдентификатор();
	//Новый УникальныйИдентификатор("42eaf341-3bfc-4f47-b0e8-02db150f69f2");
	
	ДочернийНабор = Набор.Строки.Добавить();
	ДочернийНабор.Имя = "Справочник_Номенклатура_Общие";
	ДочернийНабор.Идентификатор = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие.УникальныйИдентификатор();
	//Новый УникальныйИдентификатор("91895104-9e5b-4d90-81b8-452058a0f697");
Показать

И все!
8. jo0506 19 20.09.23 14:39 Сейчас в теме
Спасибо тебе, помогла тема, пол дня просидел, правила переноса УТ10.3 на УНФ 3.0 1С не поменяла на новый алгоритм.
Оставьте свое сообщение

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