В процессе сопровождения и разработки систем 1С часто возникает вопрос: допустимо ли подключать продуктивную (рабочую) информационную базу непосредственно к хранилищу конфигурации? Рассмотрим технические риски такого подхода, проанализируем возможные исключения и разберем эталонный регламент переноса изменений с разделением контуров разработки и тестирования.
На первый взгляд подключение рабочей базы к хранилищу кажется удобным: программист помещает код из тестовой базы в хранилище, после чего сразу обновляет рабочую базу в пару кликов. Однако такой подход сопряжен с серьезными рисками для сохранности данных и стабильности работы системы.
Проанализируем основные проблемы, возникающие при таком решении:
Config и ConfigSave. Это приводит к рассинхронизации базы и хранилища, выдаче ошибок вида «Информационная база не связана с хранилищем конфигурации» или зависанию Конфигуратора.Разберем случаи, когда подключение хранилища к продуктиву допустимо как компромиссное решение:
Для исключения рисков сбоя рабочей базы проанализируем классическую безопасную схему развертывания updates (CI/CD или ручной регламент поставки):
.cf или файл обновления .cfu..cf. Рабочая база остается автономной и не имеет прямой связи с файлами хранилища.Если требуется подключить сторонний функционал (например, модуль обмена от подрядчика или франчайзи), лучшей практикой является использование расширений конфигурации (файлы .cfe).
Посмотрим на преимущества такого подхода:
Для исключения человеческого фактора при обновлении продуктивного контура разберем пример автоматизации пакетного обновления информационной базы из подготовленного файла поставки .cf с помощью командной строки платформы 1С:
"C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe" DESIGNER /S "SQLServer\ProductionBase" /N "Admin" /P "Password" /UpdateCfg "C:\Releases\1C_Update.cf" /UpdateDBCfg -Dynamic-
Если в организации все же принято решение использовать сервер хранилища для автоматической сборки, целесообразно использовать службу сервера хранилища crserver.exe и запускать обновление по расписанию специальным ключом:
"C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe" DESIGNER /S "SQLServer\ProductionBase" /N "Admin" /P "Password" /ConfigurationRepositoryF "tcp://repo-server/repository" /ConfigurationRepositoryN "DeployUser" /ConfigurationRepositoryP "DeployPass" /ConfigurationRepositoryUpdateCfg /UpdateDBCfg
Подведем итог: Прямое подключение рабочей базы к хранилищу разработки не рекомендуется стандартизованной методологией 1С. Для обеспечения отказоустойчивости и сохранности данных следует разделять среды разработки и продакшена, выполняя обновления рабочей базы исключительно через проверенные файлы поставки (.cf / .cfu) или изолированные расширения (.cfe).