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