Обновление конфигурации «1С:Бухгалтерия предприятия 3.0» — стандартная процедура, которая, однако, может преподнести неприятные сюрпризы администраторам распределенных информационных баз (РИБ). Довольно распространенной является ситуация, когда после успешного наката обновления на главный и подчиненный узлы синхронизация данных внезапно прекращается. При этом система может выдавать неочевидные ошибки в Журнале регистрации, сообщать о неверных номерах сообщений или вовсе переводить узлы обмена в статус «Не настроено».
В этой статье мы подробно разберем, почему ломается обмен РИБ после обновления БП 3.0, проанализируем основные причины этого сбоя и пошагово рассмотрим методы восстановления штатной работы синхронизации.
Современные конфигурации 1С, построенные на базе Библиотеки стандартных подсистем (БСП), обладают встроенным механизмом защиты от случайного запуска копий баз. Если после обновления система посчитала, что база была скопирована или перенесена (изменился сетевой путь, имя сервера или строка подключения), она автоматически блокирует все внешние ресурсы.
При этом блокируются регламентные задания, отправка и получение почты, а также транспортные механизмы РИБ. В пользовательском интерфейсе вверху окна может появиться предупреждающая надпись «Копия».
Для того чтобы снять эту блокировку и восстановить обмен, выполним следующие шаги:
После этого система снимет защиту, и фоновые процессы обмена снова смогут отправлять и принимать файлы.
При обновлении конфигурации «1С:Бухгалтерия предприятия» на новые релизы очень часто меняются правила регистрации объектов, структура служебных регистров и метаданные обмена. В этот момент запускаются так называемые отложенные обработчики обновления, которые выполняются в фоновом режиме.
Пока эти обработчики не завершат свою работу на 100%, конфигурация может принудительно блокировать регистрацию изменений и выгрузку данных, чтобы не допустить передачу некорректных структур в подчиненные узлы. Именно поэтому узлы РИБ могут внезапно отобразиться со статусом «Не настроено».
Проанализируем состояние обработчиков обновления по следующему алгоритму:
Иногда после обновления конфигурация «забывает» настройки путей обмена (например, сетевые папки, FTP или параметры подключения к облаку), и при попытке зайти в узел обмена открывается интерактивный помощник. Если на третьем шаге этого мастера (где программа предлагает создать начальный образ) просто закрыть окно, настройки транспорта не запишутся, и узел так и останется в статусе «Не настроено».
Чтобы исправить эту ситуацию, выполним правильную настройку:
Когда обмен прерывается в процессе обновления конфигурации, файлы сообщений могут приходить с некорректными номерами. Каждое сообщение обмена содержит уникальный порядковый номер. Если подчиненный узел ожидает сообщение № 15, а из-за сбоя или повторной отправки ему приходит сообщение № 14 или № 16, система заблокирует чтение данных.
Для устранения этой проблемы нам потребуется вручную выровнять номера принятых и отправленных сообщений в обеих базах (главной и периферийной). Рассмотрим, как это сделать:
Номер отправленного сообщения в главной базе должно строго соответствовать значению Номер принятого сообщения в подчиненной базе (и наоборот). При необходимости мы можем временно сбросить оба счетчика в значение 0, чтобы начать нумерацию пакетов заново с «чистого листа».Если штатные методы не помогают, структура метаданных обмена повреждена, а файлы обмена упорно отказываются загружаться в подчиненный узел, мы можем прибегнуть к ручному обновлению базы через ее временную «отвязку» от главного узла.
Рассмотрим этот процесс по шагам:
.cf).
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После выполнения этой команды база станет автономной..cf главного узла в подчиненную базу (меню Конфигурация — Загрузить конфигурацию из файла...) и обновим конфигурацию базы данных (клавиша F7).
// Сначала найдем ссылку на нужный узел в плане обмена
СсылкаНаЦентр = ПланыОбмена.[ИмяВашегоПланаОбмена].НайтиПоКоду("[КодГлавногоУзла]");
ПланыОбмена.УстановитьГлавныйУзел(СсылкаНаЦентр);
0, как было описано в шаге 4, и запустим стандартный сеанс синхронизации.Использование этого комплексного подхода гарантированно решает проблемы с упавшим обменом РИБ после обновления конфигурации 1С:Бухгалтерия и позволяет избежать длительного простоя в работе филиалов компании.