Имя: Пароль:
1C
1С v8
Типовой отчет не принимает измененные программно настройки
0 Vladal
 
20.10.14
14:55
Работаю с отчетом на основе типового УниверсальногоОтчета. Мне нужно изменить сохраненную настройку пользователя, добавив в неё программно вывод дополнительных полей, которых нет в настройке пользователя.

Создаю программно ОтчетОбъект, получаю в регистре сведений сохраненную настройку выбранного пользователя и заполняю структуру настроек УниверсальногоОтчета:

ОтчетОбъект = Отчеты[Сред(ИмяОбъекта, ПозицияТочки+1)].Создать();
ОтчетОбъект.УстановитьНачальныеНастройки();

СтруктураНастройки = Новый Структура;
СтруктураНастройки.Вставить("Пользователь",          Пользователь);    //--глЗначениеПеременной("глТекущийПользователь"));
СтруктураНастройки.Вставить("ИмяОбъекта",            ИмяОбъекта);      //--?(ИмяОбъекта = Неопределено, Строка(Отчет), ИмяОбъекта));
СтруктураНастройки.Вставить("НаименованиеНастройки", ВыбраннаяСтрока.НаименованиеНастройки);//--?(Объект.мТекущаяНастройка = Неопределено, Неопределено, Объект.мТекущаяНастройка.НаименованиеНастройки));

СтруктураРазмещенияДопПолей = Новый Структура;
СтруктураРазмещенияДопПолей.Вставить("Положение",  "После группировки");
СтруктураРазмещенияДопПолей.Вставить("Размещение", ТипРазмещенияРеквизитовИзмерений.ВместеСИзмерениями);
ОтчетОбъект.СформироватьСтруктуруДляСохраненияНастроек(СохраненнаяНастройка);
Если УниверсальныеМеханизмы.ПолучитьНастройку(СтруктураНастройки) Тогда
    // Установка нужных мне параметров настройки - детальных записей и установка выбранного периода
    СохраненнаяНастройка = СтруктураНастройки.СохраненнаяНастройка;
    СохраненнаяНастройка.Вставить("ВыводитьДетальныеЗаписи", Истина);
    СохраненнаяНастройка.НастройкаПериода.ДатаНачала = НачалоДня(НачПериода);
    СохраненнаяНастройка.НастройкаПериода.ДатаОкончания = КонецДня(КонПериода);
    СохраненнаяНастройка.РазмещениеПоложениеВыбранныхПолей.Вставить("Регистратор", СтруктураРазмещенияДопПолей);
    СтруктураНастройки.СохраненнаяНастройка = СохраненнаяНастройка;
    ОтчетОбъект.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка);
Иначе
    ОтчетОбъект.мТекущаяНастройка = СтруктураНастройки;
КонецЕсли;

ФормаОтчета = ОтчетОбъект.ПолучитьФорму();
ФормаОтчета.Открыть();
ФормаОтчета.ОбновитьОтчет();

Всё работает правильно - и загружается настройка, и включается флаг детальных записей, устанавливается выбранный период, но не включатся программно дополнительные поля. Хотя в структуре настроек они есть.

В доступных полях настроек регистратор есть. Но не добавляется.
Когда интерактивно добавлю поля, получившаяся структура настроек идентична моей.

Что я пропустил или сделал лишнего?
Ошибка? Это не ошибка, это системная функция.