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

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

При разработке в расширениях 1С мы часто сталкиваемся с тем, что механизм заимствования объектов не всегда позволяет быстро перенести весь состав перечисления. Если в вашем Перечисление содержатся сотни значений (например, ХозяйственныеОперации в КА 2.5), ручное добавление каждого элемента становится утомительным. Рассмотрим, как эффективно решить эту задачу и организовать работу с такими данными.

Понимание ограничений платформы

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

Способ 1: Манипуляция с файлами конфигурации

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

  1. Выгрузите конфигурацию расширения с одним добавленным значением перечисления в файлы (формат XML).
  2. Выгрузите основную конфигурацию, содержащую все нужные значения, в файлы.
  3. Откройте файлы метаданных обоих вариантов. Скопируйте нужные блоки с GUID значений из основной конфигурации в соответствующие файлы расширения.
  4. Загрузите обновленные файлы обратно в расширение через пункт «Загрузить конфигурацию из файлов».

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

Способ 2: Использование внешних обработок для подготовки запросов

Если цель добавления всех значений — удобная работа с конструктором запросов, попробуйте изменить подход к разработке:

  1. Создайте новую внешнюю обработку (не в расширении).
  2. В модуле обработки или в схеме компоновки данных настройте нужный запрос, используя конструктор, так как в основной конфигурации все значения перечислений доступны по умолчанию.
  3. После того как запрос готов и протестирован, скопируйте его текст в модуль вашего расширения.

Таким образом, вы сохраняете комфорт разработки, не «засоряя» метаданные расширения ненужными объектами, которые потребуют поддержки при каждом обновлении основной конфигурации.

Способ 3: Архитектурные альтернативы

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

Рекомендации по производительности

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

← На главную