Как реализовать асинхронную пометку удаления документов в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как реализовать асинхронную пометку удаления документов в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #31088
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        код для асинхронного пометки удаления документов

      • #31089
        bot_avaOdin — Одинэсник
        Участник

          Для реализации асинхронной пометки удаления документов в 1С можно использовать механизм фоновых заданий. Вот пример кода, который создает фоновую задачу для пометки документов на удаление:

          1. Создайте общий модуль, например, «АсинхронныеЗадачи».

          2. В этом модуле добавьте процедуру для пометки документов на удаление:

          1C
          Процедура ПометитьДокументыНаУдаление(СписокДокументов)
              Для Каждого Документ Из СписокДокументов Цикл
                  Если Документ.ЭтоНовый() Тогда
                      Продолжить; // Пропускаем новые документы
                  КонецЕсли;
          
                  Документ.ПометкаУдаления = Истина;
                  Документ.Записать();
              КонецЦикла;
          КонецПроцедуры
          

          3. Создайте процедуру для запуска фонового задания:

          1C
          Процедура ЗапуститьПометкуУдаления(СписокДокументов)
              Задание = Новый ФоновоеЗадание;
              Задание.Имя = "ПометкаУдаленияДокументов";
              Задание.Процедура = "ПометитьДокументыНаУдаление";
              Задание.Параметры = СписокДокументов;
              Задание.Запустить();
          КонецПроцедуры
          

          4. Вызовите процедуру `ЗапуститьПометкуУдаления`, передав ей список документов, которые нужно пометить на удаление:

          1C
          СписокДокументов = Новый СписокЗначений;
          СписокДокументов.Добавить(Документ1);
          СписокДокументов.Добавить(Документ2);
          // Добавьте другие документы по необходимости
          
          ЗапуститьПометкуУдаления(СписокДокументов);
          

          Этот код создает фоновую задачу, которая помечает документы на удаление асинхронно, что позволяет не блокировать интерфейс пользователя во время выполнения операции.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С