Вопрос о необходимости запуска сеанса «1С:Предприятия» после каждого этапа обновления конфигурации часто вызывает споры среди администраторов и разработчиков. На первый взгляд кажется, что если база пустая или если мы используем «полный» файл конфигурации (.cf), то промежуточные запуски — это лишь пустая трата времени. Однако технологические процессы платформы и логика типовых конфигураций (особенно на базе БСП) говорят об обратном. В этой статье мы подробно разберем, что происходит «под капотом» системы во время обновления и почему попытка сэкономить время может привести к фатальным последствиям для данных.
Рассмотрим ситуацию: мы обновляем конфигурацию с версии 3.0.45 сразу до 3.0.103, просто «накатив» актуальный .cf. С точки зрения Конфигуратора, метаданные изменились, и он готов применить их к базе данных. Однако для прикладного решения этого недостаточно. Проанализируем, почему:
.cf может просто не оказаться кода, который должен был сконвертировать данные для промежуточных версий. В итоге данные останутся в «старом» формате, который новая конфигурация уже не понимает.Разберем самый опасный сценарий, который часто называют «путь к могиле базы». Представим, что в релизе №2 разработчики решили заменить реквизит СтарыйАдрес (строка) на справочник Адреса. В коде релиза №2 написан обработчик: «Прочитать строку из СтарыйАдрес, создать элемент справочника и записать ссылку в новый реквизит».
В релизе №3 разработчики окончательно удаляют реквизит СтарыйАдрес из метаданных, так как он больше не нужен. Если вы обновляетесь последовательно (1 -> 2 -> запуск Предприятия -> 3), данные успешно переносятся. Но если вы обновляетесь сразу с 1 на 3 через .cf, происходит следующее:
СтарыйАдрес в новой версии нет.СтарыйАдрес.СтарыйАдрес, но ее больше не существует. Данные потеряны навсегда.Даже если в базе нет ваших учетных данных, запуск Предприятия критически важен для инициализации системных объектов. Проанализируем ситуацию с Библиотекой стандартных подсистем (БСП):
Справочник «Идентификаторы объектов метаданных»: Этот объект является фундаментом для работы прав доступа, дополнительных реквизитов и многих отчетов. При запуске Предприятия срабатывает модуль менеджера, который перезаполняет этот справочник:
// Пример логики, вызываемой при обновлении
Процедура ВыполнитьОбновлениеДанных() Экспорт
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
КонецПроцедуры
Без этого справочника база может начать выдавать ошибки при попытке открыть любой документ или настроить права пользователя, так как система не сможет сопоставить объекты конфигурации с их внутренними ссылками в БД.
В современных версиях «1С» используется механизм отложенного обновления. Это означает, что после запуска Предприятия выполняются только самые критичные операции, а остальные данные конвертируются в фоновом режиме. Если вы не дождетесь окончания этих процессов и начнете накатывать следующий релиз в Конфигураторе, вы заблокируете работу фоновых заданий, что приведет к логической несогласованности данных (часть таблиц обновлена, часть — нет).
Если релизов много и запускать каждый раз Предприятие вручную утомительно, правильно будет использовать средства автоматизации (скрипты), но соблюдать технологическую цепочку. Рассмотрим шаги правильного обновления:
/UpdateCfg)./UpdateDBCfg).
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /N "Админ" /P "Пароль" /C СтартОбновленияИБ /Visible
Параметр /C СтартОбновленияИБ (в зависимости от версии БСП может отличаться) инициирует автоматическое выполнение всех процедур обновления без участия пользователя. Только после закрытия этого сеанса можно переходить к следующему этапу обновления.
Подведем итог: обновление через «прыжок» по .cf-файлу допустимо только в исключительных случаях, когда вы точно знаете (проанализировав сравнение метаданных), что между версиями не было удаления или переименования объектов. В общем же случае, стратегия «обновил — запустил» является единственно верной для сохранения целостности информационной базы. Помните, что отсутствие ошибок при запуске после «кривого» обновления не означает, что данные в порядке — ошибки могут проявиться спустя месяцы при формировании регламентированной отчетности.