Штатное сохранение настроек плохо тем, что не сохраняется при переносе базы и может слетать при нарушениях в базе. Пользователям требуется более надежное сохранение настроек. Предлагается несложный по внедрению и использованию вариант доработки любой конфигурации.
В любую форму можно добавить две кнопки для сохранения и восстановления настроек. Можно использовать настройку по умолчанию, которая открывается при открытии формы.
Настройки сохраняются в базе данных.
Настройки общие для всех пользователей как для редактирования, так и для просмотра.
По умолчанию сохраняются все элементы формы. Можно указать при необходимости список включаемых и/или исключаемых элементов формы.
При сохранении элементы определяются по имени элемента формы.
Можно использовать совместно или вместо типового механизма сохранения форм.
Кнопки нужно добавить в каждую форму, где требуется сохранение. На рисунке пример формы с кнопками:
По стандарту сначала размещается кнопка записи, потом восстановления.
В данном случае механизм сохранения настроек в базу используется параллельно штатному механизму сохранения настроек, т.к. видны и обычные кнопки сохранения настроек.
Сначала нужно скачать конфигурацию PIM Осипова Сергея.
Затем через буфер обмена или объединение конфигураций добавить следующие объекты:
В форму нужно добавлять кнопки сохранения и восстановления.
В модуль формы нужно добавить процедуры:
Процедура КоманднаяПанельГлавнаяСохранитьНастройку(Кнопка)
пимНастройкиФорм.СохранитьНастройкиФормы(ЭтаФорма);
КонецПроцедуры
Процедура КоманднаяПанельГлавнаяЗагрузитьНастройку(Кнопка)
пимНастройкиФорм.ЗагрузитьНастройкиФормы(ЭтаФорма);
КонецПроцедуры
В конец функции «При открытии» формы нужно добавить вызов вида:
//Список элементов, которые нужно сохранять, можно не указывать
Элементы = бфСтроки.РазложитьСтрокуПоРазделителю("ТабличноеПолеПапки;ВыбЛогин;ВыбПароль»);
//Список элементов, которые не нужно сохранять, можно не указывать
НеЭлементы = бфСтроки.РазложитьСтрокуПоРазделителю("ТабличноеПолеРезультат»);
//Элемент управления – панель, на которой находятся кнопки
ПанельКнопок = ЭлементыФормы.ДействияФормы;
//Инициализация
пимНастройкиФорм.ИнициироватьНастройкиФормы(ЭтаФорма, "ИмяОбработки", ПанельКнопок, Элементы, НеЭлементы);
В дальнейших планах – уменьшить количество кода и добавлять кнопки программно, без ручной правки форм. Следите за обновлениями.