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

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

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


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

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


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

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

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


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

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

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


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

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

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

И все!
8. jo0506 20 20.09.23 14:39 Сейчас в теме
Спасибо тебе, помогла тема, пол дня просидел, правила переноса УТ10.3 на УНФ 3.0 1С не поменяла на новый алгоритм.
Для отправки сообщения требуется регистрация/авторизация

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