Ваши комментарии
Добрый день.
Такой справки в программе нет.
Добрый день
/* Пеpвый паpаметp - набор символов суммирования */
/* Втоpой паpаметp - столбец таблицы входимоси */
/* Третий параметр - вид Н-У */
/* Четвертый параметр - выражение */
/* Если вид отмечен в столбце таблицы входимости одним из указанных */
/* символов, то возвращается значение выражению
Другими словами это "выборка суммы по столбцу ТВХ по указанным символам"
Какие даты приема- увольнения?
Если дата приема 2022г- в отчет за 2021 сотрудник не попадет при настройке 0
Сформулируйте четко задачу: как вы хотите чтобы заполнялся отчет?
Желательно приложить сохраненку с "проблемным" ЛС..
Пример таблицы для расчета отпуска.
Расчет происходит при разноске таблицы.
В таблице должны быть заполнены поля:
- ТН в КЗ
- Дата начала отпуска
- Дата окончания отпуска
Для запуска расчета отпуска используется такой скрипт
UserCalcOneOtpusk(Beg, End) { var BegD=KDateFromStr(Beg); var EndD=KDateFromStr(End); //даты отпуска заданы неверно if( !BegD.IsValid() || !EndD.IsValid() || BegD.GT(EndD)) return "-1"; int monthSr= BegD.GetAbs()-1;// месяц для расчета среднего var lsform=CreateObject("LS_Form"); //для WIN создали окно где будет происходить корректировка сумм if (!VarHasValue(lsform)) { if (ESC==param_b2(2)) // запрос параметров расчета (автоматически, с корректировкой...), работает для режима в func[0] return to_string(ESC); } int TypeOtp = OTPUSK_OSN; /* else if (T=="173-176") // учебный отпуск TypeOtp = OTPUSK_UCH; else TypeOtp = OTPUSK_DOP; // все остальные считаем как Доп */ var Otp = CreateObject("KCalcSredn"); //установит func[0]=2 - глобальный режим "расчет отпуска", восстановит при разрушении if (ESC==Otp.InitOtp2(BegD,EndD,TypeOtp,monthSr,0)) return to_string(ESC); string rez=to_string(Otp.Calculate(0,2))+"^"; //количество дней между датами //rez+=to_string(EndD.Diff(BegD)+1)+"^"; //количество дней отпуска (определяем по табелю) rez+=to_string(CalcTabelSimCount(BegD,EndD,"О"))+"^"; //средний rez+=to_string(Otp.SumSredn()); return rez; }
в поле "Начало расчета таблицы" нужно написать
FindTnForKCH(1,"tn_ibm");return;
CTRL+A+A в списке таблиц..
1)FindTnForKCH(1,"tn_ibm") лучше поместить в "Начало расчета таблицы"
иначе будет долго работать... ( для каждой записи в таблице будет полностью читаться весь список ЛС)
2) Не уверен что у вас правильно посчитает СДЗ..
Функции расчета не читают ЛС - это нужно делать самостоятельно через LSRead(Tn, flag)
Сервис поддержки клиентов работает на платформе UserEcho
Справочник должностей можно заполнить скриптом
DOCAMBA\DoljnScript.txt
Вам понадобится класс DoljnList ( в конце файла DoljnScript.txt есть пример скрипта...)
Могу помочь с написанием скрипта, если у вас не получится это сделать самостоятельно.