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

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

В практике программиста 1С часто возникает ситуация, когда одна и та же доработанная конфигурация используется в нескольких независимых компаниях или филиалах. Когда в основную ветку разработки вносятся изменения, их необходимо оперативно и безопасно тиражировать во все остальные базы. Ручной перенос изменений через Ctrl + C и Ctrl + V крайне неэффективен, чреват ошибками и потерей уникальных идентификаторов объектов. Рассмотрим подробнее способы автоматизации этого процесса, от простых штатных средств до продвинутых инструментов DevOps.

Использование стандартного механизма сравнения и объединения

Самый очевидный способ, который приходит на ум — это использование файла конфигурации .cf. Мы выгружаем эталонную конфигурацию из базы-разработчика и поочередно загружаем ее в целевые базы. Однако здесь есть важный нюанс, который мы разберем. Существует два пути:

  1. Загрузка конфигурации из файла: Этот метод полностью заменяет конфигурацию целевой базы на эталонную. Проанализируем риски: если вы использовали ручное копирование объектов (Ctrl+C/V) ранее, идентификаторы (UUID) одних и тех же объектов в разных базах могут различаться. Полная загрузка может привести к потере данных в полях, ссылающихся на эти объекты.
  2. Сравнение и объединение: Это более безопасный метод. Мы выбираем пункт «Конфигурация — Сравнить, объединить с конфигурацией из файла». Платформа сопоставит объекты и предложит перенести только изменения.

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

Автоматизация через специализированное ПО (Обновлятор-1С)

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

Разберем алгоритм работы с ним:

Использование Хранилища конфигурации

Для профессиональной командной разработки и тиражирования изменений идеально подходит Хранилище конфигурации. Это штатный механизм 1С, предназначенный для версионирования кода и коллективной работы. Рассмотрим, как применить его для нашей задачи:

  1. Создаем Хранилище на базе эталонной конфигурации.
  2. Подключаем все остальные 7 баз к этому Хранилищу.
  3. Когда в основной базе изменения готовы и «помещены» в Хранилище, в остальных базах достаточно выполнить команду «Конфигурация — Хранилище конфигурации — Обновить конфигурацию из хранилища».

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

Автоматизация через командную строку (Batch-скрипты)

Выясним, как можно обновить базы вообще без участия интерфейса конфигуратора. Платформа 1С поддерживает параметры запуска из командной строки. Мы можем написать простой .bat файл, который будет последовательно обновлять все наши базы. Проанализируем пример команды для обновления из файла:


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "ServerName\BaseName" /N "Admin" /P "Password" /LoadConfigFromFiles "C:\Distr\config.cf" /UpdateDBCfg

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


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "ServerName\BaseName" /N "Admin" /P "Password" /ConfigurationRepositoryUpdateCfg -Location "PathToRepo" -Logon "RepoUser" -Password "RepoPass" /UpdateDBCfg

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

Переход на расширения конфигурации

Рассмотрим современный способ кастомизации — использование расширений (файлы .cfe). Если ваши доработки можно вынести в расширение, это значительно упростит жизнь. Основная конфигурация при этом остается полностью типовой и стоит на поддержке вендора.

Преимущества работы с расширениями:

Использование современных инструментов разработки (EDT и Git)

Для продвинутых команд разберем путь использования 1C:EDT (Enterprise Development Tool). Это среда разработки на базе Eclipse, которая позволяет работать с кодом 1С как с обычными текстовыми файлами.

В этом случае процесс выглядит так:

  1. Конфигурация выгружается в проект EDT.
  2. Версии кода хранятся в Git.
  3. Для каждой дочерней фирмы можно создать свою ветку или использовать общую.
  4. С помощью инструментов CI/CD (например, Jenkins или GitLab CI) можно настроить автоматическую сборку .cf файла и его деплой во все базы при каждом пуше кода в репозиторий.

Стоит ли использовать РИБ для этой задачи?

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

Однако стоит помнить: РИБ предназначен в первую очередь для синхронизации данных. Если базы компаний А и Б должны быть абсолютно независимы по документам и справочникам, использование РИБ только ради переноса кода — плохое решение. Оно накладывает жесткие ограничения на изменение структуры данных и требует постоянного контроля коллизий при обменах. В данной ситуации лучше использовать методы тиражирования именно конфигурации, описанные выше.

Выводы и рекомендации

Мы рассмотрели различные подходы к автоматизации переноса доработок. Выбор метода зависит от ваших навыков и сложности задач:

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

← На главную