Имя: Пароль:
1C
1С v8
Выбрать количество строк из нескольких табличных частей документа
0 Kifsif
 
01.10.14
22:50
Хочу выбрать из авансового отчета количество строк в каждой из таблиц.
Таблиц четыре: Авансы, Товары, Оплата, Прочее.

В данном примере для упрощения взял только две таблицы: Товары и Оплата. В таблице Товары у меня 1 строка. А в таблице Оплата - 2 строки.

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

СГРУППИРОВАТЬ ПО
    АвансовыйОтчетТовары.Ссылка

Я надеялся, что сей код выберет количество строк каждый из своей таблицы. Однако, он работает не так, как я ожидал.

Если его запустить в таком виде, как сейчас, то в колонке Товары будет 1. Т.е. это правильно.

Если же раскомментировать строки, то получим результат: Товары - 2, Оплата - 2.

Если же убрать количество и группировку по ссылке, то получим результат:
Товары      Оплата
1           1
1           2

Этот результат мне понятен. А вот как он в товарах двойку получает - непонятно.
1 GROOVY
 
01.10.14
22:57
ВЫБРАТЬ
Т1.НомерСтроки,
Т2.НомерСтроки
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(НомерСтроки)
ИЗ
Документ.Имя.ИмяТЧ1
ГДЕ
Ссылка = &Ссылка) КАК Т1
ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
МАКСИМУМ(НомерСтроки)
ИЗ
Документ.Имя.ИмяТЧ2
ГДЕ
Ссылка = &Ссылка) КАК Т2
ПО ИСТИНА