Как выбрать документы которые имеют в табличной части только одну строку

1. Надежда Кутузова (Nadushka74) 20.03.17 13:03 Сейчас в теме
Нужно в запросе вытягивать только документы в табличной части которых только одна строка. как это можно сделать?
Ответы
2. J Popov (japopov) 30 20.03.17 13:08 Сейчас в теме
(1) Очень просто.
В запросе делаешь выборку из табличных частей нужного вида документов.
Делаешь 2 поля: Ссылка и любое другое (лучше НомерСтроки).
Делаешь группировку по полю Ссылка и суммирование по другому полю - Количество.
Всё, в получившейся таблицы у тебя 2 колонки - Ссылка и, фактически, число строк. Остаётся наложить отбор по количеству строк = 1.
herfis; Nadushka74; +2 Ответить 4
3. Надежда Кутузова (Nadushka74) 20.03.17 13:09 Сейчас в теме
(2)
Всё, в получившейся таблицы у тебя 2 колонки - Ссылка и, фактически, число строк. Остаётся наложить отбор по количеству строк = 1.


точно, спасибо, решение то на поверхности
4. Сан Саныч (herfis) 55 20.03.17 13:11 Сейчас в теме
Для отбора после группировки используется ключевое слово ИМЕЮЩИЕ.
Это так, на всякий случай. Просто не все про него знают из моей практики.
5. Алёна Василенко (alyonchik) 20.03.17 13:12 Сейчас в теме
Вот держи) По услугам пропиши сам это так на быструю руку

ВЫБРАТЬ
ВЫБОР
КОГДА ВложенныйЗапрос.НомерСтроки > 1
ТОГДА NULL
ИНАЧЕ ВложенныйЗапрос.Ссылка
КОНЕЦ КАК Поле1
ИЗ
(ВЫБРАТЬ
РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
МАКСИМУМ(РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
РеализацияТоваровУслугТовары.Ссылка

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

ВЫБРАТЬ
РеализацияТоваровУслугТовары.Ссылка,
МАКСИМУМ(РеализацияТоваровУслугТовары.НомерСтроки)
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
РеализацияТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА ВложенныйЗапрос.НомерСтроки > 1
ТОГДА NULL
ИНАЧЕ ВложенныйЗапрос.Ссылка
КОНЕЦ
6. Денис Волков (D1ca) 20.03.17 13:16 Сейчас в теме
Можно так ппробовать

"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА КОЛИЧЕСТВО(ЗаказПокупателяТовары.НомерСтроки) = 1
		|			ТОГДА ЗаказПокупателяТовары.Ссылка
		|	КОНЕЦ КАК СсылкаНаДокумент
		|ИЗ
		|	Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
		|
		|СГРУППИРОВАТЬ ПО
		|	ЗаказПокупателяТовары.Ссылка"
...Показать Скрыть
7. J Popov (japopov) 30 20.03.17 13:19 Сейчас в теме
(6) Ужас! А что делать с миллионом строк со значением СсылкаНаДокумент, равным Null?!
8. Сан Саныч (herfis) 55 20.03.17 13:20 Сейчас в теме
Да что ж это такое. Правильный ответ в (2).
Код будет такой:
ВЫБРАТЬ
   СтрокиТЧ.Ссылка
ИЗ
   Документ.МойДок.МояТЧ КАК СтрокиТЧ
СГРУППИРОВАТЬ ПО
   СтрокиТЧ.Ссылка
ИМЕЮЩИЕ
   КОЛИЧЕСТВО(*) = 1
...Показать Скрыть
Nadushka74; +1 Ответить 1
9. J Popov (japopov) 30 20.03.17 13:20 Сейчас в теме
(5) оперируем гланды через задний проход... No further comments.
10. Алёна Василенко (alyonchik) 20.03.17 13:24 Сейчас в теме
(9)А в твоем комментарии не так? Я написала на быструю руку и показала, что надо объединить и таб часть услуги и прочее и надо прописать условие = 1, у меня написано > 1

Очень просто.
В запросе делаешь выборку из табличных частей нужного вида документов.
Делаешь 2 поля: Ссылка и любое другое (лучше НомерСтроки).
Делаешь группировку по полю Ссылка и суммирование по другому полю - Количество.
Всё, в получившейся таблицы у тебя 2 колонки - Ссылка и, фактически, число строк. Остаётся наложить отбор по количеству строк = 1.
11. J Popov (japopov) 30 20.03.17 13:28 Сейчас в теме
(2)
ВЫБРАТЬ
	РеализацияТоваровУслугТовары.Ссылка,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
ИЗ
	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
	РеализацияТоваровУслугТовары.Ссылка

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.НомерСтроки) = 1
...Показать Скрыть
12. J Popov (japopov) 30 20.03.17 13:28 Сейчас в теме
(10) Работать будет жутко медленно.
13. J Popov (japopov) 30 20.03.17 13:31 Сейчас в теме
(11) В принципе, можно и без паразитной колонки НомерСтроки. Просто выбирать Ссылка и рядом суммировать количество различных по Ссылка же. Ну, а дальше - как уже указывали в (2), (8), (11)..

//offtopic
Сан Саныч: что, тоже "не вынесла душа поэта..."? Я тоже не хотел сначала весь код рисовать. :-)
14. Sashares 1 20.03.17 13:33 Сейчас в теме
(11)
РАЗЛИЧНЫЕ
а различные то тут зачем?
15. J Popov (japopov) 30 20.03.17 14:00 Сейчас в теме
(14) эмммм... посыпаю голову пеплом, это из конструктора прилетело. :-)
лучше, конечно, без РАЗЛИЧНЫЕ, быстрее отработает.