Каталог решений - Ускоряем типовую обработку "Групповое изменение реквизитов" правкой пары строчек кода

Ускоряем типовую обработку "Групповое изменение реквизитов" правкой пары строчек кода

Ускоряем типовую обработку "Групповое изменение реквизитов" правкой пары строчек кода

В наличии

Данные правки помогут ускорить выполнение обработки для большого числа изменяемых объектов (выполнения задания в фоне) без использования транзакций.

Категория:

Описание

Заметил такую не очень приятную особенность выполнения типовой обработки — выполнение задания в фоне идет только когда указываешь в форме "Дополнительные параметры" ИзменятьВТранзакции = Истина, иначе выполнение обработки идет в текущем сеансе

Изменение в транзакции не очень подходит для большого числа объектов, так как генерируется очень большой блок отката, который чаще всего просто не нужен, а выполнение задания в пользовательском сеансе не очень быстрое

Поэтому с помощью всего пары правок можно заставить обработку выполняться в фоне, когда число выбранных объектов, например, больше 100

Для этого в модуле формы обработки в процедуре ИзменитьОбъекты() нужно заменить строчку

Если Объект.ИзменятьВТранзакции Тогда

На

Если Объект.ИзменятьВТранзакции Или КоличествоОбъектовДляОбработки >= 100 Тогда

И в функции ИзменитьНаСервере(Знач ОстанавливатьИзменениеПриОшибке) заменить

Если Не Объект.ИзменятьВТранзакции Или Не ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда

На

Если (Не Объект.ИзменятьВТранзакции И КоличествоВыбранныхОбъектов() < 100) Или Не ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда

Теперь если выбранных объектов больше и равно 100, то задание изменения будет выполняться всегда в фоне

has been added to your cart:
Оформление заказа