Страница 1 из 1

Управление персоналом

Добавлено: 31 окт 2007, 11:59
Алексей
Есть ли функция, которая бы считала среднесписочную численность сотрудников по подразделению?

Добавлено: 06 ноя 2007, 03:06
Screw
Нет. Но есть методы для расчета с/с по человеку. Устроит?

Добавлено: 06 ноя 2007, 05:30
Алексей
Можно попробовать.

Добавлено: 08 ноя 2007, 09:51
Алексей
Screw
скажите, а что такого отчета в Галактике вообще нет?

как там насчет функции? :)

Добавлено: 09 ноя 2007, 03:14
Screw
Содержимое IApnCalculator.obj

Код: Выделить всё

//------------------------------------------------------------------------------
//                                                      (с) корпорация Галактика
// Галактика 7.12 - Заработная плата
// Описание obj-интерфейса расчета среднесписочной численности
//------------------------------------------------------------------------------

#ifndef _IAPNCALCULATOR_OBJ_INCLUDED_
#define _IAPNCALCULATOR_OBJ_INCLUDED_

#ifdef ComponentVersion
  #component "Z_WT"
#end

#doc
  Объектный интерфейс калькулятора среднесписочной численности
#end
objinterface IAveragePayrollNumberCalculator;
  #doc
    Возвращает среднюю продолжительность рабочего дня OnDay.
  #end
  function GetWorkingDayAverageTime(OnDay: byte): double;

  #doc
    Возвращает среднесписочную для лицевого счета с nrec = PersonalAccountRef
    за период с PeriodBeginning по PeriodEnding.
  #end
  function GetNumber(PersonalAccountRef: comp; PeriodBeginning, PeriodEnding: date): double;
end;

#end
Содержимое ApnCalculator.vih

Код: Выделить всё

//------------------------------------------------------------------------------
//                                                      (с) корпорация Галактика
// Галактика 5.8 - Заработная плата
// Декларация vip-интерфейса расчета среднесписочной численности
//------------------------------------------------------------------------------

#ifndef _APNCALCULATOR_VIH_INCLUDED_
#define _APNCALCULATOR_VIH_INCLUDED_

#include IApnCalculator.obj

#ifdef ComponentVersion
  #component "Z_WT"
#end

vipinterface AveragePayrollNumberCalculator implements IAveragePayrollNumberCalculator
#ifdef ATL51
  licensed(free)
#end
;
#end
Если не ошибаюсь, перед вызовом метода GetNumber нужно было загрузить табель работника с помощью функции LoadWorkingTable (перед использованием табельных функций нужно вызвать InitWorkingTable, по окончании работы с ними - DoneWorkingTable) . Период для выборки должен попадать в границы календарного месяца.
Понятно, что калькулятор рассчитывает ССЧ для одного отдельно взятого лицевого счета. Чтобы получить ССЧ по некоторому подразделению, придется обойти все его лицевые счета и подсуммировать их ССЧ.

Добавлено: 09 ноя 2007, 12:42
Алексей
Screw
спасибо, это работает :cool:
Печалит только одно, что временной период должен быть в пределах календарного месяца... т.к. загрузка табеля делается за определенный месяц.

Просто ССЧ зачастую требуется с начала года на определённую дату.

Может быть можно загрузить сразу несколько табелей за вес год, например в цикле от 1 до 12 и потом расчитать ССЧ уже за нужный период?