0
Vladal
20.10.14
✎
14:55
|
Работаю с отчетом на основе типового УниверсальногоОтчета. Мне нужно изменить сохраненную настройку пользователя, добавив в неё программно вывод дополнительных полей, которых нет в настройке пользователя.
Создаю программно ОтчетОбъект, получаю в регистре сведений сохраненную настройку выбранного пользователя и заполняю структуру настроек УниверсальногоОтчета:
ОтчетОбъект = Отчеты[Сред(ИмяОбъекта, ПозицияТочки+1)].Создать();
ОтчетОбъект.УстановитьНачальныеНастройки();
СтруктураНастройки = Новый Структура;
СтруктураНастройки.Вставить("Пользователь", Пользователь); //--глЗначениеПеременной("глТекущийПользователь"));
СтруктураНастройки.Вставить("ИмяОбъекта", ИмяОбъекта); //--?(ИмяОбъекта = Неопределено, Строка(Отчет), ИмяОбъекта));
СтруктураНастройки.Вставить("НаименованиеНастройки", ВыбраннаяСтрока.НаименованиеНастройки);//--?(Объект.мТекущаяНастройка = Неопределено, Неопределено, Объект.мТекущаяНастройка.НаименованиеНастройки));
СтруктураРазмещенияДопПолей = Новый Структура;
СтруктураРазмещенияДопПолей.Вставить("Положение", "После группировки");
СтруктураРазмещенияДопПолей.Вставить("Размещение", ТипРазмещенияРеквизитовИзмерений.ВместеСИзмерениями);
ОтчетОбъект.СформироватьСтруктуруДляСохраненияНастроек(СохраненнаяНастройка);
Если УниверсальныеМеханизмы.ПолучитьНастройку(СтруктураНастройки) Тогда
// Установка нужных мне параметров настройки - детальных записей и установка выбранного периода
СохраненнаяНастройка = СтруктураНастройки.СохраненнаяНастройка;
СохраненнаяНастройка.Вставить("ВыводитьДетальныеЗаписи", Истина);
СохраненнаяНастройка.НастройкаПериода.ДатаНачала = НачалоДня(НачПериода);
СохраненнаяНастройка.НастройкаПериода.ДатаОкончания = КонецДня(КонПериода);
СохраненнаяНастройка.РазмещениеПоложениеВыбранныхПолей.Вставить("Регистратор", СтруктураРазмещенияДопПолей);
СтруктураНастройки.СохраненнаяНастройка = СохраненнаяНастройка;
ОтчетОбъект.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка);
Иначе
ОтчетОбъект.мТекущаяНастройка = СтруктураНастройки;
КонецЕсли;
ФормаОтчета = ОтчетОбъект.ПолучитьФорму();
ФормаОтчета.Открыть();
ФормаОтчета.ОбновитьОтчет();
Всё работает правильно - и загружается настройка, и включается флаг детальных записей, устанавливается выбранный период, но не включатся программно дополнительные поля. Хотя в структуре настроек они есть.
В доступных полях настроек регистратор есть. Но не добавляется.
Когда интерактивно добавлю поля, получившаяся структура настроек идентична моей.
Что я пропустил или сделал лишнего?
|
|