Перейти к содержимому
Tez Base

Регистрация изменений в плане обмена 1С: почему правка не встала в очередь

· Опубликовано:

Интеграции и обмены

Если правка справочника не доехала до другой базы, начинать стоит с одного вопроса: встала ли она в очередь узла. Между записью объекта и строкой в таблице изменений библиотека стандартных подсистем проводит изменение через пять ступеней, и на любой из них механизм может молча выйти: ошибки нет, объект записан, очередь пуста. Ниже все пять по порядку, по коду типовой УТ 11.5.22.67, с замером на стенде.

Сначала факт: есть ли изменение в очереди узла

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

ВЫБРАТЬ
	Изм.Ссылка КАК Объект,
	Изм.НомерСообщения КАК НомерСообщения
ИЗ
	Справочник.Контрагенты.Изменения КАК Изм
ГДЕ
	Изм.Узел = &Узел

Один объект проверяется одной строкой: ПланыОбмена.ИзменениеЗарегистрировано(Узел, Ссылка). Посмотреть и поправить очередь без кода можно штатной обработкой БСП “Регистрация изменений для обмена данными”.

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

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

Пять ступеней от записи объекта до очереди

СтупеньЧто решаетГде смотреть
1. Подписка на событиевызывается ли механизм для этого типаисточник подписки в конфигурации
2. Синхронизация данныхработает ли регистрация в базе вообщефункциональная опция и узлы плана
3. Выборочная регистрациясчитается ли эта запись изменениемрежим плана обмена
4. Авторегистрациякто регистрирует: платформа или правиласостав плана обмена
5. Правила регистрациина какие узлы уйдёт изменениезагруженные правила плана

1. Подписка на событие

Механизм запускается из подписки на событие “Перед записью”. В УТ 11.5 для плана обмена с Розницей это подписка ОбменДаннымиОбменУправлениеТорговлейРозницаЗарегистрироватьИзменение. Если тип объекта не входит в её источник, остальные ступени не проверяются вовсе. Какие подписки висят на нужном типе, выводит короткий код по метаданным из разбора о том, кто записывает реквизит.

2. Синхронизация данных

Регистрация работает, только когда включена функциональная опция ИспользоватьСинхронизациюДанных и в плане есть хотя бы один узел, кроме своего, помеченных на удаление и самого отправителя изменения. Проверяется это вызовом ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных"). В базе, где синхронизацию ни разу не настраивали мастером, опция выключена, и механизм не регистрирует ничего, есть у объекта правила или нет.

3. Выборочная регистрация

Даже при работающей регистрации не каждая запись объекта считается изменением. Решает режим выборочной регистрации в настройках плана обмена:

  • “Отключен”: изменением считается любая запись;
  • “Модифицированность”: смотрят на признак модифицированности объекта; этот режим БСП подставляет сама, если план настройку не описал;
  • “Согласно правилам XML”: сравнивают значения реквизитов до и после записи, а список реквизитов берут из правил конвертации свойств. Правка реквизита, которого в этом списке нет, изменением не считается. Если строк объекта в правилах нет вовсе, фильтра нет, и изменением считается любая запись.

При любом режиме регистрируются новые объекты, наборы записей регистров, физическое удаление и объекты, записанные самим обменом. У документа изменением считается и смена признака проведения.

4. Авторегистрация

У каждого элемента состава плана обмена стоит признак авторегистрации. Разрешена, и объект регистрирует платформа. Запрещена, и механизм выполняет правила регистрации. В типовых правилах УТ - Розница авторегистрация выключена у всех 75 элементов состава: регистрацией там управляют правила.

5. Правила регистрации

Есть у объекта свои правила, и узлы отбираются по их условиям: по свойствам объекта и по реквизитам узла. Правил нет, и в коде БСП срабатывает отдельная ветка с комментарием “Правила регистрации не заданы”: объект регистрируется на всех узлах плана, кроме предопределённого. В типовых правилах УТ - Розница своего правила нет у 21 объекта из 75, среди них контрагенты, характеристики номенклатуры, штрихкоды и пользователи.

Что показал стенд

Типовая УТ 11.5.22.67, план обмена с Розницей, правила регистрации загружены из макета, один узел, синхронизация включена, режим выборочной регистрации “Модифицированность”. Очередь узла перед замером очистили, в каждом объекте правили одно строковое поле.

ОбъектСвоё правило регистрацииСтрок в очереди узла после правки
Контрагентынет1
Номенклатураесть0

Контрагента без правила механизм поставил в очередь, как и написано в коде. Номенклатуру в очередь пустого узла не пустило её собственное правило; почему именно, мы не разбирали. У объекта со своим правилом отказ ищут в условиях отбора.

Что видно по файлу правил, а что нет

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

Если изменение в очереди есть, а в приёмнике старое, смотрят правила конвертации: выключенное правило выгрузки (объекты вида не уходят вовсе), правило без способа поиска (объект может создаваться заново), признак “не замещать” (исправление не перезапишет найденный объект) и обработчики, которые могут отменить выгрузку или подменить значение.

Прочитать это в файле на пару мегабайт без Конвертации данных помогает разбор правил обмена: он понимает правила конвертации и правила регистрации и выносит отдельным списком объекты состава без своего правила регистрации. Сама обработка лежит на Инфостарте, 10 SM.

Если отбор всё-таки нужен

Объект без своего правила уходит на все узлы плана. При двух-трёх узлах разницы не видно, а в сети на десятки магазинов правка одного контрагента поедет в каждый, и условие вроде “только своя организация” на неё не действует: отбирать нечем. Отбор появляется вместе со своим правилом регистрации, и заводить его лучше до того, как узлов станет много.

Могу починить это за вас

Связываем 1С с чем угодно: другими базами 1С, сайтами, CRM, банками, госсистемами. Чиним обмены, которые "отваливаются" и копят очереди.

Стоимость
450 000 - 600 000 ₸ТЗ и диагностика, без налогов; типовая задача закрывается в тот же срок, подсистема "ОбменПоHTTP" под ключ - по смете единым счётом

Рано писать? Измерьте сами

Правила обмена на два мегабайта, а Конвертации данных под рукой нет

Открыть обработку

INFOSTART TECH EVENT 2026: конференция для 1с-специалистов. если собираетесь, регистрируйтесь по нашей ссылке. Регистрация →

Читайте также

Обмен 1С с внешним сервисом падает по таймауту: сервис занят или лежит, и когда повтор создаёт дубль

Снаружи занятый сервис и лежащий выглядят одинаково: запрос висит, обмен падает по таймауту. Разбираем, как различить их тремя замерами, почему читающая проверка живости врёт, какой таймаут у HTTPСоединение по умолчанию и почему повтор создания без проверки состояния плодит дубли. Числа из ночной синхронизации, которая четыре ночи подряд укладывала принимающий сервис.

В карточке 1С одно значение, в выгрузке другое: кто пишет это поле

Значение в карточке расходится с выгрузкой, а поиск по конфигурации находит писателя, который такое значение поставить не может. Разбираем порядок от данных к коду на случае, где 88 481 запись появилась без известного автора. С запросом на типовой подсистеме свойств и проверкой подписок перед массовой правкой.

1С:Шина в продуктиве: что ломается на длинном аптайме и что мониторить

Один узел, четыре ядра, около миллиона сообщений в сутки между десятком систем. За год набралось пять дефектов, которые на коротком стенде невидимы, три инцидента с данными при статусе "доставлено" и один случай, когда соврал собственный мониторинг. Здесь всё с цифрами, методикой подсчёта и готовым набором метрик.