|
Сгруппировать в СКД | ☑ | ||
---|---|---|---|---|
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
|
Да проблема оказалась не в Сгруппировать а в различные. Сумел ограничить первый кусок без различных и все заработало.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |