У меня есть массив с кодами товара. Метод api позволяет при запросе указать 10 кодов за раз. Можно ли разделить массив на части по 10 шт и обойти все части массива?
---
```1c
    МассивКодов = Новый Массив(101);

    МассивИз10 = Новый Массив;
    Для Индекс = 0 По МассивКодов.ВГраница() Цикл
    Если МассивИз10.Количество() = 10 Тогда
    API.Послать(МассивИз10);
    МассивИз10 = Новый Массив;
    КонецЕсли;

    МассивИз10.Добавить(МассивКодов.Получить(Индекс));
    КонецЦикла;

    Если МассивИз10.Количество() > 0 Тогда
    API.Послать(МассивИз10);
    КонецЕсли;
```
---
а простые циклы уже не комильфо?

ИМХО, написать это сообщение дольше чем написать простой цикл, который формирует промежуточный массив и отправляет в api, потом очищает его и по новой...
---
спасибо, а нет ли у вас примера для новичка?
---
```1c
    РазделитьМассивПо10()
```
---
```1c
    МассивКодов = Новый Массив(101);

    МассивИз10 = Новый Массив;
    Для Индекс = 0 По МассивКодов.ВГраница() Цикл
    Если МассивИз10.Количество() = 10 Тогда
    API.Послать(МассивИз10);
    МассивИз10 = Новый Массив;
    КонецЕсли;

    МассивИз10.Добавить(МассивКодов.Получить(Индекс));
    КонецЦикла;

    Если МассивИз10.Количество() > 0 Тогда
    API.Послать(МассивИз10);
    КонецЕсли;
```
---
немного рефачим:

```1c
    МассивКодов = Новый Массив(101);

    МассивИз10 = Новый Массив;

    Для Индекс = 0 По МассивКодов.ВГраница() Цикл

    МассивИз10.Добавить(МассивКодов.Получить(Индекс));

    Если МассивИз10.Количество() = 10 Или Индекс = МассивКодов.ВГраница() Тогда
    API.Послать(МассивИз10);
    МассивИз10 = Новый Массив;
    КонецЕсли;

    КонецЦикла;
```
---
Немного абстракций:
```1c
    // Создание массива чисел от 1 до 100
    ИсходныйМассив = РаботаСМассивом.Диапазон(1, 101);
    Сообщить(ОбщийКлиентСервер.ОбъектВJSON(ИсходныйМассив));
    // Формирование подмассивов по 10 чисел
    Шаг = 10;
    Для Каждого Индекс Из РаботаСМассивом.Диапазон(0, 100, Шаг) Цикл
    Срез = РаботаСМассивом.Срез(ИсходныйМассив, Индекс, Индекс + Шаг);
    Сообщить(ОбщийКлиентСервер.ОбъектВJSON(Срез));
    КонецЦикла;
```
---
Если первоначальный объем данных большой и количество подмассивов небольшое, то перебирать все элементы массива - очень затратно по времени.
Вот мой вариант через запрос, где КоличествоЗаписей - количество записей в одном пакете.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СтруктураПредприятия.Код КАК Код,
    | АВТОНОМЕРЗАПИСИ() КАК Номер
    |ПОМЕСТИТЬ ВТНомера
    |ИЗ
    | Справочник.СтруктураПредприятия КАК СтруктураПредприятия
    |ГДЕ
    | СтруктураПредприятия.ПометкаУдаления = ЛОЖЬ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВЫРАЗИТЬ(Номера.Номер / &КоличествоЗаписей - 0.5 КАК ЧИСЛО(15, 0)) КАК Разрядонсть,
    | Номера.Код КАК Код
    |ИЗ
    | ВТНомера КАК Номера
    |ИТОГИ ПО
    | Разрядонсть";
    Запрос.УстановитьПараметр("КоличествоЗаписей", КоличествоЗаписей);
    Выборка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
    Для каждого ТекРазрадность Из Выборка.Строки Цикл
    МассивЗаписей = Выборка.Строки.ВыгрузитьКолонку("Код");
    ДобавитьВОчередь(УзелПланаОбмена, МассивЗаписей);
    КонецЦикла;
```