Получение нормы месяца в часах по графику работы сотрудника

1. Divanoff 22 12.04.17 09:05 Сейчас в теме
День добрый.

Задача состоит в том, чтобы узнать норму месяца по графику работы сотрудника в часах, если сотрудник мог в середине месяца поменять свой график.

1. В ЗУП 3 есть регистр сведений "ГрафикРаботыСотрудниковИнтервальный", там по периодам с даты начала по дата окончания есть информация в каком графике сотрудник работал. Как получить из данного регистра значения графика работы за каждый день периода нужного мне месяца?
2. Если я значения получу, то нужно потом из регистра ГрафикиРаботыПоВидамВремени получить за каждый день нужного мне периода часы из графика пункта 1.

Что-нибудь делал похожий запрос? Ну или может функция какая есть? Я сообразить не могу, как его написать.

Программа: ЗУП 3 КОРП. Структура регистров на скриншоте.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 12.04.17 09:12 Сейчас в теме
(1) получаешь дни в периоде пихаешь в Вт, потом вытягиваешь данные из регистра по нужному графику и уже соединяешь Вт1 и график. ну и там получишь что тебе надо.
3. Divanoff 22 12.04.17 10:10 Сейчас в теме
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ДанныеПроизводственногоКалендаря.Дата
ПОМЕСТИТЬ ВТ_Даты
ИЗ
    РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
ГДЕ
    ДанныеПроизводственногоКалендаря.Дата >= &НачДата
    И ДанныеПроизводственногоКалендаря.Дата <= &КонДата
;

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

СГРУППИРОВАТЬ ПО
    ВТ_Даты.Дата,
    ГрафикРаботыСотрудников.Сотрудник,
    ГрафикРаботыСотрудников.ГоловнаяОрганизация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТ_МаксПериод.Сотрудник,
    ГрафикРаботыСотрудников.ГоловнаяОрганизация КАК Организация,
    ГрафикРаботыСотрудников.ГрафикРаботы,
    ВТ_МаксПериод.Дата КАК Дата
ПОМЕСТИТЬ ВТ_ГрафикиНаКаждыйДень
ИЗ
    ВТ_МаксПериод КАК ВТ_МаксПериод
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботыСотрудников КАК ГрафикРаботыСотрудников
        ПО ВТ_МаксПериод.Сотрудник = ГрафикРаботыСотрудников.Сотрудник
            И ВТ_МаксПериод.МаксПериод = ГрафикРаботыСотрудников.Период
            И ВТ_МаксПериод.Организация = ГрафикРаботыСотрудников.ГоловнаяОрганизация
;

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

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

УПОРЯДОЧИТЬ ПО
    Дата
Показать
lipton93; ЛИК1111; DigitalMan; cybjavax; +4 Ответить 1
4. ilnar4888 13.01.20 12:46 Сейчас в теме
Спасибо! Мне ваш запрос помог.
5. Stref75 13.01.20 14:21 Сейчас в теме
решал аналогичную задачу. делал обработку для подсчета "индивидуальной нормы"
может чем поможет моя обработина
Прикрепленные файлы:
ТестРасчетаНормы.epf
Оставьте свое сообщение

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