Тонкая настройка СКД (добавление строки)

1. Shecurok 09.04.21 14:41 Сейчас в теме
Всем добрый день. Исправляю старенький отчет скд для бух 2.0

Сейчас там два набора данных:

ВЫБРАТЬ
	Sales.Номенклатура КАК Номенклатура,
	Sales.Контрагент КАК Покупатель,
	Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
	Sales.Количество КАК Количество,
	Sales.Сумма КАК Сумма,
	Sales.Цена КАК Цена,
	Sales.Регистратор КАК Регистратор,
	ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК Др,
	ВЫБОР
		КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
			ТОГДА 0
		ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК GP1_Percent1,
	PrimeCost.ЦенаСебест КАК ЦенаСебест,
	ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СебестоимостьСтарая,
	Sales.СуммаБезНдс КАК Net_Sales_YTD
ИЗ
	(ВЫБРАТЬ
		ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
		ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
		ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
		ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
		ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
		ХозрасчетныйОборотыДтКт.СуммаНУОборотКт КАК СуммаБезНдс,
		ВЫБОР
			КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
				ТОГДА 0
			ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
		КОНЕЦ КАК Цена,
		ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
	ИЗ
		РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
			ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
			ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
			ВЫБОР
				КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
					ТОГДА 0
				ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
			КОНЕЦ КАК ЦенаСебест
		ИЗ
			РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
					&НачПер,
					&КонПер,
					Период,
					СчетДт = &Сч9002
						ИЛИ СчетДт = &Сч9102,
					,
					СчетКт = &Сч43
						ИЛИ СчетКт = &Сч4101
						ИЛИ СчетКт = &Сч4104
						ИЛИ СчетКт = &Сч10,
					,
					Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
		ПО Sales.Номенклатура = PrimeCost.Номенклатура
Показать


и

ВЫБРАТЬ
	ХозрасчетныйОбороты.Регистратор КАК Реализация,
	ХозрасчетныйОбороты.Счет КАК Счет,
	ХозрасчетныйОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОбороты.Субконто2 КАК Партия,
	ХозрасчетныйОбороты.Субконто3 КАК Склад,
	ХозрасчетныйОбороты.КорСчет КАК КорСчет,
	-ХозрасчетныйОбороты.СуммаОборот КАК COGS
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Регистратор, Счет В ИЕРАРХИИ (&Сч4104), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&Сч9002), ) КАК ХозрасчетныйОбороты
Показать


Связаны они между собой регистратором и номенклатурой.

Отчет вообще выводит какому контрагенту сколько было продано определенного товара, выводит себестоимость, чистую прибыль и еще что-то, не суть. Ну соответственно группировка идет по контрагенту.

Но понадобилось буху еще выводить данные с регламентных операций – которые корректируют себестоимость товаров по счету 90.02 при закрытии месяца.

Там, как известно, нет привязки к покупателю и необходимо данные из этих корректировок вынести в позицию «Прочие покупатели».

Т.е. идет список покупателей, и в самом конце (ну или где там исходя из моей сортировки) должна находится строка "Прочие покупатели". Сам запрос я уже написал:

ВЫБРАТЬ
	ХозрасчетныйОбороты.Регистратор КАК Регистратор,
	ХозрасчетныйОбороты.Счет КАК Счет,
	ХозрасчетныйОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОбороты.КорСчет КАК КорСчет,
	-ХозрасчетныйОбороты.СуммаОборот КАК COGS,
	ХозрасчетныйОбороты.Субконто1.Наименование КАК Наименование
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Регистратор, Счет В ИЕРАРХИИ (&Сч4104), , , КорСчет В ИЕРАРХИИ (&Сч9002), ) КАК ХозрасчетныйОбороты
ГДЕ
	ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.РегламентнаяОперация
Показать


Сразу скажу, что выводится общая сумма по результатам данного запроса должна в поле COGS (второй набор данный).

И вот как результаты запихнуть строкой еще одной? Реализовывал кто нибудь что-то подобное?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Shecurok 09.04.21 14:42 Сейчас в теме
Если будут нужны какие-то скриншоты, доп.информация - сразу пришлю.
3. homer_ 78 09.04.21 14:54 Сейчас в теме
к первому запросу Объединить все. Далее привести поля к единому формату.
4. Shecurok 09.04.21 15:02 Сейчас в теме +1.49 $m
(3) Вообще не понял) Объдиняю его, хорошо. Как мне дать понять, что вот это Прочие покупатели?
5. homer_ 78 09.04.21 15:07 Сейчас в теме
"Прочие покупатели" или через &ПрочиеПокупатели
в итоге
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1 КАК Номенклатура,
"Прочие покупатели",
"Договор",
0,
-ХозрасчетныйОбороты.СуммаОборот КАК COGS,
0,
ХозрасчетныйОбороты.Регистратор КАК Регистратор,
Null,
Null,
Null,
Null,
Null
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Регистратор, Счет В ИЕРАРХИИ (&Сч4104), , , КорСчет В ИЕРАРХИИ (&Сч9002), ) КАК ХозрасчетныйОбороты
ГДЕ
ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.РегламентнаяОперация
6. Shecurok 09.04.21 15:13 Сейчас в теме
(5) А почему объединять не со вторым запросом? Учитывая, что данная сумма должна быть в поле COGS. А поле это получается из второго запроса.
7. Shecurok 09.04.21 15:19 Сейчас в теме
(6) Вопрос отпадает, у меня же покупатель строока в первом запросе. Так понимаю их все 3 надо объединять
8. Shecurok 09.04.21 17:45 Сейчас в теме
(5) Добрый вечер. Объедини все 3 запроса
ВЫБРАТЬ
	Sales.Регистратор КАК Регистратор,
	NULL КАК Счет,
	NULL КАК Номенклатура,
	NULL КАК КорСчет,
	NULL КАК COGS,
	Sales.Контрагент КАК Покупатель,
	Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
	Sales.Количество КАК Количество,
	Sales.Сумма КАК Сумма,
	Sales.Цена КАК Цена,
	ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК Др,
	ВЫБОР
		КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
			ТОГДА 0
		ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК GP1_Percent1,
	PrimeCost.ЦенаСебест КАК ЦенаСебест,
	ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СебестоимостьСтарая,
	Sales.СуммаБезНдс КАК Net_Sales_YTD
ИЗ
	(ВЫБРАТЬ
		ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
		ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
		ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
		ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
		ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
		ХозрасчетныйОборотыДтКт.СуммаНУОборотКт КАК СуммаБезНдс,
		ВЫБОР
			КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
				ТОГДА 0
			ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
		КОНЕЦ КАК Цена,
		ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
	ИЗ
		РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
			ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
			ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
			ВЫБОР
				КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
					ТОГДА 0
				ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
			КОНЕЦ КАК ЦенаСебест
		ИЗ
			РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
					&НачПер,
					&КонПер,
					Период,
					СчетДт = &Сч9002
						ИЛИ СчетДт = &Сч9102,
					,
					СчетКт = &Сч43
						ИЛИ СчетКт = &Сч4101
						ИЛИ СчетКт = &Сч4104
						ИЛИ СчетКт = &Сч10,
					,
					Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
		ПО Sales.Номенклатура = PrimeCost.Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ХозрасчетныйОбороты.Регистратор,
	ХозрасчетныйОбороты.Счет,
	ХозрасчетныйОбороты.Субконто1,
	ХозрасчетныйОбороты.КорСчет,
	-ХозрасчетныйОбороты.СуммаОборот,
	NULL,
	NULL,
	0,
	0,
	0,
	NULL,
	NULL,
	NULL,
	NULL,
	0
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Регистратор, Счет В ИЕРАРХИИ (&Сч4104), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&Сч9002), ) КАК ХозрасчетныйОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ХозрасчетныйОбороты.Регистратор,
	ХозрасчетныйОбороты.Счет,
	ХозрасчетныйОбороты.Субконто1,
	ХозрасчетныйОбороты.КорСчет,
	-ХозрасчетныйОбороты.СуммаОборот,
	"Прочие покупатели",
	"Договор",
	0,
	0,
	0,
	NULL,
	NULL,
	NULL,
	NULL,
	0
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Регистратор, Счет В ИЕРАРХИИ (&Сч4104), , , КорСчет В ИЕРАРХИИ (&Сч9002), ) КАК ХозрасчетныйОбороты
ГДЕ
	ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.РегламентнаяОперация
Показать


Да, прочие контрагенты появляются, себестоимость выводит как надо, но для всех других контрагентов значения себестоимости пропало. Так понимаю соединение где то не то выбрал. А где и какое надо?
Прикрепленные файлы:
9. Shecurok 12.04.21 12:25 Сейчас в теме
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

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

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

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день