Продажи и остатки по складам УТ 10.3

1. Сергей Афонькин (SeverBaP) 4 12.01.18 18:18 Сейчас в теме
Подскажите нужно получить данные в разрезе: склад, номенклатура, начальный остаток, приход, расход (включая внутренние перемещения), расход (чистые продажи), конечный остаток.
Сформировал таким запросом:
Запрос = Новый Запрос("ВЫБРАТЬ
|	ТоварыНаСкладахОстаткиИОбороты.Склад,
|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК ОстатокНаНП,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК Приход,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК Расход,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокНаКП
|ПОМЕСТИТЬ ДанныеПоСкладу
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), , , ) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Номенклатура,
|	СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК Продано
|ПОМЕСТИТЬ Продажи
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Регистратор, ) КАК ТоварыНаСкладахОбороты
|ГДЕ
|	(ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
|			ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)
|
|СГРУППИРОВАТЬ ПО
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Номенклатура
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ДанныеПоСкладу.Склад,
|	ДанныеПоСкладу.Номенклатура,
|	ДанныеПоСкладу.ОстатокНаНП,
|	ДанныеПоСкладу.Приход,
|	ДанныеПоСкладу.Расход,
|	Продажи.Продано,
|	ДанныеПоСкладу.ОстатокНаКП
|ИЗ
|	ДанныеПоСкладу КАК ДанныеПоСкладу
|		ЛЕВОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
|		ПО ДанныеПоСкладу.Склад = Продажи.Склад
|			И ДанныеПоСкладу.Номенклатура = Продажи.Номенклатура");
Запрос.УстановитьПараметр("НачалоПериода",НачалоНедели(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ТекущаяДата());
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Показать

Подскажите правильно я делаю?
Ответы
3. Сергей Смирнов (protexprotex) 166 14.01.18 11:54 Сейчас в теме
(1) Добрый день. Вот только тут -
Запрос.УстановитьПараметр("НачалоПериода",НачалоНедели(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ТекущаяДата());
я бы через Новый Граница (Позиция, ВидГраницы.Включая) сделал.
9. Петр Логинов (PiotrLoginov) 24.01.18 19:42 Сейчас в теме
(1) Под "расход (чистые продажи)" имелось ввиду "Расход (только продажи)"?
Когда делал подобное, использовал и регистров остатков на складе, и регистр продаж.
2. Alx Alx (alxarz) 29 14.01.18 07:29 Сейчас в теме
4. Сергей Афонькин (SeverBaP) 4 15.01.18 11:56 Сейчас в теме
Хорошо, а то думал для получения чистой продажи необходимо было как-то подтягивать данные из регистра накопления "Продажи"
5. InzPtic (Dm_Kz) 23.01.18 15:23 Сейчас в теме
(4) Если в системе не используются (и вы уверены, что не будут использоваться) какие-то экзотические документы, вроде "КорректировкаРеализации" или "КорректировкаЗаписейРегистров", то можно собирать продажи по регистру "ТоварыНаСкладах". Но правильнее использовать регистр "Продажи" для продаж, "ТоварыНаСкладах" - для товародвижения.
Кстати, у вас никак не учитываются возвраты. Возможно в постановке задачи это не было указано, но при формировании типового отчета по продажам его данные разойдутся с вашим запросом.
6. Сергей Афонькин (SeverBaP) 4 24.01.18 16:28 Сейчас в теме
(5) Есть наброски на скрещивание регистра продаж к складу, что бы знать с какого склада было продано?
7. InzPtic (Dm_Kz) 24.01.18 17:19 Сейчас в теме
(6) Например, так:
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура,
	ПродажиОбороты.ХарактеристикаНоменклатуры,
	ПродажиОбороты.ДокументПродажи.Склад КАК Склад,
	ПродажиОбороты.КоличествоОборот,
	ПродажиОбороты.СтоимостьОборот
ИЗ
	РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
8. InzPtic (Dm_Kz) 24.01.18 17:24 Сейчас в теме
(6)
(7)Хотя обращаться к реквизиту документа используя строку виртуальной таблицы "Продажи" конечно же не надо. Это отрицательно скажется на производительности. В моем предыдущем комментарии текст запроса приведен просто для примера того, откуда можно взять склад
Оставьте свое сообщение