Имя: Пароль:
1C
1С v8
Подсчёт количества строк в подзапросе.
0 busy1
 
29.09.14
16:22
Добрый день. Делаю запрос на СКД. Вопрос такой, выбираю данные из Регистра накопления, по одному из реквизитов хочу сделать вложенный запрос на документы и подсчитать кол-во записей в вложенном запросе. Но не получается? Вложенный запрос почему то пустой...
1 Ерепень
 
29.09.14
16:25
да
2 busy1
 
29.09.14
16:26
(1) Что да?
3 Ерепень
 
29.09.14
16:26
(2) не получается
4 busy1
 
29.09.14
16:27
(3) Ну а какие способы есть? Уточнение, в вложенном запросе выбираю ТЧ документа
5 busy1
 
29.09.14
16:30
ВЫБРАТЬ
    ПродажиОбороты.Продавец,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.СтоимостьОборот КАК СуммаПродажи,
    ПродажиОбороты.ПериодДень,
    ПродажиОбороты.ПериодНеделя,
    ПродажиОбороты.ПериодДекада,
    ПродажиОбороты.ПериодМесяц,
    ПродажиОбороты.ПериодКвартал
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты,
    (ВЫБРАТЬ
        КОЛИЧЕСТВО(ЕжедневныйОтчетОтработанноеВремя.Сотрудник) КАК Сотрудник1
    ИЗ
        Документ.ЕжедневныйОтчет.ОтработанноеВремя КАК ЕжедневныйОтчетОтработанноеВремя
    ГДЕ
        ЕжедневныйОтчетОтработанноеВремя.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК ВложенныйЗапрос
6 Ерепень
 
29.09.14
16:31
(4) ты ждёшь сферический запрос с подсчётом строк в вакууме?
7 Ерепень
 
29.09.14
16:31
используй силу соединения, Люк
8 busy1
 
29.09.14
16:32
ВЫБРАТЬ
    ПродажиОбороты.Продавец,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.СтоимостьОборот КАК СуммаПродажи,
    ПродажиОбороты.ПериодДень,
    ПродажиОбороты.ПериодНеделя,
    ПродажиОбороты.ПериодДекада,
    ПродажиОбороты.ПериодМесяц,
    ПродажиОбороты.ПериодКвартал
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КОЛИЧЕСТВО(ЕжедневныйОтчетОтработанноеВремя.Сотрудник) КАК Сотрудник1
        ИЗ
            Документ.ЕжедневныйОтчет.ОтработанноеВремя КАК ЕжедневныйОтчетОтработанноеВремя
        ГДЕ
            ЕжедневныйОтчетОтработанноеВремя.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК ВложенныйЗапрос
        ПО ПродажиОбороты.Продавец = ВложенныйЗапрос.Сотрудник1
9 busy1
 
29.09.14
16:33
Забыл немного, изначально такой запрос, но всё равно не работает
10 Ерепень
 
29.09.14
16:33
(9) а он должен как-то что-то из вложенного показать?
11 Ерепень
 
29.09.14
16:37
а потом возникнет один документ совсем лишний, совсем зазря сделанный, и все усилия твои пойдут прахом
12 busy1
 
29.09.14
16:38
Ну я хотел бы что бы вложенный запрос показал количество документов за период по определенному сотруднику
13 busy1
 
29.09.14
16:39
(11) - Есть момент конечно, но не существенно
14 Ерепень
 
29.09.14
16:41
(13) не буду лечить, просто поверь: так нельзя
15 busy1
 
29.09.14
16:45
(14) Лучше скажи, как быть?
16 Ерепень
 
29.09.14
16:46
(15) подумать над тем, какие две таблицы ты хочешь соединить и по чему
17 Asest
 
29.09.14
16:48
Если ты хочешь получить Таблицу из регистра сведений и пристегнуть к ней колонку КоличествоДокументовЗаМесяц с связью по сотруднику это реально
18 Asest
 
29.09.14
16:48
Щас наклепаю
19 busy1
 
29.09.14
16:49
нет, таблица из Регистра накопления, в таблице поле сотрудник по нему выбрать документы и подсчитать их количество
20 sf
 
29.09.14
16:50
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КОЛИЧЕСТВО(ЕжедневныйОтчетОтработанноеВремя.Сотрудник) КАК КоличествоДокументов,
ЕжедневныйОтчетОтработанноеВремя.Сотрудник КАК Сотрудник1
21 sf
 
29.09.14
16:51
+(20) поле количество докуметов надо выбрать конечно
22 Крошка Ру
 
29.09.14
16:53
(8) Ты Продавца соединяешь с количеством документов
23 Asest
 
29.09.14
16:53
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Поле1
ИЗ
    (ВЫБРАТЬ
        КОЛИЧЕСТВО(РеализацияТоваровУслуг.Контрагент) КАК Контрагент
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    
    СГРУППИРОВАТЬ ПО
        РеализацияТоваровУслуг.Ссылка) КАК ВложенныйЗапрос
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО ВложенныйЗапрос.Контрагент = КонтактнаяИнформация.Объект
24 Asest
 
29.09.14
16:55
(20) Запрос возвращает
Информация из регистра сведений, там есть поле объект(контрагент), и к нему по ссылке на объект вытаскивает документы реализаций, считает количество и выводит
25 Asest
 
29.09.14
16:56
У тебя вероятно надо использовать левое соединение
26 busy1
 
29.09.14
16:58
Спасибо, буду думать
27 Asest
 
29.09.14
17:02
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,      //для связи
    КонтактнаяИнформация.Поле1,       //любая информация
    ВложенныйЗапрос.Контрагент,       //для связи  и для группировки
    ВложенныйЗапрос.Ссылка           //для связи  и для группировки

ИЗ
    (ВЫБРАТЬ
        РеализацияТоваровУслуг.Контрагент                     КАК Контрагент, //для связи  и для группировки
        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваровУслуг.Ссылка) КАК Ссылка      //для связи  и для группировки
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    
    СГРУППИРОВАТЬ ПО
        РеализацияТоваровУслуг.Контрагент) КАК ВложенныйЗапрос
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО ВложенныйЗапрос.Контрагент = КонтактнаяИнформация.Объект