Обновление конфигурации 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) — это процесс, который часто требует от администратора или программиста не только механического запуска процедур в конфигураторе, но и глубокого понимания внутренних механизмов платформы 1С. Особую сложность традиционно вызывают переходы между минорными версиями, которые сопровождаются изменением режима совместимости платформы и глобальной реструктуризацией регистров.
Ярким примером является переход с релизов ветки 3.1.7 на 3.1.8. На первый взгляд простое обновление может обернуться сбоем: тестовое обновление проходит успешно, но после недели реальной работы пользователей и проведения документов выплаты зарплаты повторные попытки обновления вызывают критические ошибки. Более того, ошибки начинают воспроизводиться даже при попытке развернуть ранее работоспособную резервную копию (бэкап). Проанализируем, почему так происходит, и разберем по шагам эффективные методы решения этой проблемы.
Для того чтобы успешно победить ошибку, необходимо выяснить причины её возникновения. В процессе перехода на версию 3.1.8 разработчики 1С внедрили несколько важных изменений в архитектуру конфигурации и механизмы Библиотеки Стандартных Подсистем (БСП):
ЗарплатаКВыплате и блокировало реструктуризацию БД.8.3.12.1616) содержали критические уязвимости, связанные с утечкой памяти в рабочем процессе сервера rphost при выполнении длительных фоновых задач. Поскольку отложенное обновление БСП выполняется именно в фоновом режиме в режиме "1С:Предприятие", падение процесса rphost приводило к прерыванию транзакций и зависанию обновления в неопределенном статусе.Такси) на новых релизах платформы не гарантирует корректную работу форм. Разработчики перестали тестировать старый интерфейс, что приводило к невидимости важных элементов управления, таких как кнопки разблокировки регламентных заданий или завершения обновления.Рассмотрим комплексный алгоритм, который позволит обойти зависания и успешно завершить процедуру обновления конфигурации.
Если вы столкнулись с ситуацией, когда ошибки сыплются даже на восстановленной из бэкапа базе, первым делом необходимо очистить кэш. Для этого выполним следующие действия:
%userprofile%\AppData\Local\1C\1Cv8%userprofile%\AppData\Roaming\1C\1Cv8Использование нестабильных сборок платформы (таких как 8.3.11 или младшие сборки 8.3.12) гарантированно создает проблемы с фоновыми процессами. Настоятельно рекомендуем обновить технологическую платформу 1С:Предприятие до стабильных релизов ветки 8.3.12 (например, не ниже 8.3.12.1685) или сразу перейти на более современные и проверенные временем версии (например, стабильные релизы веток 8.3.14 или 8.3.15).
Работа в режиме совместимости с более старыми версиями платформы усложняет выполнение кода БСП. Перед запуском обновления обязательно переключим интерфейс программы на Такси. Это делается в режиме "1С:Предприятие" через меню Сервис - Параметры - Внешний вид. Выберем вариант "Такси (рекомендуется)" и перезапустим программу. В этом интерфейсе все формы обслуживания и мониторинга обновления будут отображаться корректно, предоставляя доступ к скрытым ранее кнопкам.
Если ошибка реструктуризации в процессе обновления указывает на регистры сведений или накопления, связанные с выплатой сотрудникам (например, ЗарплатаКВыплате или МестаВыплатыЗарплатыСотрудников), выполним обходной маневр:
Часто фоновые задания обновления блокируются системой безопасности БСП, особенно если база была скопирована или развернута из бэкапа. Система считает базу копией и во избежание нежелательной синхронизации блокирует работу с внешними ресурсами.
Для снятия блокировки перейдем в раздел Администрирование — Обслуживание. Найдем кнопку "Разблокировать работу с внешними ресурсами" (если она активна) и нажмем её. Также убедимся, что в свойствах базы на сервере "1С:Предприятие" (если база клиент-серверная) снята галочка "Блокировка регламентных заданий включена".
Если база работает в клиент-серверном режиме, и транзакции СУБД продолжают блокировать таблицы при обновлении, выполним следующие действия:
.dt)..dt и загрузим на сервер SQL.Если отложенное обновление зависло и не хочет запускаться в автоматическом фоновом режиме, мы можем инициировать его принудительное выполнение в монопольном режиме. Для этого можно запустить систему 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.