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

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

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

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

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

Подготовка

  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С» и не аффилирован с ней.