F
fungrunger
Всем Добрый день. Столкнулся с такой проблемой.
Делаю отчет на СКД. В качестве набора данных есть внешний объект. Поля не описаны, т.к. формируются динамически.
Затем в процедуре модуля ПриКомпоновкеРезультата формирую этот внешний источник - добавляю его поля в схему,
инициализирую и пологал, что эти поля попадут в доступные - а вновь добавленные поля не попадают в доступные поля выбора (т.е. пользователь не сможет их выбрать).
Коллекция доступна только на чтение - как мне сделать чтобы новые поля схемы появились в доступных? Поможитя кто чем может. Платформа 8.2.14.519 Вот код
CODE
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
ПоляВнешнегоИсточника = СхемаКомпоновкиДанных.НаборыДанных.ВидыОпераций_Выбранные.Поля;
ТабСвойствОЗ = ПолучитьТабСвойствОЗ();
Для Каждого стрСвОз Из ТабСвойствОЗ Цикл
ньюПоле = ПоляВнешнегоИсточника.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
тПоле = стрСвОз.ПутьКДанным ;
ньюПоле.Поле = тПоле;
ньюПоле.ПутьКДанным = тПоле;
ньюПоле.Заголовок = стрСвОз.СвойствоНаименование;
ньюПоле.ТипЗначения = стрСвОз.СвойствоТипЗначения;
КонецЦикла;
ВидыОпераций_Выбранные = ПолучитьТабЗначенийСвойствОЗ(ПоляВнешнегоИсточника,ТабСвойствОЗ);
ВнешниеНаборыДанных = Новый Структура();
ВнешниеНаборыДанных.Вставить("ВидыОпераций_Выбранные", ВидыОпераций_Выбранные);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
Делаю отчет на СКД. В качестве набора данных есть внешний объект. Поля не описаны, т.к. формируются динамически.
Затем в процедуре модуля ПриКомпоновкеРезультата формирую этот внешний источник - добавляю его поля в схему,
инициализирую и пологал, что эти поля попадут в доступные - а вновь добавленные поля не попадают в доступные поля выбора (т.е. пользователь не сможет их выбрать).
Коллекция доступна только на чтение - как мне сделать чтобы новые поля схемы появились в доступных? Поможитя кто чем может. Платформа 8.2.14.519 Вот код
CODE
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
ПоляВнешнегоИсточника = СхемаКомпоновкиДанных.НаборыДанных.ВидыОпераций_Выбранные.Поля;
ТабСвойствОЗ = ПолучитьТабСвойствОЗ();
Для Каждого стрСвОз Из ТабСвойствОЗ Цикл
ньюПоле = ПоляВнешнегоИсточника.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
тПоле = стрСвОз.ПутьКДанным ;
ньюПоле.Поле = тПоле;
ньюПоле.ПутьКДанным = тПоле;
ньюПоле.Заголовок = стрСвОз.СвойствоНаименование;
ньюПоле.ТипЗначения = стрСвОз.СвойствоТипЗначения;
КонецЦикла;
ВидыОпераций_Выбранные = ПолучитьТабЗначенийСвойствОЗ(ПоляВнешнегоИсточника,ТабСвойствОЗ);
ВнешниеНаборыДанных = Новый Структура();
ВнешниеНаборыДанных.Вставить("ВидыОпераций_Выбранные", ВидыОпераций_Выбранные);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры