Как исправить ошибку «Транзакция осталась активной» при обновлении ЗУП 3.1.27.51?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При переходе на новые версии программных продуктов «1С:Предприятие», особенно на такие критически важные, как 1С:Зарплата и Управление Персоналом 3.1, пользователи часто сталкиваются с техническими сбоями в процессе выполнения обработчиков обновления. Одной из самых неприятных ошибок в версии 3.1.27.51 стала проблема в работе метода Справочники.РегламентированныеОтчеты.ЗаполнитьСписокРегламентированныхОтчетов. Система выдает сообщение о том, что транзакция осталась активной, и процесс обновления аварийно завершается.

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

Анализ технической сути ошибки

Давайте разберем ситуацию: почему возникает сообщение «Открытая внутри обработчика обновления транзакция осталась активной (не была закрыта или отменена)»? В программном коде 1С выполнение важных операций часто оборачивается в блок транзакции. Если внутри этого блока происходит критическая ошибка, выполнение кода прерывается. Однако, из-за специфики обработчика ЗаполнитьСписокРегламентированныхОтчетов, исключение перехватывается платформой раньше, чем срабатывает команда ОтменитьТранзакцию() или ЗафиксироватьТранзакцию(). В итоге база данных оказывается в «подвешенном» состоянии, и обновление прекращается.

Основной причиной сбоя в данном случае является несоответствие данных в справочнике РегламентированныеОтчеты ожиданиям нового алгоритма обновления. Чаще всего это связано с наличием дублирующихся записей или некорректных ссылок на формы отчетов.

Способ 1. Очистка справочника «Регламентированные отчеты» от дублей

Как показывает практика, наиболее эффективным решением является ревизия справочника РегламентированныеОтчеты. Рассмотрим, как это сделать правильно:

  1. Запустите базу в режиме «1С:Предприятие». Если обновление блокирует запуск, попробуйте войти в режиме /C СтартОбновленияИнформационнойБазы (с ключом подавления некоторых проверок) или через Конфигуратор.
  2. Перейдите в справочник Регламентированные отчеты. Это можно сделать через «Все функции» (или «Функции для технического специалиста»).
  3. Проанализируйте список отчетов. Нам необходимо найти записи с одинаковыми наименованиями или внутренними идентификаторами. Особое внимание уделите отчетам, которые были добавлены вручную или загружены из внешних файлов в прошлых периодах.
  4. Выясним причину дублирования: часто система «сходит с ума», если видит два элемента с одинаковым кодом или ссылкой на один и тот же объект метаданных.
  5. Удалите дубликаты. Если у вас есть две одинаковые записи (например, две «Декларации по НДС»), оставьте одну актуальную, а вторую пометьте на удаление и выполните операцию «Удаление помеченных объектов».

Если визуально дубли не обнаруживаются, попробуйте воспользоваться консолью запросов, чтобы найти записи с одинаковыми именами:


ВЫБРАТЬ
    РегламентированныеОтчеты.Наименование,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныеОтчеты.Ссылка) КАК Количество
ИЗ
    Справочник.РегламентированныеОтчеты КАК РегламентированныеОтчеты
СГРУППИРОВАТЬ ПО
    РегламентированныеОтчеты.Наименование
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныеОтчеты.Ссылка) > 1

Способ 2. Установка исправляющих патчей (EF_00_00572110)

Компания «1С» оперативно выпускает исправления (патчи) для известных ошибок релизов. Для версии 3.1.27.51 был выпущен специальный патч, исправляющий поведение обработчика обновления справочника отчетов.

Рассмотрим порядок действий для применения патчей, если база не открывается:

  1. Зайдите на портал ИТС в раздел обновлений для вашей конфигурации.
  2. Скачайте все доступные патчи для релиза 3.1.27.51.
  3. В Конфигураторе перейдите в меню Конфигурация — Расширения.
  4. Добавьте скачанные файлы патчей (они имеют расширение .cfe) как новые расширения.
  5. Убедитесь, что у добавленных расширений снята галочка «Безопасный режим» (если это требуется инструкцией к патчу).
  6. Попробуйте снова запустить обновление в пользовательском режиме.

Важный нюанс: Если база позволяет зайти в пользовательский режим (даже с ошибкой обновления в фоне), установку патчей можно выполнить через раздел Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). После установки патчей система может потребовать перезапуск, после которого транзакция в обработчике закроется корректно.

Способ 3. Тестирование и исправление информационной базы

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

  1. Обязательно создайте резервную копию (выгрузку .dt).
  2. Перейдите в меню Администрирование — Тестирование и исправление.
  3. Установите флажки на пунктах:
    • Реиндексация таблиц информационной базы;
    • Проверка логической целостности;
    • Проверка ссылочной целостности;
    • Пересчет итогов.
  4. В полях «При наличии ссылок на несуществующие объекты» и «При пустых значениях» выберите вариант «Очищать объекты».
  5. Нажмите «Выполнить».

Часто после удаления «битых» ссылок, которые не были видны в обычном режиме, обработчик ЗаполнитьСписокРегламентированныхОтчетов начинает отрабатывать без ошибок.

Способ 4. Очистка кэша и серверные манипуляции

Иногда ошибка «Транзакция осталась активной» является следствием сбоя кэширования метаданных. Если вы работаете в клиент-серверном варианте, выполним следующие действия:

  1. Остановите службу Агент сервера 1С:Предприятие.
  2. Перейдите в папку с данными сервера (обычно это C:\Program Files\1cv8\srvinfo) и удалите содержимое папок snccntx и кэш конкретной базы.
  3. Запустите службу заново.
  4. На локальном компьютере очистите список баз и добавьте базу заново (это очистит локальный кэш конфигурации).

Резюме

Проблема обновления ЗУП 3.1.27.51 — это классический пример конфликта старых данных и новых алгоритмов платформы. Алгоритм ваших действий должен быть таким: сначала пробуем установить актуальные патчи через расширения, если не помогает — ищем и удаляем дубли в справочнике РегламентированныеОтчеты, и в крайнем случае прибегаем к «Тестированию и исправлению». Помните, что корректная работа со справочниками отчетности — залог успешной сдачи налоговых деклараций в будущем.

← На главную