Сохранение настроек отчетов в базе (PIM)

Штатное сохранение настроек плохо тем, что не сохраняется при переносе базы и может слетать при нарушениях в базе. Пользователям требуется более надежное сохранение настроек. Предлагается несложный по внедрению и использованию вариант доработки любой конфигурации.

Возможности

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

Настройки сохраняются в базе данных.

Настройки общие для всех пользователей как для редактирования, так и для просмотра.

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

При сохранении элементы определяются по имени элемента формы.

Можно использовать совместно или вместо типового механизма сохранения форм.

Внешний вид

Кнопки нужно добавить в каждую форму, где требуется сохранение. На рисунке пример формы с кнопками:

По стандарту сначала размещается кнопка записи, потом восстановления.

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

Внедрение в конфигурацию

Сначала нужно скачать конфигурацию PIM Осипова Сергея.

Затем через буфер обмена или объединение конфигураций добавить следующие объекты:

 

В форму нужно добавлять кнопки сохранения и восстановления.
В модуль формы нужно добавить процедуры:

Процедура КоманднаяПанельГлавнаяСохранитьНастройку(Кнопка)

       пимНастройкиФорм.СохранитьНастройкиФормы(ЭтаФорма);

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

 

Процедура КоманднаяПанельГлавнаяЗагрузитьНастройку(Кнопка)

       пимНастройкиФорм.ЗагрузитьНастройкиФормы(ЭтаФорма);

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

В конец функции «При открытии» формы нужно добавить вызов вида:

       //Список элементов, которые нужно сохранять, можно не указывать

       Элементы = бфСтроки.РазложитьСтрокуПоРазделителю("ТабличноеПолеПапки;ВыбЛогин;ВыбПароль»);

       //Список элементов, которые не нужно сохранять, можно не указывать

       НеЭлементы = бфСтроки.РазложитьСтрокуПоРазделителю("ТабличноеПолеРезультат»);

//Элемент управления – панель, на которой находятся кнопки

       ПанельКнопок = ЭлементыФормы.ДействияФормы;

       //Инициализация

       пимНастройкиФорм.ИнициироватьНастройкиФормы(ЭтаФорма, "ИмяОбработки", ПанельКнопок, Элементы, НеЭлементы);

 

Планы

В дальнейших планах – уменьшить количество кода и добавлять кнопки программно, без ручной правки форм. Следите за обновлениями.