Задвоение результата сумма в запроса через СКД

1. 14.09.21 09:21 Сейчас в теме
Создаю через СКД отчет вот фрагмент кода где проблема
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ХозрасчетныйОбороты.ПериодМесяц КАК ПериодМесяц,
	ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1 КАК Справочник.СтатьиЗатрат) КАК Субконто1,
	ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто2 КАК Справочник.НоменклатурныеГруппы) КАК Субконто2,
	ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто3 КАК Справочник.ПодразделенияОрганизаций) КАК Подразделение,
	ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт,
	ХозрасчетныйОбороты.Организация КАК Организация,
	ВЫБОР
		КОГДА ХозрасчетныйОбороты.Регистратор = НЕОПРЕДЕЛЕНО
			ТОГДА NULL
		ИНАЧЕ ХозрасчетныйОбороты.Регистратор
	КОНЕЦ КАК Регистратор
	
ПОМЕСТИТЬ ВТ_Себестоимость
ИЗ
	РегистрБухгалтерии.Типовой.Обороты(, , Авто, Счет В ИЕРАРХИИ (&МассивСчетовСебестоимость), , , , ) КАК ХозрасчетныйОбороты
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ВТ_Выручка3.Ссылка.Дата КАК ПериодМесяц,
	ВТ_Выручка3.Ссылка.Организация КАК Организация,
	ВТ_Выручка3.Ссылка КАК Регистратор,
	ВТ_Выручка3.Сумма КАК Сумма,
	ВТ_Выручка3.Подразделение КАК Подразделение,
	ВТ_Выручка3.Ссылка.Доход КАК Субконто1,
	ВТ_Выручка3.Ссылка.НоменклатурнаяГруппа КАК Субконто2
ПОМЕСТИТЬ РезультатДоход
ИЗ
	Документ.ВыручкаАГЗС.Выручка КАК ВТ_Выручка3
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	РезультатДоход.ПериодМесяц,
	РезультатДоход.Организация,
	РезультатДоход.Регистратор,
	РезультатДоход.Подразделение,	
	ВЫБОР
		КОГДА РезультатДоход.Сумма = 0
			ТОГДА NULL
		ИНАЧЕ (РезультатДоход.Сумма-ВТ_Себестоимость.СуммаОборотДт)
	КОНЕЦ КАК Сумма1
ПОМЕСТИТЬ Результат
ИЗ
	 РезультатДоход КАК РезультатДоход
	 	Левое СОЕДИНЕНИЕ ВТ_Себестоимость КАК ВТ_Себестоимость
		ПО (РезультатДоход.Подразделение = ВТ_Себестоимость.Подразделение)
;
////////////////////////////////////////////////////////////­////////////////////
Показать

Из 2 первых запросов беру суммы и произвожу вычисление в третьем из ВТ_Себестоимость сумму берет правильно, а РезультатДоход увеличивает на 33 (на дни похоже, но почему 33). По отдельности беру суммы берет правильно, а как только над суммой из РезультатДоход произвожу действие например прибавляю даже 0 он эту сумму увеличивает, например беру 2 000 000 + 0 он увеличивает до 66 000 000
код вывода результата в отчет
ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВТ_ПрибыльУбытки.ПериодМесяц,
	ВТ_ПрибыльУбытки.Организация,
	ВТ_ПрибыльУбытки.Регистратор,
	ВТ_ПрибыльУбытки.Сумма1,
	ВТ_ПрибыльУбытки.Подразделение,
	" Прибыль/Убытки",
	" ",
	" ",
	" "
ИЗ
	Результат КАК ВТ_ПрибыльУбытки 
Показать
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 128 14.09.21 09:38 Сейчас в теме
(1) будет увеличивать во столько раз, сколько соединится левым соединением с ВТ_Себестоимость
3. user734952 14.09.21 09:39 Сейчас в теме
(2) ВНУТРЕНИМ тоже увеличивает
4. ZergKRSK 128 14.09.21 09:40 Сейчас в теме
7. dhurricane 14.09.21 10:31 Сейчас в теме
(1) Самое простое решение: разбить запрос на два набора данных.
8. user734952 14.09.21 10:37 Сейчас в теме
9. dhurricane 14.09.21 10:46 Сейчас в теме
(8) Так буквально.
1. На закладке "Наборы данных" добавляете новый набор типа "Запрос", повторяете запрос к регистру выручки (без помещения во временную таблицу).
2. На той же закладке добавляете второй набор типа "Запрос", в нем текст запроса к регистру бухгалтерии (также без помещения во временную таблицу).
3. На закладке "Связи наборов данных" связываете оба набора по нужным Вам полям. Источник связи - первый набор, приемник - второй.
4. На закладке "Вычисляемые поля" добавляете поле "Сумма1" с выражением "Сумма - ЕстьNull(СуммаОборотДт, 0)"
5. На закладке "Ресурсы" добавляете все числовые поля:
5.1. Для "Сумма" выражение "Сумма(Сумма)" (лучше конечно переименовать поле)
5.2. Для "СуммаОборотДт" выражение "Сумма(СуммаОборотДт)"
5.3. Для "Сумма1" выражение "Сумма(Сумма) - ЕстьNull(Сумма(СуммаОборотДт), 0)"

Я написал, используя Ваши же имена полей. Но лучше дать им более осмысленные имена.
5. user734952 14.09.21 10:18 Сейчас в теме
а как выкрутиться предложите пожалуйста
6. ZergKRSK 128 14.09.21 10:24 Сейчас в теме
(5) СГРУППИРОВАТЬ должно помочь
10. ДмитрийС 14.09.21 10:46 Сейчас в теме
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РезультатДоход.ПериодМесяц,
    РезультатДоход.Организация,
    РезультатДоход.Регистратор,
    РезультатДоход.Подразделение, 
    РезультатДоход.Сумма,
    Сумма(ЕстьNull(ВТ_Себестоимость.СуммаОборотДт,0)) КАК СуммаОборотДт 
ПОМЕСТИТЬ Результат
ИЗ
     РезультатДоход КАК РезультатДоход
         Левое СОЕДИНЕНИЕ ВТ_Себестоимость КАК ВТ_Себестоимость
        ПО (РезультатДоход.Подразделение = ВТ_Себестоимость.Подразделение)

Сгруппировать ПО
    РезультатДоход.ПериодМесяц,
    РезультатДоход.Организация,
    РезультатДоход.Регистратор,
    РезультатДоход.Подразделение, 
    РезультатДоход.Сумма

;
/////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Результат.ПериодМесяц,
    Результат.Организация,
    Результат.Регистратор,
    Результат.Подразделение,    
    ВЫБОР
        КОГДА Результат.Сумма = 0
            ТОГДА NULL
        ИНАЧЕ (Результат.Сумма-Результат.СуммаОборотДт)
    КОНЕЦ КАК Сумма1 КАК

ИЗ
     Результат КАК Результат

Показать


Может так?
12. dhurricane 14.09.21 11:01 Сейчас в теме
(10) Не поможет, т.к. у таблицы с выручкой большая детализация аналитики, нежели у таблицы с себестоимостью: в таблице выручки есть регистратор.
13. user734952 14.09.21 11:08 Сейчас в теме
(12)Помогло Сгруппировать ПО, Регистратор можно и не использовать я его убрала. Спасибо
15. ДмитрийС 14.09.21 11:51 Сейчас в теме
(12) тогда надо добавить поля соединения) Или убрать поля выборки - группировки. Что собственно и сделала user734952 .
14. user734952 14.09.21 11:09 Сейчас в теме
(10) СПАСИБО!!! Помогло Сгруппировать ПО
11. user734952 14.09.21 10:49 Сейчас в теме
спасибо, буду пробовать, потом отпишусь
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Новосибирск
зарплата от 90 000 руб.
Полный день

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

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

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

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