Проверить номер своего сообщения без его принятия: Очередной

Учебные задачи

Читается только настоящий заголовок сообщения обмена; затем чтение явно отменяется.

Где и как запускать

Сервер собственного учебного стенда; отменяемое чтение только заголовка.

Подготовка

  1. Сервер собственной отдельной учебной базы. ПутьКСвоемуСообщению — параметр процедуры Строка с полным путём к своему уже существующему файлу обмена.

  2. Файл должен быть штатно сформирован вторым узлом того же собственного учебного плана обмена и адресован текущему узлу этого стенда. Идентификаторы плана и узлов должны совпадать. Чужой файл и самодельный XML без заголовка не подходят.

  3. Нужны права обмена своим планом. Не выполняйте опыт одновременно с реальным обменом: НачатьЧтение временно блокирует запись узла.

  4. Код — тело своей отдельной серверной процедуры. Он не вызывает ПрочитатьИзменения или ЗакончитьЧтение; ПрерватьЧтение снимает блокировку без изменения узла.

Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьКСвоемуСообщению);
Сообщение = ПланыОбмена.СоздатьЧтениеСообщения();
Начато = Ложь;
Попытка
    Сообщение.НачатьЧтение(Чтение, ДопустимыйНомерСообщения.Очередной);
    Начато = Истина;
    Сообщить("Номер в собственном заголовке: " + Строка(Сообщение.НомерСообщения));
    Сообщение.ПрерватьЧтение();
    Начато = Ложь;
Исключение
    Если Начато Тогда
        Сообщение.ПрерватьЧтение();
    КонецЕсли;
    Чтение.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();

Разбор по шагам

  1. Подготовьте реальный входящий учебный файл.

  2. Передайте выбранное правило номера вторым аргументом.

  3. Отмените чтение и закройте XML в обеих ветках.

Как проверить результат

  1. Очередной требует ровно НомерПринятого + 1 у соответствующего узла.

  2. Даже Любой не отменяет проверки известности плана / узла и остальных данных заголовка.

  3. Если заголовок принят, установленная блокировка освобождается ПрерватьЧтение. НомерПринятого не продвигается; проверка заголовка не равна загрузке данных. BSL и обмен при сборке не выполнялись.

Ожидаемый результат

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

На что обратить внимание

  1. Любой не делает повторную загрузку сообщения идемпотентной; пример намеренно не применяет тело.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.