Коллеги, на ровном месте произошел затык, т.е. застрял в одной простой задачке. Вроде бы элементарно но пока не получается, поомгите советом или направление дайте.

Задача:
Имеем переменную например:
ОпределеннаяСумма = 150000;

Нужно из ТЧ документа собирать в массив построчно товары сумма которых при суммировании либо равно либо не превышает вышеуказанную переменную.
Если при суммировании Сумма превышает переменную, то данная строка попадает в следующую строку массива.
Если в одной строке сумма превышает переменную то эту строчку разбиваем (делим) на переменную и добавляем в массив.

уже 2 часа сижу, идей пока нету =))
---
выгружаешь ТЧ в ТЗ и добавляешь колонку порядок. Когда сумма превышает, то порядок увеличиваешь и все потом по ТЧ с порядком формируешь нужное количество заказов.
---
Тогда типа такого (массив таблиц значений нужен, как минимум):

```1c
    МассивТЧ = Новый Массив;

    ПределПоСумме = 150000;
    СуммаПоТекущейТЧ = 0;
    ТекущаяТЧ = Неопределено;
    Для Каждого СтрокаТаблицы Из ОбщаяТаблицаТоваров Цикл
    Если СуммаПоТекущейТЧ + СтрокаТаблицы.Сумма > ПределПоСумме ИЛИ ТекущаяТЧ = Неопределено Тогда
    ТекущаяТЧ = Новый ТаблицаЗначений;
    ТекущаяТЧ.Колонки.Добавить("Номенклатура");
    ТекущаяТЧ.Колонки.Добавить("Сумма");
    МассивТЧ.Добавить(ТекущаяТЧ);
    СуммаПоТекущейТЧ = 0;
    КонецЕсли;
    СтрокаТЧ = ТекущаяТЧ.Добавить();
    СтрокаТЧ.Номенклатура = СтрокаТаблицы.Номенклатура;
    СтрокаТЧ.Сумма = СтрокаТаблицы.Сумма;
    СуммаПоТекущейТЧ = СуммаПоТекущейТЧ + СтрокаТаблицы.Сумма;
    КонецЦикла;
```
---
жесть описание задачи))) в массив что надо складывать? элементы номенклатуры или суммы?
"если при суммировании... в следующую строку массива" - а до этого, в предыдущую строку массива что складывалось?

приведите пример хоть)
---
Обожаю, когда вместо описания задачи пытаются описывать свои потуги ее решить. И потом спрашивают в стиле "что я делаю не так, когда ту штуковину заталдыкиваю в эту ерундовину?"
Что сделать-то хочешь? Сформировать пачку накладных с ограничением по сумме? Сформулируй человеческим языком. Так, чтобы человек с улицы мог понять твою проблему.
---
Сформировать пачку накладных с ограни

да, именно.
---
Сформировать пачку накладных с ограничением по сумме.

т.е. есть заказы с большим количестом товаров и суммой. Их надо разбить на накладные не превышающие определенную сумму (указывается в переменной).
---
выгружаешь ТЧ в ТЗ и добавляешь колонку порядок. Когда сумма превышает, то порядок увеличиваешь и все потом по ТЧ с порядком формируешь нужное количество заказов.
---
Так звучит даже лучше, но на практике редко получается. Обычно удобно передавать готовые структуры в отдельные процедуры формирования документов или вроде того. Т.е. иметь прообразы документов отдельными сущностями.
---
зато в голове порядок и наглядно.
---
Тогда типа такого (массив таблиц значений нужен, как минимум):

```1c
    МассивТЧ = Новый Массив;

    ПределПоСумме = 150000;
    СуммаПоТекущейТЧ = 0;
    ТекущаяТЧ = Неопределено;
    Для Каждого СтрокаТаблицы Из ОбщаяТаблицаТоваров Цикл
    Если СуммаПоТекущейТЧ + СтрокаТаблицы.Сумма > ПределПоСумме ИЛИ ТекущаяТЧ = Неопределено Тогда
    ТекущаяТЧ = Новый ТаблицаЗначений;
    ТекущаяТЧ.Колонки.Добавить("Номенклатура");
    ТекущаяТЧ.Колонки.Добавить("Сумма");
    МассивТЧ.Добавить(ТекущаяТЧ);
    СуммаПоТекущейТЧ = 0;
    КонецЕсли;
    СтрокаТЧ = ТекущаяТЧ.Добавить();
    СтрокаТЧ.Номенклатура = СтрокаТаблицы.Номенклатура;
    СтрокаТЧ.Сумма = СтрокаТаблицы.Сумма;
    СуммаПоТекущейТЧ = СуммаПоТекущейТЧ + СтрокаТаблицы.Сумма;
    КонецЦикла;
```
---
Примерно понял, буду копать спасибо.
---
Если могут быть строки заказов, сами по себе превышающие предел по сумме, то проще всего разбить такие строки заранее на несколько строк, вписывающихся в предел. Если появятся дополнительные условия, то задачка может превратиться в полноценную задачу комбинаторной оптимизации. Т.н. "задачу рюкзака". Так и гуглишь "задача о рюкзаке" или "задача о ранце".
---
Хотя, если подумать, такой подход я тоже нередко юзаю в комбинации с таким (пусть не сильно оптимальным, зато наглядным):

```1c
    Для Каждого Критерий Из ПолучитьМассивБезДублей(ИсходнаяТаблица.ВыгрузитьКолонку("Критерий")) Цикл
    ТаблицаКритерия = ИсходнаяТаблица.Скопировать(Новый Структура("Критерий", Критерий));
    ....
    КонецЦикла;
```
---
Спасибо ребята что дали направление, в итоге как в 7 после в тз обработал все строки, и те которые сами по себе превышают разбил, далее использовал пост 6, в ТЗ закинул, в конце концов из ТЗ начал создавать документы.
---
Ну так отметь, пожалуйста, что помогло или выложите пример решения для будущего поколения.