gifts2017

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

Опубликовал Осипов Сергей (fixin) в раздел Программирование - Работа с интерфейсом

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

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

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

Возможности

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

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

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

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

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

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

Внешний вид

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

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

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

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

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

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

  • Справочник пимНастройкиФорм
  • Общие картинки: пимОткрытьНастройку, пимСохранитьНастройку
  • Общие модули: бфФормы, бфКоллекции, бфТипы, бфСтроки, пимНастройкиФорм
  • Кнопки сохранения и чтения настроек можно копировать из обработки: пимБлогПостинг

 

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

Планы

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

 

Скачать PIM можно тут: http://infostart.ru/public/102221

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Илья (i132) 30.03.12 18:18
Вы использовали Метеданные Хранилища настроек ? например в БСП для настроек используется ХранилищеВариантовОтчетов.
2. Яков Коган (Yashazz) 30.03.12 19:27
Присоединяюсь. В 8.2 есть такой зверь, как хранилища настроек и прочая. Хранятся в базе, никуда не слетают.
3. Осипов Сергей (fixin) 02.04.12 10:39
(1)(2) 82 еще не изучал, к тому же еще сидит народ и на 81. Хранилище настроек - это для всех форм или только управляемых?
4. Екатерина Соколова (catena) 05.04.12 10:13
Чем выгодно отличается от регистра "СохраненныеНастройки" в УПП?
Сохраняет только значения формы? Есть возможность сохранять настройки СКД или Универсального отчета?
5. Антон Чарушкин (hulio) 05.04.12 10:49
(3) fixin, это вообще для всего, чего угодно ;)
Можно сохранять все, что угодно, в том числе настройки форм
6. Осипов Сергей (fixin) 05.04.12 11:03
(5) надо посмотреть. Но зная, как 1с сделала бизнес-процессы в счастие типовых решений в платформе не верится. Есть статья по этой платформенной штуке?
7. Осипов Сергей (fixin) 05.04.12 11:06
(4) выгодно отличается тем, что расписано как изолировать и перенести в свою конфу. Пробовали изолировать типовой код? Бугога... Попробуйте, когда поседеете - доложитесь.
8. Яков Коган (Yashazz) 05.04.12 20:29
(3) Тогда, будь добр, пожалуйста, указывай, что твои публикации - для 8.1, а не для 8.2, а то, знаешь, своеобразно выглядит, когда не вполне актуальный материал подаётся как истина в последней инстанции.

(4) Во встроенном языке для настроек СКД даже специальные свойства, методы и коллекции добавили, связанные именно с сохранением/восстановлением настроек. Гораздо удобнее и быстрее делать, чем всякие "Сохранённые" мастерить и потом самому разделять доступ и прочая.
9. Екатерина Соколова (catena) 06.04.12 06:15
(7)А почему именно справочник, а не регистр?

(8)Это все замечательно, но переход на новую платформу слишком ресурсозатратен, одних плюсов сохраненных настроек для этого маловато :)
10. Осипов Сергей (fixin) 06.04.12 10:37
(8) 82 обратно совместима с 81. Преимущества нового механизма тобой только задекларированы, но не озвучены. Т.е. твою методику нужно еще развивать, а мою можно просто взять. Так что не надо...
(9) во-во...
11. Яков Коган (Yashazz) 08.04.12 20:11
(10) В рамках мини-оффтопа: есть вещи, которые в 8.2 отличаются от 8.1, иногда весьма существенно. В случае твоей статьи про веб-сервисы это было именно так.
Озвучивать что-либо у меня категорически нет сил и времени, поэтому я и публикации делаю редко, и вообще за меня жена отдувается. :) Не спорю, твою методику можно просто взять, но знать о наличии других вариантов тоже полезно.

(9) Шо? Трудозатратен? У меня, с самописной конфой на основе Бухгалтерии 1.6, и то ушло минут сорок, не более. С чего вдруг такой пессимизм?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа