Как расширить типы значений Плана видов характеристик через расширение в 1С

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

При разработке в среде 1С часто возникает задача добавить новый справочник или документ в список доступных типов типового Плана видов характеристик (ПВХ). Использование расширений для этой задачи является предпочтительным методом, так как позволяет сохранить конфигурацию на поддержке. Однако программисты часто сталкиваются с ошибкой: "Значение контролируемого свойства Тип у объекта ПланВидовХарактеристик... не совпадает со значением в расширяемой конфигурации". Разберем подробно, как решить эту проблему, какие технические нюансы учесть и как обеспечить сохранность данных.

Анализ причины возникновения ошибки

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

Пошаговое решение: снятие контроля свойства

Рассмотрим по шагам, как правильно изменить состав типа ПВХ в расширении:

  1. Заимствование объекта: Добавим необходимый План видов характеристик в расширение.
  2. Открытие свойств: Перейдем в палитру свойств заимствованного ПВХ в расширении.
  3. Отключение контроля: Найдем свойство Тип. Обратим внимание на колонку с пиктограммой "щита" или флажком контроля. Нам необходимо снять флажок "Контролировать" у свойства Тип. Это критически важный момент: после снятия контроля платформа позволит расширению дополнять список типов основной конфигурации, а не требовать их полного совпадения.
  4. Редактирование типа: Теперь откроем редактор типа данных и отметим галочкой наш новый справочник.

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

Технические требования и версия платформы

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

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

Особенности для Плана видов характеристик "Виды субконто"

Если мы работаем с ПВХ ВидыСубконтоХозрасчетные в типовых решениях (например, БП 3.0), простого добавления типа в ПВХ может быть недостаточно для полноценного учета. Разберем ситуацию глубже:

Субконто используются в Регистрах бухгалтерии. Чтобы новый тип данных корректно отображался в проводках и отчетах, необходимо убедиться, что измерения и ресурсы регистров, связанные с этим ПВХ, также поддерживают новый тип. В некоторых случаях может потребоваться заимствование в расширение всей цепочки: План видов характеристик -> План счетов -> Регистр бухгалтерии. Однако в большинстве современных конфигураций 1С, где измерения регистра имеют тип Характеристика.ВидыСубконтоХозрасчетные, система подхватит изменения автоматически после расширения типа в самом ПВХ.

Настройка работы в распределенных базах (РИБ)

Если ваша информационная база работает в режиме разделения данных или является частью распределенной информационной базы (РИБ), обратим внимание на свойство самого расширения "Изменяет разделяемые данные". При необходимости организовать стабильную передачу данных между узлами автоматизация регулярного обмена по расписанию помогает синхронизировать базы без изменения конфигураций.

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

Вопросы безопасности и риск потери данных

В среде разработчиков часто ведется спор: безопасно ли расширять типы через расширения? Выясним причины опасений и реальное положение дел:

Ситуация "Объект не найден": Что произойдет, если пользователь ввел данные (создал субконто с новым типом), а затем расширение было отключено или удалено? В этом случае в формах и отчетах на месте ссылки на ваш справочник появится надпись "Объект не найден (ID...)". Это происходит потому, что описание типа исчезло из метаданных системы.

Физическая сохранность: Важно понимать, что на уровне SQL-таблиц ссылки физически не удаляются при отключении расширения. Если вы снова включите расширение, ссылки "оживут" и данные снова станут валидными.

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

Использование предопределенных элементов

Зачастую мало просто добавить тип в ПВХ, нужно создать сам вид характеристики (предопределенный элемент), чтобы использовать его в коде. Рассмотрим, как это сделать в расширении:

  1. В расширении у заимствованного ПВХ перейдем в раздел "Предопределенные".
  2. Добавим новый элемент. Укажем для него созданный нами в расширении тип (справочник).
  3. Важное правило: Имя предопределенного элемента в расширении не должно совпадать с именами в основной конфигурации.

Это позволит вам обращаться к новому виду субконто программно:


ВидСубк = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.МоеНовоеСубконтоИзРасширения;
// Далее используем в логике заполнения документов или отчетов

Резюме и рекомендации

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

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

← На главную