1с номер отправленного сообщения
НомерОтправленного и НомерПринятого, поясните чайнику?
НомерОтправленного и НомерПринятого, поясните чайнику?
Собственно в планах обмена фиксируется номер отправленного и принятого сообщения.
Например, есть узлы А и Б. В узле А я меняю объект Х.
Он заносится в узел обмена А, с номером сообщения NULL.
Допустим, затем я делаю выгрузку в узел Б с номером выгрузки 10.
Потом я опять записываю объект Х, по идее номер сообщения установиться в NULL в узле А.
Потом я опять делаю выгрузку в узел Б с номером выгрузки 11.
Потом я получаю подтверждение о получении выгрузки 10. Регистрация изменения не очищается, т.к. номер собщения для Х = 11.
Потом я получаю подтверждение о получении выгрузки 10. Регистрация изменения очищается, т.к. номер сообщения для Х = 11 и номер подтвержденной выгрузки = 11.
Меня интересует вот что. Номер подтвержденной выгрузки сохраняется в узле плана обмена или нет? И можно ли его получить и сохранить в узле плана обмена?
Специально для чайников:
СП:
НомерОтправленного (SentNo)
Использование:
Только чтение.
Описание:
Тип: Число. Содержит номер отправленного сообщения.
НомерПринятого (ReceivedNo)
Использование:
Только чтение.
Описание:
Тип: Число. Содержит номер принятого сообщения.
(0) По-моему, «квитанция» приходит непосредственно в объект. Если квитанция не пришла, выгрузка повторяется. Сам узел в механизму квитирования не участвует напрямую
Еще раз пример, другой, для общности.
Итак, я передаю в периферию сообщение номер 11, потом 12, потом 13.
НомерОтправленного = 13
Потом получаю сообщение, допустим с номером 70, в нем сообщается, что подтверждены изменения с номером 12 (дошел 12-й пакет, а 13-й еще нет).
НомерПринятого = 70
Где хранится номер 12? Можно ли его получить и как сохранить в узле?
(21)
Ну смотри. Начнем с начала.
Номер сообщения меньше либо равен ранее принятому в обмене 1С
Ошибка «Номер сообщения меньше либо равен ранее принятому», наверное, знакома каждому, кто когда-либо связывался с обменами в программах 1С. Рассмотрим, почему возникает такая ошибка, и предложим скачать обработку для исправления ситуации.
Когда происходит обмен данными, система обычно делает специальные пометки в базе данных о том, происходила выгрузка или нет. Узлы планов обменов имеют два специальных стандартных реквизита — Номер принятого и Номер отправленного сообщения (подробно — планы обмена). Именно в этих реквизитах 1С хранит информацию о загруженных/выгруженных пакетах.
Для корректного обмена данными номера сообщений должны попарно совпадать в обменивающихся базах. Т.е. если в базе источник номер отправленного сообщения равен 300, то номер полученного сообщения в базе приемнике должен быть равен 300.
Обработка Регистрация изменений для обмена 1С
Но случаются ситуации, когда номера сообщений начинают расходиться. Это может случится в различных случаях. Например, если одна из баз была восстановлена из архива. В таком случае необходимо выравнять коды сообщений узлов обмена.
Для изменения номера сообщений проще всего воспользоваться типовой обработкой — «Регистрация изменений для обмена».
Обработка существует как для обычного приложения:
Получите понятные самоучители по 1С бесплатно:
Так и для управляемого:
Для исправления ошибки необходимо нажать на гиперссылку с номерами сообщений (или кнопку Изменить номера сообщений).
В открывшимся окне следует установить сообщения, равные нулю, и нажать кнопку «Записать»:
Внимание! При установки нулевых значений Вы потеряете регистрацию изменений для обмена, т.е. система не выгрузит последний пакет изменений.
Описанные выше обработки обычно в составе типовых конфигураций.
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Использование инфраструктуры сообщений. Квитирование
Инфраструктура сообщений является неотъемлемой частью механизмов обмена данными платформы 1С:Предприятия 8. Она предоставляет возможности по формированию и анализу сообщений обмена.
Номера сообщений используются в механизмах обмена данными для контроля доставки переданной информации, а также для недопущения повторного чтения уже прочитанных сообщений обмена. При отправке сообщения в его заголовок записывается номер данного сообщения, а также номер последнего принятого сообщения. При получении сообщения эти номера анализируются. Номер последнего принятого сообщения является своего рода квитанцией о доставке сообщения. По ней узел-приемник сообщения сможет определить, что данные, выгруженные в сообщении с указанным номером, были успешно получены адресатом. Номер отправленного сообщения будет использован впоследствии при формировании ответного сообщения.
Для большего понимания процессов, происходящих во время обмена, опишем действия, производимые платформой, при отправке и получении сообщения обмена.
Запись сообщения обмена
Начало записи сообщения обмена
Запись сообщения начинается с вызова метода НачатьЗапись() объекта ЗаписьСообщенияОбмена. В качестве параметров метода передаются объект
(при помощи которого производится формирование сообщения в формате XML) и номер формируемого сообщения обмена. В этот момент происходит формирование заголовка сообщения и блокируется объект представляющий узел-приемник сообщения. После чего объект ЗаписьXML и номер формируемого сообщения становятся доступны через данный экземпляр объекта ЗаписьСообщенияОбмена для формирования тела сообщения обмена.
Выборка и запись изменений данных
Завершение записи сообщения обмена
Получение сообщения обмена
При получении сообщения производится анализ заголовка сообщения:
Начало чтения сообщения
(при помощи которого производится чтение сообщения в формате XML) и допустимый номер сообщения обмена.
При выполнении данного метода производится чтение заголовка сообщения обмена. Проверяется наличие плана обмена, в рамках которого сформировано полученное сообщение. Считанные коды узлов источника и приемника сообщения анализируются: код узла отправителя должен совпадать с кодом одного из узлов плана обмена (за исключением узла ЭтотУзел ), код узла-приемника сообщения должен совпадать с кодом узла ЭтотУзел плана обмена. При обнаружении узла-отправителя, его объект (узел плана обмена) блокируется.
Чтение тела сообщения
Завершение чтения сообщения
Односторонний обмен
В качестве различных схем реализации одностороннего обмена данными можно предложить следующие варианты:
Все эти случаи предполагают получение ответных сообщений для отработки квитанций о получении данных в узле-приемнике.
Односторонний обмен без необходимости получения ответных сообщений
Для реализации одностороннего обмена без необходимости получения ответных сообщений можно воспользоваться схемой обмена с гарантированной доставкой. Суть этой схемы в следующем: после формирования сообщения обмена производится удаление регистрации изменений для номера только что сформированного сообщения. Этим действием подтверждается, что данные (записанные в только что сформированное сообщение) будут гарантированно доставлены адресату.