При поддержке нетиповых (сильно измененных) конфигураций 1С часто возникает проблема длительного обновления рабочей базы. Перенос всех изменений на новый релиз может занимать несколько дней, и выполнять эту работу на «живой» базе недопустимо. Поэтому разработчики сначала накатывают обновление на копию (тестовую базу), адаптируют код, а затем переносят готовый результат в рабочую среду за минимальное время. Разберем по шагам, как правильно организовать этот процесс, какие методы существуют и каких ошибок следует избегать.
Прежде чем мы рассмотрим способы переноса конфигурации, остановимся на важнейших правилах безопасности. Никогда не приступайте к накатыванию обновлений на рабочую базу без предварительной подготовки. Выполним следующие обязательные шаги:
.dt, если база файловая).Самый распространенный метод для разовых баз — подготовка полного файла конфигурации .cf в тестовой среде и его загрузка в рабочую базу. Однако здесь кроется главная опасность: если просто загрузить файл, конфигурация базы данных обновится, но версия «Конфигурации поставщика» останется старой. Это приведет к проблемам при следующих обновлениях. Разберем правильный алгоритм переноса:
.cf из нашей тестовой копии..cfu от поставщика 1С. Это необходимо исключительно для того, чтобы обновилась версия конфигурации поставщика..cf из тестовой базы.Если у нас есть несколько одинаково доработанных баз (например, узлы РИБ или филиалы), переносить .cf в каждую будет долго и неэффективно. Рассмотрим метод создания собственного файла обновления.
В конфигураторе тестовой базы после завершения всех доработок мы можем сформировать свой файл .cfu. Для этого перейдем в меню «Конфигурация» — «Поставка конфигурации» — «Создать файлы обновления». Этот файл будет содержать только разницу между старым и новым релизом с учетом всех наших модификаций. На рабочую базу (или базы) этот файл накатывается штатным образом через пункт «Обновить конфигурацию», что значительно экономит время и снижает риски.
Проанализируем работу через Хранилище конфигурации. Этот метод является наиболее профессиональным, особенно если в штате больше одного разработчика. При таком подходе процесс выглядит следующим образом:
Этот способ сводит время простоя рабочей базы к минимуму, так как все конфликты кода решаются заранее на этапе помещения доработок в Хранилище.
Посмотрим на современные практики разработки, которые позволяют избежать недельных простоев при слиянии кода. Сегодня стандартом является перенос максимального количества доработок (новые документы, справочники, измененные формы и модули) в Расширения конфигурации. Если основную конфигурацию оставить на полной поддержке («на замке»), то накатывание нового релиза будет занимать считанные минуты: типовая база обновляется автоматически, а программисту остается лишь проверить и при необходимости адаптировать расширения.
Для крупных команд всё чаще применяется 1C:Enterprise Development Tools (EDT) в связке с системами контроля версий (например, Git). Это позволяет использовать ветвления кода, автоматизированное тестирование и CI/CD (непрерывную интеграцию). Изменения доставляются в продуктивную среду автоматически, исключая ручные манипуляции с выгрузкой и загрузкой файлов.
В завершение разберем критически важный шаг, о котором нельзя забывать при любом способе обновления. Обновление метаданных в Конфигураторе — это лишь половина задачи. При смене версий поставщик добавляет программные обработчики обновления данных (пересчет итогов, заполнение новых реквизитов, изменение структуры хранения).
После завершения работы в Конфигураторе мы обязаны запустить рабочую базу в режиме 1С:Предприятие от имени пользователя с полными правами. В некоторых случаях для форсированного запуска требуется использовать параметр командной строки:
/С ЗапуститьОбновлениеИнформационнойБазы
Дождитесь полного завершения работы фоновых заданий по обновлению данных, и только после этого пускайте пользователей в систему. Применяя описанные алгоритмы, вы сможете гарантировать надежный и быстрый перенос всех наработок на рабочий сервер без потери данных и простоев.