Процесс обновления конфигурации 1С, находящейся на поддержке и подключенной к хранилищу, существенно отличается от обычного обновления файловой или клиент-серверной базы. Ошибки на этом этапе могут привести к «рассинхрону» конфигурации поставщика, потере данных в удаленных реквизитах или некорректной работе программных обработчиков. В данной статье мы разберем оптимальный алгоритм работы, проанализируем риски и выясним, как обеспечить стабильность рабочей информационной базы.
Рассмотрим классический сценарий, который часто применяется в среде разработчиков. Основная идея заключается в том, что все манипуляции по сравнению и объединению проводятся в отдельной тестовой базе (копии), и только результат помещается в хранилище для последующего получения в рабочей базе. Разберем этот процесс по шагам:
F7 (Обновить конфигурацию базы данных), запускаем сеанс в пользовательском режиме и проходим все этапы процедуры обновления данных (согласие с легальностью получения обновления, выполнение обработчиков БСП).F7 и запускается пользовательский режим для выполнения обработчиков обновления.Один из самых частых вопросов: можно ли обновиться сразу через несколько релизов, поместив в хранилище только финальный результат? Проанализируем ситуацию подробнее. В современных конфигурациях используется Библиотека стандартных подсистем (БСП). Она содержит специальные процедуры — обработчики обновления, которые мигрируют данные из старых структур в новые.
Рассмотрим пример. Допустим, в релизе 1.0.10 разработчик решил заменить справочник Контрагенты на более универсальный. В релизе 1.0.11 добавляется новый реквизит, а обработчик переносит данные. В релизе 1.0.15 старый реквизит полностью удаляется из метаданных. Если вы обновляетесь с версии 1.0.10 сразу до 1.0.16 через загрузку .cf или хранилище, возможны два сценария:
Вывод: Обновление «прыжком» через много релизов допустимо только в том случае, если вы уверены, что в коде актуального релиза сохранены все необходимые обработчики. Безопаснее всего накатывать релизы последовательно, хотя бы с промежуточными запусками в пользовательском режиме на ключевых («узловых») точках.
Проанализируем важные детали, которые часто упускаются из виду при работе с механизмом хранилища 1С:
Для минимизации человеческого фактора при обновлении рабочей базы из хранилища можно использовать параметры запуска Конфигуратора. Рассмотрим пример команды для пакетного обновления:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Base\Work" /N "Admin" /P "Pass" /ConfigurationRepositoryF "D:\Repository" /ConfigurationRepositoryN "RepoUser" /ConfigurationRepositoryP "RepoPass" /ConfigurationRepositoryUpdateCfg /UpdateDBCfg
Параметр /ConfigurationRepositoryUpdateCfg позволяет получить последние изменения, а /UpdateDBCfg выполняет обновление конфигурации базы данных (аналог F7). Это гарантирует, что все объекты будут получены и приняты корректно.
Разберем типичные ошибки, которые могут привести к критическим сбоям:
F7. Иногда разработчики получают изменения из хранилища, но забывают нажать «Обновить конфигурацию базы данных». В итоге основная конфигурация уже новая, а структура таблиц в СУБД — старая. Это приводит к непредсказуемому поведению системы при попытке записи данных.Обновление через хранилище — это надежный инструмент при условии соблюдения дисциплины. Основной залог успеха: обязательное выполнение процедур обновления данных в пользовательском режиме. Если вы обновляетесь сразу на несколько релизов, внимательно изучите Описание изменений (ReadMe) для каждого пропущенного релиза на предмет удаления устаревших объектов. Помните, что успешный запуск базы еще не означает, что данные внутри таблиц были корректно сконвертированы.