Как скопировать настройки управляемой формы другим пользователям и настроить дополнительные реквизиты в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке интерфейса в режиме «1С:Предприятие» через механизм «Изменить форму» изменения сохраняются только для текущей учетной записи. Часто возникает задача распространить оптимизированное расположение элементов (перемещенные поля, группы, дополнительные реквизиты) на всех остальных пользователей базы или зафиксировать его по умолчанию. Разберем по шагам, какими способами можно скопировать и зафиксировать внешний вид управляемой формы, а также как работать с дополнительными реквизитами.

Способ 1. Использование встроенной обработки «Копирование настроек»

В типовых конфигурациях на базе «Библиотеки стандартных подсистем» (БСП) предусмотрен готовый интерактивный инструмент для тиражирования пользовательских настроек. Рассмотрим порядок действий:

  1. Перейдем в раздел «НСИ и администрирование» (или «Администрирование») → «Настройки пользователей и прав».
  2. Раскроем блок «Персональные настройки пользователей» и выберем пункт «Копирование настроек».
  3. Укажем пользователя-источника, у которого форма уже настроена нужным образом.
  4. Выберем вариант копирования: «Выбранным пользователям» или «Всем пользователям».
  5. В списке настроек найдем раздел «Внешний вид форм», отметим конкретную форму (например, форму элемента справочника «Контрагенты») и нажмем кнопку «Скопировать и закрыть».

Способ 2. Программное сохранение и перенос настроек

Если требуется автоматизировать передачу настроек или выполнить ее по расписанию/в коде обработки, воспользуемся объектом платформы СтандартноеХранилищеНастроекМенеджер или ХранилищеСистемныхНастроек. Проанализируем синтаксис метода Сохранить:


// Синтаксис метода:
// СтандартноеХранилищеНастроекМенеджер.Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)

Рассмотрим практический пример программного копирования настроек внешнего вида формы от одного пользователя другому:


КлючОбъекта = "Справочник.Контрагенты.Форма.ФормаЭлемента/НастройкиФормы";
КлючНастроек = "";

// Получаем настройки пользователя-источника
НастройкиФормы = ХранилищеСистемныхНастроек.Загрузить(КлючОбъекта, КлючНастроек, , "ПользовательИсточник");

Если НастройкиФормы <> Неопределено Тогда
    // Сохраняем настройки целевому пользователю
    ХранилищеСистемныхНастроек.Сохранить(КлючОбъекта, КлючНастроек, НастройкиФормы, , "ПользовательПриемник");
КонецЕсли;

Для сброса ранее сохраненных настроек конкретного пользователя к стандартным значениям конфигурации используем метод Удалить:


ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастроек, "ИмяПользователя");

Способ 3. Фиксация интерфейса через расширение конфигурации

Копирование пользовательских настроек имеет один недостаток: если пользователь нажмет кнопку «Еще → Установить стандартные настройки», форма вернется к типовому виду из конфигурации. Чтобы жестко зафиксировать расположение элементов без изменения основной конфигурации, применим расширение:

  1. Добавим расширение конфигурации в режиме «Конфигуратор».
  2. Добавим в расширение требуемый объект метаданных и его форму.
  3. Настроим структуру элементов формы в редакторе (расположим реквизиты, настроим группы и видимость).

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

Ограничение редактирования формы пользователями

Чтобы пользователи не меняли структуру формы самостоятельно, проанализируем доступные механизмы платформы:

  1. На уровне прав доступа: отключим у пользовательской роли право Сохранение данных пользователя. В этом случае пользователь сможет временно изменить форму в рамках текущего сеанса, но при перезапуске настройки не сохранятся.
  2. На уровне формы: в свойствах командной панели формы отключим видимость системной кнопки «Изменить форму», либо переопределим командную панель, исключив стандартные команды изменения вида.

Особенности дополнительных реквизитов БСП и множественный выбор

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

  1. Динамическое создание: в типовых решениях подсистема «Свойства» генерирует элементы формы для дополнительных реквизитов программно при вызове процедуры ПриСозданииНаСервере. Пользовательские настройки таких динамических полей могут сбрасываться при изменении состава набора свойств в справочнике.
  2. Множественный выбор значений: стандартный механизм дополнительных реквизитов БСП хранит пары «Свойство — Значение» в табличной части объекта (одна строка на один реквизит), поэтому выбрать несколько значений одновременно (например, варианты «А» и «Д») для одного реквизита штатно невозможно.

Для реализации множественного выбора без переработки типового механизма применяют следующие альтернативы:

  1. Группа булевых реквизитов: создаем несколько отдельных дополнительных реквизитов с типом Булево (флажки) и объединяем их в общую визуальную группу на форме.
  2. Механизм тегов / меток: используем встроенную в современные конфигурации подсистему тегов, которая штатно поддерживает множественный выбор произвольного количества значений для объекта.
← На главную