TabelMonitor(Tn,Combine,absm,&NewCalm,&OldCalm) { int idx=0; while(idx < strlen(NewCalm)) { if( OldCalm[idx]=='Р' && NewCalm[idx]=='Б' ) { MsgBox(OemToAnsi("В табеле произошло наложение периода БЛ на рабочие дни"), "", MB_ICONWARNING); break; } idx++; } return 0; } 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; }