0
ferret
05.02.24
✎
08:54
|
Здравствуйте. Стоит следующая задача: наложить на динамический список отбор (с помощью компоновщика настроек), обновить и вывести на экран. Столкнулась с проблемой того, что при наличие в коде данного куска:
Для Каждого ЭлементОтбораДС Из Список.Отбор.Элементы Цикл
ЭлементОтбораСКД = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЗаполнитьЗначенияСвойств(ЭлементОтбораСКД, ЭлементОтбораДС);
КонецЦикла;
Для Каждого ЗначениеПараметраДС Из Список.Параметры.Элементы Цикл
ЗначениеПараметраСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
ЗаполнитьЗначенияСвойств(ЗначениеПараметраСКД, ЗначениеПараметраДС);
КонецЦикла;
выходит ошибка "Коллекция значений параметров не может изменять свой состав, так как она связана с доступными параметрами." Без этого куска (код приложу ниже) таблица значений оказывается пустой. Я вообще не понимаю, что происходит. Помогите, пожалуйста, что не так?
ХранилищеОбщихНастроек.Сохранить("Список", "Пользовательские настройки", КомпоновщикНастроекКД.Настройки, , ТекущийПользователь);
СКД = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Таб = Новый ТаблицаЗначений;
ПроцессорВыводаВТЗ = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВыводаВТЗ.УстановитьОбъект(Таб);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, КомпоновщикНастроекКД.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
Таб = ПроцессорВыводаВТЗ.Вывести(ПроцессорКомпоновкиДанных);
СписокДокументов.Очистить();
Для каждого СтрокаТЗ Из Таб Цикл
НовСтр = СписокДокументов.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,СтрокаТЗ);
КонецЦикла;
|
|