Отзывы клиентов
Подсистема сохранения и восстановления настроек динамических списков

Кофигурации: 1С:Бухгалтерия 8, 1С:Управление торговлей 8
Конфигурация для 1С: Предприятие 8.2

Если вам понравилась данная разработка, разместите ссылку на данную страницу в социальных сетях. (Можно сделать с помощью панели внизу страницы)

СКАЧАТЬ: Доступно только для зарегистированных пользователей

ntgaaumqjrqqbs%20vyyzltvyr.JPG

В 1с 8.2 существует прекрасный интерфейсный механизм — настройка динамического списка. Пользователь может в режиме предприятия настроить внешний вид списка по вкусу: задать отборы и группировки, установить сортировку, выделить определенные строки или ячейки при помощи условного оформления. Но есть один неприятный момент: при закрытии формы настройки не сохраняются. Предлагаемая подсистема является одним из вариантов решения этой проблемы.

Справедливости ради нужно отметить, что частично настройки все-таки сохраняются платформой. Так, оформление списка сохраняется и восстанавливается автоматически. Отборы сохраняются, но в выключенном состоянии; после открытия формы нужно зайти в настройки списка и включить отборы вручную. А вот группировки и сортировки не сохраняются вовсе. А хочется чтобы сохранялись все настройки, и чтобы можно было хранить несколько вариантов настроек одного списка, а также обмениваться настройками с другими пользователями.

Итак, «ближе к телу, как говорил Мопассан».

Возможности

  • сохранение и восстановление настройки списка. Сохраняется отбор, сортировка, группировка, условное оформление;
  • хранение произвольного количества вариантов настроек одного списка;
  • автоматическое восстановление одной из настроек при открытии формы;
  • автоматическое сохранение настройки при закрытии формы (для каждой настройки можно указать сохранять автоматически или нет).
  • обмен настройками между пользователями. Каждая сохраненная настройка имеет владельца — пользователя. Сохранять можно только свои настройки, восстановить — настройки любого пользователя.
hltwyuyesss.JPG

Особенности

В большинстве случаев пользователю не хочется куда-то кликать, чего-то открывать, а тем более придумывать имя настройки. Пользователю нужно лишь чтобы сделанная настройка автоматически сохранялась и при следующем открытии формы автоматически восстанавливалась. Это предусмотрено: при первом закрытии формы будет создана настройка под именем «Основная», которая будет сохраняться и восстанавливаться автоматически.

Команды формы и кнопки для сохранения/восстановления настроек добавляются программно. Это избавляет от необходимости правки формы вручную и упрощает процесс обновления форм, в которых используется данный механизм.

 

Установка

Для установки объедините вашу конфигурацию с конфигурацией, прикрепленной к статье, по подсистеме УправлениеНастройкамиДинамическихСписков. Объекты, включенные в подсистему, имеют префикс унс.

sjnhtgqylgfatjirzdwo.JPG

Для работы механизма в конфигурации должен быть справочник Пользователи, а также параметр сеанса ТекущийПользователь. Если в вашей конфигурации этих объектов нет:

  • загрузите их из прикрепленной конфигурации;
  • скопируйте в свою конфигурацию процедуру ОпределитьТекущегоПользователя из общего модуля УправлениеПользователями;
  • добавьте вызов этой процедуры в предопределенную процедуру УстановкаПараметровСеанса в модуле сеанса. Примерно так:

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
   
ПараметрыСеанса.ТекущийПользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
КонецПроцедуры

Для того, чтобы включить управление настройками для элементов конкретной формы, нужно добавить в код формы следующие методы:

// по кнопке сохранения настройки
&НаКлиенте
Процедура СохранитьНастройкуДинамическогоСписка(Команда)
   
унсКлиент.СохранитьНастройку(ЭтаФорма, Команда.Имя);
КонецПроцедуры

// по кнопке восстановления настройки
&НаКлиенте
Процедура ВосстановитьНастройкуДинамическогоСписка(Команда)
   
унсКлиент.ВосстановитьНастройку( ЭтаФорма, Команда.Имя );
КонецПроцедуры

// для восстановления настроек при открытии формы
&НаКлиенте
Процедура ПриОткрытии(Отказ)
   
унсКлиент.ПриОткрытииФормы( ЭтаФорма );
КонецПроцедуры

// для программного создания кнопок управления настройками
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   
// 1 вариант: автоматический поиск таблиц с источником данных ДинамическийСписок
   
унсСервер.ПриСозданииНаСервере( ЭтаФорма );

   
//// 2 вариант: указываем через запятую имена элементов диалога (таблиц)
    //унсСервер.ПриСозданииНаСервере( ЭтаФорма, "Контрагенты,Товары" );
    //
    //// 3 вариант: передаем имена таблиц в виде массива
    //МассивОбрабатываемыеТаблицы = Новый Массив;
    //МассивОбрабатываемыеТаблицы.Добавить("Заказы");
    //МассивОбрабатываемыеТаблицы.Добавить("Товары");
    //унсСервер.ПриСозданииНаСервере( ЭтаФорма, МассивОбрабатываемыеТаблицы );

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

// для сохранения настроек при закрытии формы
&НаКлиенте
Процедура ПриЗакрытии()
   
унсКлиент.При3акрытииФормы( ЭтаФорма );
КонецПроцедуры


Технические детали

Настройки сериализуются в структуру и хранятся в справочнике в реквизите типа ХранилищеЗначения.

В методе формы ПриСозданииНаСервере вызывается одноименная процедура общего модуля унсСервер. Она принимает два параметра: первый — форма, из которой вызвана; второй (необязательный) — списки, для которых нужно включить управление настройками. Второй параметр должен быть либо строкой, в которой через запятую перечислены имена элементов формы (таблиц); либо массивом строк, в котором каждый элемент является именем элемента формы (таблицы), связанного с динамическим списком. Если второй параметр не указан, то управление настройкам будет включено для всех найденных на форме динамических списков (т. е. элементов управления с источником данных типа ДинамическийСписок).

Важный момент: имя команд сохранения и восстановления настроек состоит из трех частей, разделенных символом подчеркивания («_»): действие (сохранение либо восстановление), ИмяЭлементаУправления, ИмяРеквизита. Это нужно для того, чтобы при нажатии на кнопку сохранения/восстановления настройки система могла распознать от какого списка на форме пришло событие и какой реквизит служит источником данных этого списка. Это накладывает ограничение: имя реквизита типа ДинамическийСписок и имя элемента управления, который с ним связан, не должны содержать символов подчеркивания («_»).

 

В прикрепленном архиве:

  • 1Cv8.dt - демонстрационная база;
  • 1Cv8.cf - конфигурация для объединения;
  • readme.txt - инструкция по установке.

Cloudim - онлайн консультант для сайта бесплатно.