Запросом найти ТЧ документа по ТЗ в качестве параметра

1. Bovori 2 13.01.17 14:40 Сейчас в теме
Здравствуйте. Как в 8.3 запросом найти документ с табличной частью идентичной передаваемой параметром ТЗ? (идентичность подразумевает только содержимое полей и количество строк,порядок не важен) . Спасибо.
По теме из базы знаний
Найденные решения
6. ildarovich 7865 13.01.17 16:52 Сейчас в теме
Попробуйте вот так:
ВЫБРАТЬ
	Товары.Номенклатура,
	Товары.Количество
ПОМЕСТИТЬ Эталон
ИЗ
	&Товары КАК Товары
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Товары.Ссылка,
	Товары.Номенклатура КАК Номенклатура,
	Товары.Количество КАК Количество
ПОМЕСТИТЬ ВсеСтроки
ИЗ
	Документ.ЗаказПокупателя.Товары КАК Товары

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

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЗаказПокупателя.Ссылка,
	Эталон.Номенклатура,
	Эталон.Количество
ИЗ
	Эталон КАК Эталон,
	Документ.ЗаказПокупателя КАК ЗаказПокупателя
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Пары.Ссылка
ИЗ
	(ВЫБРАТЬ
		Пары.Ссылка КАК Ссылка,
		Пары.Номенклатура КАК Номенклатура,
		Пары.Количество КАК Количество,
		КОЛИЧЕСТВО(*) КАК Признак
	ИЗ
		ВсеСтроки КАК Пары
	
	СГРУППИРОВАТЬ ПО
		Пары.Ссылка,
		Пары.Номенклатура,
		Пары.Количество) КАК Пары

СГРУППИРОВАТЬ ПО
	Пары.Ссылка

ИМЕЮЩИЕ
	МИНИМУМ(Пары.Признак) = 2
Показать
Sothale; Bovori; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 13.01.17 15:08 Сейчас в теме
(1) выбрать все строки табличных частей документов, - левым соединением слепить со строками таблицы значений.
потом группируем получившиеся документы по ссылке, и считаем количество строк.
и оставляем только те, где наибольшее число строк.
З.Ы. Просто мысль
4. alex-l19041 8 13.01.17 15:18 Сейчас в теме
(2) мне кажется, что внутреннее соединение надо использовать в таком случае
3. alex-l19041 8 13.01.17 15:11 Сейчас в теме
(1) можно уточнить, структура полей ТЗ известна заранее ?
5. Bovori 2 13.01.17 15:24 Сейчас в теме
(3) Да известна. собственно ТЗшкой является ТЧ данного вида документа. Смысл, найти по документу Вида Х все документы того же вида у которых табличные части идентичны ТЧ искомого документа(кроме порядка строк)
6. ildarovich 7865 13.01.17 16:52 Сейчас в теме
Попробуйте вот так:
ВЫБРАТЬ
	Товары.Номенклатура,
	Товары.Количество
ПОМЕСТИТЬ Эталон
ИЗ
	&Товары КАК Товары
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Товары.Ссылка,
	Товары.Номенклатура КАК Номенклатура,
	Товары.Количество КАК Количество
ПОМЕСТИТЬ ВсеСтроки
ИЗ
	Документ.ЗаказПокупателя.Товары КАК Товары

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

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЗаказПокупателя.Ссылка,
	Эталон.Номенклатура,
	Эталон.Количество
ИЗ
	Эталон КАК Эталон,
	Документ.ЗаказПокупателя КАК ЗаказПокупателя
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Пары.Ссылка
ИЗ
	(ВЫБРАТЬ
		Пары.Ссылка КАК Ссылка,
		Пары.Номенклатура КАК Номенклатура,
		Пары.Количество КАК Количество,
		КОЛИЧЕСТВО(*) КАК Признак
	ИЗ
		ВсеСтроки КАК Пары
	
	СГРУППИРОВАТЬ ПО
		Пары.Ссылка,
		Пары.Номенклатура,
		Пары.Количество) КАК Пары

СГРУППИРОВАТЬ ПО
	Пары.Ссылка

ИМЕЮЩИЕ
	МИНИМУМ(Пары.Признак) = 2
Показать
Sothale; Bovori; +2 Ответить
8. Bovori 2 14.01.17 11:03 Сейчас в теме
Всем спасибо, особенно подошло решение в
(6) Сергей (ildarovich)
, за что особенное спасибо. Тему можно закрыть.
7. bad_wag 48 13.01.17 17:27 Сейчас в теме
Вот на примере документа ЗаказПокупателя, в пакете ВТ_НайденныеЗаказыСНоменклатурой нужно выбрать ключевые поля и по ним сделать соединения в последнем пакете

ВЫБРАТЬ
	ЗаказКлиентаТовары.Ссылка КАК Ссылка,
	МАКСИМУМ(ЗаказКлиентаТовары.НомерСтроки) КАК КоличествоСтрокВТЧ
ПОМЕСТИТЬ ВТ_ВсеЗаказы
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
	ЗаказКлиентаТовары.Ссылка <> &Ссылка

СГРУППИРОВАТЬ ПО
	ЗаказКлиентаТовары.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЗаказКлиентаТовары.Ссылка КАК Ссылка,
	МАКСИМУМ(ЗаказКлиентаТовары.НомерСтроки) КАК КоличествоСтрокВТЧ
ПОМЕСТИТЬ ВТ_ЗаказДляПоиска
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
	ЗаказКлиентаТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
	ЗаказКлиентаТовары.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ВсеЗаказы.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_НайденныеЗаказы
ИЗ
	ВТ_ЗаказДляПоиска КАК ВТ_ЗаказДляПоиска
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЗаказы КАК ВТ_ВсеЗаказы
		ПО ВТ_ЗаказДляПоиска.КоличествоСтрокВТЧ = ВТ_ВсеЗаказы.КоличествоСтрокВТЧ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_НайденныеЗаказы.Ссылка КАК Ссылка,
	ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
	ЗаказКлиентаТовары.Характеристика КАК Характеристика,
	ЗаказКлиентаТовары.Количество КАК Количество,
	ЗаказКлиентаТовары.Цена КАК Цена,
	ЗаказКлиентаТовары.Сумма КАК Сумма
ПОМЕСТИТЬ ВТ_НайденныеЗаказыСНоменклатурой
ИЗ
	ВТ_НайденныеЗаказы КАК ВТ_НайденныеЗаказы
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		ПО ВТ_НайденныеЗаказы.Ссылка = ЗаказКлиентаТовары.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_НайденныеЗаказыСНоменклатурой.Ссылка КАК Ссылка1
ИЗ
	ВТ_ЗаказДляПоиска КАК ВТ_ЗаказДляПоиска
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
			ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НайденныеЗаказыСНоменклатурой КАК ВТ_НайденныеЗаказыСНоменклатурой
			ПО ЗаказКлиентаТовары.Номенклатура = ВТ_НайденныеЗаказыСНоменклатурой.Номенклатура
				И ЗаказКлиентаТовары.Характеристика = ВТ_НайденныеЗаказыСНоменклатурой.Характеристика
				И ЗаказКлиентаТовары.Цена = ВТ_НайденныеЗаказыСНоменклатурой.Цена
				И ЗаказКлиентаТовары.Сумма = ВТ_НайденныеЗаказыСНоменклатурой.Сумма
				И ЗаказКлиентаТовары.Количество = ВТ_НайденныеЗаказыСНоменклатурой.Количество
		ПО ВТ_ЗаказДляПоиска.Ссылка = ЗаказКлиентаТовары.Ссылка

СГРУППИРОВАТЬ ПО
	ВТ_НайденныеЗаказыСНоменклатурой.Ссылка
Показать
Оставьте свое сообщение

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