Как правильно обновить релиз конфигурации в 1C:EDT и избавиться от «замочков» на объектах?

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

Переход на 1C:EDT (Enterprise Development Tools) открывает перед разработчиком множество преимуществ, таких как работа с Git, типизация и удобный интерфейс. Однако процесс обновления типового релиза в этой среде существенно отличается от привычного «Сравнить и объединить» в обычном Конфигураторе. Если вы только начинаете своё знакомство с 1C:EDT, вы можете столкнуться с тем, что после объединения все объекты помечаются «замками» (находятся на поддержке), даже если предварительно выполнялось их снятие. Разберем подробно, почему так происходит, и проанализируем наиболее эффективные методики обновления.

Выясним причину появления «замков» в EDT

В традиционном Конфигураторе статус поддержки хранится непосредственно в базе данных. В 1C:EDT ситуация иная: информация о поддержке описывается в служебных XML-файлах проекта. Когда вы выполняете сравнение и объединение с новым .cf файлом или другим проектом, EDT считывает метаданные поставщика из источника. Если в импортируемом релизе содержатся сведения о поставщике, система возвращает объекты на поддержку. Это вынуждает разработчиков выполнять утомительное групповое изменение режима поддержки, чтобы вернуть возможность редактирования. Проанализируем способы решения этой проблемы.

Способ 1: Подготовка конфигурации через Конфигуратор

Рассмотрим самый простой, но трудоемкий метод, который подходит для небольших проектов или при возникновении трудностей с инструментами EDT. Его суть заключается в подготовке «чистого» исходника.

  1. Запустим обычный Конфигуратор для того релиза, который мы хотим установить (новый релиз).
  2. Полностью снимем конфигурацию с поддержки вручную через меню «Конфигурация — Поддержка — Настройка поддержки».
  3. Выгрузим полученную конфигурацию в файл .cf.
  4. Импортируем этот .cf в новый временный проект 1C:EDT.
  5. Теперь при сравнении основного проекта с этим новым проектом «замки» не будут наследоваться, так как в источнике информация о поставщике полностью удалена.

Способ 2: Использование командной строки (Ring)

Для автоматизации снятия с поддержки можно использовать утилиту 1C:Enterprise Ring. Однако, как показывает практика, команда disableSupport не всегда корректно отрабатывает, если проект уже загружен в EDT. Рассмотрим пример правильной последовательности команд:


/ManageCfgSupport - disableSupport -force

Важно понимать, что если вы применяете это к .cf файлу, то после этого проект нужно заново импортировать в EDT, чтобы индексы и служебные файлы метаданных обновились. Если выполнить команду над уже существующим проектом, EDT может не сразу «подхватить» изменения в XML-структуре.

Способ 3: Обновление через «Vendor Branches» в Git

Это наиболее профессиональный и эффективный метод работы в 1C:EDT. Посмотрим на алгоритм действий, который используют опытные команды, применяя проверенные приемы быстрой работы в EDT и Git:

  1. Создадим в вашем репозитории отдельную ветку, назовем ее vendor (ветка поставщика).
  2. В эту ветку будем загружать «чистые» типовые релизы от фирмы «1С» в виде распакованных XML-файлов проекта.
  3. Когда выходит новый релиз, мы обновляем ветку vendor до этого релиза.
  4. Переходим в свою рабочую ветку (например, develop) и выполняем команду git merge vendor.

В этом случае Git сравнивает текстовые файлы. Те объекты, которые вы не меняли, обновятся автоматически. В случае конфликтов EDT предоставит удобный трехсторонний редактор, в котором доступно объединение модулей в разрезе методов. Это гораздо быстрее, чем вручную прокликивать дерево метаданных.

Способ 4: Встроенный мастер «Обновить конфигурацию»

В современных версиях 1C:EDT реализован штатный механизм обновления. Разберем, как им пользоваться:

  1. Нажмем правой кнопкой мыши на корень проекта и выберем пункт «Обновить конфигурацию» (Update Configuration).
  2. Выберем файл обновления .cf или .cfu.
  3. Этот мастер специально спроектирован для корректной обработки правил поддержки. Он позволяет сопоставить объекты и автоматически настроить правила (например, «Объект поставщика снят с поддержки»).

Важный нюанс: Перед запуском мастера убедитесь, что в edt.ini выделено достаточно оперативной памяти для Java, иначе процесс может прерваться на этапе анализа метаданных. Для контроля качества после обновления пригодится автоматическое регресс-тестирование бизнес-процессов.

Оптимизация производительности и контроль качества при обновлении

Проанализируем ситуацию, когда обновление (например, для ERP или КА) длится слишком долго или завершается ошибкой. Чтобы минимизировать риски, после завершения слияния крайне важно выполнить анализ конфигурации на наличие ошибок и уделить особое внимание поиску «битых» запросов, которые могли возникнуть из-за изменения структуры метаданных поставщиком — для этого подойдёт архитектурный анализ конфигурации и проверка запросов.

Рассмотрим настройки, которые помогут ускорить процесс обновления тяжелых конфигураций:

Подведем итоги

Мы рассмотрели несколько подходов к обновлению конфигураций в 1C:EDT. Для разовых задач можно воспользоваться первым способом (через Конфигуратор), но для постоянной разработки наиболее правильным будет освоение методологии Git и использование веток поставщика — есть готовая автоматизация обновления баз и слияния через Git. Это избавит вас от проблем с «замками» и позволит полностью контролировать историю изменений каждого объекта метаданных.

← На главную