При переходе на современный стек разработки с использованием 1C:Enterprise Development Tools (EDT) и Git многие специалисты сталкиваются с неочевидным вопросом: как правильно устанавливать новые релизы типовых конфигураций (например, УТ 11, ERP или БП 3.0), если конфигурация находится на поддержке с возможностью изменения? В традиционном Конфигураторе этот процесс автоматизирован, но в EDT механизмы работы с конфигурацией поставщика реализованы иначе. Разберем детально, как выстроить процесс обновления и не потерять свои доработки.
На текущий момент самым надежным и проверенным способом остается совместное использование EDT и классического Конфигуратора. Поскольку EDT не содержит встроенного мастера «Сравнение/Объединение с конфигурацией поставщика», нам необходимо делегировать эту задачу платформе.
Рассмотрим пошаговый алгоритм совместной работы:
EDT успешно экспортированы в информационную базу (ИБ). Состояние проекта и базы должно быть идентичным.Конфигуратор. Переходим в меню Конфигурация — Поддержка — Обновить конфигурацию. Выбираем файл обновления (.cf или .cfu) и выполняем стандартную процедуру сравнения и объединения. На этом этапе мы разрешаем конфликты, расставляем правила объединения и следим за тем, чтобы наши доработки не были затерты кодом поставщика.Обновить конфигурацию базы данных (F7). Это критически важно, так как EDT считывает данные именно из состояния ИБ.EDT. В панели «Приложения» или «Навигатор» нажимаем правой кнопкой мыши на наш проект и выбираем команду Обновить проект из ИБ... (в новых версиях — «Импортировать изменения из информационной базы»).EDT подтянет обновленные XML-файлы исходников, мы увидим массу изменений в панели Git Staging. Нам остается проверить их и зафиксировать (commit) новый релиз в истории версий.Проанализируем ситуацию, когда команда разработки хочет максимально использовать возможности Git для автоматизации слияния кодов. Этот метод требует более высокой квалификации, но позволяет избежать многих ручных операций в будущем.
Суть метода заключается в хранении «чистых» исходников поставщика в отдельной ветке. Разберем этот процесс подробнее:
vendor (или upstream), в которой никогда не бывает наших доработок — только код от 1С..cf в формат исходников EDT (это можно сделать через командную строку утилитой ring или просто создав временный проект в EDT и импортировав туда .cf).vendor.master или develop) выполняем git merge vendor.Преимущество: Инструменты слияния Git зачастую справляются с объединением текстовых файлов кода (модулей) гораздо эффективнее, чем встроенное сравнение 1С, особенно если доработки были масштабными.
Выясним причину, по которой иногда «слетает» поддержка при работе через EDT. Как отмечают пользователи, в ранних версиях среды (например, 1.8) при записи проекта в базу данных могли затираться метаданные о конфигурации поставщика. Это происходило потому, что EDT оперирует файлами, а информация о поддержке хранится в специальных таблицах базы данных 1С.
Чтобы избежать повреждения поддержки, придерживайтесь правил:
.settings проекта, если не понимаете их структуру.EDT (2023.x и выше), где механизмы сопоставления объектов и сохранения «замков» были значительно доработаны.Для продвинутых команд рекомендуется использовать интерфейс командной строки. Рассмотрим пример логики скрипта на OneScript или Bash, который может упростить рутину:
// Пример логики автоматизации обновления
// 1. Экспорт конфигурации поставщика в XML
ring edt@current workspace-export --project MyProject --configuration-file vendor_new.cf
// 2. Импорт обновленных файлов в проект
ring edt@current project-import --project MyProject --source-path ./src
Это позволяет интегрировать процесс обновления в CI/CD пайплайны, обеспечивая чистоту кода и прозрачность истории изменений.
Проанализируем современный подход 1С к доработкам. Чтобы минимизировать проблемы при обновлении в EDT, рекомендуется переносить все изменения в расширения конфигурации. В этом случае основная конфигурация остается на «полном замке» (без возможности изменения).
В такой архитектуре обновление происходит максимально просто:
EDT с основной конфигурацией просто обновляется из ИБ.EDT с расширением проходит проверку на применимость к новой версии. Если в расширении возникли ошибки из-за удаления или переименования методов в основной конфигурации, EDT сразу подсветит их в списке ошибок проекта.Подведем итог: Хотя EDT не заменяет Конфигуратор полностью в вопросах управления поддержкой, связка этих инструментов дает мощные возможности для командной разработки. Рекомендуется использовать гибридную схему для типовых конфигураций и активно внедрять Git для контроля версий кода.