Здравствуйте.
Подозреваю, что многим интересен расчет СДЗ по алгоритму отпускных. Потратила много времени на этот вопрос. Ранее на форуме как-то попалась ф-ция SetSumRaiseAll расчета СДЗ, но попытка ее использовать не принесла результат, т. к. на ней происходил вылет из Галактики по Runtime error 216. Почти ч-з год вернулась к этой ф-ции, и с помощью ОТП получилось воспользоваться ею.
До вызова функции SetSumRaiseAll вызвать инициализацию таблиц для работы функции и инициализацию табеля:
If PrVidInit(100,1) //инициализация таблиц в спец.интерфейсах
{
if InitWorkingTable //открытие табеля
{
… <тут вся обработка>
}
}
DoneWorkingTable; //закрытие табеля
DoneVx(100); //завершение работы таблиц в спец.интерфейсах
Запуск ф-ции в отчете на vip:
Код: Выделить всё
Sdz_:= SETSUMRAISEALL(
0, // тн сотрудника
podr_, // подразделение из л/сч
Clsch_, // Nrec л/сч
first_date, // дата проведения расчета
wRejim, // режим работы
wSisopl, // система оплаты
106, // системный КВО (его алг. исп. для расчета), для отпуска в РБ алг.29
0, // процент доплаты
0, // сумма доплаты
0, // разряд
dTarif, // тариф
0, // код тарифа
Tpers_, // ссылка на сотрудника
0, // ссылка на должность
0, // ссылка на таблицу, к которой будут привязаны данные для формирования справки
Year( Dpriem_ ) * 12 + Month( Dpriem_ ) - 1, // отдаем синтетический индекс периода для даты приема
Day( Dpriem_ ), // отдаем календарный день даты приема
1 // признак использования алгоритма расчета. 1 - признак вызова алгоритма расчета из ОО, 0- кадры вызывают для своих целей, 199 и 299 - в справках (там свои особенности)
);
Ф-ция на Pascal в G_Zarpl.dll.
Огорчу пользователей РБ: указанная ф-ция сейчас работает с учетом законодательства РФ. При ее тестировании для РБ как минимум 2 проблемы были решены по ходу, и сейчас стоят еще 4 ПИР. Это только проблемы, которые я нашла. Возможно могут быть еще.