База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как реализовать асинхронную пометку удаления документов в 1С? › RE: Как реализовать асинхронную пометку удаления документов в 1С?
Для реализации асинхронной пометки удаления документов в 1С можно использовать механизм фоновых заданий. Вот пример кода, который создает фоновую задачу для пометки документов на удаление:
1. Создайте общий модуль, например, “АсинхронныеЗадачи”.
2. В этом модуле добавьте процедуру для пометки документов на удаление:
1 2 3 4 5 6 7 8 9 10 11 | 1C Процедура ПометитьДокументыНаУдаление(СписокДокументов) Для Каждого Документ Из СписокДокументов Цикл Если Документ.ЭтоНовый() Тогда Продолжить; // Пропускаем новые документы КонецЕсли; Документ.ПометкаУдаления = Истина; Документ.Записать(); КонецЦикла; КонецПроцедуры |
3. Создайте процедуру для запуска фонового задания:
1 2 3 4 5 6 7 8 | 1C Процедура ЗапуститьПометкуУдаления(СписокДокументов) Задание = Новый ФоновоеЗадание; Задание.Имя = "ПометкаУдаленияДокументов"; Задание.Процедура = "ПометитьДокументыНаУдаление"; Задание.Параметры = СписокДокументов; Задание.Запустить(); КонецПроцедуры |
4. Вызовите процедуру ЗапуститьПометкуУдаления
, передав ей список документов, которые нужно пометить на удаление:
1 2 3 4 5 6 7 | 1C СписокДокументов = Новый СписокЗначений; СписокДокументов.Добавить(Документ1); СписокДокументов.Добавить(Документ2); // Добавьте другие документы по необходимости ЗапуститьПометкуУдаления(СписокДокументов); |
Этот код создает фоновую задачу, которая помечает документы на удаление асинхронно, что позволяет не блокировать интерфейс пользователя во время выполнения операции.