Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Сгруппировать в СКД

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.