UserMonitoringGetDolgnName(prop,month,btakeFRMR) /* если есть должность ФРМР - берем ее если есть должность ОКПДТР - берем ее иначе берем то название должности что используется в организации. */ { if(prop.GetCombine()==-1) return "Должность внутреннего совместительства не определена"; var doljnElem=GetDoljnFromKCH(KDateFromInt_LastDay(month).GetStr(),prop.GetCombine()); if(doljnElem.IsEmpty()) return "Должность не определена"; //если есть должность ФРМР - берем ее if(btakeFRMR && doljnElem.GetFrmrCode()!=0) return RTrimS(doljnElem.GetFrmrName()); //если есть должность ОКПДТР - берем ее if(__useOkpdtrDolgnName && doljnElem.GetOKPDTRCode()!=0) return GetOKPDTRDoljnName(doljnElem.GetOKPDTRCode()); //берем должность из "специального" поля К.Ч. ( char Buf[256]; GetKchValue("pseudoKCH",Buf,511,KDateFromInt_LastDay(month)); if(RTrimS(Buf)!="") return to_string(Buf); //берем должность из К.Ч. return RTrimS(doljnElem.GetName()); } GetProfName(Prof) { char s[256]; GetValueClassif("T_GUIDE\\prof.tab",Prof,s,255,"Value","Kod"); return s; } Message ( &Arg, &pcT, W, A) ////////////////////////////////////////////////////////////////// // Сообщение(парам1,парам2) // парам1 - текст сообщения // парам2 - заголовок окна ////////////////////////////////////////////////////////////////// { var FuncParam = CreateObject("ParamFuncRW"); FuncParam.IInitial(static_cast_to_string(Arg),",",10); int CountParam=FuncParam.Count(); if ( CountParam ) { AmbaMessageBox(FuncParam.Get(0),FuncParam.Get(1),1); } return pcT; } ToLeft( &Arg, &pcT, W, A) ////////////////////////////////////////////////////////////////// // Выравнивание числа по левому краю ////////////////////////////////////////////////////////////////// { double Sum = atof(GetVarValue(Arg)); char StrTmp[W+256]; sprintf(StrTmp,"%-*.*f",W,A,Sum); Text_Text(pcT,StrTmp,W); return pcT; } UserCombineRefF2(&buffer,bufsize,handle,&C_Params) { // функция для вызова справочника совместительств из таблицы // у поля Совместительство в таблице настройки написать в функции предварительной обработки: // CLASSIF(S:UserCombineRefF2) // ЧИТАЕТ ЛИЦЕВОЙ СЧЕТ с табельным номером взятым из поля C_FIO char ss[bufsize+1]; CharToOem(buffer,ss); var CTabl=CreateObject("CurPrnTbl"); CTabl.Initial(C_Params.pTabl); int Tn=atoi(CTabl.TextS("C_FIO",CTabl.Get_N_Rcr())); int er=LSRead(Tn,2); if (er==1) { int rc=ShowCombineRef(ss,ss, 2, 5, 70, 15); if (rc!=ESC) { OemToChar(ss, buffer); return 1; } } return 0; }