Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 05:56

Управляемые формы. Сохранение настроек отчета конфигурации с нуля, одинаковых для всех пользователей

Автор sergeys, 03 авг 2017, 04:46

0 Пользователей и 1 гость просматривают эту тему.

sergeys

Имеется конфигурация написанная с нуля, в дереве конфигурации отчет, в реквизитах отчета 10 списков значений, заполненных на форме.
Как можно сохранить эти настройки, так что бы при открытии формы они были одинаковые для всех пользователей.

Например для обычных форм я использую вот это.
Как это переделать для управляемых форм не знаю


Процедура СохранитьНастройки(ДокументСсылка, ОбработкаОбъект) Экспорт

//сформируем структуру настроек
СтруктураНастроек = новый Структура;
Для каждого Ключ Из ОбработкаОбъект.Метаданные().Реквизиты Цикл
СтруктураНастроек.Вставить(Ключ.Имя,ОбработкаОбъект[Ключ.Имя]);
КонецЦикла;

Для каждого ТабличнаяЧасть Из ОбработкаОбъект.Метаданные().ТабличныеЧасти Цикл
СтруктураНастроек.Вставить(ТабличнаяЧасть.Имя,ОбработкаОбъект[ТабличнаяЧасть.Имя].Выгрузить());
КонецЦикла;

НаборЗаписей = РегистрыСведений.НастройкиОтчетов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ДокументСсылка.Установить(Строка(ДокументСсылка));
//НаборЗаписей.Отбор.Обработка.Установить(Строка(ОбработкаОбъект));
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() = 0 Тогда

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Настройка = Новый ХранилищеЗначения(СтруктураНастроек);
НоваяЗапись.ДокументСсылка = Строка(ДокументСсылка);
//НоваяЗапись.Обработка = Строка(ОбработкаОбъект);

Иначе
//перезапишем настройку
Запись = НаборЗаписей[0];
Запись.Настройка = Новый ХранилищеЗначения(СтруктураНастроек);

КонецЕсли;

НаборЗаписей.Записать();

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

Процедура ВосстановитьНастройки(ДокументСсылка, ОбработкаОбъект) Экспорт

НаборЗаписей = РегистрыСведений.НастройкиОтчетов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ДокументСсылка.Установить(Строка(ДокументСсылка));
//НаборЗаписей.Отбор.Обработка.Установить(Строка(ОбработкаОбъект));
НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество() <> 0 Тогда
СтруктураНастроек = НаборЗаписей[0].Настройка.Получить();
Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда
//восстановим реквизиты
Для каждого Ключ Из ОбработкаОбъект.Метаданные().Реквизиты Цикл
Попытка
ОбработкаОбъект[Ключ.Имя] = СтруктураНастроек[Ключ.Имя];
Исключение
КонецПопытки;
КонецЦикла;

//восстановим табличные части
Для каждого ТабличнаяЧасть Из ОбработкаОбъект.Метаданные().ТабличныеЧасти Цикл
Для каждого стр Из СтруктураНастроек[ТабличнаяЧасть.Имя] Цикл
ЗаполнитьЗначенияСвойств(ОбработкаОбъект[ТабличнаяЧасть.Имя].Добавить(),Стр);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск