Количество рабочих часов в смесяц
Модераторы: m0p3e, edward_K, Модераторы
Re: Количество рабочих часов в смесяц
Имеем табель.
Пытаюсь подсчитать количество часов работы в выходные с помощью WT_GetHours(HourKind, 1). Подставляю вместо HourKind значения от 1 до 31, получаю такие результаты:
Вопросы: а где эти самые 4 часа? как вывести количество часов работы в выходные, не прибегая к ковырянию таблицы LSTAB?
Пытаюсь подсчитать количество часов работы в выходные с помощью WT_GetHours(HourKind, 1). Подставляю вместо HourKind значения от 1 до 31, получаю такие результаты:
Код: Выделить всё
1 |186.00
2 |0.00
3 |0.00
4 |0.00
5 |0.00
6 |13.00
7 |1.00
8 |0.00
9 |0.00
10|186.00
11|182.00
12|186.00
13|0.00
14|0.00
15|0.00
16|0.00
17|0.00
18|182.00
19|0.00
20|0.00
21|186.00
22|0.00
23|0.00
24|0.00
25|186.00
26|0.00
27|0.00
28|0.00
29|0.00
30|0.00
31|0.00
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Количество рабочих часов в смесяц
посмотрите в документации wt2.chm
Войдите в табель конкретного человека и повычисляйте по Ctrl+F4 - должно работать, в табеле же работает . Скорей всего вы не для того человека вычисляли.
Войдите в табель конкретного человека и повычисляйте по Ctrl+F4 - должно работать, в табеле же работает . Скорей всего вы не для того человека вычисляли.
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Количество рабочих часов в смесяц
По Ctrl+F4 выдает значение, а не поле, где оно хранится.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Количество рабочих часов в смесяц
1. Вопрос был по поводу функции и в табеле она прекрасно работает - можно вычислять все, что доступно, а не только значение полей
2. Если поле не показывает, то всегда есть getifccurrentfieldname и редактор свойств в конфигураторе. А далее еще есть шанс посмотреть в консоле управления что же там на самом деле выводится.
3. Имхо журнал надежней, но речь о функции.
2. Если поле не показывает, то всегда есть getifccurrentfieldname и редактор свойств в конфигураторе. А далее еще есть шанс посмотреть в консоле управления что же там на самом деле выводится.
3. Имхо журнал надежней, но речь о функции.
Re: Количество рабочих часов в смесяц
Естественно, смотрел и считал как WT_GetHours(4, 1)+WT_GetHours(5, 1), однако, выяснилось, что выдаётся 0.edward_K писал(а):посмотрите в документации wt2.chm
Того-того. Вон, сверхурочка же 13+1 (коды HourKind 6 и 7) правильно показывается.edward_K писал(а):Скорей всего вы не для того человека вычисляли.
Это мне не нужно: я и так знаю, где циферки лежат. Хотелось бы не применять запросы к LSTAB, а вычислить при помощи функций из wt2.chm.edward_K писал(а):повычисляйте по Ctrl+F4
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Количество рабочих часов в смесяц
ну тут видимо зависит от способа хранения и похоже в этой функции действительно ошибка.
В табеле итоги формируются как
WT_GetHoursBwDays(STOTALS.HOURKIND, 0, 0, stActual, 1, 31);
STOTALS.HOURKIND можете конфигуратором вывести.
Кстати. Если перехватите
procedure IWTContainerItem.ReRead;
в
то можно добавить свои итоги. Я например сделал вывод по половинам месяца, а также отнимал для пары отклонений рабочие часы.
В табеле итоги формируются как
WT_GetHoursBwDays(STOTALS.HOURKIND, 0, 0, stActual, 1, 31);
STOTALS.HOURKIND можете конфигуратором вывести.
Кстати. Если перехватите
procedure IWTContainerItem.ReRead;
в
Код: Выделить всё
#component "z_wt"
alter interface WTTotals
( '')
;
overload
procedure IWTContainerItem.ReRead;
function GetColor: integer;
end;
Re: Количество рабочих часов в смесяц
WT_GetHoursBwDays(5, 0, 0, 1, 1, 31) = 4. Жаль, плюсануть не получается...edward_K писал(а):WT_GetHoursBwDays(STOTALS.HOURKIND, 0, 0, stActual, 1, 31);
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Количество рабочих часов в смесяц
Здравствуйте. Возникла необходимость по сотрудникам за определенный месяц найти дни и часы по плану и дни и часы, отработанные фактически. Это получилось. Но надо дополнительно проанализировать отклонения, в частности ремонт (дни и часы), когда вместо основной оплаты идет оплата времени на ремонте. Для этого, если я правильно поняла, используются :
function WT_LoadMonthlyAbsences: integer;
function WT_GetMonthlyAbsenceCount: integer;
Далее в цикле по полученному количеству неявок пробегаем неявки. Анализируем условное обозначение неявки с помощью
function WT_GetMonthlyAbsenceAttribute( AbsenceNumber: integer; Attr: word; var Value): boolean;
И с ее же помощью определяем нужные дни и часы. Я права?
Вопросы:
1.Приведенные функции работают по одному текущему сотруднику?
2. Процедеру WT_ResetMonthlyAbsences надо использовать один раз после работы с табелями всех сотрудников или же после работы с табелем каждого сотрудника?
P.S. Все это для определения отработан ли полностью каждым сотрудником фонд времени.
function WT_LoadMonthlyAbsences: integer;
function WT_GetMonthlyAbsenceCount: integer;
Далее в цикле по полученному количеству неявок пробегаем неявки. Анализируем условное обозначение неявки с помощью
function WT_GetMonthlyAbsenceAttribute( AbsenceNumber: integer; Attr: word; var Value): boolean;
И с ее же помощью определяем нужные дни и часы. Я права?
Вопросы:
1.Приведенные функции работают по одному текущему сотруднику?
2. Процедеру WT_ResetMonthlyAbsences надо использовать один раз после работы с табелями всех сотрудников или же после работы с табелем каждого сотрудника?
P.S. Все это для определения отработан ли полностью каждым сотрудником фонд времени.
-
- Слесарь-системщик
- Сообщения: 304
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
- Контактная информация:
Re: Количество рабочих часов в смесяц
1. По одному текущему ТАБЕЛЮ, загруженному с помощью вызова LoadWorkingTable, в пределах указанного в этом вызове месяца.Вопросы:
1.Приведенные функции работают по одному текущему сотруднику?
2. Процедеру WT_ResetMonthlyAbsences надо использовать один раз после работы с табелями всех сотрудников или же после работы с табелем каждого сотрудника?
2. Вызывать WT_ResetMonthlyAbsences не нужно. Вызов LoadWorkingTable автоматически сбросит неявки.
Виталий
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Количество рабочих часов в смесяц
Screw, большое спасибо за ответ.
По в.1 уже сама поняла. Немного помучилась с днями неявок с нужным обозначением – была проблема, которая решилась приведением типов.
По в.2 не совсем понятно. Вы пишите, что вызов LoadWorkingTable автоматом сбросит неявки. Если в цикле по табелям после LoadWorkingTable я использую WT_LoadMonthlyAbsences, далее работаю с неявками, то при обработке последнего табеля, если у него есть неявки, очищения списка неявок по данному табелю не произойдет, т.к. после него не будет вызова LoadWorkingTable - ведь это последний табель. Или я не права?
По в.1 уже сама поняла. Немного помучилась с днями неявок с нужным обозначением – была проблема, которая решилась приведением типов.
По в.2 не совсем понятно. Вы пишите, что вызов LoadWorkingTable автоматом сбросит неявки. Если в цикле по табелям после LoadWorkingTable я использую WT_LoadMonthlyAbsences, далее работаю с неявками, то при обработке последнего табеля, если у него есть неявки, очищения списка неявок по данному табелю не произойдет, т.к. после него не будет вызова LoadWorkingTable - ведь это последний табель. Или я не права?
-
- Слесарь-системщик
- Сообщения: 304
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
- Контактная информация:
Re: Количество рабочих часов в смесяц
Всё правильно, в конце работы в табельном функционале останется установленный контекст (табель последнего из работников в вашем списке) и список загруженных месячных неявок. Для очистки совести в конце работы можно сбросить неявки.
Виталий
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Количество рабочих часов в смесяц
Спасибо, Виталий.
Re: Количество рабочих часов в смесяц
Приветствую!
Возникла необходимость подсчитать количество отработанных часов в зависимости от разряда работника (меняют, шельмы, разряд в течение месяца, а кое-кому не терпится узнать отработанное время именно в разрезе разрядов). Такого фильтра не нашёл в wt2.chm...
Возникла необходимость подсчитать количество отработанных часов в зависимости от разряда работника (меняют, шельмы, разряд в течение месяца, а кое-кому не терпится узнать отработанное время именно в разрезе разрядов). Такого фильтра не нашёл в wt2.chm...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Количество рабочих часов в смесяц
Вам придется перебирать периоды работы, а по ним брать данные либ из табеля(если это не тек.месяц, для тек. можно из лиц.счета) для периода с начала месяца или из перехода.
Я делал так
Сие вызывал из пробежки по perexod c perexod.nrec, а потом с 0. Ключевое здесь Change - ищите по описанию. Разряд так понимаю надо тянуть из тарифной сетки.
Я делал так
Код: Выделить всё
Procedure InsTabel(Change:comp);
WT_ResetFilter;
// если включено раздельное ведение табелей
// if (SeparateTableKeeping)
// установим фильтр по данному переходу в межпериод
WT_SetAttributeFilter(wtaChange, Change);