Как исправить ошибки при обновлении 1С:ЗУП 3.1 и решить проблему с зависанием фоновых заданий

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

Обновление конфигурации 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) — это процесс, который часто требует от администратора или программиста не только механического запуска процедур в конфигураторе, но и глубокого понимания внутренних механизмов платформы 1С. Особую сложность традиционно вызывают переходы между минорными версиями, которые сопровождаются изменением режима совместимости платформы и глобальной реструктуризацией регистров.

Ярким примером является переход с релизов ветки 3.1.7 на 3.1.8. На первый взгляд простое обновление может обернуться сбоем: тестовое обновление проходит успешно, но после недели реальной работы пользователей и проведения документов выплаты зарплаты повторные попытки обновления вызывают критические ошибки. Более того, ошибки начинают воспроизводиться даже при попытке развернуть ранее работоспособную резервную копию (бэкап). Проанализируем, почему так происходит, и разберем по шагам эффективные методы решения этой проблемы.

Почему возникают ошибки при переходе на ЗУП 3.1.8? Анализ причин

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

  1. Изменение логики регистров накопления и сведений. В релизе 3.1.8 была переработана структура хранения данных по взаиморасчетам. В частности, изменения затронули механизмы, регистрирующие выплаты. При проведении ведомостей на выплату зарплаты после обновления старых документов задним числом система может сталкиваться с логическими тупиками. Например, широко известна ошибка платформы, связанная с учетом по обособленным территориям, когда суммы аванса проводились с указанием подразделения, а НДФЛ — без него. Это вызывало появление дублирующихся ключей записи в регистрах накопления ЗарплатаКВыплате и блокировало реструктуризацию БД.
  2. Проблемы платформы 8.3.12. Ранние сборки платформы 8.3.12 (особенно 8.3.12.1616) содержали критические уязвимости, связанные с утечкой памяти в рабочем процессе сервера rphost при выполнении длительных фоновых задач. Поскольку отложенное обновление БСП выполняется именно в фоновом режиме в режиме "1С:Предприятие", падение процесса rphost приводило к прерыванию транзакций и зависанию обновления в неопределенном статусе.
  3. Влияние устаревшего интерфейса. Работа в устаревшем интерфейсе "В закладках" (вместо современного интерфейса Такси) на новых релизах платформы не гарантирует корректную работу форм. Разработчики перестали тестировать старый интерфейс, что приводило к невидимости важных элементов управления, таких как кнопки разблокировки регламентных заданий или завершения обновления.
  4. Кэширование метаданных платформой. Локальный кэш конфигурации на компьютере пользователя часто сохраняет старые схемы метаданных. Именно из-за некорректного кэша даже "чистый" и заведомо исправный бэкап, развернутый на той же машине, может выдавать аналогичные ошибки реструктуризации.

Пошаговая инструкция по решению проблемы

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

Шаг 1. Полная очистка локального кэша платформы

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

  1. Удалим информационную базу из списка запуска стартера 1С.
  2. Запустим повторно стартер и добавим базу заново под тем же именем и путем. Это заставит платформу сгенерировать новый уникальный идентификатор базы и создать для нее чистый кэш.
  3. Для гарантированного результата вручную очистим каталоги временных файлов на компьютере, где выполняется обновление. Удалим содержимое папок:
    • %userprofile%\AppData\Local\1C\1Cv8
    • %userprofile%\AppData\Roaming\1C\1Cv8

Шаг 2. Переход на стабильную версию платформы

Использование нестабильных сборок платформы (таких как 8.3.11 или младшие сборки 8.3.12) гарантированно создает проблемы с фоновыми процессами. Настоятельно рекомендуем обновить технологическую платформу 1С:Предприятие до стабильных релизов ветки 8.3.12 (например, не ниже 8.3.12.1685) или сразу перейти на более современные и проверенные временем версии (например, стабильные релизы веток 8.3.14 или 8.3.15).

Шаг 3. Переключение интерфейса программы в режим "Такси"

Работа в режиме совместимости с более старыми версиями платформы усложняет выполнение кода БСП. Перед запуском обновления обязательно переключим интерфейс программы на Такси. Это делается в режиме "1С:Предприятие" через меню Сервис - Параметры - Внешний вид. Выберем вариант "Такси (рекомендуется)" и перезапустим программу. В этом интерфейсе все формы обслуживания и мониторинга обновления будут отображаться корректно, предоставляя доступ к скрытым ранее кнопкам.

Шаг 4. Временное снятие с проведения ведомостей на выплату

Если ошибка реструктуризации в процессе обновления указывает на регистры сведений или накопления, связанные с выплатой сотрудникам (например, ЗарплатаКВыплате или МестаВыплатыЗарплатыСотрудников), выполним обходной маневр:

  1. В резервной копии базы перед началом обновления найдем последние документы "Ведомость в банк", "Ведомость в кассу" или "Ведомость на счета", проведенные пользователями за последнюю неделю.
  2. Распроведем (отменим проведение) данных документов.
  3. Запустим процесс обновления конфигурации заново через Конфигуратор.
  4. После успешного завершения обновления и выполнения всех отложенных обработчиков в режиме предприятия проведем ведомости обратно.

Шаг 5. Разблокировка работы с внешними ресурсами и регламентных заданий

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

Для снятия блокировки перейдем в раздел Администрирование — Обслуживание. Найдем кнопку "Разблокировать работу с внешними ресурсами" (если она активна) и нажмем её. Также убедимся, что в свойствах базы на сервере "1С:Предприятие" (если база клиент-серверная) снята галочка "Блокировка регламентных заданий включена".

Шаг 6. Выгрузка в файловый вариант

Если база работает в клиент-серверном режиме, и транзакции СУБД продолжают блокировать таблицы при обновлении, выполним следующие действия:

  1. Выгрузим информационную базу в файл резервной копии (формат .dt).
  2. Создадим локальную файловую базу на SSD-накопителе и загрузим туда полученный файл.
  3. Произведем обновление конфигурации и выполнение всех фоновых задач в монопольном файловом режиме. Файловый вариант не подвержен блокировкам СУБД со стороны параллельных процессов.
  4. После успешного завершения всех этапов обновления выгрузим базу обратно в .dt и загрузим на сервер SQL.

Шаг 7. Принудительный запуск отложенного обновления информационной базы

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

Рассмотрим пример создания скрипта запуска (bat-файла) для принудительного обновления:


"C:\Program Files\1cv8\8.3.12.1685\bin\1cv8.exe" ENTERPRISE /F "C:\Put_K_Baze" /N "Администратор" /P "Пароль" /C ЗапуститьОбновлениеИнформационнойБазы

Параметр /C ЗапуститьОбновлениеИнформационнойБазы передается в систему и перехватывается кодом БСП, запуская обработчики обновления последовательно в один поток непосредственно в сеансе текущего пользователя, минуя механизмы планировщика фоновых заданий платформы. Это позволяет наглядно отслеживать прогресс выполнения каждого обработчика и сразу увидеть конкретную ошибку, если какой-то из них завершится аварийно.

Применяя данные подходы комплексно — очистку кэша, подбор стабильного релиза платформы, переход на современный интерфейс "Такси" и контроль регламентных заданий — мы сможем успешно преодолеть любые сложности при обновлении 1С:ЗУП 3.1.

← На главную