При обновлении конфигурации «Бухгалтерия государственного учреждения» (БГУ 1.0) с релиза 1.0.41 на 1.0.42 многие сталкиваются с ситуацией, когда процесс в режиме «1С:Предприятие» останавливается на шаге «выполнение обновления информационной базы» или длительно зависает при загрузке бюджетных классификаторов. Кроме того, после последующего тестирования и исправления может возникнуть системный сбой планов обмена вида «Этот Узел: по причине несколько записей». Разберем по шагам, почему возникают эти проблемы и какими методами их можно устранить.
Проанализируем техническую сторону перехода на линейку 1.0.42. В этих версиях кардинально переработаны структура классификаторов (КПС) и план счетов в соответствии с регламентирующими требованиями. При первом старте базы после обновления конфигурации метаданных запускаются фоновые процедуры:
Прежде чем принудительно завершать сеанс, убедимся, что процесс действительно завис, а не производит запись данных в таблицы базы. Для этого выполним следующие действия:
1cv8.exe или 1cv8c.exe.Если обновление в файловом режиме занимает недопустимо много времени (от 4 до 8 часов), используем проверенные практики оптимизации:
%TEMP% и %TMP% переносим на локальный твердотельный накопитель (SSD)..dt, загрузить ее на временный сервер СУБД (MS SQL Server или PostgreSQL), запустить пользовательский режим для прохождения всех внутренних обработчиков обновления и после этого вернуть базу обратно в файловый формат. Это сокращает время обновления с нескольких часов до 20–30 минут.После проведения процедуры «Тестирование и исправление» при старте информационной базы может появиться блокирующая ошибка взаимодействия с узлом плана обмена, даже если распределенная база (РИБ) в организации не используется. Выясним причину этой неполадки.
В конфигурациях БГУ задействованы механизмы «Библиотеки стандартных подсистем» (БСП). В процессе реструктуризации на устаревших версиях платформы нарушается признак уникальности предопределенного узла плана обмена: создаются дублирующие системные записи, либо у нескольких строк ошибочно взводится признак текущей информационной базы.
Для исправления этой коллизии программно переопределим главный узел и исключим дублирование. Создадим внешнюю обработку и выполним следующий код:
ВыборкаУзлов = ПланыОбмена.ОбменУправлениеПредприятием.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
Если УзелОбъект.Ссылка = ПланыОбмена.ОбменУправлениеПредприятием.ЭтотУзел() Тогда
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
КонецЕсли;
КонецЦикла;
Если доступ к конкретному составу планов обмена ограничен, выполним удаление фантомных записей через прямой обход метаданных:
Для Каждого МетаПлан Из Метаданные.ПланыОбмена Цикл
МенеджерПлана = ПланыОбмена[МетаПлан.Имя];
ТекущийУзел = МенеджерПлана.ЭтотУзел();
Если ТекущийУзел.Пустая() Тогда
Продолжить;
КонецЕсли;
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
КонецЦикла;
Платформа версии 8.3.6.1977 имеет зарегистрированные ошибки при парсинге больших XML-пакетов бюджетной классификации и реструктуризации таблиц планов обмена. Для стабильной работы конфигураций БГУ релиза 1.0.42 и корректного завершения процедур обновления необходимо выполнить переход на более актуальные версии платформы ветки 8.3.8 или 8.3.9. После установки обновленной версии платформы ошибка с узлом обмена исчезает штатно без ручной модификации таблиц.