Синтаксис и применение НомерСообщения в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
НомерСообщения (MessageNo)
НомерСообщения (MessageNo)
Тип: Число, Null.
Номер сообщения плана обмена.
Методическая информация
Практические примеры
Прочитать НомерСообщения в изменениях собственного РегистрСведений.УчебныеИзмененияОбмена
Таблица изменений хранит регистрацию для узла, а не историю всех версий и не сами значения изменённых реквизитов. Независимый дневной регистр имеет ключ Ключ + Период, оба отборы включены до регистрации. Регистратор в этот вариант не включается.
Где и как запускать
Своя серверная процедура в отдельной учебной базе. Сначала первый подготовительный блок в той же процедуре, затем основной запрос; дополнительные обработчики размещаются отдельно по подписям.
Подготовка
Создайте независимый регистр сведений УчебныеИзмененияОбмена, периодичность День. Измерение Ключ — Строка 40, Основной отбор = Истина; ресурс Количество — Число 12.2. Регистратора у этого варианта нет.
В коде основной отбор по Ключ и отбор по Период включены явно. Поэтому регистрация изменений имеет конкретный ключ измерения и периода, не охватывает весь регистр.
Создайте отдельный план обмена УчебныйОбменИзменений: строковый код 10 без маски, наименование 100, Распределённая информационная база = Ложь. В состав включите именно РегистрСведений.УчебныеИзмененияОбмена; для перерасчёта выберите соответствующий регистр расчёта с его перерасчётом.
У участвующего объекта в составе плана отключите автоматическую регистрацию: изменения регистрирует показанный код явно. Передачи данных, записи сообщения обмена, транспорта и синхронизации в примере нет.
Обновите только свою пустую учебную базу. Код — собственный серверный общий модуль: основной блок и первый подготовительный блок исполняются подряд в одной процедуре, сначала подготовительный, затем основной.
Новый узел создаётся при каждом запуске, а запрос ограничен его ссылкой. ЗарегистрироватьИзменения получает конкретные Данные, не объект метаданных и не пропущенный аргумент: массовая регистрация всех данных не выполняется.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Изменения.Узел КАК Узел,
| Изменения.НомерСообщения КАК НомерСообщения,
| Изменения.Ключ КАК Ключ,
| Изменения.Период КАК Период
|ИЗ РегистрСведений.УчебныеИзмененияОбмена.Изменения КАК Изменения
|ГДЕ Изменения.Узел = &Узел";
Запрос.УстановитьПараметр("Узел", Узел.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Узел: " + Строка(Выборка.Узел));
Сообщить("НомерСообщения: " + Строка(Выборка.НомерСообщения));
Сообщить("Ключ: " + Строка(Выборка.Ключ));
Сообщить("Период: " + Строка(Выборка.Период));
КонецЦикла;Перед основным запросом в той же серверной процедуре: свой узел, данные и конкретная регистрация
Узел = ПланыОбмена.УчебныйОбменИзменений.СоздатьУзел();
Узел.Код = Лев(Строка(Новый УникальныйИдентификатор), 10);
Узел.Наименование = "Свой учебный приемник";
Узел.Записать();
КлючЗаписи = Строка(Новый УникальныйИдентификатор);
Данные = РегистрыСведений.УчебныеИзмененияОбмена.СоздатьНаборЗаписей();
Данные.Отбор.Ключ.Установить(КлючЗаписи);
Данные.Отбор.Период.Установить(Дата(2026, 10, 15));
Запись = Данные.Добавить();
Запись.Ключ = КлючЗаписи;
Запись.Период = Дата(2026, 10, 15);
Запись.Количество = 3;
Данные.Записать();
ПланыОбмена.ЗарегистрироватьИзменения(Узел.Ссылка, Данные);
Сообщить("Изменение зарегистрировано только для своего нового узла");Разбор по шагам
Подготовка создаёт конкретный собственный новый узел и реальные данные указанного вида.
ЗарегистрироватьИзменения вызывается для ссылки этого узла и конкретного объекта / набора, не для всей метадаты.
Запрос выбирает зарегистрированный ключ по своему узлу; Следующий вызывается до чтения полей.
Как проверить результат
Получены поля только своего нового узла. Для ещё не включённых в сообщение изменений НомерСообщения может быть Null; не выдавайте его за готовый номер отправленного сообщения.
Ссылка / Регистратор / ОбъектПерерасчета относятся к реально созданным собственным данным. Запрос не открывает транспорт и не подтверждает доставку.
Наличие записи регистрации не означает, что изменился рабочий товар или состоялась синхронизация; источник создаёт только собственные метаданные / данные.
Ожидаемый результат
Настоящая регистрация конкретных собственных данных прочитана из таблицы изменений с правильным для её вида ключом.
На что обратить внимание
Не пропускайте второй аргумент ЗарегистрироватьИзменения и не передавайте Метаданные целого объекта: это зарегистрирует все соответствующие данные.
У независимого и подчинённого регистра сведений разные ключи таблицы изменений. Для неразделяющего общего реквизита такое поле таблицы изменений не появляется.
Ничего не передаётся по сети; BSL, запись узлов и регистрация изменений при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.