Как правильно добавить новое значение в типовое перечисление 1С и настроить поддержку?

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

При доработке типовых конфигураций (например, УПП, КА или ERP) разработчики регулярно сталкиваются с необходимостью расширения базовой аналитики. Одно из наиболее частых пожеланий пользователей — добавить новое значение в стандартное перечисление платформы 1С:Предприятие (например, в перечисление ТипыКвартир добавить элемент Комната).

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

Режим поддержки: почему не нужно полностью снимать объект с поддержки

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

Разберем основной порядок действий при настройке правил поддержки:

  1. Перейдем в режим конфигуратора и откроем настройку поддержки конфигурации через меню Конфигурация — Поддержка — Настройка поддержки.
  2. Найдем нужное перечисление (в нашем примере — ТипыКвартир) и установим для него режим «Редактируется с сохранением поддержки».
  3. Добавим новое значение перечисления с именем Комната и установим синоним (например, ком.).

Крайне важно: не следует устанавливать статус «Снято с поддержки» для всего объекта или конфигурации. Режим «Редактируется с сохранением поддержки» гарантирует, что типовой объект останется под контролем обновлений поставщика, но при этом позволит вам вносить собственные локальные элементы.

Как платформа 1С обновляет перечисления с добавленными значениями

Проанализируем алгоритм работы механизма сравнения и объединения конфигураций при последующих релизах поставщика:

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

Посмотрим, что происходит при выходе нового релиза 1С:

  1. Значение Комната не будет затерто или удалено, так как в обновлении поставщика для него нет заменяющего элемента.
  2. Если поставщик 1С добавит в перечисление собственные новые значения, они корректно добавятся в конфигурацию вместе с вашей Комнатой.

Важные нюансы и возможные риски при доработке перечислений

Несмотря на простоту добавления элемента в перечисление, необходимо проанализировать влияние этого шага на смежные подсистемы:

  1. Обработка в типовом коде и отчетах. В стандартных модулях, печатных формах и проведениях документов алгоритмы часто строятся на жесткой проверке значений. Например:
    
    Если ТипПомещения = Перечисления.ТипыКвартир.Квартира Тогда
        // Алгоритм для квартиры
    ИначеЕсли ТипПомещения = Перечисления.ТипыКвартир.Дом Тогда
        // Алгоритм для дома
    Иначе
        // Обработка по умолчанию
    КонецЕсли;
    
    Новое значение Комната будет автоматически попадать в ветку Иначе, что может привести к некорректным расчетам или заполнению форм, если код явно не доработать под новую аналитику.
  2. Обмен данными и интеграции (РИБ, EnterpriseData, ЭДО). Изменение структуры перечисления меняет метаданные базы. При работе в распределенной информационной базе (РИБ) передача документов с новым значением до полного обновления конфигурации во всех узлах вызовет ошибки обмена. Кроме того, типовые правила синхронизации с другими системами не знают о значении Комната, что может привести к сбросу значения при выгрузке.
  3. Конфликт имен при обновлении от 1С. Если в будущем вендор добавит в перечисление ТипыКвартир значение с точно таким же идентификатором (Комната), при сравнении конфигураций появится конфликт метаданных. Потребуется вручную скорректировать идентификаторы и при необходимости перепривязать ссылки обработкой поиска и замены дублей.

Альтернативные способы реализации

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

  1. Расширения конфигурации. В современных версиях платформы (начиная с 8.3.14) новые значения перечислений можно добавлять через механизмы расширений. Это позволяет оставить основную конфигурацию полностью типовой. Однако стоит помнить: если расширение будет отключено, данные со значением из расширения перестанут корректно отображаться в интерфейсе.
  2. Дополнительные реквизиты (БСП). Если система поддерживает подсистему БСП, аналитику можно расширить пользовательскими допреквизитами без вмешательства в структуру метаданных.
  3. Использование справочников. Если список категорий или типов предполагается регулярно расширять, целесообразно заменить перечисление на справочник, чтобы пользователи могли добавлять элементы самостоятельно в режиме 1С:Предприятие.
← На главную