КаналСервисаИнтеграцииМенеджер.<Имя канала сервиса интеграции>.УдалитьСообщения

Методы · DeleteMessages

Удаляет сообщения канала сервиса интеграции.

Синтаксис

УдалитьСообщения(<Сообщения>)
УдалитьСообщения(<Отбор>)
Полное описание, параметры и ограничения

КаналСервисаИнтеграцииМенеджер.<Имя канала сервиса интеграции>.УдалитьСообщения (IntegrationServiceChannelManager.<Integration service channel name>.DeleteMessages)

КаналСервисаИнтеграцииМенеджер.<Имя канала сервиса интеграции> (IntegrationServiceChannelManager.<Integration service channel name>)

УдалитьСообщения (DeleteMessages)

Доступен, начиная с версии 8.3.18.

Вариант синтаксиса: Удаление сообщений из очереди с указанием идентификаторов сообщений

Синтаксис:
УдалитьСообщения(<Сообщения>)
Параметры:

<Сообщения> (необязательный)
Тип: Неопределено, Массив.
Массив идентификаторов сообщений, которые удаляются из очереди.
Если по идентификатору сообщение не найдено, то исключение не генерируется.
Если значение не установлено, то удаляются все сообщения из очереди.
Значение по умолчанию: Неопределено.
Описание варианта метода:
Исключение генерируется, если выполняется одно из условий:
Cервис интеграции входит в состав разделителя:
Если у пользователя нет права "Администрирование данных",

В сеансе используется разделитель, который не разделяет сервис интеграции.

В сеансе не используется разделитель, в состав которого входит сервис интеграции.

Cервис интеграции не входит в состав разделителя:
Если у пользователя нет права "Администрирование".

В сеансе используется любой разделитель.

Вариант синтаксиса: Удаление сообщений из очереди с указанием отбора

Синтаксис:
УдалитьСообщения(<Отбор>)
Параметры:

<Отбор> (необязательный)
Тип: Неопределено, Структура.
Структура, содержащая условия отбора сообщений. В отборе можно использовать поля объекта СообщениеСервисаИнтеграции и поля заголовка сообщения.
В качестве пары "Ключ" и "Значение" используются:
Идентификатор/ID/УникальныйИдентификатор/Нет - Отбор сообщений по идентификатору.

ДатаОтправкиНачало/StartSendDate/Дата/Нет - Отбор сообщений с датой отправки, большей или равной указанной даты.

ДатаОтправкиОкончание/EndSendDate/Дата/Нет - Отбор сообщений с датой отправки, меньшей или равной указанной даты.

ИдентификаторСообщенияЗапроса/CorrelationID/УникальныйИдентификатор/Нет - Отбор сообщений по идентификатору сообщения запроса.

ДатаУстареванияНачало/StartExpirationDate/Дата/Нет - Отбор сообщений с датой устаревания большей или равной указанной даты.

ДатаУстареванияОкончание/EndExpirationDate/Дата/Нет - Отбор сообщений с датой устаревания меньшей или равной указанной даты.

КодОтправителя/SenderCode/Строка/Нет - Отбор сообщений по коду отправителя.

КодПолучателя/ReceiverCode/Строка/Нет - Отбор сообщений по коду получателя.

Параметры/Parameters/Соответствие/Нет- Отбор по параметрам сообщения. Если в <Параметры> есть элемент "Поле1"="Значение1", то будут отобраны сообщения с Параметры, содержащие элемент "Поле1"="Значение1".

Значение по умолчанию: Неопределено.
Описание варианта метода:
Исключение генерируется, если выполняется одно из условий:
Cервис интеграции входит в состав разделителя:
Если у пользователя нет права "Администрирование данных",

В сеансе используется разделитель, который не разделяет сервис интеграции.

В сеансе не используется разделитель, в состав которого входит сервис интеграции.

Cервис интеграции не входит в состав разделителя:
Если у пользователя нет права "Администрирование".

В сеансе используется любой разделитель.

Описание:

Удаляет сообщения канала сервиса интеграции.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Исключение генерируется
Использование в версии:

Доступен, начиная с версии 8.3.18.

Методическая информация

Практические примеры

Удалить только одно найденное собственное учебное сообщение

Передаем массив реальных идентификаторов. Опускать аргумент опасно: тогда удаляются все сообщения канала.

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

Сервер, толстый клиент или внешнее соединение с правами метода.

Подготовка

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

  2. Создайте свой сервис интеграции УчебныйСервис и реальный канал УчебныйКанал с собственным тестовым внешним сервисом. Коды learning-sender и learning-receiver согласуйте с этим сервисом. Не используйте рабочие очереди и данные.

  3. Только собственная одноразовая учебная очередь и административные права. Заранее вручную убедитесь, что единственное сообщение указанной метки действительно свое и может быть потеряно. Не выполняйте одновременно новые отправки.

&НаСервереБезКонтекста
Процедура УдалитьОдноразовоеУчебноеСообщение()
    Параметры = Новый Соответствие;
    Параметры.Вставить("Назначение", "Одноразовый учебный пример");
    Отбор = Новый Структура("КодОтправителя,КодПолучателя,Параметры", "learning-sender", "learning-receiver", Параметры);
    Канал = СервисыИнтеграции.УчебныйСервис.УчебныйКанал;
    Сообщения = Канал.ВыбратьСообщения(Отбор, 2);
    Если Сообщения.Количество() <> 1 Тогда
        ВызватьИсключение "Нужно ровно одно собственное учебное сообщение";
    КонецЕсли;
    Идентификаторы = Новый Массив;
    Идентификаторы.Добавить(Сообщения[0].Идентификатор);
    Канал.УдалитьСообщения(Идентификаторы);
    Осталось = Канал.ВыбратьСообщения(Отбор, 2);
    Сообщить("Осталось подходящих сообщений: " + Строка(Осталось.Количество()));
КонецПроцедуры

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

  1. Выберите свою уникальную метку и два собственных кода.

  2. При результате ровно 1 получите настоящий ID.

  3. Удалите только массив этого ID и перечитайте очередь.

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

  1. Вызов всегда содержит непустой массив, не Неопределено.

  2. При 0 или более чем 1 результате удаления нет.

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

Удален только выбранный собственный идентификатор; показан результат повторного отбора.

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

  1. Удаление необратимо без отдельного восстановления. Выборка не является атомарной блокировкой очереди; нулевой повторный отбор не доказывает причину исчезновения при параллельной обработке.

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

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

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

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

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