Ваши комментарии
Добрый день.
Такой справки в программе нет.
Добрый день
/* Пе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 есть пример скрипта...)
Могу помочь с написанием скрипта, если у вас не получится это сделать самостоятельно.