Имя: Пароль:
1C
1С v8
Сгруппировать в СКД
0 Sayan_mi
 
23.12.20
12:12
Есть Альфа-Авто, редакция 5.1 (5.1.14.05) Делаю отчет на СКД.
В отчете есть временные таблицы и в них суммирую поля.
В консоли запросов все нормально.
В отчет подтягивается только 1 значение. Где искать собаку?
Вот кусок запроса, это часть от целого, просто за место временной таблицы вывел в результат и поместил в отдельный отчет.

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ун_ТабельноеВремя.Сотрудник КАК Сотрудник,
    ун_ТабельноеВремя.Часы КАК ВремяР,
    ГрафикРаботКалендарный.Дата,
    ГрафикРаботКалендарный.ВидДня
ПОМЕСТИТЬ втРабочееВремя
ИЗ
    РегистрСведений.ун_ТабельноеВремя КАК ун_ТабельноеВремя
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботКалендарный КАК ГрафикРаботКалендарный
        ПО ун_ТабельноеВремя.Период = ГрафикРаботКалендарный.Дата
            И (ГрафикРаботКалендарный.График = &График)
ГДЕ
    ун_ТабельноеВремя.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И ун_ТабельноеВремя.ВидИнтервала = &Работа
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втРабочееВремя.Сотрудник,
    СУММА(втРабочееВремя.ВремяР) КАК ВремяР,
    NULL КАК ВремяВ
ИЗ
    втРабочееВремя КАК втРабочееВремя
ГДЕ
    втРабочееВремя.ВидДня = &Рабочий

СГРУППИРОВАТЬ ПО
    втРабочееВремя.Сотрудник

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

ВЫБРАТЬ
    втРабочееВремя.Сотрудник,
    NULL,
    СУММА(втРабочееВремя.ВремяР)
ИЗ
    втРабочееВремя КАК втРабочееВремя
ГДЕ
    втРабочееВремя.ВидДня В(&Выходной)

СГРУППИРОВАТЬ ПО
    втРабочееВремя.Сотрудник

В консоли у людей по 168 часов в отчете 8 :-(
1 toypaul
 
гуру
23.12.20
12:31
Начать с этой части статьи http://catalog.mista.ru/1c/articles/1224249/

когда будет понятно что не так, прочитать остальные части
2 toypaul
 
гуру
23.12.20
12:33
есть мысль что первую часть запроса СКД превращает в

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ун_ТабельноеВремя.Сотрудник КАК Сотрудник,
    ун_ТабельноеВремя.Часы КАК ВремяР,
    ГрафикРаботКалендарный.ВидДня
ПОМЕСТИТЬ втРабочееВремя
ИЗ
    РегистрСведений.ун_ТабельноеВремя КАК ун_ТабельноеВремя
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботКалендарный КАК ГрафикРаботКалендарный
        ПО ун_ТабельноеВремя.Период = ГрафикРаботКалендарный.Дата
            И (ГрафикРаботКалендарный.График = &График)
ГДЕ
    ун_ТабельноеВремя.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И ун_ТабельноеВремя.ВидИнтервала = &Работа
3 toypaul
 
гуру
23.12.20
12:35
Лечится в этом случае так

ВЫБРАТЬ
    втРабочееВремя.Сотрудник,
    СУММА(втРабочееВремя.ВремяР) КАК ВремяР,
    NULL КАК ВремяВ,
    МАКСИМУМ(втРабочееВремя.Дата) КАК Дата
ИЗ
    втРабочееВремя КАК втРабочееВремя
ГДЕ
    втРабочееВремя.ВидДня = &Рабочий

СГРУППИРОВАТЬ ПО
    втРабочееВремя.Сотрудник

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

ВЫБРАТЬ
    втРабочееВремя.Сотрудник,
    NULL,
    СУММА(втРабочееВремя.ВремяР),
    МАКСИМУМ(втРабочееВремя.Дата) КАК Дата
ИЗ
    втРабочееВремя КАК втРабочееВремя
ГДЕ
    втРабочееВремя.ВидДня В(&Выходной)

СГРУППИРОВАТЬ ПО
    втРабочееВремя.Сотрудник

есть другой вариант, но он "опасный" для тех кто не понимает :)
4 Sayan_mi
 
23.12.20
13:16
Да проблема оказалась не в Сгруппировать а в различные. Сумел ограничить первый кусок без различных и все заработало.
Программист всегда исправляет последнюю ошибку.