WMS ›
Отчет по рознице помогите ›
#10
03.01.07 12:47
Вообщем пробовал сделать по регистрам Документ (Document) - позволяет детализацию до документа;
СтрокаДокумента (DocumentLine) - позволяет детализацию до строки документа; не получаеться у меня ...(немогу понять как переменные описать, и как таблицу линовать?) Сделал я таки по своему всё выводиться ОК(одну лишнюю строку в таблице просто убрал :)). Теперь надо добавить Возврат от покупателя, вроде бы сделал всё как и раньше, ощибок на синтаксис нет, а на выводе не отображается по Возврату НИЧЕГО, в чем причина не могу понять (в таблице секции прописал)? Листинг:
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Количество1 = Регистр.ОстаткиТМЦ.Количество;
|ЦенаПрод = Регистр.ОстаткиТМЦ.ЦенаПрод;
|Функция КоличествоНачОст = НачОст(Количество1);
|Функция КоличествоКонОст = КонОст(Количество1);
|Функция ЦенаПродСумма = Сумма(ЦенаПрод);
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|Контрагент = Документ.РеализацияРозница.Контрагент;
|Процент = Документ.РеализацияРозница.Скидка.Процент;
|Номенклатура = Документ.РеализацияРозница.Номенклатура;
|Количество = Документ.РеализацияРозница.Количество;
|Цена = Документ.РеализацияРозница.Цена;
|Сумма = Документ.РеализацияРозница.Сумма;
// возврат
|ВозвратОтПокупателя = Документ.ВозвратОтПокупателя.ТекущийДокумент;
|КонтрагентВ = Документ.ВозвратОтПокупателя.Контрагент;
|ПроцентВ = Документ.ВозвратОтПокупателя.Скидка.Процент;
|НоменклатураВ = Документ.ВозвратОтПокупателя.Номенклатура;
// |АртикулВ = Документ.ВозвратОтПокупателя.Номенклатура.Артикул;
|КоличествоВ = Документ.ВозвратОтПокупателя.Количество;
|ЦенаВ = Документ.ВозвратОтПокупателя.Цена;
|СуммаВ = Документ.ВозвратОтПокупателя.Сумма;
|Функция КоличествоВСумма = Сумма(КоличествоВ);
|Функция СуммаВСумма = Сумма(СуммаВ);
|Функция ЦенаВСумма = Сумма(ЦенаВ);
// конец возврата
|Функция ЦенаСумма = Сумма(Цена);
|Функция КоличествоСумма = Сумма(Количество);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка РеализацияРозница без групп упорядочить по РеализацияРозница.ДатаДок, РеализацияРозница.Контрагент, РеализацияРозница.Скидка,ЦенаСумма;
|Группировка Номенклатура без групп упорядочить по Номенклатура.Наименование, Номенклатура.Артикул,КоличествоСумма, СуммаСумма;
// возврат
|Группировка ВозвратОтПокупателя упорядочить по ВозвратОтПокупателя.ДатаДок, ВозвратОтПокупателя.Контрагент, ВозвратОтПокупателя.Скидка без групп;
|Группировка НоменклатураВ упорядочить по НоменклатураВ.Наименование, НоменклатураВ.Артикул, КоличествоВСумма, ЦенаВСумма, СуммаВСумма без групп;
// конец группировки возврата
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей РеализацияРозница
Таб.ВывестиСекцию("РеализацияРозница");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
// возврат
Пока Запрос.Группировка(3) = 1 Цикл
Таб.ВывестиСекцию("ВозвратОтПокупателя");
Пока Запрос.Группировка(4) = 1 Цикл
Таб.ВывестиСекцию("НоменклатураВ");
КонецЦикла;
КонецЦикла;
// возврат
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Итого1");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры