gifts2017

Типовые настройки для СКД

Опубликовал Эстер Коган (e.kogan) в раздел Программирование - Работа с интерфейсом

Как в несколько кликов БЕЗ справочника "Сохранённые настройки" создать для отчёта на СКД любое количество быстро восстанавливаемых общих типовых настроек.

Делюсь методикой:
1. Сохраняем любое количество типовых настроек в файлы по стандартной кнопке.
2. Загоняем их в макеты типа ДвоичныеДанные.
3. Называем эти макеты как-нибудь вроде "Настройки_блаблабла".
4. На командной панели формы отчёта ваяем подменю "Типовые настройки".
5. При открытии пробегаем по метаданным этого объекта (Отчёта) и для каждого макета, в чьём имени есть слово "Настройки", делаем кнопочку с именем как у макета и текстом как синоним макета. Действие устанавливаем, естественно.
6. В процедуре-обработчике нажатия на эти доп.кнопки выполняем следующее:

=================

Попытка
  имяф=ПолучитьИмяВременногоФайла("xml");
  мак=ПолучитьМакет(Элемент.Имя);
  мак.Записать(имяф);
  ЧтениеХМЛ=Новый ЧтениеXML;
  ЧтениеХМЛ.ОткрытьФайл(имяф);
  рНастр=СериализаторXDTO.ПрочитатьXML(ЧтениеХМЛ);
  Если рНастр<>Неопределено Тогда
  ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(рНастр);
  КонецЕсли;
  ЧтениеХМЛ.Закрыть();
  УдалитьФайлы(имяф);
 Исключение
  Сообщить(ОписаниеОшибки());
 КонецПопытки

================
Итог: у нас есть инструмент для сохранения неограниченного числа типовых настроек - увеличивается только размер самого отчёта. Чем час объяснять пользователю, куда надо ткнуть для того, чтобы у него "вот это было выше, а это ниже, а вон то сбоку" - говорим только, на какую кнопочку нажимать.

P.S. Ща полезу смотреть, как оно в ЗУПе сделано. Та же идея или нет?..
Нет, не та - вроде бы менее "упакованная" и универсальная. В ЗУПе используют справочник СохранённыеНастройки.

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Андрей Скляров (coder1cv8) 16.12.08 11:54
Хорошая мысль. Не новая, но тем не менее!
2. Эстер Коган (e.kogan) 16.12.08 13:51
В типовых не находила, в блогах не видела, именно такого решения не встречала. Главное в нём - капсулированность.
3. Петр (redgad) 18.12.08 15:33
а как сделать, чтобы для каждого пользователя выводились только свои настройки, но за идею (+)
4. Эстер Коган (e.kogan) 18.12.08 17:35
Я решала именно проблему общих настроек, на которые каждый юзер навешивает свои донастроечки, как только осваивается, и их уже запоминает обычным механизмом. Если для каждого пользователя нужны свои быстро восстанавливаемые настройки и обмен таковыми - тогда уже и справочник сохранённых настроек можно использовать... если он есть... или внедрить, если его нет. Данный функционал призван быстро решать именно проблемы общих настроек в базах, где нет вышеупомянутого справочника.