Mazmunga o'tish
Tez Base

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

· Chop etilgan:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При любом режиме регистрируются новые объекты, наборы записей регистров, физическое удаление и объекты, записанные самим обменом. У документа изменением считается и смена признака проведения. Поэтому план обмена с регистром в составе ловит даже запись набора записей мимо документа. Если данные уходят во внешнее хранилище под отчёты, а менять конфигурацию нельзя, ту же задачу решают версиями документов и сверкой по дням, это разобрано в статье про хранилище, которое не сходится с 1С.

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

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

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

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

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

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

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

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

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

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

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

Бывает, что правила ни при чём, а сообщение обмена просто не доехало целиком. Если узлы обмениваются через FTP по слабому каналу, штатный транспорт после обрыва оставляет на сервере обрезанный файл под настоящим именем, приёмник забирает его как целый, и всё кончается ошибкой разбора при загрузке. Как довезти такой пакет частями и проверить его до загрузки, разобрано на странице обмена через FTP с докачкой, а почему штатный транспорт не умеет продолжать с места обрыва, рассказано в статье обмен 1С через FTP рвётся на большом пакете.

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

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

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

Buni siz uchun hal qila olaman

1C ni istalgan tizim bilan bogʻlaymiz: boshqa 1C bazalari, saytlar, CRM, banklar, davlat tizimlari. "Uzilib qoladigan" va navbat toʻplaydigan almashinuvlarni tuzatamiz.

Narxi
450 000 ₸ danalmashinuv quyi tizimini toʻliq joriy etish; soliqlarsiz, alohida vazifalar - arzonroq

Yozishga erta? O'zingiz o'lchang

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

Ishlov berishni ochish

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

Buni ham o'qing

Отчёт в хранилище не сходится с 1С: какие правки теряет выгрузка и как сверять по дням

Ночная выгрузка из 1С во внешнюю базу зелёная, а остаток за март в отчёте не тот. Почти всегда это правка задним числом, до которой не дотянулось окно выгрузки. Разбираем по типам правок, какая проверка что видит: число строк, паспорт дня, версии документов, сверка самого приёмника. С запросом 1С, SQL для приёмника на MS SQL и замерами на 10 миллионах строк.

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

Филиал на слабом канале, пакет обмена на сотни мегабайт, и каждая попытка начинает с нулевого байта. Разбираем, что делает штатный FTP-транспорт БСП 3.1, почему платформа не умеет дописывать файл на FTP, откуда на сервере берётся обрезанный пакет под настоящим именем и как устроена доставка частями с проверкой SHA-256. С кодом и тремя прогонами с настоящим обрывом.

Число в строку в 1С: неразрывный пробел в ключах и как его вычистить

Строка() форматирует число для человека и вставляет между разрядами символ с кодом 160. Когда такая строка уходит в ключ сопоставления, совпадения пропадают без единой ошибки. Здесь таблица поведения Строка() и Формат(), прогнанная на платформе 8.3.27, запрос для поиска испорченных значений, проверка по кодам символов, ловушка с нулём в Формат() и порядок правки, при котором не рвутся уже работающие связи.