helpf.pro
Регистрация

v8: Фактически отработанное время

devlog
06.07.2014 07:28Прочитано: 9597

ДОброго времени суток.

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

и если нет то помогите с запросом по выбору этого самого времени.

Сделал таким образом

Код 1C v 8.х
 ВЫБРАТЬ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Сотрудник,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияНачало,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияКонец,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействия,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ВидРасчета,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодРегистрации,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Результат,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ДополнительныйРезультат,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ОтработаноЧасов
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия
ГДЕ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Сотрудник = &Сотрудник
И ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ВидРасчета = &ВидРасчета

за май две строки =\

Yandex
Возможно, вас также заинтересует
Реклама на портале
DJ_Serega
06.07.2014 15:28Ответ № 1

А последняя колонка какие данные выводит? что за "ОтработаноЧасов", это не то что нужно?

devlog
06.07.2014 17:54Ответ № 2

То но если посмотреть на скриншот то видно что за май идет 2 строчки и как убрать одну из них я не пойму

DJ_Serega
06.07.2014 19:36Ответ № 3

Это потому что есть разные строки в колонках "ПериодДействияНачало" и "ПериодДействияКонец". В сгруппируй данные. По этим полям агрегаты Мин() и Макс() (соответственно).

devlog
06.07.2014 20:37Ответ № 4

Может я вас не совсем верно понял но в данном варианте получается обыкновенная сумма отработанных часов

Проблема в том что тут одна строка лишняя конкретно две строки за май  с одинаковым отработанным временем. Нужно взять только одну из них.

devlog
06.07.2014 20:41Ответ № 5

Вот запрос

Код 1C v 8.х
 ВЫБРАТЬ РАЗЛИЧНЫЕ
СУММА(ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ОтработаноЧасов) КАК ОтработаноЧасов,
МИНИМУМ(ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияНачало) КАК ПериодДействияНачало,
МАКСИМУМ(ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияКонец) КАК ПериодДействияКонец
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия
ГДЕ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Сотрудник = &Сотрудник
И ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ВидРасчета = &ВидРасчета
devlog
06.07.2014 20:42Ответ № 6

этот запрос выводит мне за период 506 часов

а должно быть 402,5

devlog
06.07.2014 20:51Ответ № 7

В общем путем непонятных действий =))) получил искомый результат

Код 1C v 8.х
 ВЫБРАТЬ РАЗЛИЧНЫЕ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ОтработаноЧасов КАК ОтработаноЧасов,
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.НомерСтроки
ПОМЕСТИТЬ ВТ_ОТРАБОТАННОЕВРЕМЯ
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия
ГДЕ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Сотрудник = &Сотрудник
И ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ВидРасчета = &ВидРасчета
;


////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СУММА(ВТ_ОТРАБОТАННОЕВРЕМЯ.ОтработаноЧасов) КАК ОтработаноЧасов
ИЗ
ВТ_ОТРАБОТАННОЕВРЕМЯ КАК ВТ_ОТРАБОТАННОЕВРЕМЯ

Вот запрос =) подскажите он хоть отдаленно напоминает правильный ?

E_Migachev
06.07.2014 21:56Ответ № 8

(7) да, это правильный путь )

плюсом хочу добавить:

- если надо получить количество дней которое работник должен отработать по графику или календарю, то используй - Получить количество рабочих дней сотрудника

- запрос на получение факта отработанного времени по физ лицу

Код 1C v 8.2 УП
 "ВЫБРАТЬ
            |    ЕСТЬNULL(СУММА(РАЗНОСТЬДАТ(ВЫБОР
            |                    КОГДА Факт.ПериодДействияНачало > &НачПериода
            |                        ТОГДА Факт.ПериодДействияНачало
            |                    ИНАЧЕ &НачПериода
            |                КОНЕЦ, ДОБАВИТЬКДАТЕ(ВЫБОР
            |                        КОГДА Факт.ПериодДействияКонец < &КонПериода
            |                            ТОГДА Факт.ПериодДействияКонец
            |                        ИНАЧЕ &КонПериода
            |                    КОНЕЦ, ДЕНЬ, 1), ДЕНЬ)), 0) КАК Дни
            |ИЗ
            |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(
            |            ФизЛицо = &ФизЛицо
            |                И (ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени.РабочееВремя)) КАК Факт
            |ГДЕ
            |    (Факт.ПериодДействияНачало МЕЖДУ &НачПериода И &КонПериода
            |            ИЛИ Факт.ПериодДействияКонец МЕЖДУ &НачПериода И &КонПериода)";
devlog
07.07.2014 11:13Ответ № 9

Спасибо !

Явки я получил вроде бы нормально.

Тут выяснил один момент что в этом регистре нет данных о командировках.

Подскажите откуда тянуть их?

Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.