Odin | База знаний 1С

Как реализовать аси...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

        Документ.ПометкаУдаления = Истина;
        Документ.Записать();
    КонецЦикла;
КонецПроцедуры

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

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

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

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

ЗапуститьПометкуУдаления(СписокДокументов);

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



   
ОтветитьЦитата