В практике программиста 1С часто возникает ситуация, когда одна и та же доработанная конфигурация используется в нескольких независимых компаниях или филиалах. Когда в основную ветку разработки вносятся изменения, их необходимо оперативно и безопасно тиражировать во все остальные базы. Ручной перенос изменений через Ctrl + C и Ctrl + V крайне неэффективен, чреват ошибками и потерей уникальных идентификаторов объектов. Рассмотрим подробнее способы автоматизации этого процесса, от простых штатных средств до продвинутых инструментов DevOps.
Самый очевидный способ, который приходит на ум — это использование файла конфигурации .cf. Мы выгружаем эталонную конфигурацию из базы-разработчика и поочередно загружаем ее в целевые базы. Однако здесь есть важный нюанс, который мы разберем. Существует два пути:
Чтобы ускорить процесс сравнения в семи и более базах, проанализируем малоизвестную возможность — сохранение настроек объединения. В окне сравнения можно сохранить текущий набор «галочек» в файл .vrs. При обновлении следующей базы мы просто загружаем этот файл, и система автоматически отмечает нужные объекты, исключая человеческий фактор.
Если баз много, ручное открытие конфигуратора в каждой из них становится рутиной. Посмотрим на опыт коллег, которые рекомендуют использовать инструмент «Обновлятор-1С». Это внешняя утилита, которая позволяет автоматизировать групповые операции над базами.
Разберем алгоритм работы с ним:
.cf с доработками.Для профессиональной командной разработки и тиражирования изменений идеально подходит Хранилище конфигурации. Это штатный механизм 1С, предназначенный для версионирования кода и коллективной работы. Рассмотрим, как применить его для нашей задачи:
Это гарантирует идентичность всех объектов и их внутренних идентификаторов во всех информационных базах. Более того, это позволяет автоматизировать процесс обновления с помощью скриптов командной строки.
Выясним, как можно обновить базы вообще без участия интерфейса конфигуратора. Платформа 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). Если ваши доработки можно вынести в расширение, это значительно упростит жизнь. Основная конфигурация при этом остается полностью типовой и стоит на поддержке вендора.
Преимущества работы с расширениями:
OneScript.Для продвинутых команд разберем путь использования 1C:EDT (Enterprise Development Tool). Это среда разработки на базе Eclipse, которая позволяет работать с кодом 1С как с обычными текстовыми файлами.
В этом случае процесс выглядит так:
Git..cf файла и его деплой во все базы при каждом пуше кода в репозиторий.Проанализируем вопрос автора о возможности использования РИБ (Распределенных Информационных Баз). Механизм РИБ действительно автоматически передает изменения конфигурации из главного узла в подчиненные вместе с обменом данными.
Однако стоит помнить: РИБ предназначен в первую очередь для синхронизации данных. Если базы компаний А и Б должны быть абсолютно независимы по документам и справочникам, использование РИБ только ради переноса кода — плохое решение. Оно накладывает жесткие ограничения на изменение структуры данных и требует постоянного контроля коллизий при обменах. В данной ситуации лучше использовать методы тиражирования именно конфигурации, описанные выше.
Мы рассмотрели различные подходы к автоматизации переноса доработок. Выбор метода зависит от ваших навыков и сложности задач:
Помните, что перед любым автоматическим обновлением конфигурации обязательно должно выполняться создание резервной копии базы данных. Это золотое правило спасет ваши данные в случае непредвиденных ошибок при реструктуризации.