Николай
только вопрос. почему сначала вычитаем из без назначения?
по логике нужно сначала закрывать заказы покупателей. или я не туда?
потому что эти позиции менее всего важны
у Вас не совсем правильное понимание (или изложение) терминологии: "закрывать" - значит "погашать" (действительно в первую очередь нужно погашать заказы клиентов, сначала самые ранние, потом те, что были позже); а "вычитать" надо количество из табличной части документа - если оно там станет МЕНЬШЕ, чем было изначально (до сравнения обработкой), естественно, погасить полностью строку мы не сможем
Николай
что-то я не понял - характеристики используются?
судя по коду (таблица сворачивается с учетом хар-ик) - используются.
А в таблице ексель их опять же нет. тут как?
смотрим КОД обработки и анализируем....
Если ЗначениеЗаполнено(СтрокаЗаказа.Характеристика) тогда
СписокАртикулПоставщика = ВернутьАртикулПоставщикаХарактеристики(Объект.ЗаказПоставщику.Партнер, СтрокаЗаказа.Характеристика);
иначе
СписокАртикулПоставщика = ВернутьАртикулПоставщикаНоменклатуры(Объект.ЗаказПоставщику.Партнер, СтрокаЗаказа.Номенклатура);
конецесли;
Пока СписокАртикулПоставщика.Следующий() цикл
НоваяСтрокаТаблицы.АртикулПоставщика = СписокАртикулПоставщика.Артикул;
Отбор = Новый Структура();
Отбор.Вставить("Артикул", СписокАртикулПоставщика.Артикул);
Строки = ТаблицаДанных.НайтиСтроки(Отбор);
сопоставление идет по "артикулу поставщика", который "зашит" в самой номенклатуре, либо характеристиках номенклатуры - в зависимости от этого используются функции ВернутьАртикулПоставщикаХарактеристики() или ВернутьАртикулПоставщикаНоменклатуры()