Разработка и Конфигурация · 11 мин
Как добавить настройку в настройку параметров в 1С
Как добавить новую настройку в форму настройки параметров в 1С: через константы, функциональные опции и обработчики в конфигураторе. Пошаговая инструкция.
Форма «Настройка параметров» в типовых конфигурациях 1С (Управление торговлей, ERP, Комплексная автоматизация, Документооборот) — это централизованная панель, где администратор включает и отключает функциональность системы. Когда вы дорабатываете конфигурацию собственным механизмом, логично вывести управляющий переключатель именно туда, а не прятать его в отдельную обработку или справочник.
Технически почти все переключатели на этой форме хранятся в константах, а их видимость и взаимосвязи управляются функциональными опциями. Поэтому добавление собственной настройки сводится к трём шагам: создать константу, разместить элемент на форме панели настроек и при необходимости связать новую опцию с объектами метаданных.
Способ внедрения зависит от режима поддержки конфигурации. Если конфигурация на полной поддержке, прямое изменение потребует снятия объектов с поддержки. Если доработка должна переживать обновления без конфликтов, правильнее использовать расширение конфигурации. Ниже разобраны оба пути.
Где хранятся настройки параметров в типовых конфигурациях
Панель настроек в конфигурациях на БСП (Библиотека стандартных подсистем) обычно называется «ПанельАдминистрированияБСП» или разбита на несколько обработок по разделам: «Настройка номенклатуры», «Настройка продаж», «Общие настройки» и т.д. В 1С:Документооборот аналогичная роль у обработки «НастройкаПрограммы». Это обычные управляемые формы, элементы которых привязаны к реквизитам-константам через набор констант.
Ключевой приём типовых решений — на форме размещается не сама константа, а реквизит формы типа «НаборКонстант» (например, НаборКонстант.ИспользоватьХарактеристикиНоменклатуры). Это позволяет работать со всеми константами как с единым объектом и записывать их пакетно. При добавлении своей настройки вы повторяете тот же шаблон: константа + элемент формы, связанный с набором констант.
Создание константы для новой настройки
Откройте конфигуратор, перейдите в ветку «Общие → Константы» и добавьте новую константу. Для переключателя «включено/выключено» используйте тип Булево, для выбора режима — строку ограниченной длины, число или ссылку на перечисление. Имя давайте в стиле типовой конфигурации, например ИспользоватьСогласованиеЗаявок.
Если конфигурация на поддержке, добавление собственного объекта метаданных обычно не нарушает поддержку остальных объектов — новая константа будет вашей собственной. Однако проверьте правила поставки: в некоторых проектах принято все доработки выносить в расширение. В расширении константы тоже можно создавать, начиная с современных версий платформы.
После создания константы задайте ей значение по умолчанию. Для булевых настроек безопасное умолчание — «Ложь» (функциональность выключена), чтобы доработка не активировалась сама собой после обновления базы.
- 1Откройте конфигуратор в режиме изменения конфигурации или расширения
- 2В ветке «Общие → Константы» создайте новую константу с понятным именем и типом
- 3Укажите синоним — он будет виден пользователю в стандартной форме констант
- 4Обновите конфигурацию базы данных (F7) и проверьте, что константа доступна в режиме предприятия
- 5При необходимости добавьте константу в функциональную опцию
Добавление элемента на форму настройки параметров
Найдите обработку или общую форму, отвечающую за нужный раздел настроек. В УТ/ERP это обработки вида «ПанельАдминистрированияУТ» с формами по разделам. Откройте нужную форму в конфигураторе и добавьте элемент: для булевой настройки — «ПолеФлажка», для значения — «ПолеВвода».
В свойстве «ПутьКДанным» элемента укажите путь через набор констант: НаборКонстант.ВашаКонстанта. Если форма использует другой механизм хранения (реквизит формы с последующей записью в обработчике), повторите существующий шаблон соседних элементов — скопируйте похожий флажок и замените привязку и заголовок.
Разместите элемент в логически подходящей группе формы, чтобы администратор нашёл настройку там, где ожидает. Проверьте свойства «Доступность» и «Видимость»: в типовых формах они часто вычисляются кодом в обработчиках ПриСозданииНаСервере и ПриИзмененииРеквизита, и вашему элементу может понадобиться аналогичная логика.
Связывание настройки с функциональной опцией
Если новая настройка должна включать целый блок функциональности — скрывать и показывать документы, справочники, реквизиты, — создайте функциональную опцию в ветке «Общие → Функциональные опции». В свойстве «Хранение» укажите вашу константу, а в состав опции включите объекты метаданных, которыми она управляет.
После этого при выключенной настройке связанные объекты исчезнут из командного интерфейса и будут недоступны пользователям без дополнительного кода. Это стандартный механизм платформы, и именно так устроены переключатели «Использовать характеристики», «Использовать серии» и подобные в типовых решениях.
Учтите ограничение: функциональная опция управляет видимостью и доступностью, но не удаляет уже введённые данные. Если в документах заполнены реквизиты, а затем опцию выключили, данные сохранятся в базе, но станут невидимы в интерфейсе. Обратное включение вернёт их отображение.
Добавление настройки через расширение конфигурации
Расширение — предпочтительный способ, если конфигурация типовая и регулярно обновляется. Создайте расширение («Конфигурация → Расширения конфигурации»), добавьте в него собственную константу и заимствуйте форму панели настроек. В заимствованной форме добавьте свой элемент и привяжите его к константе расширения.
Если форма в типовой конфигурации программно формирует элементы или использует сложные обработчики, может потребоваться дополнить обработчики формы через аннотации &После или &Вместо. Например, чтобы ваша настройка сохранялась вместе с остальными, добавьте код записи константы в обработчик сохранения формы.
&После("ПриЗаписиНаСервере")
Процедура Расш_ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Константы.ИспользоватьСогласованиеЗаявок.Установить(ИспользоватьСогласованиеЗаявок);
КонецПроцедурыПроверьте, что расширение применяется без снятия конфигурации с поддержки и что после обновления типовой конфигурации форма остаётся совместимой. При несовместимости платформа сообщит об ошибке применения расширения — тогда форму нужно заново заимствовать и перенести доработки.
Проверка результата и типичные ошибки
После обновления конфигурации базы данных откройте базу в режиме предприятия под пользователем с правами администратора, перейдите в раздел настроек и найдите новый элемент. Измените значение, нажмите «ОК» или «Записать», закройте и снова откройте форму — значение должно сохраниться. Дополнительно проверьте константу напрямую: «Все функции → Константы».
Если настройка связана с функциональной опцией, проверьте оба состояния: при включённой опции объекты видны в интерфейсе, при выключенной — скрыты. Проверку выполняйте под пользователем без полных прав, так как администратору часто доступны объекты независимо от опций.
Как проверить результат
Сохранённое значение совпадает с введённым
Настройка сбрасывается — нет записи константы в обработчике
Указан НаборКонстант.ИмяКонстанты или корректный реквизит формы
Элемент без привязки — значение не сохраняется
Объекты скрываются при выключенной опции
Объекты видны всегда — они не включены в состав опции
Настройка недоступна без прав администратора
Обычный пользователь может менять системную настройку
Альтернативы: когда форму настроек трогать не стоит
Не всегда настройку нужно встраивать в типовую панель. Если доработка локальна и используется одним подразделением, проще создать собственную обработку настроек или хранить параметры в регистре сведений с собственной формой. Это снижает риск конфликтов при обновлении до нуля.
Ещё один вариант — подсистема «Настройки программы» в БСП через переопределяемые модули, если она задействована в вашей конфигурации. Выбор зависит от масштаба: одиночный флажок проще разместить в расширении на готовой форме, а для блока из десятка параметров оправдана отдельная форма.
Сравнение вариантов
Быстро и просто, но требует снятия объектов с поддержки и усложняет обновления
Сохраняет поддержку и переживает обновления; ограничение — не все механизмы форм удобно расширять
Полная независимость от типового кода, но настройка находится вне привычной панели администрирования
Ответы на частые вопросы
Можно ли добавить константу без снятия конфигурации с поддержки?
Добавление собственных объектов метаданных, как правило, не требует снятия всей конфигурации с поддержки — новый объект становится объектом с изменениями поставщика «не редактируется» только для типовых. Однако изменение типовой формы панели настроек потребует включения возможности изменения для этого объекта. Чистый путь — расширение конфигурации.
Почему новая настройка видна, но не сохраняется?
Чаще всего элемент формы не привязан к данным: не заполнено свойство «ПутьКДанным» или указан несуществующий путь. Вторая причина — форма записывает константы собственным кодом, и ваша константа не включена в эту логику. Проверьте обработчики записи формы и добавьте сохранение своего значения.
Как скрыть настройку от обычных пользователей?
Доступ к панели настроек в типовых конфигурациях уже ограничен ролями администратора. Дополнительно настройте права на саму константу: в ролях снимите права на изменение для непривилегированных пользователей. Проверяйте результат под учётной записью без административных прав.
Что произойдёт с настройкой при обновлении конфигурации?
Собственная константа и расширение переживут обновление, если форма, которую вы заимствовали, не изменилась у поставщика. При изменении типовой формы расширение может перестать применяться — тогда форму заново заимствуют и переносят доработки. Прямые изменения типовых объектов при обновлении сравниваются и могут быть затёрты.
Можно ли хранить настройку не в константе, а в регистре сведений?
Да, это оправдано, если значение зависит от организации, пользователя или периода. Тогда на форме размещают поле, связанное с реквизитом формы, а чтение и запись в регистр выполняют программно в обработчиках. Для простого глобального переключателя константа предпочтительнее.
Как добавить настройку в 1С:Документооборот?
Принцип тот же: создаётся константа, затем элемент добавляется на форму обработки «Настройка программы» в нужный раздел. В Документообороте разделы настроек реализованы отдельными страницами, поэтому выберите тематически подходящую страницу или создайте свою группу элементов.
Что важно запомнить
Новая настройка в панели параметров 1С — это константа плюс элемент на форме с корректным путём к данным. Функциональная опция связывает переключатель с объектами конфигурации. Доработку безопаснее выполнять через расширение и обязательно проверять на копии базы: сохранение значения, работу опции и поведение под обычным пользователем.