1. SeverBaP 5 12.01.18 18:18 Сейчас в теме

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

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

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

Вакансии

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

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

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

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

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