0
Oleg87
25.09.15
✎
12:25
|
Добрый день.
Нужно программно добавить в отчет на СКД поля набора данных. Причем, чтобы они были доступны в списке полей при изменении варианта отчета пользователем.
В модуле объекта отчета нет подходящего обработчика, чтобы при запуске отчета заполнить список полей набора данных (скриншот ). Если в разделе основной программы модуля объекта отчета написать следующий код:
ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "Ист1";
ИсточникДанных.ТипИсточникаДанных = "Local";
НаборДанныхОбъект = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НаборДанныхОбъект.ИмяОбъекта = "Табл";
НаборДанныхОбъект.Имя = "Набор1";
НаборДанныхОбъект.ИсточникДанных = "Ист1";
Поле = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле.Поле = "Поле1";
Поле.ПутьКДанным = "Поле1";
Поле = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле.Поле = "Поле2";
Поле.ПутьКДанным = "Поле2";
То, в пользовательском режиме в списке полей при настройке варианта отчета, появляются поле1 и поле2 (скриншот )
Нужно разместить данный код в ПриСозданииНаСервере формы, чтобы он отрабатывал лишь единожды при старте отчета.
Для этого в процедуре ПриСозданииНаСервере я сначала преобразую основной реквизит формы в объект (с помощью РеквизитФормыВЗначение), затем добавляю в этот отчет-объект необходимые поля набора данных и делаю обратное преобразование отчет-объект в ДанныеФормыСтруктура (с помощью метода ЗначениеВДанныеФормы). Однако при старте такой формы, при изменении варианта отчета в пользовательском режиме, созданные поля набора данных не отображаются.
(см скрин1
скрин 2 )
Что я делаю не верно?
|
|
2
Oleg87
25.09.15
✎
12:29
|
Скрин, на котором видно что после добавления кода в МО отчета, в пользовательском режиме появляются необходимые поля
(в предыдущем сообщении почему то не открывается)
|
|