Запрос выводит не те данные

1. user1500067 12.03.21 02:55 Сейчас в теме +0.21 $m
Всем доброго времени суток. Дайте, пожалуйста, совет, как исправить проблему. Суть проблемы: запрос выводит данные для каждого товара в накладной, но с последней колонкой (РасходыПоСделке) не работает. (смотрите скриншот). Как я понимаю суть в том, что для последней колонки берутся данные из всех накладных по всем товарам и записываются во все строки. Числа получаются одинаковые в разных накладных во всех товарах. Не могу понять, как сделать так, чтобы для последней колонки (РасходыПоСделке) записывались лишь значения соответствующие товару (строке). Помогите, пожалуйста, понять.

Прилагаю код запроса:


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

	
		 
	Запрос.УстановитьПараметр("Организация", 	Объект.Организация);
	Запрос.УстановитьПараметр("ТЗ", 			Объект.Проекты.Выгрузить());
	Объект.Проекты.Загрузить(Запрос.Выполнить().Выгрузить());
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
24. 1395969 62 12.03.21 06:01 Сейчас в теме
(1) СебестоимостьКВыгрузкеПроекты.Сделка
и
ДополнительныеРасходыПоСделке.Сделка

Это - один и тот же тип? Какой?
26. user1500067 12.03.21 06:06 Сейчас в теме
(24) ДополнительныеРасходыПоСделке.Сделка это тип справочник. СебестоимостьКВыгрузкеПроекты.Сделка тоже тип справочник (исходя из того, что видно на скриншоте, прикладываю)
Прикрепленные файлы:
2. Sergex 58 12.03.21 03:27 Сейчас в теме
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты КАК ВыручкаИСебестоимостьПродажОбороты
        |        ПО (ВТ_СебестоимостьКВыгрузке.Сделка = ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента КАК Документ.ЗаказКлиента).Сделка)
        |            И ВТ_СебестоимостьКВыгрузке.Организация = ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Организация
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДополнительныеРасходыПоСделке.Обороты КАК ДополнительныеРасходыПоСделкеОбороты
        |        ПО ВТ_СебестоимостьКВыгрузке.Организация = ДополнительныеРасходыПоСделкеОбороты.Организация
   


Видите разницу в том как соединяете регистр ВыручкаИСебестоимостьПродаж и регистр ДополнительныеРасходыПоСделке?
Для ДополнительныеРасходыПоСделке второе поле соединения заказ клиента.
Для ДополнительныеРасходыПоСделке соединение только по организации.
Соедините и по заказу если архитектура регистра это позволяет. И получите желаемое
3. user1500067 12.03.21 03:30 Сейчас в теме
4. user1500067 12.03.21 04:14 Сейчас в теме
(2)Что то пока не получается, не понимаю, как соединить
8. ZergKRSK 129 12.03.21 05:15 Сейчас в теме
(4) какие измерения имеет РегистрНакопления.ДополнительныеРасходыПоСделке ?
12. user1500067 12.03.21 05:20 Сейчас в теме
(8)вот измерения
Прикрепленные файлы:
5. 1395969 62 12.03.21 04:45 Сейчас в теме
Эти строки:
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДополнительныеРасходыПоСделке.Обороты КАК ДополнительныеРасходыПоСделкеОбороты
        |        ПО ВТ_СебестоимостьКВыгрузке.Организация = ДополнительныеРасходыПоСделкеОбороты.Организация

Необходимо заменить примерно на следующее:
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДополнительныеРасходыПоСделке.Обороты КАК ДополнительныеРасходыПоСделкеОбороты
        |        ПО (ВТ_СебестоимостьКВыгрузке.Организация = ДополнительныеРасходыПоСделкеОбороты.Организация)
        |        И (ВТ_СебестоимостьКВыгрузке.Сделка = ДополнительныеРасходыПоСделкеОбороты.Сделка)

Это в том случае, если в Регистре "ДополнительныеРасходыПоСделке" есть реквизит "Сделка"

Если нет такого реквизита, то или добавляйте его (и реквизит и программный код в обработку проведения),
или делайте периодичность этого регистра по Регистратору (если Регистратор - Накладная)
и тогда эти строки будут выглядеть так:
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДополнительныеРасходыПоСделке.Обороты(, , Регистратор, ) КАК ДополнительныеРасходыПоСделкеОбороты
        |        ПО (ВТ_СебестоимостьКВыгрузке.Организация = ДополнительныеРасходыПоСделкеОбороты.Организация)
        |        И (ВТ_СебестоимостьКВыгрузке.Сделка = ДополнительныеРасходыПоСделкеОбороты.Регистратор)
6. user1500067 12.03.21 04:58 Сейчас в теме
(5)В регистре "ДополнительныеРасходыПоСделке" есть реквизит "Сделка", однако не получается вывести нужный результат. Получается так, что данные вообще не отображаются
Прикрепленные файлы:
9. ZergKRSK 129 12.03.21 05:18 Сейчас в теме
(6) какой тип имеет Сделка в регистре ДополнительныеРасходыПоСделке ?
10. user1500067 12.03.21 05:19 Сейчас в теме
15. 1395969 62 12.03.21 05:22 Сейчас в теме
(10) Вот и ответ на вопрос
Пытаетесь сопоставлять справочник и документ. Конечно будет пустой результат
Нужен заполняемый реквизит с типом "Накладная" (или как еще этот документ называется в базе)
19. user1500067 12.03.21 05:31 Сейчас в теме
(15)Наверно надо также сделать тип документ?
23. user1500067 12.03.21 05:46 Сейчас в теме
(15)А зачем нужен реквизит, если его всё равно нельзя будет выбрать, так как он не отображается?
Прикрепленные файлы:
17. ZergKRSK 129 12.03.21 05:23 Сейчас в теме
(10) а СебестоимостьКВыгрузкеПроекты.Сделка какой тип?
20. user1500067 12.03.21 05:32 Сейчас в теме
(17)
Прикрепленные файлы:
21. ZergKRSK 129 12.03.21 05:34 Сейчас в теме
22. user1500067 12.03.21 05:40 Сейчас в теме
13. user1500067 12.03.21 05:21 Сейчас в теме
(9)про измерения ответил выше
11. 1395969 62 12.03.21 05:20 Сейчас в теме
(6) Очень сложно что-то подсказывать "вслепую"
Реквизит Сделка заполняется? Чем заполняется?
Скиньте, например, хотя-бы небольшой скриншот содержимого регистра
14. user1500067 12.03.21 05:22 Сейчас в теме
(11)Ошибся, сделка в качестве измерения в регистре
Прикрепленные файлы:
7. user1500067 12.03.21 05:05 Сейчас в теме
(5)Если путём через регистратор, то ругается, что нет такого поля. Как тогда быть дальше?
Прикрепленные файлы:
16. 1395969 62 12.03.21 05:23 Сейчас в теме
(7) Сделали детализацию по Регистратору?
18. user1500067 12.03.21 05:29 Сейчас в теме
(16)не понимаю, как это сделать
25. Sergex 58 12.03.21 06:04 Сейчас в теме
(18) Судя по всему у вас что то в архитектуре данных наивно сделано.
ВыручкаИСебестоимостьПродаж - регистр типовой

Откуда собирается ВТ_СебестоимостьКВыгрузке из фрагмента запроса не ясно, но по связи понятно, что в этой ВТ сделка совпадает с измерением ЗаказКлиента в регистре ВыручкаИСебестоимостьПродаж.

Регистр ДополнительныеРасходыПоСделке в типовой УТ, например, отсутствует. Вероятно самодельный. Вы когда его проектировали сделку зачем сделали справочником? Может быть подразумевалось что у него тип справочиники.СделкиСКлиентами ? Но тогда с документом вы его разумеется не сопоставите.

Но на вашем же скрине есть измерение ЗаказКлиента под сделкой, сопоставляйте по нему?
27. user1500067 12.03.21 06:11 Сейчас в теме
(25) Да, регистр самодельный. И тип у сделки справочиники.СделкиСКлиентами, было сделано так, как сказали. ЗаказКлиента в данном регистре не было изначально, но начиная разбираться с проблемой я его добавил. Вот только если связывать по нему то всё равно на выходе пустые значения
29. Sergex 58 12.03.21 06:17 Сейчас в теме
(27) Данные посмотрите, может при формировании движений туда не пишется ничего :)

Если так то есть мутный ход - дописать заполнение измерения при проведении регистраторов. Затем провести все регистраторы сделавшие движения по этому регистру. Так вы получите консистентность данных, позволяющую вам связывать данные этого регистра с данными регистра ВыручкаИСебестоимостьПродаж.
30. user1500067 12.03.21 06:20 Сейчас в теме
Да, скорее всего. Буду пробовать
31. user1500067 12.03.21 06:25 Сейчас в теме
(29) Не думаю, что этот мутный ход мне подходит. Фирме не понравится. Получается мне нужно сделать так, чтобы в ЗаказКлиента начали записываться данные? И тогда можно будет сделать вот такие строчки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДополнительныеРасходыПоСделке.Обороты КАК ДополнительныеРасходыПоСделкеОбороты
		|		ПО ВТ_СебестоимостьКВыгрузке.Организация = ДополнительныеРасходыПоСделкеОбороты.Организация
		|			И ВТ_СебестоимостьКВыгрузке.Сделка = ДополнительныеРасходыПоСделкеОбороты.ЗаказКлиента
32. Sergex 58 12.03.21 06:47 Сейчас в теме
(31) Ну а как иначе обеспечить связь двух таблиц? А если фирме не нравится, она вольна и руками отчетец накорябать :)
33. user1500067 12.03.21 07:20 Сейчас в теме
(32)спасибо за наводку, буду пытаться решить проблему
28. user1500067 12.03.21 06:13 Сейчас в теме
(25) ЗаказКлиента сделал такой же как и в регистре ВыручкаИСебестоимостьПродаж
Оставьте свое сообщение

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