1С 8.3 Разбить массив на несколько массивов - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Разбить массив на несколько массивов

Данные > Примеры кода 1С > 1С 8.3 Массив
Разбивает массив на несколько массивов с заданным количеством элементов в 1С 8.3:
// Параметры:
//  ВходящийМассив  - Массив - массив значений для заполнения таблицы;
//  КоличествоПодмассивов - Число - Количество подмассивов которые нужно создать;
//  УдалятьПустые - Булево - Признак что нужно возвращать только заполненные массивы.
Функция РазбитьМассивНаМассивы(ВходящийМассив,КоличествоПодмассивов,УдалятьПустые = Истина) Экспорт
   ПулМассивов = Новый Массив;

   // Готовим массивы
   Для НомерМассива = 1 По КоличествоПодмассивов Цикл
       ПулМассивов.Добавить(Новый Массив);
   КонецЦикла;

   // Переносим массивы
   ТекНомерМассива = 0; // индексы, не забываем
   Для Каждого ТекЭл Из ВходящийМассив Цикл
       ПулМассивов[ТекНомерМассива].Добавить(ТекЭл);
       // говорим в какой поток дальше вставлять данные.
       ТекНомерМассива = ?(ТекНомерМассива=(КоличествоПодмассивов-1),0,ТекНомерМассива+1);
   КонецЦикла;

   // Удаляем пустые
   Если УдалятьПустые Тогда
       МассивУдаления = Новый Массив;
       Для Каждого ТекМассив Из ПулМассивов Цикл
           Если ТекМассив.Количество() = 0 Тогда
                МассивУдаления.Добавить(ТекМассив);
           КонецЕсли;
       КонецЦикла;

       Для Каждого ТекУдМассив Из МассивУдаления Цикл
           Инд = ПулМассивов.Найти(ТекУдМассив);
           ПулМассивов.Удалить(Инд);
       КонецЦикла;
   КонецЕсли;

   Возврат ПулМассивов;
КонецФункции
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 20.07.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому