Здравствуйте!
Задача такая: нужно вывести сотрудников, которые отработали сверхурочно. на скд
Сотрудник, подразделение, часы как ресурс (сумма(часы) в ресурсах). и чтобы пользователь задавал значение ЧислоЧасов и по этому отбирались записи у тех сотрудников, у которых итоговых часов больше чем ЧислоЧасов.
если сравнивать часы с ЧислоЧасов -- то так не верно,т.к. часы (это за день), а надо за весь период. т.е. сумма(часы)>ЧислоЧасов
как это реализовать, подскажите?
Задача такая: нужно вывести сотрудников, которые отработали сверхурочно. на скд
Сотрудник, подразделение, часы как ресурс (сумма(часы) в ресурсах). и чтобы пользователь задавал значение ЧислоЧасов и по этому отбирались записи у тех сотрудников, у которых итоговых часов больше чем ЧислоЧасов.
если сравнивать часы с ЧислоЧасов -- то так не верно,т.к. часы (это за день), а надо за весь период. т.е. сумма(часы)>ЧислоЧасов
как это реализовать, подскажите?
По теме из базы знаний
- Отображение итогов в подвале табличной части документа (управляемая форма) с учетом отбора.
- Удаление помеченных объектов, замена ссылок. Обычное и управляемое приложение. Не монопольно, включая рекурсивные ссылки, с отбором по метаданным и произвольным запросом
- Выгрузка и загрузка данных XML с гибкими отборами
- Подсистема прав доступа к объектам с гибкими отборами (расширение)
- Универсальный обмен XML для КД 2.Х под УФ - с отбором СКД и сохранением настроек
Найденные решения
(30) Вот простенький пример моей реализации (использован другой регистр, но принцип тот же):
ВЫБРАТЬ
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
СУММА(ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот) КАК ОтработаноЧасов
ПОМЕСТИТЬ ВТ_ИтогиПоЧасам
ИЗ
РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Авто, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
СГРУППИРОВАТЬ ПО
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот КАК ОтработаноЧасов,
ВТ_ИтогиПоЧасам.ОтработаноЧасов КАК ОтработаноЧасовИтого,
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Период КАК Период
ИЗ
РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Месяц, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИтогиПоЧасам КАК ВТ_ИтогиПоЧасам
ПО ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник = ВТ_ИтогиПоЧасам.Сотрудник
Показать
(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
сделала по вашему совету:
ВЫБРАТЬ
ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК ЧасыСум
ПОМЕСТИТЬ вт_итогчас
{ВЫБРАТЬ
Сотрудник.*,
ЧасыСум}
ИЗ
ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник
СГРУППИРОВАТЬ ПО
ВТ_ВремяПоСотрудникам.Сотрудник
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
ВТ_ВремяПоСотрудникам.Часы,
вт_итогчас.ЧасыСум,
ВТ_ВремяПоСотрудникам.Период КАК Период
ИЗ
вт_итогчас КАК вт_итогчас
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ПО вт_итогчас.Сотрудник = ВТ_ВремяПоСотрудникам.Сотрудник
УПОРЯДОЧИТЬ ПО
Сотрудник,
Период
Показатьитог:
Сотрудник Часы ЧасыСум Период
петров иван алексеевич 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) Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
--- как указать периодичность?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Группировку за период(месяц) по сотруднику в запросе, тогда в скд получите сотрудник - часы за период.
(3)делаю так
все равно часы как за день в скд оборе
СГРУППИРОВАТЬ ПО
УчетРабочегоВремениСотр.Период,
УчетРабочегоВремениСотр.Регистратор,
УчетРабочегоВремениСотр.Сотрудник,
УчетРабочегоВремениСотр.Дни,
УчетРабочегоВремениСотр.Часы,
все равно часы как за день в скд оборе
(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
СГРУППИРОВАТЬ ПО
вт_итоги.Период,
вт_итоги.Сотрудник,
вт_итоги.Подразделение,
вт_итоги.Часы
УПОРЯДОЧИТЬ ПО
Сотрудник,
Период
Показатьи все равно
Период Сотрудник Подразделение Часы
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
(6) И правильно работает ведь. Группирует по периоду. Просто период у записей разный, вот их вместе и не объединяет. А если нужно, например, за неделю, то в запросе стоит написать "НАЧАЛОПЕРИОДА(вт_итоги.Период, Неделя) Как Период".
(7)
№ п/п Ф.И.О. Январь Февраль Апрель Итого
Часы Часы Часы Часы
1 петров петр петрович 36 36 40 112
2 иванов Александр иванович 36 36 0 72
3 сидоров Иван сидорович 36 36 0 72
Неделя (вт_итоги.Период)
вернет число недели в году. а мне надо чтобы заполнялись часы по месяцам и итоги и отбор по итогам был если больше столькиТоЧасов то выводились эти часы
№ п/п Ф.И.О. Январь Февраль Апрель Итого
Часы Часы Часы Часы
1 петров петр петрович 36 36 40 112
2 иванов Александр иванович 36 36 0 72
3 сидоров Иван сидорович 36 36 0 72
(9)это если нужно просто получить итоги! (если я правильно мыслю) тогда отбор можно сделать. но мне нужно из запроса чтобы еще по месяцам выводилось Период.ЧастиДат.НазваниеМесяца
в настройках скд потом рисую таблицу:
отчет-
-таблица
--строки
---сотрудник
--колонки
---Период.ЧастиДат.НазваниеМесяца
т.е. должно выводить по месяцам с учетом заданного пользователем числаЧасов(больше которого надо выводить)
м.б. можно как-то в вычисляемых полях прописать выражение суммы и сравнивать потом в отборе? -- нотут я в скд недавно может там в выражении представления как-то указать можно что по сотруднику считать??
и вообще кто-нить на пальцах объясните что есть Выражение представления (в вычисляемых полях)
в настройках скд потом рисую таблицу:
отчет-
-таблица
--строки
---сотрудник
--колонки
---Период.ЧастиДат.НазваниеМесяца
т.е. должно выводить по месяцам с учетом заданного пользователем числаЧасов(больше которого надо выводить)
м.б. можно как-то в вычисляемых полях прописать выражение суммы и сравнивать потом в отборе? -- но
и вообще кто-нить на пальцах объясните что есть Выражение представления (в вычисляемых полях)
(10) Отдельно в запросе получите итоги по отработанным часам, например во временной таблице. Потом соедините ее по сотрудникам с основной Таблицей. В настройках отчета добавьте поле Итоги по часам, например к сотруднику в строку.
Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
Я конечно могу ошибаться , но если действительно поле период делать через НачалоПериода (..., Месяц) , группировать по такому ролю, и в запросе использовать директиву ИМЕЮЩИЕ , которая накладывает условие после группировки
(14)
(15)
{ВнешняяОбработка.КонсольЗапросов_82.Форма.Форма.Форма(39)}: Ошибка при вызове конструктора (КонструкторЗапроса)
Конструктор = Новый КонструкторЗапроса(ЭлементДерева.ТекстЗапроса);
по причине:
{(121, 1)}: Синтаксическая ошибка "ИМЕЮЩИЕ"
<<?>>ИМЕЮЩИЕ
как прописать непосредственно в конструкторе ИМЕЮЩИЕ
(15)
{ВнешняяОбработка.КонсольЗапросов_82.Форма.Форма.Форма(39)}: Ошибка при вызове конструктора (КонструкторЗапроса)
Конструктор = Новый КонструкторЗапроса(ЭлементДерева.ТекстЗапроса);
по причине:
{(121, 1)}: Синтаксическая ошибка "ИМЕЮЩИЕ"
<<?>>ИМЕЮЩИЕ
как прописать непосредственно в конструкторе ИМЕЮЩИЕ
(22) я это привел как пример
еще раз конструкция ИМЕЮЩИЕ применяется к агрегатной функции
Иванов 12.01.17 5 часов
Петров 17.01.17 3 часа
Иванов 18.01.17 8 часов
Результат группировки
Иванов 01.01.17 13 часов
Петров 01.01.17 3 часа
И уже к этой таблице применяется ИМЕЮЩИЕСЯ. Если предел допустим 9 часов то в результат попадет только Иванов
еще раз конструкция ИМЕЮЩИЕ применяется к агрегатной функции
ВЫБРАТЬ
НачалоПериода(вт_итоги.Период,МЕСЯЦ)
вт_итоги.Сотрудник
вт_итоги.Подразделение
СУММА(вт_итоги.Часы)
ИЗ ВТИтоги КАК ВТИтоги
СГРУППИРОВАТЬ ПО
НачалоПериода(вт_итоги.Период,МЕСЯЦ),
вт_итоги.Сотрудник,
вт_итоги.Подразделение
ИМЕЮЩИЕ СУММА(вт_итоги.Часы) > &Предел
ПоказатьИванов 12.01.17 5 часов
Петров 17.01.17 3 часа
Иванов 18.01.17 8 часов
Результат группировки
Иванов 01.01.17 13 часов
Петров 01.01.17 3 часа
И уже к этой таблице применяется ИМЕЮЩИЕСЯ. Если предел допустим 9 часов то в результат попадет только Иванов
(30) Вот простенький пример моей реализации (использован другой регистр, но принцип тот же):
ВЫБРАТЬ
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
СУММА(ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот) КАК ОтработаноЧасов
ПОМЕСТИТЬ ВТ_ИтогиПоЧасам
ИЗ
РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Авто, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
СГРУППИРОВАТЬ ПО
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник,
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.ОтработаноЧасовОборот КАК ОтработаноЧасов,
ВТ_ИтогиПоЧасам.ОтработаноЧасов КАК ОтработаноЧасовИтого,
ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Период КАК Период
ИЗ
РегистрНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Обороты(, , Месяц, ) КАК ДанныеОВремениДляРасчетаСреднегоОбщийОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИтогиПоЧасам КАК ВТ_ИтогиПоЧасам
ПО ДанныеОВремениДляРасчетаСреднегоОбщийОбороты.Сотрудник = ВТ_ИтогиПоЧасам.Сотрудник
Показать
(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
сделала по вашему совету:
ВЫБРАТЬ
ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК ЧасыСум
ПОМЕСТИТЬ вт_итогчас
{ВЫБРАТЬ
Сотрудник.*,
ЧасыСум}
ИЗ
ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник
СГРУППИРОВАТЬ ПО
ВТ_ВремяПоСотрудникам.Сотрудник
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
ВТ_ВремяПоСотрудникам.Часы,
вт_итогчас.ЧасыСум,
ВТ_ВремяПоСотрудникам.Период КАК Период
ИЗ
вт_итогчас КАК вт_итогчас
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ПО вт_итогчас.Сотрудник = ВТ_ВремяПоСотрудникам.Сотрудник
УПОРЯДОЧИТЬ ПО
Сотрудник,
Период
Показатьитог:
Сотрудник Часы ЧасыСум Период
петров иван алексеевич 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) Если нужно выводить только по месяцам, можно в запросе у регистра указать периодичность - месяц. И вместо Период.ЧастиДат.НазваниеМесяца будет просто Период.
--- как указать периодичность?
Решение в (33) рабочее но не очень оптимальное , так как добавляется ещё одна временная таблица плюс соединение , в принципе это не критично
(40) может и не оптимальное, но как при другом решении получить в результате часы за каждый день и общую сумму за месяц, чтобы отобрать потом те записи, где сумма часов за месяц больше указанной пользователем? На сколько я понимаю, именно это и требовалось автору.
Однако, если нужны данные по месяцам, то я бы тоже не использовала временные таблицы.
И кстати, мне одной кажется, что нужно использовать не просто таблицу регистра, а обороты?
Однако, если нужны данные по месяцам, то я бы тоже не использовала временные таблицы.
И кстати, мне одной кажется, что нужно использовать не просто таблицу регистра, а обороты?
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(ВТ_ВремяПоСотрудникам.Период, МЕСЯЦ) КАК Период,
Представления_КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
Представления_КадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
ВТ_ВремяПоСотрудникам.Сотрудник КАК Сотрудник,
СУММА(ВТ_ВремяПоСотрудникам.Часы) КАК Часы
{ВЫБРАТЬ
Период,
Подразделение.*,
ТабельныйНомер,
Сотрудник.*,
Часы}
ИЗ
ВТ_ВремяПоСотрудникам КАК ВТ_ВремяПоСотрудникам
ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
ПО ВТ_ВремяПоСотрудникам.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник,
Документ.РегистрацияПереработок.Сотрудники КАК РегистрацияПереработокСотрудники
{ГДЕ
ВТ_ВремяПоСотрудникам.Период,
Представления_КадровыеДанныеСотрудников.Подразделение.*,
Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
ВТ_ВремяПоСотрудникам.Сотрудник.*,
ВТ_ВремяПоСотрудникам.Часы}
СГРУППИРОВАТЬ ПО
Представления_КадровыеДанныеСотрудников.Подразделение,
Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
ВТ_ВремяПоСотрудникам.Сотрудник,
НАЧАЛОПЕРИОДА(ВТ_ВремяПоСотрудникам.Период, МЕСЯЦ)
ИМЕЮЩИЕ
СУММА(ВТ_ВремяПоСотрудникам.Часы) > &ЗаданоЧасов
УПОРЯДОЧИТЬ ПО
Сотрудник,
Период
Показать
(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) а разница ? Все равно Часы считаются за указанный период с разбивкой по месяцам , если нужно можно заменить НачалоПериода на КонецПериода и будут даты конца месяца , либо через формат вообще задать текстовое представление месяца
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот