Помогите с группировками в запросе, я уже голову сломал, не получается :-(
Antidot
16.05.2009 - 02:50
|
Здравствуйте! Процедура ОсновныеДействияФормыСформироватьПриходы(Кнопка) Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | РасходнаяТовары.Ссылка КАК Ссылка, | РасходнаяТовары.Ссылка.Дата КАК НачальнаяДата, | ДокупкиОстатки.Номенклатура.Родитель КАК Группа, | ДокупкиОстатки.Номенклатура.Родитель.ПостоянныйПоставщик КАК ПостоянныйПоставщик, | ДокупкиОстатки.Номенклатура КАК Номенклатура, | ДокупкиОстатки.КоличествоОстаток КАК Остаток, | ДокупкиОстатки.СуммаОстаток КАК СуммаОстаток, | РасходнаяТовары.Цена |ИЗ | РегистрНакопления.Докупки.Остатки КАК ДокупкиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Расходная.Товары КАК РасходнаяТовары | ПО ДокупкиОстатки.Номенклатура = РасходнаяТовары.Номенклатура |ИТОГИ | СУММА(Остаток), | СУММА(СуммаОстаток) |ПО | Группа, Номенклатура"; //Запрос.УстановитьПараметр("Дата", Дата); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда ТаблЧасть = ЭлементыФормы.ПроводимыеДокументы; ВыборкаСсылок = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Группа"); //Нужно ли тут делать по группировкам? //ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСсылок.Следующий() Цикл НовыйДокумент = Документы.Приходная.СоздатьДокумент(); НовыйДокумент.Дата=НачалоМесяца(ТекущаяДата());//ВыборкаСсылок.НачальнаяДата); НовыйДокумент.Контрагент=ВыборкаСсылок.ПостоянныйПоставщик; Выборка = ВыборкаСсылок.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура"); ТЧ = НовыйДокумент.Товары.Добавить(); Пока Выборка.Следующий() Цикл ТЧ.Номенклатура=Выборка.Номенклатура; ТЧ.Количество=Выборка.Остаток; // ТЧ.Цена=ВыборкаСсылок.Цена-ВыборкаСсылок.Цена*10/100; //цена < на 10% от цены продажи // ТЧ.Сумма=(ВыборкаСсылок.Остаток*-1)*(ВыборкаСсылок.Цена-ВыборкаСсылок.Цена*10/100); //КонецЦикла; //НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение); // Объект=ВыборкаСсылок.ссылка.получитьОбъект(); // Объект.Записать(РежимЗаписиДокумента.Проведение); // ТаблЧасть.ДобавитьСтроку(); // Стр=ТаблЧасть.ТекущаяСтрока; // Стр.Документ=ВыборкаСсылок.Ссылка; КонецЦикла; НовыйДокумент.Записать();//РежимЗаписиДокумента.Проведение); КОнецЦикла; КонецЕсли; КонецПроцедуры Нужно для каждой группы номенклатуры ввести отдельные документ, и в документе ввести табличную часть, в которой ввести номенклатуру, которая этой группе принадлежит, вот не могу правильно обойти результат запроса, у меня вводится документ, а в табличной части не список номенклатуры, а одна позиция, последняя в из результата запроса, что не так в обходе запроса????????????? спасибо!!!!!!! |