Имя: Пароль:
1C
1С v8
Как программно сохранить вариант отчета?
0 Const31
 
22.09.15
18:40
При закрытии формы отчета (платформа 1С 8.3, управляемое приложение) часто появляется сообщение "Вариант "Вариант1" был изменен. Сохранить измененный вариант?" Как организовать чтобы это сообщение не выдавалось? Может что-нибудь где-нибудь настроить, или программно удалить измененный вариант, или например в обработчике формы отчета ПередЗакрытием его программно записать или др. Кто подскажет?
1 trooba
 
22.09.15
18:52
(0) Смотреть ПередЗакрытием и ПриСохраненииПользовательскихНастроекНаСервере(Настройки)
2 Defender aka LINN
 
22.09.15
19:05
(0) Не изменять вариант - не предлагать?
3 Const31
 
22.09.15
20:14
Не изменять - это конечно не вариант.
А какое конкретно свойство или метод использовать чтобы сбросить измененные настройки по умолчанию или чтобы сохранить их?
4 Const31
 
22.09.15
22:15
Дело в том, что не пользователь меняет настройки отчета.
Через настройки отчета передаются некоторые данные в обработчик ПриКомпоновкеРезультата
модуля объекта отчета. В результате вариант отчета оказывается модифицированным.

На форме отчета есть реквизиты ДатаРасчета, Контрагент и Договор, при редактировании
которых с помощью обработчиков ПриИзменении модуля формы устанавливаются параметры:

&НаКлиенте
Процедура ДатаРасчетаПриИзменении(Элемент)
      ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(
            Новый ПараметрКомпоновкиДанных("ДатаРасчета"));      
      ЗначениеПараметра.Значение = ДатаРасчета;
      ЗначениеПараметра.Использование = Истина;      
КонецПроцедуры

затем в обработчике ПриКомпоновкеРезультата модуля объекта отчета эти параметры
читаются:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
      СтандартнаяОбработка = Ложь;
      ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(
                        Новый ПараметрКомпоновкиДанных("ДатаРасчета"));      
      ДатаРасчета = ЗначениеПараметра.Значение;


      // ...
КонецПроцедуры

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

Возможно получилось заморочено, но работает. Неприятный момент
только в том, что постоянно появляются окна с просьбой сохранить вариант.
Может подскажете как более просто и красиво передать данные типа
ДатаРасчета, Контрагент и Договор из реквизитов формы в обработчик
ПриКомпоновкеРезультата модуля объекта отчета. Я по-другому
просто не сообразил как можно сделать.
5 minele
 
22.09.15
22:22
Просто заходишь в код и чистишь сообщение и все, если не можешь предложить. Обычно "вариант" означает, что не сделаны точные настройки отчетов, а по умолчанию они без настроек.
6 minele
 
22.09.15
22:27
Надо просто в режиме 1С:Предприятие выбрать в настройке в конкретном отсчете конкретные поля, точки, серии устраивающие данный отчет. И не надо кодить и изобретать велосипед.
Основная теорема систематики: Новые системы плодят новые проблемы.