сделал так:
Процедура ПоискОптимальныхСхемРаскроев(ТаблицаРезультат,ТаблицаНехваткиПоНоменклатуре,ВыборкаХарактеристикаНоменклатуры,ВыбНоменклатура)
ТаблицаРезультатОптимСхем = новый ТаблицаЗначений;
ТаблицаРезультатОптимСхем.Колонки.Добавить("ХарактеристикаНоменклатурыРаскраиваемая",Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
ТаблицаРезультатОптимСхем.Колонки.Добавить("КоэффициентХарактеристики",Новый ОписаниеТипов("Число"));
ТаблицаРезультатОптимСхем.Колонки.Добавить("КоличествоОстатков",Новый ОписаниеТипов("Число"));
ТаблицаРезультатОптимСхем.Колонки.Добавить("ОбрезокПалки",Новый ОписаниеТипов("Число"));
ТаблицаРезультатОптимСхем.Колонки.Добавить("МассивПолучаемыхРазмеров");
МассивПолучаемыхРазмеров = новый ТаблицаЗначений;
МассивПолучаемыхРазмеров.Колонки.Добавить("ХарактеристикаНоменклатуры",Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
МассивПолучаемыхРазмеров.Колонки.Добавить("КоэффициентХарактеристики",Новый ОписаниеТипов("Число"));
ВыборкаХарактеристикаНоменклатуры.Сортировать("КоэффициентХарактеристики Возвр");
ТаблицаНехваткиПоНоменклатуре.Сортировать("КоэффициентХарактеристики Убыв");
Для каждого СтрокаОстатков Из ВыборкаХарактеристикаНоменклатуры Цикл
//Прогоняем каждый типоразмер на остатках через рекурсию
Если СтрокаОстатков.ОстКоличествоПалок > 0 Тогда
МассивПолучаемыхРазмеров.Очистить();
РекурсивноПолучитьВсеСхемыРаскроя(ТаблицаРезультатОптимСхем,СтрокаОстатков.ХарактеристикаНоменклатуры,СтрокаОстатков.КоэффициентХарактеристики,СтрокаОстатков.ОстКоличествоПалок,Число(СтрокаОстатков.КоэффициентХарактеристики),ТаблицаНехваткиПоНоменклатуре,МассивПолучаемыхРазмеров);
КонецЕсли;
КонецЦикла;
//Теперь пилим согласно полученным схемам
ТаблицаРезультатОптимСхем.Сортировать("обрезокПалки возвр, КоличествоОстатков убыв");
...
КонецПроцедуры // ()
Процедура РекурсивноПолучитьВсеСхемыРаскроя(ТаблицаРезультатОптимСхем,ХарактеристикаНоменклатурыРаскраиваемая,КоэффициентХарактеристики,ОстКоличествоПалок,ОбрезокПалки,ТаблицаНехваткиПоНоменклатуре,МассивПолучаемыхРазмеров)
Если ТаблицаНехваткиПоНоменклатуре.Количество()>0 Тогда
СтрокаНулевая = ТаблицаНехваткиПоНоменклатуре[0];
Для КолЗаготовокВПалке = 1 по СтрокаНулевая.ТребКоличествоПалок Цикл
Если ОбрезокПалки >= СтрокаНулевая.КоэффициентХарактеристики Тогда
ОбрезокПалки = ОбрезокПалки - СтрокаНулевая.КоэффициентХарактеристики;
НоваяСтрокаВСхемеРаскроя = МассивПолучаемыхРазмеров.Добавить();
НоваяСтрокаВСхемеРаскроя.ХарактеристикаНоменклатуры = СтрокаНулевая.ХарактеристикаНоменклатуры;
НоваяСтрокаВСхемеРаскроя.КоэффициентХарактеристики = СтрокаНулевая.КоэффициентХарактеристики;
Если ОбрезокПалки = 0 Тогда
//Удача - безотходное производство
НоваяСтрокаВариантовРаскроя = ТаблицаРезультатОптимСхем.Добавить();
НоваяСтрокаВариантовРаскроя.ХарактеристикаНоменклатурыРаскраиваемая = ХарактеристикаНоменклатурыРаскраиваемая;
НоваяСтрокаВариантовРаскроя.ОбрезокПалки = ОбрезокПалки;
НоваяСтрокаВариантовРаскроя.КоэффициентХарактеристики = КоэффициентХарактеристики;
НоваяСтрокаВариантовРаскроя.КоличествоОстатков = ОстКоличествоПалок;
НоваяСтрокаВариантовРаскроя.МассивПолучаемыхРазмеров = МассивПолучаемыхРазмеров;
Прервать;
Иначе
Если ОбрезокПалки = 1.5 Тогда
//ходовой размер, надо эту схему тоже запомнить
НоваяСтрокаВариантовРаскроя = ТаблицаРезультатОптимСхем.Добавить();
НоваяСтрокаВариантовРаскроя.ХарактеристикаНоменклатурыРаскраиваемая = ХарактеристикаНоменклатурыРаскраиваемая;
НоваяСтрокаВариантовРаскроя.ОбрезокПалки = ОбрезокПалки;
НоваяСтрокаВариантовРаскроя.КоэффициентХарактеристики = КоэффициентХарактеристики;
НоваяСтрокаВариантовРаскроя.КоличествоОстатков = ОстКоличествоПалок;
НоваяСтрокаВариантовРаскроя.МассивПолучаемыхРазмеров = МассивПолучаемыхРазмеров.Скопировать();
КонецЕсли;
МассивСтрокДляКопирования = новый Массив;
Для Индекс = 2 ПО ТаблицаНехваткиПоНоменклатуре.Количество() Цикл
МассивСтрокДляКопирования.Добавить(ТаблицаНехваткиПоНоменклатуре[Индекс-1]);
КонецЦикла;
//обязательно передавать копию таблиц, а не сами таблицы
РекурсивноПолучитьВсеСхемыРаскроя(ТаблицаРезультатОптимСхем,ХарактеристикаНоменклатурыРаскраиваемая,КоэффициентХарактеристики,ОстКоличествоПалок,Число(ОбрезокПалки),ТаблицаНехваткиПоНоменклатуре.Скопировать(МассивСтрокДляКопирования),МассивПолучаемыхРазмеров.Скопировать());
КонецЕсли;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры