1. request4t 14.08.19 15:21 Сейчас в теме

Помогите с запросом по регистру накопления

Задача простейшая, но в запросах я все еще профан :( Нужен стандартный отчет по движениям по регистру: НачОстаток, Расход, Приход, КонОстаток в разрезе складов и товаров. Написал, сверяю: в результат попадает только одна продажа из трех. Т.Е. не суммируется сумма продаж по товару.

Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДвиженияАкцизОстаткиИОбороты.склад КАК склад,
		|	ПРЕДСТАВЛЕНИЕ(ДвиженияАкцизОстаткиИОбороты.склад),
		|	ДвиженияАкцизОстаткиИОбороты.код КАК код,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.квокгНачальныйОстаток) КАК квокгНачальныйОстаток,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.кволНачальныйОстаток) КАК кволНачальныйОстаток,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.квокгПриход) КАК квокгПриход,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.кволПриход) КАК кволПриход,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.квокгРасход) КАК квокгРасход,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.кволРасход) КАК кволРасход,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.квокгКонечныйОстаток) КАК квокгКонечныйОстаток,
		|	СУММА(ДвиженияАкцизОстаткиИОбороты.кволКонечныйОстаток) КАК кволКонечныйОстаток
		|ИЗ
		|	РегистрНакопления.ДвиженияАкциз.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ДвиженияАкцизОстаткиИОбороты
		|ГДЕ
		|	ДвиженияАкцизОстаткиИОбороты.ДвоНольОдинДевять = 1";
		
		
		если ЗначениеЗаполнено(выбсклад) тогда
			Запрос.Текст = Запрос.Текст + "
			|	И ДвиженияАкцизОстаткиИОбороты.склад = &выбсклад";
			Запрос.УстановитьПараметр("выбсклад", выбсклад);
	КонецЕсли;
	
	Запрос.Текст = Запрос.Текст + "
		|
		|СГРУППИРОВАТЬ ПО
		|	ДвиженияАкцизОстаткиИОбороты.склад,
		|	ДвиженияАкцизОстаткиИОбороты.код
		|ИТОГИ
		|	СУММА(квокгНачальныйОстаток),
		|	СУММА(кволНачальныйОстаток),
		|	СУММА(квокгПриход),
		|	СУММА(кволПриход),
		|	СУММА(квокгРасход),
		|	СУММА(кволРасход),
		|	СУММА(квокгКонечныйОстаток),
		|	СУММА(кволКонечныйОстаток)
		|ПО
		|	ОБЩИЕ,
		|	склад,
		|	код";
	
	Запрос.УстановитьПараметр("1", 1);
	Запрос.УстановитьПараметр("НачалоПериода", ДатаНач);
	Запрос.УстановитьПараметр("КонецПериода", ДатаКон);

Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Если Выборка.Группировка() = "ОБЩИЕ" Тогда
			ОбластьИтого.Параметры.Заполнить(Выборка);
			ТабДок.Вывести(ОбластьИтого);
		КонецЕсли;
		Если Выборка.Группировка() = "склад" Тогда
			ОбластьСклад.Параметры.Заполнить(Выборка);
			ТабДок.Вывести(ОбластьСклад);
		КонецЕсли;
		Если Выборка.Группировка() = "код" Тогда
			ОбластьДетальныхЗаписей.Параметры.Заполнить(Выборка);
			ТабДок.Вывести(ОбластьДетальныхЗаписей);
		КонецЕсли;
	КонецЦикла;

Показать
Ответы
Избранное Подписка Сортировка: Древо
2. yarohagolovatiy 14.08.19 16:19 Сейчас в теме
(1) Здравствуйте, для начала перенесите условия в параметры виртуальной таблицы остатков и оборотов.
3. request4t 14.08.19 18:36 Сейчас в теме
решил проблему обходом по группировкам
4. danjer74 15.08.19 07:47 Сейчас в теме
(3)Нужно убрать агрегатные функции из первого запроса. Это методологически неверно. Сумма считается сама
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 120 000 руб.
Полный день

Руководитель проекта, аналитик, консультант
Санкт-Петербург
По совместительству

Программист 1С
Самара
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 140 000 руб. до 200 000 руб.
Полный день