Для параллельного выполнения нужно наиболее "ровно" разделить, например массив, на кусочки.
Функция РазбитьНаКусочки(ОбщееКоличество, ОднаЧасть) Экспорт
Частей = Цел(ОбщееКоличество / ОднаЧасть) + ?(ОбщееКоличество % ОднаЧасть > 0, 1, 0);
Частное = ОбщееКоличество / Частей;
МаксКусок = Цел(Частное) + ?(ОбщееКоличество % Частей > 0, 1, 0);
Остаток = ОбщееКоличество % МаксКусок;
Массив = Новый Массив;
Если Остаток > 0 Тогда
ОдинКусок = МаксКусок - 1;
МеньшегоКолва = МаксКусок - Остаток;
Для ъ = 1 по МеньшегоКолва Цикл
Массив.Добавить(ОдинКусок);
КонецЦикла;
Иначе
ъ = 1;
КонецЕсли;
ОдинКусок = МаксКусок;
ъъ = ъ;
Для ъ = ъъ по Частей Цикл
Массив.Вставить(0, ОдинКусок);
КонецЦикла;
// ВсегоВМассиве = 0;
// Для Каждого Элем из Массив Цикл
// ВсегоВМассиве = ВсегоВМассиве + Элем;
// КонецЦикла;
Возврат Массив;
КонецФункции // РазбитьНаКусочки
Функция РазбитьСписокТоваров(Знач списТоваров, МаксТоваров = 150)
#Если Сервер И Не Сервер Тогда // для типизации в конфигураторе
списТоваров = Новый СписокЗначений;
#КонецЕсли
мТовары = списТоваров.ВыгрузитьЗначения();
КоличествоТоваров = мТовары.Количество();
мКусочки = РазбитьНаКусочки(КоличествоТоваров, МаксТоваров);
ммТовары = Новый Массив;
Для Каждого ЧислоТоваров Из мКусочки Цикл
мПодСписок = Новый Массив;
Для ъ = 1 По ЧислоТоваров Цикл
мПодСписок.Добавить(мТовары[0]);
мТовары.Удалить(0);
КонецЦикла;
ммТовары.Добавить(мПодСписок);
КонецЦикла;
Возврат ммТовары;
КонецФункции // РазбитьСписокТоваров
Орфографическая ошибка в списТоваров (найдено 3): спис
СтрокаСЧисломДляЛюбогоЯзыка (БСП)
Сколько процентов число от числа
ЗавершитьПоискПорцииДляОбновления (БСП)