Петли обмена в 1С: эхо-пакеты, РИБ и CD3 - три боевых разбора

25.09.26

Интеграция - Перенос данных 1C

Журнал обмена пишет «успешно», а очередь не пустеет: разбираем эхо архивного каталога, коллизию кодов узлов после копии базы и правило CD3, которое при каждой загрузке снова регистрирует регистр сведений. Таблица симптомов, запросы к служебным таблицам и профилактика без отключения плана обмена.

Петли обмена в 1С: когда пакет ходит по кругу, а не по сети

Успешная выгрузка в журнале обмена не гарантирует, что на приёме не включилась повторная регистрация изменений. Ниже - таблица типовых симптомов и три разобранных случая из EnterpriseData и РИБ: эхо архивного каталога, коллизия кодов узлов после копии базы и правило CD3, которое перезаписывает регистр сведений при каждой загрузке.

 

Таблица симптомов

Симптом Где смотреть Пример Частая причина
Один и тот же GUID документа «ЗаказКлиента» уходит каждые N минут Журнал регистрации, исходящая очередь Номер 00001427, интервал 15 минут Эхо входящего пакета с того же узла
Счётчик исходящих записей растёт без правок пользователя Регистр «Изменения для обмена», отбор по узлу Например, 48 повторов за сутки Эхо-пакет или повторная регистрация после загрузки
Номер сообщения растёт, объём данных в пакете почти не меняется Журнал регистрации, событие «Обмен данными» Размер XML около 12 КБ при тысячах строк в ИБ Гоняется один регистратор без новых реквизитов
Длительность ExchangeLoad стабильна, CPU rphost скачет Технологический журнал, EXCP и DBMSSQL Например, 900 мс на загрузку, 40% CPU Конвертация отрабатывает полный цикл записи
Коллизия: два узла с одним кодом в плане обмена Администрирование планов обмена Дублирующий префикс «СК» после копии ИБ Слияние копий без перенумерации узлов
После ночного обмена расходится остаток по регистру «ТоварыНаСкладах» Отчёт по регистру, сравнение узлов Расхождение 3 единицы по одной номенклатуре Двойное применение одного движения
В CD3 в логе правила «После загрузки» срабатывает дважды на один объект Журнал конвертации, идентификатор пакета Два одинаковых ObjectId подряд Обработчик не проверяет источник изменения
Фоновое «Выполнить обмен» не падает, но очередь не убывает Регламентное задание, монитор очереди Около 2000 записей без движения 6 часов Зацикливание регистрации изменений

Таблица симптомов: где смотреть и типичная причина петли

Таблица симптомов: где смотреть и типичная причина петли

 

Случай 1: эхо исходящего пакета на узле-получателе

На узле «Склад_Юг» включён обмен EnterpriseData с центром. После обновления типовой доработки в модуле менеджера обмена исчезла проверка «узел-источник сообщения». Симптом из таблицы про GUID «ЗаказКлиента» с номером 00001427 проявился через два часа после первой успешной выгрузки.

Первая гипотеза связывала проблему с таймаутом HTTP-шины. Её не подтвердили: в технологическом журнале не было обрывов сессии, только повторяющиеся пары событий загрузки и выгрузки с одним и тем же идентификатором сообщения в пределах одного сеанса обмена.

// фрагмент технологического журнала (пример)
26:41:03.012-0,EXCP,2,process=rphost,p:12345,t:67890,Event=ExchangeLoad,Data=MessageId={A1B2C3D4-...}
26:41:03.890-0,EXCP,2,process=rphost,p:12345,t:67890,Event=ExchangeSave,Data=MessageId={A1B2C3D4-...}
26:56:11.004-0,EXCP,2,process=rphost,p:12345,t:67890,Event=ExchangeLoad,Data=MessageId={A1B2C3D4-...}

Улика оказалась в журнале регистрации: событие «Обмен данными. Загрузка» фиксировало тот же пакет, что минутой ранее ушёл как «Выгрузка» с этого же узла после зеркальной маршрутизации через промежуточный каталог, куда центр складывал копию для архива. Получатель трактовал архивную копию как новое входящее сообщение, правило «После загрузки» выполняло запись документа, а платформа снова регистрировала изменение для плана обмена.

Дополнительно проверили гипотезу о «битой» ссылке в документе: пользователи не фиксировали ошибок проведения, а сравнение XML двух соседних выгрузок показало идентичные реквизиты шапки и табличной части. Значит, конвертация не добавляла новых данных, а только инициировала платформенную регистрацию. Именно этот признак отличает петлю от легитимного повторного обмена, когда, например, меняют ставку НДС и документ должен уехать второй раз.

На стороне СУБД мониторинг блокировок не показывал эскалаций; узкое место было в прикладном коде и в маршруте каталогов. После правки маршрутизации архив перестал попадать в очередь входящих, а счётчик исходящих записей для проблемного GUID обнулился примерно через один регламентный цикл (в той базе интервал был 15 минут).

Развязка: отключили чтение архивного каталога на филиале, вернули проверку идентификатора узла-отправителя в обработчике входящего сообщения и добавили отбор «не регистрировать, если изменение пришло из текущего сеанса обмена» для регистраторов документов, которые не должны уезжать обратно в центр.

 

Случай 2: коллизия узлов РИБ после восстановления копии

Вторая база, схема РИБ: три узла, обмен файлами. После восстановления тестовой копии в продуктивный контур у двух узлов совпал префикс номера сообщения и код в справочнике «Узлы информационной базы». Симптом из таблицы про стабильный размер XML проявился как «пустые» пакеты с одним документом «ПеремещениеТоваров».

// журнал регистрации (пример строки)
Обмен данными. Выгрузка для узла ЦентральныйOffice
Размер сообщения: 11854
Количество объектов: 1
Узел отправитель: Склад_Север (код SK1)
Узел получатель: Склад_Север (код SK1)

Отправитель и получатель в одной строке журнала указали на коллизию метаданных, а не на сбой сети. Конвертация данных 3 при разборе пакета создавала объект на «своём» узле и вызывала стандартную регистрацию для всех узлов, кроме текущего, но из-за дублирующего кода текущий узел определялся неверно, и изменение снова попадало в исходящую очередь того же узла.

Исправленный фрагмент обработчика после загрузки (упрощённо, логика проекта):

Процедура ПослеЗагрузкиОбъекта(Объект, УзелОбмена, Отказ)
	Если Объект.ОбменДанными.Загрузка Тогда
		Объект.ОбменДанными.Загрузка = Ложь;
	КонецЕсли;
	УзелИсточник = ПараметрыСеанса.УзелОбменаЗагрузки; // задаётся до записи
	Если УзелИсточник = Неопределено Или УзелИсточник = УзелОбмена Тогда
		Объект.ДополнительныеСвойства.Вставить("НеРегистрироватьИзменения", Истина);
	КонецЕсли;
КонецПроцедуры

Для РИБ важно не путать этот сценарий с отставанием номера принятого сообщения: при отставании в журнале обычно видны ошибки разбора или отказ по версии формата, а здесь обмен завершался штатно. Сверка справочника узлов показала, что тестовая копия принесла в продуктив элемент с тем же наименованием «Склад_Север», но другим внутренним идентификатором ссылочного типа, из-за чего интерфейс администратора выглядел «нормально», а механизм обмена опирался на совпадающий код SK1.

После перенумерации и одноразовой очистки зависших записей в регистре «Изменения для обмена» с отбором по регистратору «ПеремещениеТоваров» пакеты снова стали включать смешанный состав объектов, а средний размер сообщения вырос до ожидаемых сотен килобайт в часы пик.

Дополнительно перенумеровали коды узлов в справочнике и выполнили синхронизацию номеров принятых сообщений по регламенту ИТС для РИБ, иначе очередь продолжала бы отдавать старые идентификаторы.

 

Случай 3: правило CD3 и повторная запись регистра сведений

Третий контур: обмен EnterpriseData между ERP и отдельной базой учёта затрат. В правилах конвертации для документа «ОтражениеЗарплатыВФинансовомУчёте» в обработчике «После загрузки» вызывалось заполнение регистра сведений «НастройкиРаспределенияЗатрат» с принудительной записью набора. Каждая запись набора регистрировала изменения для всех узлов плана, хотя сам документ уже был помечен как принятый извне.

-- пример запроса для поиска «горячего» регистратора (СУБД)
SELECT TOP 20
 _NodeID,
 _RecorderRRef,
 COUNT(*) AS Cnt
FROM dbo._1SChanged
WHERE _NodeID = 0x00000000000000000000000000000005
GROUP BY _NodeID, _RecorderRRef
ORDER BY Cnt DESC;

Аналогичная логика встречается в типовых правилах, если их не пересмотреть после обновления конфигурации: достаточно одного регистра сведений с независимым набором записей, который при записи всегда вызывает глобальную регистрацию. На ERP это проявляется тише, чем на документе, потому что пользователи не открывают форму регистра, а очередь обмена растёт «сама».

Контрольная точка для таких случаев: сразу после загрузки одного тестового документа выполнить запрос к служебным таблицам и убедиться, что число строк по регистратору не увеличилось, если документ пришёл из другого узла. Это быстрее, чем ждать, пока регламентное задание накопит тысячи однотипных сообщений.

Запрос к служебным таблицам регистрации изменений показал доминирование одного регистратора сведений, хотя пользователи не открывали соответствующий документ. Убрали запись набора из события загрузки, перенесли пересчёт в отдельное регламентное задание с проверкой «только если документ изменён локально», и петля исчезла без отключения всего плана обмена.

Отдельно отметим сценарий с частичной выгрузкой по отбору: в таблице симптомов он проявляется как смесь «больших» и «малых» пакетов в один день. Если малый пакет повторяется, отбор уже не при чём, и расследование возвращается к регистрации на приёме.

 

Граничные случаи

  • Пустой отбор по организации в плане обмена, но в CD3 жёстко прошита одна организация. Последствие: часть документов уезжает, часть регистрируется бесконечно на узле, где организация не совпадает с правилом.
  • Ручная регистрация изменений в обработке «Зарегистрировать изменения» после аварийного восстановления. Последствие: в очередь попадают объекты, уже совпадающие с эталоном центра, и каждый цикл обмена перезаписывает их без видимого эффекта для пользователя.
  • Два регламентных задания обмена с перекрывающимся расписанием. Последствие: второе задание стартует до завершения регистрации изменений первого, появляются дубли сообщений с разными номерами, но одним телом.
  • Отключена блокировка данных на время загрузки в тестовом контуре. Последствие: пользователь успевает изменить документ в момент конвертации, и платформа регистрирует уже другую версию, которую снова принимают как входящую.
  • Удалённый объект в одном узле, ссылка восстановлена загрузкой из другого. Последствие: коллизия идентификаторов и повторная регистрация помеченного на удаление элемента, пока не сработает конфликт версий.
  • Обновление типовой без повторного сравнения правил CD3. Последствие: в новой версии добавлено стандартное действие «Записать» в цепочке загрузки, и кастомный запрет регистрации оказывается ниже по приоритету.

 

Профилактика

  • Раз в неделю снимать TOP регистраторов из служебных таблиц регистрации изменений по каждому проблемному узлу и сравнивать с журналом обмена за тот же интервал.
  • Фиксировать в журнале регистрации пару «идентификатор сообщения + узел-источник» на этапе загрузки; без источника расследование эхо-пакетов растягивается на дни.
  • После любого восстановления ИБ из копии проверять уникальность кодов узлов и номеров сообщений до включения регламентного обмена.
  • В правилах CD3 запрещать безусловную запись связанных регистров в обработчиках «После загрузки»; переносить тяжёлую логику в отложенные задания с явным флагом локального изменения.
  • Для EnterpriseData держать один канал доставки на узел; архивные каталоги не должны совпадать с рабочими входящими.
  • Нагрузочный тест обмена: один искусственный документ, три цикла «выгрузка-загрузка», контроль что запись в «Изменения для обмена» не появляется после третьего цикла.
  • Перед включением нового узла EnterpriseData зафиксировать эталонный снимок: количество записей в регистре изменений, TOP регистратор, средний размер последних десяти сообщений; после первого суточного цикла сравнение с эталоном часто выявляет петлю раньше, чем пользователи заметят расхождение в отчётах.
  • Для CD3 вести лист соответствия: какие обработчики «После загрузки» трогают регистры и документы с движениями; при обновлении типовой сверять его с diff правил конвертации, даже если формально обмен «не менялся».

 

До/после: архивный каталог отделён от входящих, TOP регистраторов сходится

До/после: архивный каталог отделён от входящих, TOP регистраторов сходится

 

Три правила на будущее

  1. Успешный статус в журнале обмена доказывает только доставку пакета, но не отсутствие повторной регистрации на стороне приёма; петлю ищут по паре событий Load/Save и по регистратору в служебных таблицах.
  2. Коллизия кодов узлов РИБ после копирования баз выглядит как «мелкий XML каждые N минут», а не как ошибка сети; первым делом сверяют отправителя и получателя в одной строке журнала.
  3. Правила CD3, которые пишут регистры в «После загрузки», масштабируют зацикливание на весь план обмена; изоляция такой логики важнее очередной оптимизации SQL на выгрузке.

Пример кода проверки очереди и отчёта по «горячим» регистраторам планируется вынести в отдельную мини-обработку для раздела «Разработка»; в бою достаточно описанных запросов и журналов, если смотреть на них вместе, а не по отдельности.

Вступайте в нашу телеграмм-группу Инфостарт

обмен данными EnterpriseData РИБ конвертация данных 3 регистрация изменений технологический журнал администрирование 1С петля обмена 1С эхо пакет EnterpriseData регистр изменения для обмена ExchangeLoad ExchangeSave коллизия узлов РИБ правила CD3 после загрузки _1SChanged регистратор

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    191579    376    295    

432

Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    193539    468    309    

466

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    163995    997    329    

488

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

50200 руб.

24.04.2015    210204    182    253    

300

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    86821    233    182    

169

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    36314    265    68    

202

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Системный администратор Разработчик Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Платные (руб)

Обработка не только формирует начальные остатки по всем счетам на нужную дату (экономя время на свёртке базы БП 3), но и полностью переносит справочные данные и документы за заданный период. Гибкая настройка включает фильтр по организациям и множество параметров выгрузки. Работайте в удобном формате: выполните однократный полный переход или настройте регулярную догрузку только новых документов из БП 3 в БП 3.0. Интеграция правил конвертации в план обмена гарантирует точную выгрузку исключительно зарегистрированных объектов.

70760 руб.

10.04.2026    1278    3    8    

2

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

135530 руб.

11.06.2015    63652    39    20    

51
Для отправки сообщения требуется регистрация/авторизация