Отбор по итогам

1. user712426 24.05.17 10:50 Сейчас в теме
Здравствуйте!
Задача такая: нужно вывести сотрудников, которые отработали сверхурочно. на скд
Сотрудник, подразделение, часы как ресурс (сумма(часы) в ресурсах). и чтобы пользователь задавал значение ЧислоЧасов и по этому отбирались записи у тех сотрудников, у которых итоговых часов больше чем ЧислоЧасов.

если сравнивать часы с ЧислоЧасов -- то так не верно,т.к. часы (это за день), а надо за весь период. т.е. сумма(часы)>ЧислоЧасов
как это реализовать, подскажите?
+
По теме из базы знаний
Найденные решения
33. Rain88 373 25.05.17 15:30 Сейчас в теме
(30) Вот простенький пример моей реализации (использован другой регистр, но принцип тот же):
ВЫБРАТЬ
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
	СУММА(ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот) КАК ОтработаноЧасов
ПОМЕСТИТЬ ВТ_ИтогиПоЧасам
ИЗ
	РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Авто, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты

СГРУППИРОВАТЬ ПО
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот КАК ОтработаноЧасов,
	ВТ_ИтогиПоЧасам.ОтработаноЧасов КАК ОтработаноЧасовИтого,
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Период КАК Период
ИЗ
	РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Месяц, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИтогиПоЧасам КАК ВТ_ИтогиПоЧасам
		ПО ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник = ВТ_ИтогиПоЧасам.Сотрудник
Показать
user712426; +1
34. user712426 25.05.17 16:05 Сейчас в теме
(33)Спасибо!
сделала по вашему совету:
ВЫБРАТЬ
	ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
	СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК ЧасыСум
ПОМЕСТИТЬ вт_итогчас
{ВЫБРАТЬ
	Сотрудник.*,
	ЧасыСум}
ИЗ
	ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
		ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
		ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
	ВТ_ВремяПоСотрудникам.Часы,
	вт_итогчас.ЧасыСум,
	ВТ_ВремяПоСотрудникам.Период КАК Период
ИЗ
	вт_итогчас КАК вт_итогчас
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
		ПО вт_итогчас.Сотрудник = ВТ_ВремяПоСотрудникам.Сотрудник

УПОРЯДОЧИТЬ ПО
	Сотрудник,
	Период
Показать


итог:
Сотрудник Часы ЧасыСум Период
петров иван алексеевич 3 12 16.01.2017 0:00:00
петров иван алексеевич 3 12 17.01.2017 0:00:00
петров иван алексеевич 3 12 18.01.2017 0:00:00
петров иван алексеевич 3 12 20.01.2017 0:00:00
(12) Итоги по часам в ресурс не добавляйте
--- т.е. ничего не добавлять в ресурсы??
(13) Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
--- как указать периодичность?
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user712426 24.05.17 14:19 Сейчас в теме
(1)неужели никто не делал отбор по итогам?
+
3. shnurov 24.05.17 14:42 Сейчас в теме
Группировку за период(месяц) по сотруднику в запросе, тогда в скд получите сотрудник - часы за период.
user712426; +1
4. user712426 24.05.17 15:31 Сейчас в теме
(3)делаю так
СГРУППИРОВАТЬ ПО
	УчетРабочегоВремениСотр.Период,
	УчетРабочегоВремениСотр.Регистратор,
	УчетРабочегоВремениСотр.Сотрудник,
	УчетРабочегоВремениСотр.Дни,
	УчетРабочегоВремениСотр.Часы,

все равно часы как за день в скд оборе
+
5. Rain88 373 24.05.17 16:32 Сейчас в теме
(4) чтобы часы суммировались за период, в запросе необходимо оставить поля Период, Сотрудник и Часы.
+
6. user712426 25.05.17 09:37 Сейчас в теме
(5)делею так:
СГРУППИРОВАТЬ ПО
	вт_итоги.Период,
	вт_итоги.Сотрудник,
	вт_итоги.Подразделение,
	вт_итоги.Часы

УПОРЯДОЧИТЬ ПО
	Сотрудник,
	Период
Показать

и все равно
Период Сотрудник Подразделение Часы
16.01.2017 0:00:00 петров Андрей NULL 3
17.01.2017 0:00:00 петров Андрей NULL 3
18.01.2017 0:00:00 петров Андрей NULL 3
19.01.2017 0:00:00 петров Андрей NULL 3
21.01.2017 0:00:00 петров Андрей NULL 4
22.01.2017 0:00:00 петров Андрей NULL 3
+
7. comptr 31 25.05.17 09:41 Сейчас в теме
(6) И правильно работает ведь. Группирует по периоду. Просто период у записей разный, вот их вместе и не объединяет. А если нужно, например, за неделю, то в запросе стоит написать "НАЧАЛОПЕРИОДА(вт_итоги.Период, Неделя) Как Период".
+
8. user712426 25.05.17 10:07 Сейчас в теме
(7)
Неделя (вт_итоги.Период)
вернет число недели в году. а мне надо чтобы заполнялись часы по месяцам и итоги и отбор по итогам был если больше столькиТоЧасов то выводились эти часы
№ п/п Ф.И.О. Январь Февраль Апрель Итого
Часы Часы Часы Часы
1 петров петр петрович 36 36 40 112
2 иванов Александр иванович 36 36 0 72
3 сидоров Иван сидорович 36 36 0 72
+
15. comptr 31 25.05.17 11:10 Сейчас в теме
(8) да, я изначально неправильно написал. смотри (14).
Выбрать
  ВТ.сотрудник,
  НачалоПериода(ВТ.Период, Месяц) Как Период,
  Сумма(ВТ.Часы) Как Часы
Из
  ВТ Как ВТ 
имеющие
  Сумма(ВТ.Часы) > &НижнийПредел
+
9. Rain88 373 25.05.17 10:18 Сейчас в теме
(6) Тогда поидее поле период тоже нужно убрать, часы должны будут просуммироваться по сотруднику с учетом подразделений.
+
10. user712426 25.05.17 10:24 Сейчас в теме
(9)это если нужно просто получить итоги! (если я правильно мыслю) тогда отбор можно сделать. но мне нужно из запроса чтобы еще по месяцам выводилось Период.ЧастиДат.НазваниеМесяца

в настройках скд потом рисую таблицу:
отчет-
-таблица
--строки
---сотрудник
--колонки
---Период.ЧастиДат.НазваниеМесяца

т.е. должно выводить по месяцам с учетом заданного пользователем числаЧасов(больше которого надо выводить)
м.б. можно как-то в вычисляемых полях прописать выражение суммы и сравнивать потом в отборе? -- но тут я в скд недавно может там в выражении представления как-то указать можно что по сотруднику считать??
и вообще кто-нить на пальцах объясните что есть Выражение представления (в вычисляемых полях)
+
11. Rain88 373 25.05.17 10:38 Сейчас в теме
(10) Отдельно в запросе получите итоги по отработанным часам, например во временной таблице. Потом соедините ее по сотрудникам с основной Таблицей. В настройках отчета добавьте поле Итоги по часам, например к сотруднику в строку.
user712426; +1
20. WasiliyMay 8 25.05.17 11:45 Сейчас в теме
(6) Здесь же все правильно, только период нужно привести к одному числу в месяце НАЧАЛОПЕРИОДА(вт_итоги.Период, Месяц) и часы суммировать надо, а не использовать в группировке
+
12. Rain88 373 25.05.17 10:41 Сейчас в теме
Итоги по часам в ресурс не добаваляйте
user712426; +1
13. Rain88 373 25.05.17 10:45 Сейчас в теме
Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
user712426; +1
14. vadim1011985 99 25.05.17 11:03 Сейчас в теме
Я конечно могу ошибаться , но если действительно поле период делать через НачалоПериода (..., Месяц) , группировать по такому ролю, и в запросе использовать директиву ИМЕЮЩИЕ , которая накладывает условие после группировки
user712426; +1
16. user712426 25.05.17 11:29 Сейчас в теме
(14)
(15)
{ВнешняяОбработка.КонсольЗапросов_82.Форма.Форма.Форма(39)}: Ошибка при вызове конструктора (КонструкторЗапроса)
Конструктор = Новый КонструкторЗапроса(ЭлементДерева.ТекстЗапроса);
по причине:
{(121, 1)}: Синтаксическая ошибка "ИМЕЮЩИЕ"
<<?>>ИМЕЮЩИЕ

как прописать непосредственно в конструкторе ИМЕЮЩИЕ
+
19. vadim1011985 99 25.05.17 11:39 Сейчас в теме
(16) чисто на итоги скорее всего отбор не встанет и вот использование ИМЕЮЩИЕ то что нужно в данном случае
+
17. user712426 25.05.17 11:34 Сейчас в теме
(14)а вообще нельзя в отборе скд сделать сравнение итогов с каким-то вводимым пользователем числом к примеру?
+
18. vadim1011985 99 25.05.17 11:38 Сейчас в теме
(17) пример

ВЫБРАТЬ
    Оплата.Клиент,
    СУММА(Оплата.Сумма) КАК Сумма
ИЗ
    Документ.Оплата КАК Оплата
ГДЕ
    МЕСЯЦ(Оплата.Дата) = 9

СГРУППИРОВАТЬ ПО
    Оплата.Клиент

ИМЕЮЩИЕ
    СУММА(Оплата.Сумма) > 13000
Показать
+
22. user712426 25.05.17 13:11 Сейчас в теме
(18)
ВЫБРАТЬ
Оплата.Клиент,
СУММА(Оплата.Сумма) КАК Сумма

выбрать сумму не получается. т.к. это будет та же сумма что и в каждой строке по дню!
+
23. vadim1011985 99 25.05.17 13:27 Сейчас в теме
(22) я это привел как пример

еще раз конструкция ИМЕЮЩИЕ применяется к агрегатной функции

ВЫБРАТЬ 
НачалоПериода(вт_итоги.Период,МЕСЯЦ)
вт_итоги.Сотрудник
вт_итоги.Подразделение
СУММА(вт_итоги.Часы)
ИЗ ВТИтоги КАК ВТИтоги 
СГРУППИРОВАТЬ ПО
    НачалоПериода(вт_итоги.Период,МЕСЯЦ),
    вт_итоги.Сотрудник,
    вт_итоги.Подразделение
ИМЕЮЩИЕ  СУММА(вт_итоги.Часы) > &Предел
Показать


Иванов 12.01.17 5 часов
Петров 17.01.17 3 часа
Иванов 18.01.17 8 часов

Результат группировки
Иванов 01.01.17 13 часов
Петров 01.01.17 3 часа

И уже к этой таблице применяется ИМЕЮЩИЕСЯ. Если предел допустим 9 часов то в результат попадет только Иванов
+
24. Rain88 373 25.05.17 13:38 Сейчас в теме
(23) Думаю еще стоит добавить, что в данном случае, в настройках отчета (в скд) Отбор не используется, так как условие уже накладывается в конструкторе запроса.
user712426; +1
25. user712426 25.05.17 13:50 Сейчас в теме
(24)а жаль. было бы удобным такое решение для многих задач.
СПАСИБО!
Буду копать в сторону запроса..
+
26. Rain88 373 25.05.17 13:58 Сейчас в теме
(25) В (11),(12),(13) я писала как можно сделать так, чтобы отбор использовать именно в скд. Только в вашем случае поле итогов по часам можно никуда не выводить, а использовать для отбора.
+
30. user712426 25.05.17 14:56 Сейчас в теме
(26)не совсем поняла что делать в 11,12,13. так не получилось у меня. общие итоги могу вывести. но они записывались у строку .
т.е.
иванов 4
иванов 1
иванов 2
иванов 1
петров 3
петров 1
петров 2
карпов 7
карпов 4
карпов 3
+
33. Rain88 373 25.05.17 15:30 Сейчас в теме
(30) Вот простенький пример моей реализации (использован другой регистр, но принцип тот же):
ВЫБРАТЬ
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
	СУММА(ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот) КАК ОтработаноЧасов
ПОМЕСТИТЬ ВТ_ИтогиПоЧасам
ИЗ
	РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Авто, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты

СГРУППИРОВАТЬ ПО
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот КАК ОтработаноЧасов,
	ВТ_ИтогиПоЧасам.ОтработаноЧасов КАК ОтработаноЧасовИтого,
	ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Период КАК Период
ИЗ
	РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Месяц, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИтогиПоЧасам КАК ВТ_ИтогиПоЧасам
		ПО ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник = ВТ_ИтогиПоЧасам.Сотрудник
Показать
user712426; +1
34. user712426 25.05.17 16:05 Сейчас в теме
(33)Спасибо!
сделала по вашему совету:
ВЫБРАТЬ
	ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
	СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК ЧасыСум
ПОМЕСТИТЬ вт_итогчас
{ВЫБРАТЬ
	Сотрудник.*,
	ЧасыСум}
ИЗ
	ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
		ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
		ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
	ВТ_ВремяПоСотрудникам.Часы,
	вт_итогчас.ЧасыСум,
	ВТ_ВремяПоСотрудникам.Период КАК Период
ИЗ
	вт_итогчас КАК вт_итогчас
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
		ПО вт_итогчас.Сотрудник = ВТ_ВремяПоСотрудникам.Сотрудник

УПОРЯДОЧИТЬ ПО
	Сотрудник,
	Период
Показать


итог:
Сотрудник Часы ЧасыСум Период
петров иван алексеевич 3 12 16.01.2017 0:00:00
петров иван алексеевич 3 12 17.01.2017 0:00:00
петров иван алексеевич 3 12 18.01.2017 0:00:00
петров иван алексеевич 3 12 20.01.2017 0:00:00
(12) Итоги по часам в ресурс не добавляйте
--- т.е. ничего не добавлять в ресурсы??
(13) Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
--- как указать периодичность?
+
40. vadim1011985 99 25.05.17 16:29 Сейчас в теме
Решение в (33) рабочее но не очень оптимальное , так как добавляется ещё одна временная таблица плюс соединение , в принципе это не критично
user712426; +1
41. user712426 25.05.17 16:32 Сейчас в теме
(40) приму к сведению! и попробую как вы советуете сделать.
только начинаю скд, да и программирование 1с недавно. мне нужен был поскорее пока результат.
Всем спецам огромное спасибо!!! каждая инфа на вес золота.
+
42. Rain88 373 25.05.17 17:10 Сейчас в теме
(40) может и не оптимальное, но как при другом решении получить в результате часы за каждый день и общую сумму за месяц, чтобы отобрать потом те записи, где сумма часов за месяц больше указанной пользователем? На сколько я понимаю, именно это и требовалось автору.
Однако, если нужны данные по месяцам, то я бы тоже не использовала временные таблицы.

И кстати, мне одной кажется, что нужно использовать не просто таблицу регистра, а обороты?
+
27. user712426 25.05.17 13:58 Сейчас в теме
(23)если пишу в консоли запроса сумму часов в выбрать, то открывая конструктор запроса сумма часов находится в группировке! почему так не пойму..
при этом суммы часов выводятся уж сильно не реальные.. (большие цифры)
+
28. vadim1011985 99 25.05.17 14:12 Сейчас в теме
(27) привидите ваш пример запроса
+
21. user712426 25.05.17 11:50 Сейчас в теме
всем Спасибо! попробую разобраться, отпишусь как получится
+
31. vadim1011985 99 25.05.17 15:14 Сейчас в теме
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ВТ_ВремяПоСотрудникам.Период, МЕСЯЦ) КАК Период,
	Представления_КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
	Представления_КадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
	ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
	СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК Часы
{ВЫБРАТЬ
	Период,
	Подразделение.*,
	ТабельныйНомер,
	Сотрудник.*,
	Часы}
ИЗ
	ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
		ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
		ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник,
	Документ.РегистрацияПереработок.Сотрудники КАК РегистрацияПереработокСотрудники
{ГДЕ
	ВТ_ВремяПоСотрудникам.Период,
	Представления_КадровыеДанныеСотрудников.Подразделение.*,
	Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
	ВТ_ВремяПоСотрудникам.Сотрудник.*,
	ВТ_ВремяПоСотрудникам.Часы}

СГРУППИРОВАТЬ ПО
	Представления_КадровыеДанныеСотрудников.Подразделение,
	Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
	ВТ_ВремяПоСотрудникам.Сотрудник,
	НАЧАЛОПЕРИОДА(ВТ_ВремяПоСотрудникам.Период, МЕСЯЦ)

ИМЕЮЩИЕ
	СУММА(ВТ_ВремяПоСотрудникам.Часы) > &ЗаданоЧасов

УПОРЯДОЧИТЬ ПО
	Сотрудник,
	Период
Показать
+
32. user712426 25.05.17 15:28 Сейчас в теме
(31)в консоли запроса и в отчете получились миллионы часов (столько не живут)
о чем я и говорила. не прокатывает так.
+
35. vadim1011985 99 25.05.17 16:05 Сейчас в теме
(32) у вас запрос еще совсем правильный

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

СГРУППИРОВАТЬ ПО
	ДанныеТабельногоУчетаРабочегоВремениСотрудников.Регистратор,
	ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник,
	ДанныеТабельногоУчетаРабочегоВремениСотрудников.ПериодРегистрации,
	ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени,
	НАЧАЛОПЕРИОДА(ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период, МЕСЯЦ)
;
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ДАТАВРЕМЯ(1, 1, 1) КАК Период,
	ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
	"" КАК ТабельныйНомер,
	ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо,
	ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация,
	ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка) КАК ВидЗанятости,
	ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
	ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
	ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПриема,
	"" КАК ТрудовойДоговорНомер,
	ДАТАВРЕМЯ(1, 1, 1) КАК ТрудовойДоговорДата,
	ДАТАВРЕМЯ(1, 1, 1) КАК ПриказОПриемеДатаЗавершенияТрудовогоДоговора,
	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаУвольнения,
	ЗНАЧЕНИЕ(Справочник.ОснованияУвольнения.ПустаяСсылка) КАК ПриказОбУвольненииСтатьяТКРФ,
	"" КАК ПриказОбУвольненииНомер,
	ДАТАВРЕМЯ(1, 1, 1) КАК ПриказОбУвольненииДата,
	ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.ПустаяСсылка) КАК Пол,
	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаРождения,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК ИНН,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК СтраховойНомерПФР,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК МестоРождения,
	ЗНАЧЕНИЕ(Справочник.СтраныМира.ПустаяСсылка) КАК Страна,
	ЗНАЧЕНИЕ(Перечисление.ВидыЗастрахованныхЛицОбязательногоСтрахования.ПустаяСсылка) КАК ВидЗастрахованногоЛица,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК Фамилия,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК Имя,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК Отчество,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК ФИОПолные,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК АдресПоПрописке,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК АдресПоПропискеПредставление,
	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаРегистрации,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК АдресМестаПроживания,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК АдресМестаПроживанияПредставление,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК ТелефонДомашнийПредставление,
	ВЫРАЗИТЬ("" КАК СТРОКА) КАК ТелефонРабочийПредставление,
	0 КАК ОбщийСтажДней,
	0 КАК ОбщийСтажМесяцев,
	0 КАК ОбщийСтажЛет,
	0 КАК НепрерывныйСтажДней,
	0 КАК НепрерывныйСтажМесяцев,
	0 КАК НепрерывныйСтажЛет,
	0 КАК СтажНаНадбавкуЗаВыслугуЛетДней,
	0 КАК СтажНаНадбавкуЗаВыслугуЛетМесяцев,
	0 КАК СтажНаНадбавкуЗаВыслугуЛетЛет,
	0 КАК ОбщийНаучноПедагогическийСтажДней,
	0 КАК ОбщийНаучноПедагогическийСтажМесяцев,
	0 КАК ОбщийНаучноПедагогическийСтажЛет,
	0 КАК ПедагогическийСтажДней,
	0 КАК ПедагогическийСтажМесяцев,
	0 КАК ПедагогическийСтажЛет
ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
ИЗ
	ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ГДЕ
	"ТолькоРазрешенные" = ИСТИНА
;

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

СГРУППИРОВАТЬ ПО
	Представления_КадровыеДанныеСотрудников.Подразделение,
	Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
	ВТ_ВремяПоСотрудникам.Сотрудник,
	ВТ_ВремяПоСотрудникам.Период

ИМЕЮЩИЕ
	СУММА(ВТ_ВремяПоСотрудникам.Часы) > &ЗаданоЧасов

УПОРЯДОЧИТЬ ПО
	Сотрудник
Показать


в самом первом запросе (я там поменял таблицу на похожую, так как данных не было ) можно вообще использовать поле период регистрации и отдельно поле период тащить не нужно , так же в этом запросе можно сделать расчитать общее количество отработанных часов и дней
Прикрепленные файлы:
+
36. user712426 25.05.17 16:10 Сейчас в теме
(35) если использую НАЧАЛОПЕРИОДА, то и записи выводятся только для НАЧАЛОПЕРИОДА... (в консоли запроса смотрю)
+
37. WasiliyMay 8 25.05.17 16:16 Сейчас в теме
(36) это не влияет на выводимые записи. НАЧАЛОПЕРИОДА только меняет число в дате
+
38. vadim1011985 99 25.05.17 16:17 Сейчас в теме
(36) а разница ? Все равно Часы считаются за указанный период с разбивкой по месяцам , если нужно можно заменить НачалоПериода на КонецПериода и будут даты конца месяца , либо через формат вообще задать текстовое представление месяца
+
39. user712426 25.05.17 16:19 Сейчас в теме
(38)спасибо! попробую щас так как вы советуете. но уже все получилось (33)
так работает как раз как мне нужно было. вдруг кому пригодится.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот