Помогите с запросом по регистру накопления
Задача простейшая, но в запросах я все еще профан :( Нужен стандартный отчет по движениям по регистру: НачОстаток, Расход, Приход, КонОстаток в разрезе складов и товаров. Написал, сверяю: в результат попадает только одна продажа из трех. Т.Е. не суммируется сумма продаж по товару.
Запрос.Текст =
"ВЫБРАТЬ
| ДвиженияАкцизОстаткиИОбороты.склад КАК склад,
| ПРЕДСТАВЛЕНИЕ(ДвиженияАкцизОстаткиИОбороты.склад),
| ДвиженияАкцизОстаткиИОбороты.код КАК код,
| СУММА(ДвиженияАкцизОстаткиИОбороты.квокгНачальныйОстаток) КАК квокгНачальныйОстаток,
| СУММА(ДвиженияАкцизОстаткиИОбороты.кволНачальныйОстаток) КАК кволНачальныйОстаток,
| СУММА(ДвиженияАкцизОстаткиИОбороты.квокгПриход) КАК квокгПриход,
| СУММА(ДвиженияАкцизОстаткиИОбороты.кволПриход) КАК кволПриход,
| СУММА(ДвиженияАкцизОстаткиИОбороты.квокгРасход) КАК квокгРасход,
| СУММА(ДвиженияАкцизОстаткиИОбороты.кволРасход) КАК кволРасход,
| СУММА(ДвиженияАкцизОстаткиИОбороты.квокгКонечныйОстаток) КАК квокгКонечныйОстаток,
| СУММА(ДвиженияАкцизОстаткиИОбороты.кволКонечныйОстаток) КАК кволКонечныйОстаток
|ИЗ
| РегистрНакопления.ДвиженияАкциз.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ДвиженияАкцизОстаткиИОбороты
|ГДЕ
| ДвиженияАкцизОстаткиИОбороты.ДвоНольОдинДевять = 1";
если ЗначениеЗаполнено(выбсклад) тогда
Запрос.Текст = Запрос.Текст + "
| И ДвиженияАкцизОстаткиИОбороты.склад = &выбсклад";
Запрос.УстановитьПараметр("выбсклад", выбсклад);
КонецЕсли;
Запрос.Текст = Запрос.Текст + "
|
|СГРУППИРОВАТЬ ПО
| ДвиженияАкцизОстаткиИОбороты.склад,
| ДвиженияАкцизОстаткиИОбороты.код
|ИТОГИ
| СУММА(квокгНачальныйОстаток),
| СУММА(кволНачальныйОстаток),
| СУММА(квокгПриход),
| СУММА(кволПриход),
| СУММА(квокгРасход),
| СУММА(кволРасход),
| СУММА(квокгКонечныйОстаток),
| СУММА(кволКонечныйОстаток)
|ПО
| ОБЩИЕ,
| склад,
| код";
Запрос.УстановитьПараметр("1", 1);
Запрос.УстановитьПараметр("НачалоПериода", ДатаНач);
Запрос.УстановитьПараметр("КонецПериода", ДатаКон);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Группировка() = "ОБЩИЕ" Тогда
ОбластьИтого.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьИтого);
КонецЕсли;
Если Выборка.Группировка() = "склад" Тогда
ОбластьСклад.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьСклад);
КонецЕсли;
Если Выборка.Группировка() = "код" Тогда
ОбластьДетальныхЗаписей.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьДетальныхЗаписей);
КонецЕсли;
КонецЦикла;
ПоказатьПо теме из базы знаний
- Описание механизмов программных реализаций на платформе 1С:Предприятие 8.1 : «Использование временных таблиц в запросах»
- Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали
- Универсальный отчет для сравнения записей регистров накопления между базами по COM-соединению, для обычных форм
- Алгоритм для выгрузки регистра накопления (остатки) из 7.7 в 8.x
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот