При работе с большим количеством однотипных конфигураций (например, если вы ведете 12 организаций на базе «1С:Бухгалтерия 2.0»), ручное внесение изменений в каждую базу становится трудоемким процессом, чреватым ошибками. Часто такая потребность возникает, когда было выполнено разделение информационной базы по организациям для удобства учета. Рассмотрим эффективные способы автоматизации этого процесса, начиная от классических механизмов платформы и заканчивая современными инструментами DevOps.
Этот способ считается «золотым стандартом» в среде 1С для тиражных решений. Мы создаем иерархию, где одна база является эталоном, а остальные — ее потребителями. Разберем этот процесс по шагам:
Конфигурация — Расширения конфигурации — Создать файлы поставки и обновления..cf из эталонной базы. При первом объединении платформа предложит поставить конфигурацию на поддержку. Соглашаемся..cfu. Обновление рабочих баз будет проходить гораздо быстрее, так как платформа будет четко понимать, какие объекты изменились.Преимущество: Вы сохраняете возможность видеть три конфигурации при сравнении (конфигурация поставщика, основная конфигурация и конфигурация базы данных), что критически важно для контроля изменений в сложных системах, особенно если требуется оперативный возврат к старой версии объекта.
Если проект подразумевает активную разработку, разберем связку штатного хранилища 1С и популярного стороннего инструмента «Обновлятор». Это наиболее практичный путь для повседневной работы программиста. При использовании внешней автоматизации важно убедиться, что окружение настроено верно, и выполнена регистрация COM компоненты в один клик для исключения ошибок подключения.
Проанализируем алгоритм действий:
Выясним причину, почему это удобно: автоматизированные средства умеют делать снимки (snapshots) баз перед обновлением. Если в одной из баз произойдет сбой (например, из-за нехватки места или блокировки таблиц), система автоматически откатит изменения, сохранив целостность данных.
Для тех, кто предпочитает полный контроль и скрипты, рассмотрим параметры командной строки платформы 1С. Мы можем написать .bat или .ps1 файл, который будет последовательно перебирать все базы.
Посмотрим на примеры ключевых параметров для работы конфигуратора:
/LoadCfg "C:\Release\hotfix.cf" — загрузить конфигурацию из файла cf;
/UpdateDBCfg — выполнить обновление конфигурации базы данных;
/UpdateCfg "C:\Release\update.cfu" — запустить обновление на поддержке с помощью файла cfu;
/DumpResult "C:\Logs\result.txt" — записать результат выполнения в лог-файл.
Типовой скрипт для обновления одной базы может выглядеть следующим образом:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" CONFIG /F "D:\Bases\Base1" /N "Admin" /P "Pass" /LoadCfg "D:\Releases\Current.cf" /UpdateDBCfg
Разберем ситуацию, когда нам нужно программно проверить успешность операции. Платформа возвращает код завершения: 0 — успех, 1 — ошибка, 101 — наличие критических ошибок. Эти коды можно использовать в циклах для остановки процесса, если что-то пошло не так.
Если ваша платформа версии 8.3.6 и выше, проанализируем возможность использования Расширений конфигурации. Вместо того чтобы менять основную «тяжелую» конфигурацию, можно вынести уникальный код в расширение .cfe. В долгосрочной перспективе это облегчит дальнейший переход с редакции 2.0 на 3.0 и работу в управляемом приложении.
Преимущества расширений:
.cf.Для продвинутых разработчиков рекомендуется использовать OneScript. Это скриптовый язык с синтаксисом 1С, который позволяет писать мощные сценарии автоматизации. С помощью библиотек (например, vrunner), процесс обновления 12 баз сводится к одной команде в консоли:
vrunner vanessa --settings ./all_bases.json update-db --storage-path "tcp://server/repo"
При любом выбранном методе автоматизации, всегда следуйте правилам «хорошего тона» разработки:
/UpdateDBCfg) невозможно при активных пользователях. Используйте параметры /UC для блокировки соединений.Выясним итог: для 12 баз на обычных формах (Бухгалтерия 2.0) оптимальным выбором будет либо связка Хранилище + Обновлятор (для быстрого старта), либо механизм собственной поставки (для долгосрочной архитектурной правильности). Эти подходы избавят вас от рутины и минимизируют человеческий фактор.