1. Tailor_Made 09.09.19 12:04 Сейчас в теме

Анализ продажи товаров за период

Здравствуйте. Я пытался написать обработку, которая бы выводила товары, проданные за день и на их основании в дальнейшем создавать Заказ поставщику.
Но почему-то у меня сам запрос не верно работает, он затягивает и перемещение между складами(как продажу) и в Остаток попадает остаток склада, с которого последнего был продан товар. Может кто-то объяснить что тут не так? Буду очень вам благодарен, не один день голову ломаю с этим
Управление торговлей для Украины, редакция 3.1 (3.1.6.1)
1С 8.3


ВЫБРАТЬ РАЗЛИЧНЫЕ
	ПересчетТоваровТовары.Номенклатура,
	ПересчетТоваровТовары.Характеристика,
	ПересчетТоваровТовары.Серия,
	ИСТИНА КАК ИспользуетсяОтборПересчетуТоваров
ПОМЕСТИТЬ ОтборПоПересчетуТоваров
ИЗ
	Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
{ГДЕ
	ПересчетТоваровТовары.Ссылка.* КАК ПересчетТоваров}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Сегменты.Номенклатура,
	Сегменты.Характеристика,
	ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
	РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
	Сегменты.Сегмент.* КАК СегментНоменклатуры,
	Сегменты.Номенклатура.* КАК Номенклатура,
	Сегменты.Характеристика.* КАК Характеристика}

ИНДЕКСИРОВАТЬ ПО
	Сегменты.Номенклатура,
	Сегменты.Характеристика,
	ИспользуетсяОтборПоСегментуНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Артикул КАК Артикул,
	ТоварыНаСкладахОстаткиИОбороты.Назначение КАК Назначение,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаХранения,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов КАК ЕдиницаДляОтчетов,
	ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
	ТоварыНаСкладахОстаткиИОбороты.Помещение КАК Помещение,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК НачальныйОстаток,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК КонечныйОстаток,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК Приход,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК Расход,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК КОтгрузкеНачальныйОстаток,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК КОтгрузкеКонечныйОстаток,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеПриход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК КОтгрузкеПриход,
	СУММА(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
			ИНАЧЕ 0
		КОНЕЦ) КАК КОтгрузкеРасход,
	ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК Количество,
	ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК Остаток
{ВЫБРАТЬ
	Номенклатура.*,
	ЕдиницаХранения.*,
	ЕдиницаДляОтчетов.*,
	Склад.*,
	Помещение.*,
	НачальныйОстаток,
	КонечныйОстаток,
	Приход,
	Расход,
	КОтгрузкеНачальныйОстаток,
	КОтгрузкеКонечныйОстаток,
	КОтгрузкеПриход,
	КОтгрузкеРасход}
ИЗ
	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, ДвиженияИГраницыПериода, {((Номенклатура, Характеристика) В
			    (ВЫБРАТЬ
			        ОтборПоСегментуНоменклатуры.Номенклатура,
			        ОтборПоСегментуНоменклатуры.Характеристика
			    ИЗ
			        ОтборПоСегментуНоменклатуры
			    ГДЕ
			        ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)) КАК Поле2, ((Номенклатура, Характеристика, Серия) В
			    (ВЫБРАТЬ
			        ОтборПоПересчетуТоваров.Номенклатура,
			        ОтборПоПересчетуТоваров.Характеристика,
			        ОтборПоПересчетуТоваров.Серия
			    ИЗ
			        ОтборПоПересчетуТоваров
			    ГДЕ
			        ОтборПоПересчетуТоваров.ИспользуетсяОтборПересчетуТоваров = &ИспользуетсяОтборПересчетуТоваров)) КАК Поле4}) КАК ТоварыНаСкладахОстаткиИОбороты
{ГДЕ
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.*,
	ТоварыНаСкладахОстаткиИОбороты.Характеристика.*,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмерения.*,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.*,
	ТоварыНаСкладахОстаткиИОбороты.Серия.*,
	ТоварыНаСкладахОстаткиИОбороты.Склад.*,
	ТоварыНаСкладахОстаткиИОбороты.Помещение.*,
	(ВЫБОР
			КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
				ТОГДА NULL
			ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор
		КОНЕЦ).* КАК Регистратор,
	ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда,
	ТоварыНаСкладахОстаткиИОбороты.ПериодДень,
	ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя,
	ТоварыНаСкладахОстаткиИОбороты.ПериодДекада,
	ТоварыНаСкладахОстаткиИОбороты.ПериодМесяц,
	ТоварыНаСкладахОстаткиИОбороты.ПериодКвартал,
	ТоварыНаСкладахОстаткиИОбороты.ПериодГод,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК НачальныйОстаток,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК КонечныйОстаток,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК Приход,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК Расход,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеНачальныйОстаток
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК КОтгрузкеНачальныйОстаток,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеКонечныйОстаток
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК КОтгрузкеКонечныйОстаток,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеПриход
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеПриход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК КОтгрузкеПриход,
	(ВЫБОР
			КОГДА &ЕдиницыКоличества = 0
				ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеРасход
			КОГДА &ЕдиницыКоличества = 1
				ТОГДА ВЫБОР
						КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
							ТОГДА ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
						ИНАЧЕ 0
					КОНЕЦ
		КОНЕЦ) КАК КОтгрузкеРасход,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК НачальныйОстатокВес,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК КонечныйОстатокВес,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК ПриходВес,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК РасходВес,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК НачальныйОстатокОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК КонечныйОстатокОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК ПриходОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК РасходОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК КОтгрузкеНачальныйОстатокВес,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК КОтгрузкеКонечныйОстатокВес,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК КОтгрузкеПриходВес,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Вес) КАК КОтгрузкеРасходВес,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК КОтгрузкеНачальныйОстатокОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК КОтгрузкеКонечныйОстатокОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК КОтгрузкеПриходОбъем,
	(ТоварыНаСкладахОстаткиИОбороты.КОтгрузкеРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Объем) КАК КОтгрузкеРасходОбъем}

СГРУППИРОВАТЬ ПО
	ТоварыНаСкладахОстаткиИОбороты.Помещение,
	ТоварыНаСкладахОстаткиИОбороты.Назначение,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Артикул,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмерения,
	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов,
	ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход,
	ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток,
	ТоварыНаСкладахОстаткиИОбороты.Склад
{ИТОГИ ПО
	Номенклатура.*}
Показать
Прикрепленные файлы:
1_09_09_АвтоматическаяЗакупкаТовара.epf
Найденные решения
5. d.batovskiy 09.09.19 17:07 Сейчас в теме
Нужно брать данные из регистра "ВыручкаИСебестоимостьПродаж", из этого регистра будут все продажи и возвраты товаров. А из регистра ТоварыНаСкладах берутся все товарные движения.
Остальные ответы
Избранное Подписка Сортировка: Древо
4. user614822 29 09.09.19 14:42 Сейчас в теме
(1) а зачем вообще так все сложно-то ?
Если вы хотите получить проданные за день товары , то и берите документы продаж за этот день - и все - 5 строчек кода
7. Tailor_Made 10.09.19 10:00 Сейчас в теме
(4)я пытался так сделать запрос, но у меня не вышло. Поэтому нашел этот и под себя что-то переделал
мы через Чеки ККМ продаём, с них можно как-то получить эти данные?
2. danjer74 1 09.09.19 12:42 Сейчас в теме
Так может делать запрос на базе регистра продажи? Посмотрите отчет по продажам как сделан. Конфигурации под рукой нет, так что не смогу точно пдсказать.
3. VmvLer 09.09.19 12:44 Сейчас в теме
5. d.batovskiy 09.09.19 17:07 Сейчас в теме
Нужно брать данные из регистра "ВыручкаИСебестоимостьПродаж", из этого регистра будут все продажи и возвраты товаров. А из регистра ТоварыНаСкладах берутся все товарные движения.
6. Tailor_Made 10.09.19 09:56 Сейчас в теме
(5)
Нужно брать данные из регистра "ВыручкаИСебестоимостьПродаж", из этого регистра будут все продажи и возвраты товаров. А из регистра ТоварыНаСкладах берутся все товарные движения.

Просто такого регистра у меня нету... такие есть(прикрепил)
Прикрепленные файлы:
8. d.batovskiy 10.09.19 10:15 Сейчас в теме
(6)Как же нет "ВыручкаИСебестоимостьПродаж", на первом скриншоте второй сверху?
9. Tailor_Made 10.09.19 12:47 Сейчас в теме
А Номенклатуру брать с АналитикиУчетаНоменклатуры ?
Прикрепленные файлы:
10. d.batovskiy 10.09.19 13:37 Сейчас в теме
(8)Делаете левое соединение со справочником "КлючиАналитикиУчетаНоменклатуры" по измерению "АналитикаУчетаНоменклатуры", и из справочника берете номенклатуру.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


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

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

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

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