При открытии формы настроек, нужно скопировать пользовательские настройки в Настройки компоновщика. Я вообще думал, что это должно быть что-то вроде этого:
Но я ошибся. Этот код не работает. Подскажите добрые люди как это в типовых делается?
НастройкиКомпоновщика = Отчет.КомпоновщикНастроек.Настройки;
Для Каждого ЭлементНастроек Из ЭлементыПользовательскихНастроек Цикл
ИдентификаторНастройки = Настройки.ПолучитьИдентификаторПоОбъекту(ЭлементНастроек);
Если ТипЗнч(ЭлементНастроек) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
ЭлементОтбора = НастройкиКомпоновщика.Отбор.ПолучитьОбъектПоИдентификатору(ИдентификаторНастройки);
Если НЕ ЭлементОтбора = Неопределено Тогда
ЗаполнитьЗначенияСвойств(ЭлементОтбора,ЭлементНастроек);
КонецЕсли;
КонецЕсли;
Если ТипЗнч(ЭлементНастроек) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
ЭлементЗначениеПараметра = НастройкиКомпоновщика.ПараметрыДанных.ПолучитьОбъектПоИдентификатору(ИдентификаторНастройки);
Если НЕ ЭлементЗначениеПараметра = Неопределено Тогда
ЗаполнитьЗначенияСвойств(ЭлементЗначениеПараметра,ЭлементНастроек);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПоказатьНо я ошибся. Этот код не работает. Подскажите добрые люди как это в типовых делается?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) видимо, нужны, чтобы понять, что же это за быстрые настройки (отбор, сортировка и т.п.).
Я, например, использовал для установки отбора по номенклатуре.
Я, например, использовал для установки отбора по номенклатуре.
//установим "быстрый" отбор по Номенклатуре, если это возможно
ОтборПоНоменклатуре = Неопределено;
ПользовательскийОтборПоНоменклатуре = Неопределено; //если Номенклатура явно выведена в быстрые отборы
ПользовательскийОтбор = Неопределено; //если Отбор выведен в быстрые отборы
//поиск ОтборПоНоменклатуре
ПолеНоменклатура = Новый ПолеКомпоновкиДанных("Номенклатура");
Для каждого ЭлементНастройки Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементНастройки.ЛевоеЗначение = ПолеНоменклатура Тогда
ОтборПоНоменклатуре = ЭлементНастройки;
КонецЕсли;
КонецЦикла;
//поиск ПользовательскийОтборПоНоменклатуре И ПользовательскийОтбор
Для Каждого ЭлементНастройки Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
Если ЭлементНастройки.ИдентификаторПользовательскойНастройки = Отчет.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки Тогда
ПользовательскийОтбор = ЭлементНастройки;
ИначеЕсли ОтборПоНоменклатуре <> Неопределено И ЭлементНастройки.ИдентификаторПользовательскойНастройки = ОтборПоНоменклатуре.ИдентификаторПользовательскойНастройки Тогда
ПользовательскийОтборПоНоменклатуре = ЭлементНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
Показать
Вообще работает простой способ
, но хотелось бы понять зачем нужны эти идентификаторы вообще, если я не могу по заданному объекту в пользовательских настройках получить идентификатор и по нему найти объект в настройках компоновщика и обратно.
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроек.ПолучитьНастройки())
, но хотелось бы понять зачем нужны эти идентификаторы вообще, если я не могу по заданному объекту в пользовательских настройках получить идентификатор и по нему найти объект в настройках компоновщика и обратно.
Касаемоего этой части кода:
Для получения параметра данных (Тип: ЗначениеПараметраКомпоновкиДанных) можно использовать следующее:
В итоге вы получите один из элементов (Тип: ЗначениеПараметраНастроекКомпоновкиДанных) коллекции "Элементы" (Тип: КоллекцияЗначенийПараметровКомпоновкиДанных) которая принадлежит параметрам данных (Тип: ЗначенияПараметровДанныхКомпоновкиДанных)
(2)
ЭлементЗначениеПараметра = НастройкиКомпоновщика.ПараметрыДанных.ПолучитьОбъектПоИдентификатору(ИдентификаторНастройки);
Для получения параметра данных (Тип: ЗначениеПараметраКомпоновкиДанных) можно использовать следующее:
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("ИмяИскомогоПараметра");
ЭлементЗначениеПараметра = НастройкиКомпоновщика.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки)
В итоге вы получите один из элементов (Тип: ЗначениеПараметраНастроекКомпоновкиДанных) коллекции "Элементы" (Тип: КоллекцияЗначенийПараметровКомпоновкиДанных) которая принадлежит параметрам данных (Тип: ЗначенияПараметровДанныхКомпоновкиДанных)
(2)
Прикрепленные файлы:
![](/upload/forum/ed9/ed913774640d9267caa61c72a15b33d0.png)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот