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