К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как добавить настройку в настройку параметров в 1С

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

Форма «Настройка параметров» в типовых конфигурациях 1С (Управление торговлей, ERP, Комплексная автоматизация, Документооборот) — это централизованная панель, где администратор включает и отключает функциональность системы. Когда вы дорабатываете конфигурацию собственным механизмом, логично вывести управляющий переключатель именно туда, а не прятать его в отдельную обработку или справочник.

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

Способ внедрения зависит от режима поддержки конфигурации. Если конфигурация на полной поддержке, прямое изменение потребует снятия объектов с поддержки. Если доработка должна переживать обновления без конфликтов, правильнее использовать расширение конфигурации. Ниже разобраны оба пути.

Где хранятся настройки параметров в типовых конфигурациях

Панель настроек в конфигурациях на БСП (Библиотека стандартных подсистем) обычно называется «ПанельАдминистрированияБСП» или разбита на несколько обработок по разделам: «Настройка номенклатуры», «Настройка продаж», «Общие настройки» и т.д. В 1С:Документооборот аналогичная роль у обработки «НастройкаПрограммы». Это обычные управляемые формы, элементы которых привязаны к реквизитам-константам через набор констант.

Ключевой приём типовых решений — на форме размещается не сама константа, а реквизит формы типа «НаборКонстант» (например, НаборКонстант.ИспользоватьХарактеристикиНоменклатуры). Это позволяет работать со всеми константами как с единым объектом и записывать их пакетно. При добавлении своей настройки вы повторяете тот же шаблон: константа + элемент формы, связанный с набором констант.

Создание константы для новой настройки

Откройте конфигуратор, перейдите в ветку «Общие → Константы» и добавьте новую константу. Для переключателя «включено/выключено» используйте тип Булево, для выбора режима — строку ограниченной длины, число или ссылку на перечисление. Имя давайте в стиле типовой конфигурации, например ИспользоватьСогласованиеЗаявок.

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

После создания константы задайте ей значение по умолчанию. Для булевых настроек безопасное умолчание — «Ложь» (функциональность выключена), чтобы доработка не активировалась сама собой после обновления базы.

Порядок добавления константы
  1. 1
    Откройте конфигуратор в режиме изменения конфигурации или расширения
  2. 2
    В ветке «Общие → Константы» создайте новую константу с понятным именем и типом
  3. 3
    Укажите синоним — он будет виден пользователю в стандартной форме констант
  4. 4
    Обновите конфигурацию базы данных (F7) и проверьте, что константа доступна в режиме предприятия
  5. 5
    При необходимости добавьте константу в функциональную опцию

Добавление элемента на форму настройки параметров

Найдите обработку или общую форму, отвечающую за нужный раздел настроек. В УТ/ERP это обработки вида «ПанельАдминистрированияУТ» с формами по разделам. Откройте нужную форму в конфигураторе и добавьте элемент: для булевой настройки — «ПолеФлажка», для значения — «ПолеВвода».

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

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

Связывание настройки с функциональной опцией

Если новая настройка должна включать целый блок функциональности — скрывать и показывать документы, справочники, реквизиты, — создайте функциональную опцию в ветке «Общие → Функциональные опции». В свойстве «Хранение» укажите вашу константу, а в состав опции включите объекты метаданных, которыми она управляет.

После этого при выключенной настройке связанные объекты исчезнут из командного интерфейса и будут недоступны пользователям без дополнительного кода. Это стандартный механизм платформы, и именно так устроены переключатели «Использовать характеристики», «Использовать серии» и подобные в типовых решениях.

Учтите ограничение: функциональная опция управляет видимостью и доступностью, но не удаляет уже введённые данные. Если в документах заполнены реквизиты, а затем опцию выключили, данные сохранятся в базе, но станут невидимы в интерфейсе. Обратное включение вернёт их отображение.

Добавление настройки через расширение конфигурации

Расширение — предпочтительный способ, если конфигурация типовая и регулярно обновляется. Создайте расширение («Конфигурация → Расширения конфигурации»), добавьте в него собственную константу и заимствуйте форму панели настроек. В заимствованной форме добавьте свой элемент и привяжите его к константе расширения.

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

bsl
&После("ПриЗаписиНаСервере")
Процедура Расш_ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Константы.ИспользоватьСогласованиеЗаявок.Установить(ИспользоватьСогласованиеЗаявок);
КонецПроцедуры

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

Проверка результата и типичные ошибки

После обновления конфигурации базы данных откройте базу в режиме предприятия под пользователем с правами администратора, перейдите в раздел настроек и найдите новый элемент. Измените значение, нажмите «ОК» или «Записать», закройте и снова откройте форму — значение должно сохраниться. Дополнительно проверьте константу напрямую: «Все функции → Константы».

Если настройка связана с функциональной опцией, проверьте оба состояния: при включённой опции объекты видны в интерфейсе, при выключенной — скрыты. Проверку выполняйте под пользователем без полных прав, так как администратору часто доступны объекты независимо от опций.

Контрольные точки

Как проверить результат

Значение на форме после перезапуска
Норма

Сохранённое значение совпадает с введённым

Тревожный признак

Настройка сбрасывается — нет записи константы в обработчике

Путь к данным элемента
Норма

Указан НаборКонстант.ИмяКонстанты или корректный реквизит формы

Тревожный признак

Элемент без привязки — значение не сохраняется

Видимость связанных объектов
Норма

Объекты скрываются при выключенной опции

Тревожный признак

Объекты видны всегда — они не включены в состав опции

Поведение под обычным пользователем
Норма

Настройка недоступна без прав администратора

Тревожный признак

Обычный пользователь может менять системную настройку

Типичные ошибки
01
Элемент добавлен на форму, но не привязан к данным — значение вводится и теряется при закрытии
02
Константа создана, но форма записывает набор констант штатно, а новая константа не входит в логику сохранения — требуется доработка обработчика записи
03
Доработка сделана прямым изменением типовой формы — при обновлении конфигурации изменения теряются или блокируют обновление
04
Настройка доступна всем пользователям — не настроены права на константу или форму
05
Функциональная опция создана, но объекты не добавлены в её состав — переключатель ни на что не влияет

Альтернативы: когда форму настроек трогать не стоит

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

Ещё один вариант — подсистема «Настройки программы» в БСП через переопределяемые модули, если она задействована в вашей конфигурации. Выбор зависит от масштаба: одиночный флажок проще разместить в расширении на готовой форме, а для блока из десятка параметров оправдана отдельная форма.

Сравнение вариантов

Прямое изменение формы в конфигураторе

Быстро и просто, но требует снятия объектов с поддержки и усложняет обновления

Расширение конфигурации

Сохраняет поддержку и переживает обновления; ограничение — не все механизмы форм удобно расширять

Собственная обработка настроек

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

Ответы на частые вопросы

Можно ли добавить константу без снятия конфигурации с поддержки?

Добавление собственных объектов метаданных, как правило, не требует снятия всей конфигурации с поддержки — новый объект становится объектом с изменениями поставщика «не редактируется» только для типовых. Однако изменение типовой формы панели настроек потребует включения возможности изменения для этого объекта. Чистый путь — расширение конфигурации.

Почему новая настройка видна, но не сохраняется?

Чаще всего элемент формы не привязан к данным: не заполнено свойство «ПутьКДанным» или указан несуществующий путь. Вторая причина — форма записывает константы собственным кодом, и ваша константа не включена в эту логику. Проверьте обработчики записи формы и добавьте сохранение своего значения.

Как скрыть настройку от обычных пользователей?

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

Что произойдёт с настройкой при обновлении конфигурации?

Собственная константа и расширение переживут обновление, если форма, которую вы заимствовали, не изменилась у поставщика. При изменении типовой формы расширение может перестать применяться — тогда форму заново заимствуют и переносят доработки. Прямые изменения типовых объектов при обновлении сравниваются и могут быть затёрты.

Можно ли хранить настройку не в константе, а в регистре сведений?

Да, это оправдано, если значение зависит от организации, пользователя или периода. Тогда на форме размещают поле, связанное с реквизитом формы, а чтение и запись в регистр выполняют программно в обработчиках. Для простого глобального переключателя константа предпочтительнее.

Как добавить настройку в 1С:Документооборот?

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

Итог

Что важно запомнить

Новая настройка в панели параметров 1С — это константа плюс элемент на форме с корректным путём к данным. Функциональная опция связывает переключатель с объектами конфигурации. Доработку безопаснее выполнять через расширение и обязательно проверять на копии базы: сохранение значения, работу опции и поведение под обычным пользователем.