Помогите с запросом

1. user930087 15.11.19 09:34 Сейчас в теме
Помогите плиз с запросом, вывожу продажи и тут же остатки. Почему-то остатки выводятся кардинально неверно. Не могу понять где ошибся.

"ВЫБРАТЬ
		                |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
		                |	ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокРезерв,
		                |	ПродажиОбороты.ДокументПродажи,
		                |	ПродажиОбороты.Контрагент,
		                |	ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
		                |	ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
		                |	ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
		                |	ПродажиОбороты.НДСОборот КАК НДСОборот,
		                |	ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетов,
		                |	ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдиниц,
		                |	ВЫБОР
		                |		КОГДА ПродажиОбороты.СтоимостьБезСкидокОборот = 0
		                |			ТОГДА 0
		                |		ИНАЧЕ (ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) / ПродажиОбороты.СтоимостьБезСкидокОборот * 100
		                |	КОНЕЦ КАК ПроцентСкидки,
		                |	ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот КАК СуммаСкидки,
		                |	ПродажиОбороты.Номенклатура,
		                |	ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК Цена,
						|   ПродажиОбороты.Период КАК Период,
						|   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
		                |	ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот КАК ЦенаБезСкидок
		                |{ВЫБРАТЬ
		                |	Остаток,
		                |	ОстатокРезерв,
		                |	ДокументПродажи.*,
		                |	Контрагент.*,
		                |	КоличествоОборот,
		                |	СтоимостьОборот,
		                |	СтоимостьБезСкидокОборот,
		                |	НДСОборот,
		                |	КоличествоЕдиницОтчетов,
		                |	КоличествоБазовыхЕдиниц,
		                |	ПроцентСкидки,
		                |	СуммаСкидки,
		                |	Номенклатура.*,
		                |	Цена,
						|   Период КАК Период,
						|   ПериодНеделя,
		                |	ЦенаБезСкидок}
		                |ИЗ
		                |	РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ПродажиОбороты
		                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
		                |		ПО ПродажиОбороты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
		                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыВРезервеНаСкладахОстатки
		                |		ПО ПродажиОбороты.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
		                |ГДЕ
		                |	ПродажиОбороты.КоличествоОборот <> 0
		                |{ГДЕ
		                |	ТоварыНаСкладахОстатки.Номенклатура.*,
		                |	ТоварыНаСкладахОстатки.КоличествоОстаток,
		                |	ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
		                |	ПродажиОбороты.ДокументПродажи.*,
		                |	ПродажиОбороты.Контрагент.*,
		                |	ПродажиОбороты.КоличествоОборот,
		                |	ПродажиОбороты.СтоимостьОборот,
		                |	ПродажиОбороты.СтоимостьБезСкидокОборот,
		                |	ПродажиОбороты.НДСОборот,
		                |	(ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетов,
		                |	(ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕд,
		                |	(ВЫБОР
		                |			КОГДА ПродажиОбороты.СтоимостьБезСкидокОборот = 0
		                |				ТОГДА 0
		                |			ИНАЧЕ (ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) / ПродажиОбороты.СтоимостьБезСкидокОборот * 100
		                |		КОНЕЦ) КАК ПроцентСкидки,
		                |	(ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) КАК СуммаСкидки,
		                |	ПродажиОбороты.Номенклатура.*,
		                |	ПродажиОбороты.ЗаказПокупателя.*,
		                |	ПродажиОбороты.Подразделение.*,
		                |	ПродажиОбороты.Организация.*,
		                |	(ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) КАК Цена,
						|   ПродажиОбороты.Период КАК Период,
						|   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
		                |	(ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) КАК ЦенаБезСкидок}
		                |{УПОРЯДОЧИТЬ ПО
		                |	Контрагент.*,
		                |	Номенклатура.*,
		                |	ДокументПродажи.*,
						|   Период,
						|   ПериодНеделя,
		                |	ПродажиОбороты.Организация.*}
		                |ИТОГИ
		                |	СУММА(Остаток),
		                |	СУММА(ОстатокРезерв),
		                |	СУММА(КоличествоОборот),
		                |	СУММА(СтоимостьОборот),
		                |	СУММА(СтоимостьБезСкидокОборот),
		                |	СУММА(НДСОборот),
		                |	СУММА(КоличествоЕдиницОтчетов),
		                |	СУММА(КоличествоБазовыхЕдиниц),
		                |	МАКСИМУМ(ПроцентСкидки),
		                |	СУММА(СуммаСкидки),
		                |	СУММА(Цена),
		                |	СУММА(ЦенаБезСкидок)
		                |ПО
		                |	ОБЩИЕ
		                |{ИТОГИ ПО
		                |	ДокументПродажи.*,
		                |	Контрагент.*,
						|   Период,
						|   ПериодНеделя,
		                |	Номенклатура.*}
		                |АВТОУПОРЯДОЧИВАНИЕ";

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. YannikAlx 43 15.11.19 10:11 Сейчас в теме
(1) Во первых начинайте делать запросы в Консоли запросов - это позволит оперативно их менять и быстро видеть результат изменения (в разы быстрее)
Во вторых для обсуждения ошибок длинные запросы не удобны - никому не охота читать океаны текста...
И в третьих не соединяйте Виртуальные таблицы напрямик - сначала сделайте выборку как минимум основной виртуальной таблицы во временную, этим вы как минимум получите метод анализировать на каком этапе запроса у вас пурга...
5. Den75Ch 15.11.19 10:11 Сейчас в теме
(1) а в чем ошибка заключается?
6. RustamZz 15.11.19 10:12 Сейчас в теме
(1) Если были продажи одной номенклатуры 5 документами, то остаток по это номенклатуре будет в 5 строках. Если за итожить по номенклатуре то в остатке будет в 5 раз больше.

Лучшее, что можно сделать с запросом это удолить.
user930087; +1 Ответить
2. VmvLer 15.11.19 09:49 Сейчас в теме
когда тузик порвет эту простыню как грелку, то можно начать анализировать ошметки
3. xSavantx 25 15.11.19 10:08 Сейчас в теме
Даже незнаю чем вам помочь. Выберите нужный ответ сами:
1) Позовите программиста 1С
2) Научитесь пользоваться консолью запросов
3) Научитесь грамотно формулировать вопросы
YannikAlx; +1 Ответить
7. _Val_ 15.11.19 11:33 Сейчас в теме
Посмотрите что вам выведет консоль запросов и уже в нем редактируйте свой текст запроса. Я предпочитаю наглядно видеть результаты запросов, если есть такая возможность.
8. user930087 15.11.19 14:45 Сейчас в теме
(7)
(6)
все верно, суммирует остаток, в консоле наглядно это видно. Как можно это обойти?
9. alex-l19041 8 15.11.19 17:37 Сейчас в теме
(8) чтобы не суммировало в итогах используйте Максимум а не Сумма
10. user930087 18.11.19 16:53 Сейчас в теме
(9) но при использовании максимума всегда показывает один и тот же остаток при группировке по периодам, т.е. делаю группировку по неделям и во всех неделях остаток один и тот же.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот