Доброго времени суток суть следующего кода выгрузка продаж по номенклатуре из регистра продажи. Возвраты вроде тоже проходят по этому регистру однако у меня не получается получть в групперовке документ возврат. Подскажите как это сделать. я не так часто пишу поэтому есть определённые трудности.
ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|Товар = Регистр.Продажи.Номенклату ра;
|Количество = Регистр.Продажи.Количество ;
|Сумма = Регистр.Продажи.ПродСтоимо сть;
|Клиент = Регистр.Продажи.Покупатель ;
|Функция КоличествоСумма = Сумма(Количество);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка Документ;
|Группировка Товар без групп;
|Условие(Клиент в ВыбКлиенты);
|Условие(Товар в ВыбТовары);";
// |"//}}ЗАПРОС
base_1c
11.12.2011, 20:11
В тексте запроса не описана переменная Документ
попробуй такой запрос, у тебя всегда будет документ движения
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Номенклатура = Регистр.Продажи.Номенклату ра;
|Покупатель = Регистр.Продажи.Покупатель ;
|ТекущийДокумент = Регистр.Продажи.ТекущийДок умент;
|Количество = Регистр.Продажи.Количество ;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Номенклатура;
|Группировка Покупатель;
|Группировка ТекущийДокумент;
|"//}}ЗАПРОС
AlanB
12.12.2011, 11:05
Не помогло
Oleg0504
26.12.2011, 09:40
У Вас неправильно построен запрос. Зачем-то идет группировка "Документ", на которую, даже переменной нет.
По-идее должно быть вот так:
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Номенклатура = Регистр.Продажи.Номенклату ра;
|Количество = Регистр.Продажи.Количество ;
|ПродСтоимость = Регистр.Продажи.ПродСтоимо сть;
|Покупатель = Регистр.Продажи.Покупатель ;
|ТекущийДокумент = Регистр.Продажи.ТекущийДок умент;
|Функция КоличествоСумма = Сумма(Количество);
|Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
|Группировка Номенклатура без групп;
|"//}}ЗАПРОС
А обращаться к результатам вот так:
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
//Переменные и функции получаем так:
НОменклатура = Запрос.Номенклатура;
Покупатель = Запрос.Покупатель;
Сумма = Запрос.КоличествоСумма;
...
КонецЦикла;
А чтобы не париться и не указывать документы возврата и документы продажи, лучше сделать что-то типа такого:
А если нужны итоги , то упихать это дело в ТаблицуЗначений
Рег = СоздатьОбъект("Регистр.Продажи");
Рег.ВыбратьДвижения(НачДат а,КонДата);
Пока Рег.ПолучитьДвижение() <> 0 Цикл
Док = Рег.ТекущийДокумент();
Товары = Рег.Товары;
Если Рег.Расход = 1 Тогда
//сюда попадут продажи
ИначеЕсли Рег.Приход = 1 Тогда
//сюда попадут возвраты
КонецЕсли;
КонецЦикла;[COLOR="Silver"]