Переход с конфигурации «Бухгалтерия предприятия» версии ПРОФ на КОРП — это не просто формальное обновление номера версии. Это глубокая техническая трансформация структуры данных вашей базы. Часто системные администраторы и программисты сталкиваются с тем, что обновление «замирает» на отметке 11% или 12%. В этой статье мы подробно разберем, что происходит «под капотом» программы в этот момент, как диагностировать состояние процесса и как бороться с возникающими ошибками блокировок.
Проанализируем архитектурные различия между версиями ПРОФ и КОРП. Основное отличие КОРП — наличие сквозного учета по подразделениям на большинстве счетов бухгалтерского учета. Когда в режиме «1С:Предприятие» запускается обработчик обновления, на этапе 11% система начинает масштабную реструктуризацию Плана счетов.
В этот момент выполняются следующие действия:
Рассмотрим ситуацию, когда индикатор прогресса не движется. Это не всегда означает «зависание». Рассмотрим способы проверки активности процесса.
Первым делом нам необходимо убедиться, что система производит запись данных. Откроем Журнал регистрации и настроим фильтр по текущему времени. Если мы видим события с типом «Данные. Изменение» или сообщения от фоновых заданий, связанных с функциональностью программы (например, «План счетов. План счетов бухгалтерского учета»), значит, процесс идет.
Как отмечалось в обсуждении, сообщения вида:
Функциональность программы. На счете 71 отключен учет по подразделениям
— это нормальная часть процесса подготовки данных. Система последовательно обрабатывает каждый счет.
Если визуальный индикатор в 1С стоит на месте, проанализируем нагрузку на сервере баз данных. Откроем SQL Server Management Studio (SSMS) и воспользуемся «Монитором активности» (Activity Monitor). Если процесс sqlservr.exe активно потребляет ресурсы процессора и совершает операции чтения/записи (I/O), значит, база данных занята перестроением индексов и таблиц. Прерывать процесс в этот момент категорически нельзя, так как это приведет к разрушению целостности базы данных.
В процессе обновления часто возникает критическая ошибка, связанная с разделенным доступом. Рассмотрим пример такой ошибки:
{РегистрСведений.ПараметрыРаботыПрограммы.МодульМенеджера(1159)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Конфликт блокировок при выполнении транзакции:
Ошибка блокировки области данных
по причине:
Ошибка разделенного доступа к базе данных
База данных заблокирована: компьютер: BUH, пользователь: Администратор, сеанс: 51
Выясним причину этой ситуации. При переходе на КОРП платформа пытается одновременно выполнить несколько действий:
Как этого избежать:
Перед запуском обновления в режиме «Предприятие» крайне важно не просто выгнать пользователей, но и полностью отключить регламентные задания. Это можно сделать двумя способами:
Однако, как показывает практика, иногда обновление «спотыкается» именно о включенную блокировку, если какой-то внутренний механизм БСП (Библиотеки стандартных подсистем) пытается запустить обязательное фоновое задание. Если вы раз за разом получаете ошибку на 11%, попробуйте на время прохождения этого этапа разрешить выполнение регламентных заданий, но убедитесь, что в базе нет никого, кроме вашего сеанса обновления.
Иногда процесс прерывается ошибкой HRESULT=80004005 с разрывом соединения. Проанализируем, почему это происходит именно при переходе на КОРП:
1. Тайм-аут соединения: Операция добавления колонок в огромные таблицы проводок занимает больше времени, чем разрешено настройками SQL-сервера или параметром SessionTimeout в 1С. Увеличьте время ожидания выполнения запроса в настройках СУБД.
2. Переполнение лога транзакций (.LDF): При реструктуризации плана счетов объем лога может вырасти в несколько раз. Убедитесь, что на диске достаточно места и для файла базы данных, и для лога транзакций. Рекомендуется перевести модель восстановления базы в Simple на время обновления.
Выясним, как понять, что критический этап пройден. Часто после долгого ожидания на 11% счетчик мгновенно прыгает до 89% или даже 100%. Это означает, что самые тяжелые операции по изменению структуры таблиц завершены, и остались лишь косметические изменения констант.
После успешного завершения перехода выполните следующие действия:
Подведем итог: переход с ПРОФ на КОРП — это длительный процесс, требующий терпения. Главное — обеспечить стабильность работы сервера, отсутствие лишних сеансов и достаточный объем дискового пространства для временных файлов SQL-сервера.