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

1. vlad636 10 11.04.19 08:04 Сейчас в теме
Приветствую, Уважаемые.
Есть Запрос:
ВЫБРАТЬ
	СУММА(ВЫБОР
			КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
				ТОГДА 1
			ИНАЧЕ -1
		КОНЕЦ) КАК КоличествоСерийныхНоменров,
	ДокументЧекККМ.Склад КАК Склад,
	ЧекККМТовары.Номенклатура КАК Номенклатура,
	ЧекККМСерийныеНомера.СерийныйНомер КАК СерийныйНомер,
	ЧекККМТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	ЧекККМТовары.СерияНоменклатуры КАК СерияНоменклатуры,
	ЧекККМТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	ЧекККМТовары.Коэффициент КАК Коэффициент,
	ЧекККМТовары.Цена КАК Цена,
	ЧекККМТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
	ЧекККМТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
	ЧекККМТовары.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
	ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
	ЧекККМТовары.Продавец,
	ВЫБОР
		КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары1.Номенклатура) > 0
			ТОГДА ЗНАЧЕНИЕ(Перечисление.ПризнакиСопутствующейНоменклатуры.Основная)
		ИНАЧЕ ВЫБОР
				КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары2.Номенклатура) > 0
					ТОГДА ЗНАЧЕНИЕ(Перечисление.ПризнакиСопутствующейНоменклатуры.Сопутствующая)
			КОНЕЦ
	КОНЕЦ КАК ПризнакСопутствующейНоменклатуры
ИЗ
	Документ.ЧекККМ КАК ДокументЧекККМ
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары
		ПО (ЧекККМТовары.Ссылка = ДокументЧекККМ.Ссылка)
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
		ПО (СправочникНоменклатура.Ссылка = ЧекККМТовары.Номенклатура)
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СерийныеНомера КАК ЧекККМСерийныеНомера
		ПО (ЧекККМСерийныеНомера.Ссылка = ДокументЧекККМ.Ссылка)
			И (ЧекККМСерийныеНомера.КлючСвязи = ЧекККМТовары.КлючСвязи)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СопутствующаяНоменклатура КАК СопутствующаяНоменклатура
		ПО (ЧекККМТовары.Номенклатура = СопутствующаяНоменклатура.Номенклатура)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары1
		ПО (ЧекККМТовары.НомерСтроки <> ЧекККМТовары1.НомерСтроки)
			И (ЧекККМТовары.Ссылка = ЧекККМТовары1.Ссылка)
			И (СопутствующаяНоменклатура.СопутствующаяНоменклГруппы = ЧекККМТовары1.Номенклатура.НоменклатурнаяГруппа)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СопутствующаяНоменклатура КАК СопутствующаяНоменклатура1
		ПО (ЧекККМТовары.Номенклатура.НоменклатурнаяГруппа = СопутствующаяНоменклатура1.СопутствующаяНоменклГруппы)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары2
		ПО (ЧекККМТовары.НомерСтроки <> ЧекККМТовары2.НомерСтроки)
			И (ЧекККМТовары.Ссылка = ЧекККМТовары2.Ссылка)
			И (СопутствующаяНоменклатура1.Номенклатура = ЧекККМТовары2.Номенклатура)
ГДЕ
	ДокументЧекККМ.Дата МЕЖДУ &НачДата И &КонДата
	И ДокументЧекККМ.Проведен
	И ДокументЧекККМ.КассаККМ = &КассаККМ
	И НЕ СправочникНоменклатура.Комплект

СГРУППИРОВАТЬ ПО
	ДокументЧекККМ.Склад,
	ЧекККМТовары.Номенклатура,
	ЧекККМСерийныеНомера.СерийныйНомер,
	ЧекККМТовары.ХарактеристикаНоменклатуры,
	ЧекККМТовары.СерияНоменклатуры,
	ЧекККМТовары.ЕдиницаИзмерения,
	ЧекККМТовары.Коэффициент,
	ЧекККМТовары.Цена,
	ЧекККМТовары.ПроцентСкидкиНаценки,
	ЧекККМТовары.ПроцентАвтоматическихСкидок,
	ЧекККМТовары.УсловиеАвтоматическойСкидки,
	ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки,
	ЧекККМТовары.Продавец

ИМЕЮЩИЕ
	СУММА(ВЫБОР
			КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
				ТОГДА 1
			ИНАЧЕ -1
		КОНЕЦ) > 0
;

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

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

ВЫБРАТЬ
	Док.Ссылка,
	Док.Номенклатура.Комплект,
	Док.Ссылка.Склад,
	Док.Номенклатура,
	ВЫБОР
		КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
			ТОГДА Док.Количество
		ИНАЧЕ -Док.Количество
	КОНЕЦ,
	Док.ХарактеристикаНоменклатуры,
	Док.СерияНоменклатуры,
	Док.ЕдиницаИзмерения,
	Док.Коэффициент,
	Док.Цена,
	Док.ПроцентСкидкиНаценки,
	Док.ПроцентАвтоматическихСкидок,
	Док.УсловиеАвтоматическойСкидки,
	Док.ЗначениеУсловияАвтоматическойСкидки,
	ВЫБОР
		КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
			ТОГДА Док.Сумма
		ИНАЧЕ -Док.Сумма
	КОНЕЦ,
	Док.Ссылка.СоставНабора.(
		КлючСтроки,
		КлючСвязи,
		Номенклатура,
		ХарактеристикаНоменклатуры,
		СерияНоменклатуры,
		ЕдиницаИзмерения,
		Количество,
		Цена
	),
	Док.Ссылка.СерийныеНомераСоставНабора.(
		КлючСвязи,
		СерийныйНомер
	),
	Док.КлючСтроки,
	Док.Продавец,
	NULL
ИЗ
	Документ.ЧекККМ.Товары КАК Док
ГДЕ
	Док.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
	И Док.Ссылка.КассаККМ = &КассаККМ
	И Док.Ссылка.Проведен
	И Док.Номенклатура.Комплект

УПОРЯДОЧИТЬ ПО
	Склад
Показать

Этот запрос формируется в обработке Закрытие кассовой смены.
Как добавить группировку к итоговому результату запроса вот по этому полю :
ВЫБОР
		КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары1.Номенклатура) > 0
			ТОГДА ЗНАЧЕНИЕ(Перечисление.ПризнакиСопутствующейНоменклатуры.Основная)
		ИНАЧЕ ВЫБОР
				КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары2.Номенклатура) > 0
					ТОГДА ЗНАЧЕНИЕ(Перечисление.ПризнакиСопутствующейНоменклатуры.Сопутствующая)
			КОНЕЦ
	КОНЕЦ КАК ПризнакСопутствующейНоменклатуры

Иными словами, при создании документа ОРП хочу свернуть Чеки ККМ с дополнительной группировкой по полю ПризнакСопутствующейНоменклатуры.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vlad636 10 11.04.19 08:12 Сейчас в теме
Пробую весь итог поместить во временную таблицу и там уже сгруппировать как хочу, но пишет: В запросе, формирующем временную таблицу , не могут выбираться вложенные таблицы. Убрал бы эти вложенные таблицы, но у нас используются наборы (комплекты) номенклатуры, поэтому они нужны. Помогите пож-ста.
3. dhurricane 11.04.19 08:32 Сейчас в теме
(2) А почему не получается выбирать вложенные таблицы в конечном запрос? Во временную таблицу берете только ссылку на документ, а в результирующей уже из ссылки выбираете вложенный набор.
4. TimurD 6 11.04.19 09:59 Сейчас в теме
Если не получается все сделать в одном запросе, сделай несколько маленьких. Т.е. сгруппируй как нужно и помести во временную таблицу, а в итоговом запросе просто выбери из ВТ.
Оставьте свое сообщение

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