При обновлении распределенных информационных баз (РИБ) в конфигурации 1С:Розница 2.2 (и других решениях на платформе 1С, использующих Библиотеку стандартных подсистем) специалисты часто сталкиваются с неприятным сбоем. После успешного обновления Центрального узла попытка принять изменения в подчиненном (периферийном) узле прерывается ошибкой на этапе загрузки сообщения обмена (часто процесс зависает или падает на 73%).
В системном журнале и на экране появляется пугающий стек вызовов, указывающий на процедуру ЗагрузитьСообщениеПередОбновлениемИнформационнойБазы в модуле ОбменДаннымиСервер. Давайте подробно проанализируем причины этой неисправности и разберем по шагам проверенные методы ее устранения.
Когда мы обновляем конфигурацию центральной базы, платформа формирует файл обмена, содержащий как измененную структуру метаданных (новую конфигурацию), так и файлы данных. Приемный узел РИБ должен сначала прочитать это сообщение, применить новую конфигурацию базы данных «на лету» и только после этого запустить обработчики обновления данных в режиме «Предприятие».
Если на этапе сопоставления метаданных или применения предварительных настроек происходит критическая ошибка, система откатывает транзакцию и выводит стандартное системное исключение. Причиной сбоя могут быть конфликты расширений, рассинхронизация системных идентификаторов, различие версий платформы (включая разрядность 32/64 бит) или повреждение кэша конфигурации.
Рассмотрим последовательно ключевые методики решения этой проблемы — от простых организационных действий до глубокого анализа системных файлов.
Как показывает практика практикующих администраторов 1С, это одно из самых частых и эффективных решений. Из-за разницы в разрядности операционных систем и самой платформы 1С на главном сервере и на кассовом компьютере (например, центральный сервер работает на 64-битной платформе, а на торговой точке установлена 32-битная версия клиента) могут возникать микро-конфликты при десериализации XML-сообщений обмена.
Выполним следующие шаги для исправления ситуации:
%userprofile%\AppData\Local\1C\1Cv8 и %userprofile%\AppData\Roaming\1C\1Cv8 на проблемном компьютере. Перед очисткой обязательно завершите все процессы 1С.Стандартное сообщение об ошибке обмена слишком абстрактно. Чтобы понять, какой именно объект мешает обновлению, нам необходимо проанализировать ЖурналРегистрации периферийной базы.
Сделаем это по шагам:
В современных конфигурациях 1С активно используются автоматические патчи (исправления) от компании 1С и кастомные расширения. Если состав расширений в главном и подчиненном узлах различается, процесс обновления РИБ заблокируется.
Рассмотрим схему обхода этой блокировки:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F"ПутьКВашейБазе" /ResetMasterNode
ПланыОбмена.УстановитьГлавныйУзел(ПланыОбмена.НайтиПоКоду("КодГлавногоУзла"));
Если конфигурация обновилась, но подчиненный узел не может сопоставить новые объекты со старыми системными идентификаторами, обновление завершится ошибкой. Нам нужно принудительно обновить этот справочник в главном узле и передать его в периферийную базу.
Разберем, как это сделать:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /F"ПутьКЦентральнойБазе" /C ЗапуститьОбновлениеИнформационнойБазы
ИдентификаторыОбъектовМетаданных, нажмите правой кнопкой мыши и выберите пункт «Зарегистрировать все элементы справочника» к выгрузке для проблемного узла РИБ.Часто сбои происходят из-за нестабильного сетевого соединения, медленных дисков на кассовом компьютере или блокировок со стороны антивирусного ПО. Если узел РИБ физически находится в магазине, целесообразно перенести его копию на мощный рабочий компьютер администратора (желательно туда же, где развернут Центральный узел).
Выполните этот процесс по следующей схеме:
1Cv8.1CD) базы в магазине и скопируйте ее на свой рабочий ПК.Если ни один из способов не помог обойти ошибку применения метаданных, остается радикальный, но стопроцентно рабочий вариант — перезапуск РИБ путем создания нового начального образа. Для автоматизации этой задачи можно использовать обработку для группового создания начальных образов узлов РИБ.
Многие администраторы опасаются этого метода из-за необходимости повторной настройки торгового оборудования (кассы ККМ, эквайринговые терминалы, сканеры штрихкодов). Выясним, почему этот страх преувеличен:
Важно знать: все физические драйверы торгового оборудования, а также настройки COM-портов и сетевых адресов хранятся непосредственно в операционной системе компьютера (в реестре, системных файлах или файлах настроек драйвера ККМ), а не внутри базы данных 1С. В самой базе данных хранятся лишь логические ссылки на эти устройства в справочнике «Подключаемое оборудование». Для коррекции этих ссылок после восстановления РИБ подойдёт обработка перезаписи идентификаторов подключаемого оборудования.
Поэтому алгоритм выглядит следующим образом:
Мы подробно рассмотрели все возможные пути решения проблемы с обновлением РИБ в 1С:Розница. Рекомендуем всегда начинать с наименее инвазивных методов — очистки кэша и анализа журнала регистрации, и только при их неэффективности переходить к созданию нового начального образа.