Как исправить ошибку «Не завершен переход на новую версию» в 1С:Предприятие 8.3?

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

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

Понимание механизма отложенного обновления

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

Решение 1: Проверка блокировки регламентных заданий на сервере

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

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

Важный нюанс: Иногда требуется кратковременно включить блокировку, выгнать всех пользователей, а затем снова выключить ее, чтобы «встряхнуть» планировщик заданий сервера 1С.

Решение 2: Ручной запуск регламентного задания

Если блокировок нет, но процесс не движется, попробуем запустить его принудительно. Посмотрим, как это сделать через интерфейс программы:

  1. Перейдем в раздел АдминистрированиеОбслуживание.
  2. Выберем пункт Регламентные и фоновые задания.
  3. Найдем в списке задание с наименованием Отложенное обновление ИБ.
  4. Нажмем кнопку Выполнить сейчас.

Проанализируем ситуацию: если после нажатия кнопки состояние задания быстро меняется на «Завершено», но процент выполнения в мониторе обновления не растет, это означает, что одна из процедур обработки данных завершилась с ошибкой. В этом случае процедуру нужно перезапускать несколько раз или искать ошибку в Журнале регистрации.

Решение 3: Настройка расписания и потоков обновления

В некоторых случаях, особенно в серверных базах, фоновые задания не запускаются, если для них не задано четкое расписание. Разберем, как это исправить:

Зайдем в настройки регламентного задания Отложенное обновление ИБ и проверим расписание. Рекомендуется установить его как «каждые 60 секунд». Также обратим внимание на форму монитора обновления (ее можно найти через Все функции или Функции для технического специалиста — Обработки — Результаты обновления программы). Кликнув по ссылке «Выполняются дополнительные процедуры обработки данных», мы попадем в список очередей. Убедимся, что для процедур со статусом «Не выполнялась» запущены соответствующие потоки.

Решение 4: Очистка технических регистров («Хвосты» обновлений)

Иногда система «считает», что переход не завершен из-за старых записей в служебных регистрах. Рассмотрим, какие регистры стоит проверить и очистить в ручном режиме:

  1. Регистр сведений (не используется) Исключенные из перепроведения месяцы. Несмотря на пометку «не используется», наличие в нем записей за прошлые периоды часто вызывает диагностическое сообщение о незавершенном обновлении в помощнике закрытия месяца. Проанализируем записи и, если они относятся к старым годам, смело удалим их.
  2. Регистр сведений Обработчики обновления. Здесь хранится список всех процедур. Если процедура зависла в статусе «Выполняется», можно попробовать вручную изменить ее статус на «Завершено» (через групповое изменение реквизитов), если вы уверены, что данные в порядке.
  3. Регистр сведений Потоки обновлений. Если в нем завис «мертвый» поток, его очистка позволит системе запустить новый процесс.

Решение 5: Программный запуск через консоль (для продвинутых пользователей)

Если стандартные средства не помогают, мы можем инициировать выполнение процедур обновления напрямую с помощью программного кода. Это позволит выполнить обновление в текущем сеансе, минуя механизм фоновых заданий, что даст нам возможность увидеть текст ошибки в реальном времени. Рассмотрим пример кода, который можно запустить во внешней обработке:


// Принудительный запуск отложенного обновления в текущем сеансе
ПараметрыОбновления = ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыполненияОтложенногоОбновления();
ПараметрыОбновления.ВыполнятьВТекущемСеансе = Истина;
ОбновлениеИнформационнойБазы.ВыполнитьОтложенноеОбновление(Истина);

Использование параметра Истина заставляет систему игнорировать фоновый режим. Это наиболее эффективный способ «протолкнуть» обновление, которое спотыкается на некритичных ошибках данных.

Решение 6: Радикальная очистка блокировок через константы

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


// Очистка сведений о блокируемых объектах при обновлении
Сведения = Константы.СведенияОБлокируемыхОбъектах.Получить().Получить();
// Если структура заполнена, очищаем ее
Если ТипЗнч(Сведения) <> Тип("Строка") Тогда
    Константы.СведенияОБлокируемыхОбъектах.Установить(Новый ХранилищеЗначения(""));
КонецЕсли;

Это действие снимет программную блокировку, которую БСП накладывает на объекты до завершения процедур обновления.

Решение 7: Особенности перехода через файловый вариант

Если база небольшая (до 20 Гб), а серверный вариант упорно выдает ошибку, проанализируем возможность временного перехода в файловый режим:

  1. Выгрузим базу в .dt файл.
  2. Загрузим ее в файловый вариант на локальном компьютере.
  3. Запустим обновление. В файловом варианте 1С часто выполняет процедуры обновления принудительно при запуске под полными правами, не полагаясь на планировщик фоновых заданий.
  4. Дождемся окончания (сообщение «Все процедуры обновления завершены»).
  5. Загрузим базу обратно на SQL-сервер.

Этот метод считается «традиционным» среди системных администраторов 1С, так как он исключает влияние специфических настроек сервера БД и прав службы usr1cv8.

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

← На главную