|
обход результат запроса по группировкам | ☑ | ||
---|---|---|---|---|
0
ВежливаяТварь
09.05.12
✎
15:56
|
Добрый день. Столкнулся с мало приятной проблемой. Есть код:
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.Цена, | РеализацияТоваровУслугТовары.СтавкаНДС |ПОМЕСТИТЬ Продажи |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА | И РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &ДатаКон | И РеализацияТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&ПолучателиДляВыгрузки) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Штрихкоды.Штрихкод, | Штрихкоды.Владелец |ПОМЕСТИТЬ ПереченьШтрихкодов |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Продажи.Ссылка, | Продажи.Ссылка.Дата КАК Дата, | Продажи.Ссылка.Номер КАК Номер, | Продажи.Ссылка.Контрагент.ИНН КАК ИНН, | Продажи.Ссылка.Контрагент.Код КАК Код, | Продажи.Ссылка.Контрагент.Наименование КАК Контрагент, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Номенклатура.Наименование) КАК НоменклатураНаименование, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Номенклатура.Артикул) КАК НоменклатураАртикул, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПереченьШтрихкодов.Штрихкод) КАК Штрихкод, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Номенклатура.Код) КАК НоменклатураКод, | СУММА(Продажи.Количество) КАК Количество, | СУММА(Продажи.Цена) КАК Цена, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.СтавкаНДС) КАК СтавкаНДС |ИЗ | Продажи КАК Продажи | ЛЕВОЕ СОЕДИНЕНИЕ ПереченьШтрихкодов КАК ПереченьШтрихкодов | ПО Продажи.Контрагент.Ссылка = ПереченьШтрихкодов.Владелец.Ссылка | |СГРУППИРОВАТЬ ПО | Продажи.Ссылка, | Продажи.Ссылка.Дата, | Продажи.Ссылка.Номер, | Продажи.Ссылка.Контрагент.ИНН, | Продажи.Ссылка.Контрагент.Код, | Продажи.Ссылка.Контрагент.Наименование"; Запрос.УстановитьПараметр("ПолучателиДляВыгрузки",ПолучателиДляВыгрузки); Запрос.установитьПараметр("ДатаНач",НачалоДня(ДатаНачала)); Запрос.установитьПараметр("ДатаКон",КонецДня(ДатаКонца)); Запрос.установитьПараметр("ФактическийАдресКонтрагента",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000000008")); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщить ("Отсутствуют данные для вывода"); Возврат; Конецесли; УдалитьСтарыеФайлыВыгрузки(); Файл = Новый ТекстовыйДокумент(); РезультатЗапроса=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока РезультатЗапроса.Следующий() Цикл Файл.ДобавитьСтроку("НачалоДокумента -----------------------------------"); // отметка начала документа. Файл.ДобавитьСтроку("Ш " + "Дата " + РезультатЗапроса.Дата); // Дата документа Файл.ДобавитьСтроку("Ш " + "НомерДок " + РезультатЗапроса.Номер); // Номер документа Файл.ДобавитьСтроку("Ш " + "ИНН " + РезультатЗапроса.Инн); Файл.ДобавитьСтроку("Ш " + "КодПолучателя " + РезультатЗапроса.Код); // Код покупателя Файл.ДобавитьСтроку("Ш " + "ИмяПолучателя " + РезультатЗапроса.Контрагент); // Имя покупателя //Файл.ДобавитьСтроку("Ш " + "АдресДоставки " + ); // Адрес доставки // записываем данные табличной части: ИмяТовара, КодТовара, АртикулТовара, ШКТовара, Количество, Цена, НДС. ДеталиДокумента=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.прямой); Пока ДеталиДокумента.Следующий() Цикл Файл.ДобавитьСтроку("Т " + "ИмяТовара " + ДеталиДокумента.НоменклатураНаименование); // Имя товара Файл.ДобавитьСтроку("Т " + "АртикулТовара " + ДеталиДокумента.НоменклатураАртикул); // Артикул товара Файл.ДобавитьСтроку("Т " + "ШКТовара " + ДеталиДокумента.Штрихкод); Файл.ДобавитьСтроку("Т " + "КодТовара " + ДеталиДокумента.НоменклатураКод); // Код товара Файл.ДобавитьСтроку("Т " + "Количество " +ДеталиДокумента.Количество); // Количество Файл.ДобавитьСтроку("Т " + "Цена " + ДеталиДокумента.Цена); // Цена Файл.ДобавитьСтроку("Т " + "НДС " + ДеталиДокумента.СтавкаНДС); // НДС (значение, а не сумма) КонецЦикла; Файл.ДобавитьСтроку("КонецДокумента ===================================="); // отметка конца документа. КонецЦикла; ПутьКФайлуВыгрузки=ПутьККаталогуСФайламиВыгрузки+СформироватьИмяФайла(); Файл.Записать(ПутьКФайлуВыгрузки,"windows-1251"); СжатьФайлВыгрузки(ПутьКФайлуВыгрузки); Сообщить("Выгрузка завершена. Расположение файла выгрузки: " + ПутьККаталогуСФайламиВыгрузки); Всё работает нормально только вот этот кусуок: ДеталиДокумента=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.прямой); Пока ДеталиДокумента.Следующий() Цикл Файл.ДобавитьСтроку("Т " + "ИмяТовара " + ДеталиДокумента.НоменклатураНаименование); // Имя товара Файл.ДобавитьСтроку("Т " + "АртикулТовара " + ДеталиДокумента.НоменклатураАртикул); // Артикул товара Файл.ДобавитьСтроку("Т " + "ШКТовара " + ДеталиДокумента.Штрихкод); Файл.ДобавитьСтроку("Т " + "КодТовара " + ДеталиДокумента.НоменклатураКод); // Код товара Файл.ДобавитьСтроку("Т " + "Количество " +ДеталиДокумента.Количество); // Количество Файл.ДобавитьСтроку("Т " + "Цена " + ДеталиДокумента.Цена); // Цена Файл.ДобавитьСтроку("Т " + "НДС " + ДеталиДокумента.СтавкаНДС); // НДС (значение, а не сумма) КонецЦикла; не хочет выполнятся. что я делаю не так? |
|||
1
ВежливаяТварь
09.05.12
✎
15:58
|
По сути дела код просто вытаскивает расходные накладные и записывает их в тхт. Где я групирую по документам он выводит нормально, а когда пытаюсь вывести детали он их как будто не видит.
|
|||
2
proger2011
09.05.12
✎
15:59
|
У тебя нет группировок для обхода, ты по сути свернул. Группировки будут если у тебя в запросе будут ИТОГИ
|
|||
3
n1cr0s
09.05.12
✎
16:00
|
(0) Итоги?
|
|||
4
proger2011
09.05.12
✎
16:02
|
Кстати такая группировка не имеет смысла
|СГРУППИРОВАТЬ ПО | Продажи.Ссылка, | Продажи.Ссылка.Дата, | Продажи.Ссылка.Номер, | Продажи.Ссылка.Контрагент.ИНН, | Продажи.Ссылка.Контрагент.Код, | Продажи.Ссылка.Контрагент.Наименование"; Или это конструктор такое нахерачил? |
|||
5
ВежливаяТварь
09.05.12
✎
16:04
|
(4)Конструктор
(2)(3) А можно чуть подробней про итоги? |
|||
6
Ranger_83
09.05.12
✎
16:06
|
(5)Используй консоль отчетов,закладку итоги в конструкторе и вывод в иерархический список
|
|||
7
proger2011
09.05.12
✎
16:07
|
(5) Когда используешь СГРУППИРОВАТЬ то промежуточные данные удаляются и создаются вместо них итоги, когда используешь ИТОГИ то промежуточные данные не удаляются, а просто добавляются строки с итогами
|
|||
8
ВежливаяТварь
09.05.12
✎
16:10
|
теперь понял. Сейчас попробую. Спасибо.
|
|||
9
ВежливаяТварь
09.05.12
✎
16:16
|
Все сработало. Огромное спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |