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С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

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

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

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

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день