Почему в 1С:Бухгалтерии не завершается обновление в режиме предприятия и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Нередко при обновлении нетиповых или доработанных конфигураций 1С (в частности, 1С:Бухгалтерия предприятия 3.0) возникает сбой: процесс в конфигураторе завершается без ошибок, конфигурация базы данных успешно сохранена, но при открытии программы в режиме 1С:Предприятие процедура обновления данных не стартует либо упорно пытается примениться к предыдущему номеру релиза. При этом параметр запуска /C ЗапуститьОбновлениеИнформационнойБазы не дает результата, а ручные правки в РегистрСведений.ВерсииПодсистем сбрасываются обратно.

Разберем детально, почему возникает подобное поведение платформы и Библиотеки стандартных подсистем (БСП), а также по шагам рассмотрим способы полного устранения проблемы.

Причина 1: Снятие объектов с поддержки и пропуск типовых модулей

Основная и наиболее распространенная причина в измененных конфигурациях — нарушение правил обновления объектов, находящихся на поддержке. Если типовые общие модули или корень конфигурации были случайно сняты с поддержки (установлен признак Снято с поддержки вместо Редактируется с сохранением поддержки), штатный механизм обновления через файл .cf или .cfu перестает их модифицировать.

В конфигурациях на базе БСП номер версии для обработчиков обновления определяется не только в свойствах корневого элемента конфигурации, но и жестко зашит в коде общих модулей. Если модуль ПодсистемыКонфигурацииПереопределяемый или специализированный модуль обновления не обновился из-за снятой поддержки, при запуске предприятия система считывает номер релиза из неизмененного исходного кода. В результате предприятие считает текущую версию устаревшей и запускает сценарий для старого релиза.

Разберем по шагам, как восстановить корректную структуру поддержки:

  1. Обязательно создадим резервную копию информационной базы (выгрузка .dt или копия на уровне СУБД).
  2. Откроем Конфигурация — Поддержка — Настройка поддержки и проверим статус корневого элемента и подчиненных объектов.
  3. Если объекты сняты с поддержки, воспользуемся операцией Конфигурация — Сравнить, объединить с конфигурацией из файла, выбрав типовой файл .cf требуемого нового релиза.
  4. В окне сравнения и объединения снимем отметки с доработанных нетиповых модулей (чтобы не затереть собственные изменения), но обязательно оставим отмеченными типовые общие модули БСП и свойства корня конфигурации.
  5. При объединении включим правило поддержки Редактируется с сохранением поддержки для тех типовых объектов, где оно было сброшено.
  6. Применим изменения в конфигураторе и выполним обновление конфигурации базы данных клавишей F7.

Причина 2: Конфликт расширений и старых патчей

Проанализируем влияние установленных расширений. Автоматически загружаемые патчи и исправления от фирмы 1С (расширения с префиксом EF_), созданные под предыдущие релизы, при переходе на новую версию становятся неактуальными. Если патч перехватывает процедуру инициализации БСП или модули обновления, он может блокировать переход на новую версию данных.

Для устранения влияния сторонних модификаций выполним следующие действия:

  1. Перейдем в меню Конфигурация — Расширения конфигурации.
  2. Удалим все патчи, начинающиеся на EF_, относящиеся к старому релизу.
  3. Временно отключим или деактивируем сторонние отраслевые расширения, влияющие на процедуры старта системы.
  4. Запустим сеанс в режиме 1С:Предприятие для проверки штатного выполнения обработчиков обновления.

Причина 3: Кэш метаданных и принудительный запуск обновления

Иногда платформа кэширует старые версии модулей и структуры базы. Перед повторной попыткой обязательно вычистим локальный кэш пользователя (каталоги AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8) либо переподключим информационную базу в списке запуска с новым уникальным идентификатором базы.

В ситуациях, когда запуск через интерфейс не отрабатывает, используем гарантированный запуск пакетного обновления данных БСП из командной строки с помощью специального параметра:

1cv8.exe ENTERPRISE /F "D:\Bases\BP" /N "Администратор" /P "Пароль" /UpdateInfoBase

Параметр /UpdateInfoBase запускает монопольные процедуры обновления данных и автоматически закрывает сеанс платформы после их успешного завершения.

Причина 4: Скрытые ошибки и блокировка регламентных заданий

Если обновление все равно не доходит до конца, выясним причину через диагностические инструменты платформы:

  1. Откроем Журнал регистрации и установим фильтр по важности Ошибка и Предупреждение, а также по событию Обновление информационной базы. Если в процессе работы падает исключение (дубликаты предопределенных элементов, битые ссылки), БСП автоматически откатывает транзакцию обновления к исходной версии.
  2. Проверим признак блокировки регламентных заданий. В современных конфигурациях обновление разделено на оперативную часть и отложенные фоновые задания. Если регламентные задания заблокированы в консоли кластера серверов 1С или через константу, отложенное обновление не сможет завершиться. В пользовательском режиме проверим состояние через Администрирование — Обслуживание — Результаты обновления и дополнительная обработка данных.
  3. Выполним в конфигураторе Администрирование — Тестирование и исправление информационной базы с проверкой логической и ссылочной целостности для исключения внутренних повреждений таблиц.
← На главную