//////////////////////////////////////////////////////////////////////////// // ╠юфєы№ фы  тёяюьюурЄхы№э√ї ЇєэъЎшщ (т юёэютэюь фы  ЄрсышЎ ш ЇюЁь яхўрЄш) // (яхЁт√щ Єръющ ьюфєы№ - funcrw.s //////////////////////////////////////////////////////////////////////////// R_BZ_Script(mes,tip,ExtCod) //Єрсышўэр  Ї-Ўш !! //ёъЁшяЄют√щ рэрыюу R_BZ(ьхё Ў, Єшя, тэх°эшщ_ъюф) //юёэютэюх юЄышўшх - юЄЁрсрЄ√трхЄ Їшы№ЄЁ фы  т√сюЁюъ(CMN_SRC_REFS) { try { var ts = CreateObject("TempCommonSrc"); ts.TempCommonSrcInitial(CMN_SRC_COUNT_LS); SetCommonProp(CMN_SRC_COUNT_LS,GetCommonProp(CMN_SRC_REFS)); double rez=0.; poiskbzm(Extern_To_InternE(atof(ExtCod)),atoi(mes),rez,atoi(tip)); return rez; } catch(object err) //юсЁрсюЄър шёъы■ўхэшщ { SayError(err); //т√тюфшь ёююс∙хэшх ю ю°шсъх return 0.; } catch(...) //юсЁрсюЄър шёъы■ўхэшщ { SayUndefinedScriptError(); return 0.; } } GetDateVP(ExtCod,m,mv) { double Cod = Extern_To_InternE(ExtCod); var Dat = CreateObject("KDate"); Dat.SetDateD(GetDateFromFuncRWScript(m)); int mabs = Dat.GetAbs(); Dat.SetDateD(GetDateFromFuncRWScript(mv)); int mvabs = Dat.GetAbs(); var LS = CreateObject("LS"); LS.GetGlobalLS(); var MatrLS = LS.MatrLS(); var Prop = CreateObject("APropBE"); var SumElem = MatrLS.CollectSumm(Cod, mabs, mvabs, CL_EXACT|CL_M|CL_MV,Prop); return SumElem.Date.GetStr(); } CalcTableAfterCreate(__AdrTable) { var Tabl = CreateObject("CurPrnTbl"); Tabl.Initial(__AdrTable); Tabl.Fill_Bottom_Text_2(); // с 17.02.2017 не надо, запись сделает сам код "приема ЛС" в таблицу // Tabl.Rewrite(); return 0; } Correct_Address_Razn(&addrOEM, sz, what, how, tn, kchfld, date, param) // addrOEM - ЁхфръЄшЁєхь√щ рфЁхё (т OEM ъюфшЁютъх) // sz - ЁрчьхЁ сєЇхЁр // what - ъръє■ ўрёЄ№ рфЁхёр їюўхЄё  яюыєўшЄ№ эр т√їюфх (ёь. 2-щ ярЁрьхЄЁ ЇєэъЎшш └─╨┼╤) // how - эрфю ыш яЁхюсЁрчютрЄ№ Ёхчєы№ЄрЄ (ёь. 3-щ ярЁрьхЄЁ ЇєэъЎшш └─╨┼╤) // tn - ╥═, ъєфр Ёрчэюёшь Ёхчєы№ЄрЄ яЁш ёюїЁрэхэшш (хёыш 0 - эх Ёрчэюёшь) // kchfld - яёхтфюэшь яюы  ╩╫, ъєфр Ёрчэюёшь // date - фрЄр, ё ъюЄюЁющ ЁрчэхёЄш // param - ЁрчэюёшЄ№ ё чряЁюёюь (1)/схч чряЁюёр (0), +2 - яЁхюсЁрчютрЄ№ рфЁхё т тхЁїэшщ ЁхушёЄЁ { int res=Correct_Address(addrOEM,sz,what,how); if (res && tn>0 && !razovnum && strlen(kchfld)>0 && ( (param&1)==0 || AmbaMessageBox("Разнести изменения адресных данных в ЛС?","Контур-Зарплата",MB_YESNO|MB_ICONQUESTION,0)==IDYES) ) { int R_C = LSRead(tn,2); //2 - тхё№ Їрщы, эю схч ёьхэ√ ърыхэфрЁ  if ( R_C==1 ) { var objDate=CreateObject("KDate"); objDate.SetDate(static_cast_to_string(date)); SetKchValue(kchfld, addrOEM, objDate); lswrite(ls,0); } } if (param&2) UpperString(addrOEM); return addrOEM; } CompareIndexWithKLADR(addrOEM) { if (Str_Cmp(static_cast_to_string(addrOEM)," "," ,.-0")==0) return " "; var kadres=CreateObject("Adres"); kadres.Initial(static_cast_to_string(addrOEM),0); int index=kadres.GetIndex(); int indexKLADR=GetIndex(addrOEM); if (index==indexKLADR) return " "; switch (indexKLADR) { case 0: return "Индекс не найден"; case 1: return "Регион не указан, или отсутствует в справочнике"; case 2: return "Район отсутствует в справочнике"; case 3: return "Город отсутствует в справочнике"; case 4: return "Населенный пункт отсутствует в справочнике"; case 5: return "Улица отсутствует в справочнике"; case 9: return "Страна отличается от России - контроль адреса не возможен"; } char buf[15]; sprintf(buf,indexKLADR); return buf; } Change_Index_Razn(addrOEM, indexStr, kchfld, date) // addrOEM - рфЁхё уфх эрфю яюьхэ Є№ шэфхъё (т OEM ъюфшЁютъх) // indexStr - шэфхъё, эр ъюЄюЁ√щ ьхэ хь // kchfld - яёхтфюэшь яюы  ╩╫, ъєфр Ёрчэюёшь // date - фрЄр, ё ъюЄюЁющ ЁрчэхёЄш { int index=atoi(static_cast_to_string(indexStr)); if (Str_Cmp(static_cast_to_string(addrOEM)," "," ,.-0")==0) return; if (!index) return addrOEM; var kadres=CreateObject("Adres"); kadres.Initial(static_cast_to_string(addrOEM),0); kadres.SetIndex(index); string param=kchfld; param+=",1,"; param+=date; return W_Face(param,kadres.GetAdres("П_АДРЕС","ПРОСТО"),255,0); } GetNameGroopUdForm425() { UnLoadScriptModule("forms\\CommonPartOfVacationForms"); LoadScriptModule("forms\\CommonPartOfVacationForms"); ZaprosNameGroupUd("425"); UnLoadScriptModule("forms\\CommonPartOfVacationForms"); } GetNameGroupUdForm(nameForm) { UnLoadScriptModule("forms\\CommonPartOfVacationForms"); LoadScriptModule("forms\\CommonPartOfVacationForms"); ZaprosNameGroupUd(nameForm); UnLoadScriptModule("forms\\CommonPartOfVacationForms"); } IsMedCategory(kat) { char s[256]; GetCommonCnf("MedCat","egisz",s,255); if (!Str_Cmp(s," "," ")) return 1; var FuncParam = CreateObject("ParamFuncRW"); FuncParam.IInitial(static_cast_to_string(s),",",CatCount()); int paramCount=FuncParam.Count(); for (int param=0; param0) { R_Face(name+", "+dateStart,s,255,0); int num=kch_num_sys(name); if (decodeID && num>=0) return GetKchValByIdFromRef(name,s,-1); return s; } else return ""; } IsLSAttestWholePeriod() { int len = 256; char ts[len], arg[len], str[len]; var m1 = CreateObject("KMonth"); var m2 = CreateObject("KMonth"); m1.SetDate(static_cast_to_string(Str_Date_0)); m2.SetDate(static_cast_to_string(Str_Date_1)); var mes_rb = CreateObject("KMonth"); var mes_uv = CreateObject("KMonth"); kch_from("data_rb",str); FreeSpaceString(str,3,""); mes_rb.SetDate(static_cast_to_string(str)); kch_from("data_uv",str); FreeSpaceString(str,3,""); mes_uv.SetDate(static_cast_to_string(str)); int ames_rb = mes_rb.GetAbs(); int ames_uv = mes_uv.GetAbs(); int mbeg = m1.GetAbs(), mend = m2.GetAbs(); int fatt = 1; //if ( !mes_uv.IsEqI(INVALID_MONTH_VALUE) ) if ( ames_uv < ames_rb ) fatt = 0; var mb = CreateObject("KMonth"); if ( !mes_rb.IsEqI(INVALID_MONTH_VALUE) ) if ( ames_rb > mbeg ) mbeg = ames_rb; if ( !mes_uv.IsEqI(INVALID_MONTH_VALUE) ) if ( ames_uv < mend ) mend = ames_uv; for ( int mes = mbeg; mes <= mend; mes++ ) { // Ўшъы яю ьхё Ўрь mb.SetMonth(mes); sprintf(ts,"%04d%02d.%02d", mb.GetYear(), mb.GetMonth(), mb.CountDay()); // яюёыхфэшщ фхэ№ ьхё Ўр arg = "attest," + ts; //sprintf(arg,"attest,%s", ts); if ( 0 == atoi(R_Face(arg,str,14,0)) ) fatt = 0; } return fatt; } var GlobalInfoForBLFromLS=GetNothing(); YearPeriods896(FirstCall) { GlobalInfoForBLFromLS=GetNothing(); GlobalInfoForBLFromLS=CreateObject("KOtherEnterpriseReferenceBL"); var Periods = CreateObject("KDatePeriods"); Periods.Clear(); var kcp = CreateObject("KPeriodsIterations"); kcp.ClearAll(); string sd0=Str_Date_0, sd1=Str_Date_1; if ( FirstCall && AskPeriod(0x144,"Укажите период лет для сверки")==ESC ) BreakTableReceive(); var Month = CreateObject("KMonth"); Month.SetDate(SysStrDateOneScript); int Year1 = Month.GetYear(); Month.SetDate(SysStrDateTwoScript); int Year2 = Month.GetYear(); for ( int Year=Year1; Year<=Year2; ++Year ) { string strYear = static_cast_to_string(Year); string D1 = "01.01."+strYear; string D2 = "31.12."+strYear; kcp.AddPeriod(strYear,D1,D2); Periods.Update(D1,D2); } GlobalInfoForBLFromLS.WorkPeriods()=Periods; GlobalInfoForBLFromLS.CollectFromLS("01.01."+to_string(Year1),"31.12."+to_string(Year2)); Str_Date_0=sd0, Str_Date_1=sd1; } GetSumm896LS(Year) { return IsNothing(GlobalInfoForBLFromLS)?0.:GlobalInfoForBLFromLS.GetYearInfo(atoi(to_string(Year))).Summa; } GetRv896LS(Year) { return IsNothing(GlobalInfoForBLFromLS)?0.:GlobalInfoForBLFromLS.GetYearInfo(atoi(to_string(Year))).ExcludeDays; } GetSumm896(Year) { return GetSummRv896(Year,0); } GetRv896(Year) { return GetSummRv896(Year,2); } GetSummRv896(Year,FlagRv) { char Buf[256]; GetCommonCnf("LST_NU_DRO","блист",Buf,255); var ArrayNU; int cntNU=ListNUToSafeArray(Buf,' ',ArrayNU); var Month = CreateObject("KMonth"); Month.SetMonthYear(1,static_cast_to_int(Year)); int absm1=Month.GetAbs(); Month.SetMonthYear(12,static_cast_to_int(Year)); int absm2=Month.GetAbs(); double Sum=0.; int Flag = 32+64+FlagRv; for ( int i=0; i1) { dat.SetDateD(GetDateFromFuncRWScript(Param.Get(1))); me=mb=dat.GetAbs()-mtek; } if (Param.Count()>2) { dat.SetDateD(GetDateFromFuncRWScript(Param.Get(2))); me=dat.GetAbs()-mtek; } //4 параметр - символ налога char SimNal='А'; if (Param.Count()>3) { char s[256]; s=Param.Get(3); SimNal=s[0]; } //5 параметр -дата, на которую получаем значения настроек налога dat.SetDateII(1,mb+mtek);//Дата, на которую получаем значения настроек налога if (Param.Count()>4) dat.SetDate(Param.Get(4)); char Arg[256],Str[256]; sprintf(Arg,"4,1,%d,%d,*,*,%c,DateTaxCnf=%s",mb,me,SimNal,dat.GetStr()); R_Tax(Arg,Str,14,2); if (What=="База") return atof(RTSx(4,14,2)) +atof(RTSx(80,14,2)); if (What=="БазаСверхПредельной") return atof(RTSx(160,14,2)) +atof(RTSx(161,14,2)); if (What=="БазаОграниченнаяПредельной") return atof(RTSx(4,14,2)) +atof(RTSx(80,14,2)) -atof(RTSx(160,14,2)) -atof(RTSx(161,14,2)); if (What=="НеоблагаемыеВыплаты") return atof(res2("2200",14,2)) +atof(res2("2100",14,2)) +atof(RTSx(71,14,2)) -atof(RTSx(80,14,2)); if (What=="ВсегоНачислено") return atof(RTSx(4,14,2)) +atof(res2("2200",14,2)) +atof(res2("2100",14,2)) +atof(RTSx(71,14,2)); return 0.0; } SendKvitokToEmail() { try { int sendEmail=GetCommonCnfInt("sendEmail","квиток"); //если настрока не нулевая if (sendEmail) { int obr_kv=atoi(GetVarValue("ОБРАБОТАНО_КВИТКОВ")); int vib_kv=atoi(GetVarValue("ВСЕГО_КВИТКОВ")); //если в настройке 1 - при обработке 1го квитка выдаем запрос if (atoi(obr_kv)==0) { bool askAboutSend=GetCommonCnfInt("sendEmail","квиток") & 0x01; ReLoadScriptModule("Check\\checksToEmail"); if ( !askAboutSend || askAboutSend && AmbaMessageBox("Отправить квитки по почте?","",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2, 0)==IDYES ) { kvitokToEmail=1; InitOffsets(vib_kv); } } //отправляем квитки if(kvitokToEmail) { CountOffsetsForKvitokToEmail++; //кол-во смещений(квитков) var CFile=CreateObject("CurPrnFile"); OffsetsForKvitokToEmail[CountOffsetsForKvitokToEmail]=CFile.GetCountByte(); //запоминаем конечную позицию квитка char tmp[256];kch_from("e_mail",tmp);FreeSpaceString(tmp,3,""); EmailsForKvitokToEmail [CountOffsetsForKvitokToEmail]=tmp;//запоминаем почтовый адрес //фио kch_from("f",tmp); FreeSpaceString(tmp,3,""); string FIO=tmp+" "; kch_from("i",tmp); FreeSpaceString(tmp,3,""); FIO+=tmp+" "; kch_from("o",tmp); FreeSpaceString(tmp,3,""); FIO+=tmp; kch_from("tn",tmp);FreeSpaceString(tmp,3,""); TnFioForKvitokToEmail [CountOffsetsForKvitokToEmail]=to_string(tmp)+";"+FIO;//запоминаем ТН и ФИО CheckMonthForKvitokToEmail[CountOffsetsForKvitokToEmail]=atoi(GetVarValue("МЕСЯЦ_КВИТКА")); //если обработали все ЛС, if (atoi(obr_kv)+1==atoi(vib_kv)) Send_Checks(); //отправляем квитки по почте } if (atoi(obr_kv)+1==atoi(vib_kv)) UnloadScriptModule("Check\\checksToEmail");//выгружаем модуль } } catch(...) { SayUndefinedScriptError(); UnloadScriptModule("Check\\checksToEmail");//выгружаем модуль return; } } var checkManager; PrintNetChecks(param) { return PriorityCall("UserPrintNetChecks","SysPrintNetChecks",param); } SysPrintNetChecks(param) { int checksProcessed=atoi(param.GetValue("ChecksProcessed")); int checksCount=atoi(param.GetValue("ChecksCount")); var modules=GetArray("check\\comcheck","check\\comprint"); try { if (checksProcessed==0) { var CFile=CreateObject("CurPrnFile"); // объект класса для работы с текущим файлом печати CFile.SetFlagBrowse(0); // запрещаем просмотр CFile.SetFlag_Print(0); // текстовая печать не нужна ReLoadSMs(modules); checkManager=NetDialogs().GetCheckManager(); checkManager.Init(param); } month_kv=atoi(param.GetValue("CheckMonth")); int month=month_kv; //в нэт код глобальные переменные не передаются :( checkManager.PrintCheck(month); //путь до файла с квитком Excel var filePath=checkManager.GetCheckFilePath(); //Конвертировать Excel->Html if (IsCheckAsHtml()) { var htmlFilePath=ConvertExcelToHtml(filePath); if(!StringIsEmpty(htmlFilePath)) filePath=htmlFilePath; } //отправляем квиток if( param.IsExist("ExcelPrintMode") && atoi(param.GetValue("ExcelPrintMode"))==2 && param.IsExist("CheckSaveOptions") && atoi(param.GetValue("CheckSaveOptions")) & 0x01 || atoi(param.GetValue("CheckSaveOptions")) & 0x02) SendNetCheck(filePath); if (checksProcessed+1>=atoi(checksCount)) { UnLoadSMs(modules); checkManager.EndPrint(); } } catch(...) { SayUndefinedScriptError(); UnLoadSMs(modules); } } IsCheckAsHtml() { return GetCommonCnfInt("prExcel","квиток") == 2; } ConvertExcelToHtml(excelFilePath) { try { //открываем xls tPrepereOfficeForWork(); // определяем работать на Excel или на Calc (определяем какой из офисов (MS Office или OpenOffice) установлен и какой предпочтительнее) tOpenXlsObjects(excelFilePath,(""));//открываем сформированный квиток tGetWshByIndex(1); // получаем ссылку на лист (worksheet) tWshSelect(); string htmlFilePath=ChangeFileExt(excelFilePath,"htm"); if(!StringIsEmpty(htmlFilePath)) { //сохраняем Excel в HTM _XlsObj.ActiveWorkbook.PublishObjects.Add(1,htmlFilePath,_XlsObj.ActiveSheet.name); _XlsObj.ActiveWorkbook.PublishObjects(1).Publish(true); _XlsObj.ActiveWorkbook.PublishObjects(1).AutoRepublish=false; //закрываем Excel tEndXlsWork(0); //возвращаем имя htm файла return htmlFilePath; } } catch(...) { tEndXlsWork(0); return ""; } } ChangeFileExt(filePath,newExt) { var fileInfo = CreateObject("FileInfo"); fileInfo.Init(to_string(filePath)); var currentExt=fileInfo.Extension(); if(strlen(currentExt)) return fileInfo.Directory()+fileInfo.Name()+"."+newExt; return filePath; } SendNetCheck(filePath) { //в настройках указано не отправлять квитки if( GetCommonCnfInt("sendEmail","квиток")==0 ) return; //после печати первого квитка выдаем запрос на отправку квитков if( 0==atoi(GetVarValue("ОБРАБОТАНО_КВИТКОВ")) ) { ReLoadScriptModule("Check\\checksToEmail"); bool askAboutSend=GetCommonCnfInt("sendEmail","квиток") & 0x01; if ( !askAboutSend || askAboutSend && AmbaMessageBox("Отправить квитки по почте?","",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2, 0)==IDYES ) { kvitokToEmail=1; InitOffsets(0); } } //отказались от отправки if( !kvitokToEmail) return; string from="";//адрес отправителя возьмем из панельки string email= kch_from_safe("e_mail"); var kd=KDateFromInt(atoi(GetVarValue("МЕСЯЦ_КВИТКА"))); string subject ="Квиток за " + kd.NameMonth(); //Тема сообщения bool sendStatus=false; if( IsCheckAsHtml() ) { var htmlBody=ReadBodyFromHtml(filePath); sendStatus=NetDialogs().SendMailHtml(from,email,OemToAnsi(subject),htmlBody); } else sendStatus=NetDialogs().SendMailExcel(from,email,OemToAnsi(subject),OemToAnsi(subject),filePath); var htmlBody=ReadBodyFromHtml(filePath); var infoForLog=MakeLogInfo(to_string(kch_from_safe("tn")),to_string(GetFioFromKch()),email,sendStatus); AddLogFile(fileNameForLog,infoForLog); if ( atoi(GetVarValue("ОБРАБОТАНО_КВИТКОВ"))+1==atoi(GetVarValue("ВСЕГО_КВИТКОВ")) ) { AskAndShowLogChecks(); UnloadScriptModule("Check\\checksToEmail");//выгружаем модуль } } ReadBodyFromHtml(filePath) { unsigned long lpNumberOfBytesRead=0; int hf; char tmp[999999]; // открываем файл для чтения if ((hf=CreateFile(filePath,-2147483648,1,0,3,128,0))!=-1) { double FileSize=SetFilePointer(hf,0,0,2); SetFilePointer(hf,0,0,0); ReadFile(hf,tmp,FileSize,lpNumberOfBytesRead,0); } CloseHandle(hf); return RTrimS(tmp); } CheckSumForTaxExist(strDatB,strDatE,&Arr) { return PriorityCall("UsrCheckSumForTaxExist","SysCheckSumForTaxExist",strDatB,strDatE,Arr); } SysCheckSumForTaxExist(strDatB,strDatE,&Arr) { char Arg[256],Str[256]; var DatB = CreateObject("KDate"); var DatE = CreateObject("KDate"); DatB.SetDateD(GetDateFromFuncRWScript(strDatB)); DatE.SetDateD(GetDateFromFuncRWScript(strDatE)); sprintf(Arg,"7,1,%d,%d,*,*,%d,DateTaxCnf=%s",DatB.GetRel(),DatE.GetRel(),Arr[0],DatB.GetStr()); R_Tax(Arg,Str,14,2); double Sum=atof(RTSx(4,14,2)); // atof(RTSx(160,14,2))+atof(RTSx(161,14,2)); // превышение // необлагаемые string str1=Str_Date_0; string str2=Str_Date_1; Str_Date_0=strDatB;//DatB.GetStr(); Str_Date_1=strDatE;//DatE.GetStr(); Sum+=atof(res2("2200",14,2))+atof(res2("2100",14,2))+atof(RTSx(71,14,2)); Str_Date_0=str1; Str_Date_1=str2; return Sum; } GetListPeriodsFromTabel(d1,d2,strSim) //возвращает список вида "дата начала"-"дата окончания"-"количество дней";"дата начала"-"дата окончания"-"количество дней"; и т.д. { string rez=""; //т.к. нас интересует только табель и указанные символы - заменим значение настроек MINUS_DNI и MinusRV //предварительно сохраним текущие значения string oldMinusDni=GetCommonCnfStr("MINUS_DNI","отпуск"); string oldMinusRv=GetCommonCnfStr("MinusRV","отпуск"); try { SetCommonCnfInMem("MINUS_DNI",to_string(strSim),"отпуск",'C',strlen(strSim),0); SetCommonCnfInMem("MinusRV","1","отпуск",'C',1,0); int Holidays=0, MinusH=0, All=0; var ExclPeriods=CalcMinusDni(d1.GetStr(),d2.GetStr(),"отпуск",d2.GetStr(),Holidays,MinusH,1,0,All); int cntPer = ExclPeriods.Count(); //цикл по периодам for ( ExclPeriods.SetBegin(); !ExclPeriods.End(); ExclPeriods.Next()) { string DBeg = (cntPer>0)?ExclPeriods.GetCurBeg().GetStr():"-"; string DEnd = (cntPer>0)?ExclPeriods.GetCurEnd().GetStr():"-"; int cntDays = (cntPer>0)?(ExclPeriods.GetCurEnd().Diff(ExclPeriods.GetCurBeg())+1):0; // Пишем период char tmp[256]; sprintf(tmp,"%s-%s-%s;",DBeg,DEnd,to_string(cntDays)); rez+=tmp; } } catch(...) { ; } //восстанавливаем значения SetCommonCnfInMem("MINUS_DNI",oldMinusDni,"отпуск",'C',strlen(oldMinusDni),0); SetCommonCnfInMem("MinusRV",oldMinusRv,"отпуск",'C',strlen(oldMinusRv),0); return rez; } AddCountToTableName(__AdrTable,__AdrMainTable,__MainTableRcr,text) { try { if ( __AdrMainTable ) { var Tabl = CreateObject("CurPrnTbl"); Tabl.Initial(__AdrTable); int count=Tabl.Count_Rcr(); var TablMain=CreateObject("CurPrnTbl"); TablMain.Initial(__AdrMainTable); if ( __MainTableRcr>=0 && __MainTableRcr=0 && __MainTableRcr если у текущего ЛС номер проекта!=1 - возвращаем пустую строку //if(zpProjectNumber!=1 && __BankTemplateNumber==137) // return ""; //Для зарплатных проектов надо вернуть первый элемент return GetElementFromString(0,str,"^"); } int flagShowWarn_CardNumber=0; //показывать сообщение? GetAndCheckNotNull_CardNumber(kchField) { var value=kch_from_safe(kchField); if(strlen(value)<1 && !flagShowWarn_CardNumber) { char message[256]; sprintf(message,"У сотрудника \"%s\" не указан номер пластиковой карты!",GetFioFromKch()); char caption[256]; sprintf(caption,"Внимание! Псевдоним поля \"%s\"",kchField); MsgBoxCheck(OemToAnsi(message),OemToAnsi(caption),MB_OK|MB_ICONERROR,OemToAnsi("Больше не показывать это сообщение"),flagShowWarn_CardNumber); } //Для зарплатных проектов надо вернуть первый элемент return GetElementFromString(0,value,"^"); } GetFioFromKch() { char tmp[256],fio[256]; kch_from("f",tmp); FreeSpaceString(tmp,3,""); fio=tmp; kch_from("i",tmp); FreeSpaceString(tmp,3,""); fio+=" "+tmp; kch_from("o",tmp); FreeSpaceString(tmp,3,""); fio+=" "+tmp; return fio; } GetMestoRogd(version) { switch (atoi(version)) { default: // город,район,область,страна { char tmp[256],str[256]; kch_from("gorod_r",tmp) ; FreeSpaceString(tmp,3,""); str=tmp; kch_from("rajon_r",tmp) ; FreeSpaceString(tmp,3,""); if ( tmp!="" ) str += ", "+tmp; kch_from("oblast_r",tmp); FreeSpaceString(tmp,3,""); if ( tmp!="" ) str += ", "+tmp; kch_from("strana_r",tmp); FreeSpaceString(tmp,3,""); if ( tmp!="" ) str += ", "+tmp; return to_string(str); } } } //путь для передачи из списка таблиц GetDirTransf(AdrCListTabl,RcrInList) { //определим номер таблицы в списке шаблонов var ListTabl = CreateObject("CurPrnTbl"); ListTabl.Initial(AdrCListTabl); int fld = ListTabl.Find_Name_Fld("KindForm"); if( fld==-1 ) return ""; int tableNum=atoi(ListTabl.Text(fld,RcrInList));//номер шаблона return GetValueFromShablonList(tableNum,"DbfPath"); } GetValueFromShablonList(tableNum,FieldName) { //определим путь до Db_Main.Sum (с учетом "сетевого варианта") char zplPath[256]; //путь до zpl if (!IsLocalZPL()&& IsCommonResource(NameCommonDir())) GetCommonZPL(zplPath,255); else GetCurrentDirectory(255,zplPath); FreeSpaceString(zplPath,3,""); string dbMainPath=zplPath+"\\"+NameCommonDir()+"\\Db_Main.Sum"; //получим значение из колонки "Путь и имя файла для передачи информации из таблиц" var ShablonList = CreateObject("CurPrnTbl"); ShablonList.InitialNameFile(dbMainPath); int fldShablonNum = ShablonList.Find_Name_Fld("TableNum"); int fldValue=ShablonList.Find_Name_Fld(to_string(FieldName)); if( fldShablonNum==-1 || fldValue==-1 ) return ""; for(int i=0;i0 ? 4 : 0; sprintf(Str_Date_0,"%.10s",dateBeg); sprintf(Str_Date_1,"%.10s",dateEnd); if (AskPeriod(512+256+2+period,comment)==0) return ESC; dateBeg=Str_Date_0; dateEnd=Str_Date_1; strcpy(Str_Date_0,saveStrDate0); strcpy(Str_Date_1,saveStrDate1); } GetElementFromString(idx,str,delim) { var List = CreateObject("ParamFuncRW"); List.IInitial1(to_string(str),delim,255); if(List.Count()>idx) return List.Get(idx); return ""; } //version==0 //"старая" транслитерация Амбы //version==1 - ГОСТ Р 52535.1-2006 //version==2 - ГОСТ 7.79-2000 (22.06.2000) SysTransliterationInit(version) { var mapKey = CreateObject("MapString"); mapKey.Clear(); switch (atoi(version)) { case 1: { mapKey.Add("А","A"); mapKey.Add("Б","B"); mapKey.Add("В","V"); mapKey.Add("Г","G"); mapKey.Add("Д","D"); mapKey.Add("Е","E"); mapKey.Add("Ё","E"); mapKey.Add("Ж","ZH"); mapKey.Add("З","Z"); mapKey.Add("И","I"); mapKey.Add("Й","I"); mapKey.Add("К","K"); mapKey.Add("Л","L"); mapKey.Add("М","M"); mapKey.Add("Н","N"); mapKey.Add("О","O"); mapKey.Add("П","P"); mapKey.Add("Р","R"); mapKey.Add("С","S"); mapKey.Add("Т","T"); mapKey.Add("У","U"); mapKey.Add("Ф","F"); mapKey.Add("Х","KH"); mapKey.Add("Ц","TS"); mapKey.Add("Ч","CH"); mapKey.Add("Ш","SH"); mapKey.Add("Щ","SHCH"); mapKey.Add("Ъ","IE"); mapKey.Add("Ы","Y"); mapKey.Add("Ь",""); mapKey.Add("Э","E"); mapKey.Add("Ю","IU"); mapKey.Add("Я","IA"); mapKey.Add("а","A"); mapKey.Add("б","B"); mapKey.Add("в","V"); mapKey.Add("г","G"); mapKey.Add("д","D"); mapKey.Add("е","E"); mapKey.Add("ё","E"); mapKey.Add("ж","ZH"); mapKey.Add("з","Z"); mapKey.Add("и","I"); mapKey.Add("й","I"); mapKey.Add("к","K"); mapKey.Add("л","L"); mapKey.Add("м","M"); mapKey.Add("н","N"); mapKey.Add("о","O"); mapKey.Add("п","P"); mapKey.Add("р","R"); mapKey.Add("с","S"); mapKey.Add("т","T"); mapKey.Add("у","U"); mapKey.Add("ф","F"); mapKey.Add("х","KH"); mapKey.Add("ц","TS"); mapKey.Add("ч","CH"); mapKey.Add("ш","SH"); mapKey.Add("щ","SHCH"); mapKey.Add("ъ","IE"); mapKey.Add("ы","Y"); mapKey.Add("ь",""); mapKey.Add("э","E"); mapKey.Add("ю","IU"); mapKey.Add("я","IA"); break; } case 2: { mapKey.Add("А","A"); mapKey.Add("Б","B"); mapKey.Add("В","V"); mapKey.Add("Г","G"); mapKey.Add("Д","D"); mapKey.Add("Е","E"); mapKey.Add("Ё","YO"); mapKey.Add("Ж","ZH"); mapKey.Add("З","Z"); mapKey.Add("И","I"); mapKey.Add("Й","J"); mapKey.Add("К","K"); mapKey.Add("Л","L"); mapKey.Add("М","M"); mapKey.Add("Н","N"); mapKey.Add("О","O"); mapKey.Add("П","P"); mapKey.Add("Р","R"); mapKey.Add("С","S"); mapKey.Add("Т","T"); mapKey.Add("У","U"); mapKey.Add("Ф","F"); mapKey.Add("Х","X"); mapKey.Add("Ц","CZ"); mapKey.Add("Ч","CH"); mapKey.Add("Ш","SH"); mapKey.Add("Щ","SHH"); mapKey.Add("Ъ","''"); mapKey.Add("Ы","Y'"); mapKey.Add("Ь","'"); mapKey.Add("Э","E'"); mapKey.Add("Ю","YU"); mapKey.Add("Я","YA"); mapKey.Add("а","A"); mapKey.Add("б","B"); mapKey.Add("в","V"); mapKey.Add("г","G"); mapKey.Add("д","D"); mapKey.Add("е","E"); mapKey.Add("ё","YO"); mapKey.Add("ж","ZH"); mapKey.Add("з","Z"); mapKey.Add("и","I"); mapKey.Add("й","J"); mapKey.Add("к","K"); mapKey.Add("л","L"); mapKey.Add("м","M"); mapKey.Add("н","N"); mapKey.Add("о","O"); mapKey.Add("п","P"); mapKey.Add("р","R"); mapKey.Add("с","S"); mapKey.Add("т","T"); mapKey.Add("у","U"); mapKey.Add("ф","F"); mapKey.Add("х","X"); mapKey.Add("ц","CZ"); mapKey.Add("ч","CH"); mapKey.Add("ш","SH"); mapKey.Add("щ","SHH"); mapKey.Add("ъ","''"); mapKey.Add("ы","Y'"); mapKey.Add("ь","'"); mapKey.Add("э","E'"); mapKey.Add("ю","YU"); mapKey.Add("я","YA"); break; } default: { mapKey.Add("А","A"); mapKey.Add("Б","B"); mapKey.Add("В","V"); mapKey.Add("Г","G"); mapKey.Add("Д","D"); mapKey.Add("Е","E"); mapKey.Add("Ё","YO"); mapKey.Add("Ж","G"); mapKey.Add("З","Z"); mapKey.Add("И","I"); mapKey.Add("Й","J"); mapKey.Add("К","K"); mapKey.Add("Л","L"); mapKey.Add("М","M"); mapKey.Add("Н","N"); mapKey.Add("О","O"); mapKey.Add("П","P"); mapKey.Add("Р","R"); mapKey.Add("С","S"); mapKey.Add("Т","T"); mapKey.Add("У","U"); mapKey.Add("Ф","F"); mapKey.Add("Х","H"); mapKey.Add("Ц","TZ"); mapKey.Add("Ч","CH"); mapKey.Add("Ш","SH"); mapKey.Add("Щ","SCH"); mapKey.Add("Ъ",""); mapKey.Add("Ы","Y"); mapKey.Add("Ь",""); mapKey.Add("Э","E"); mapKey.Add("Ю","YU"); mapKey.Add("Я","YA"); mapKey.Add("а","A"); mapKey.Add("б","B"); mapKey.Add("в","V"); mapKey.Add("г","G"); mapKey.Add("д","D"); mapKey.Add("е","E"); mapKey.Add("ё","YO"); mapKey.Add("ж","G"); mapKey.Add("з","Z"); mapKey.Add("и","I"); mapKey.Add("й","J"); mapKey.Add("к","K"); mapKey.Add("л","L"); mapKey.Add("м","M"); mapKey.Add("н","N"); mapKey.Add("о","O"); mapKey.Add("п","P"); mapKey.Add("р","R"); mapKey.Add("с","S"); mapKey.Add("т","T"); mapKey.Add("у","U"); mapKey.Add("ф","F"); mapKey.Add("х","H"); mapKey.Add("ц","TZ"); mapKey.Add("ч","CH"); mapKey.Add("ш","SH"); mapKey.Add("щ","SCH"); mapKey.Add("ъ",""); mapKey.Add("ы","Y"); mapKey.Add("ь",""); mapKey.Add("э","E"); mapKey.Add("ю","YU"); mapKey.Add("я","YA"); break; } } return mapKey; } MakeFioLat(family,name,versionTransliteration,maxLen) { var mapKey = CreateObject("MapString");mapKey=SysTransliterationInit(versionTransliteration); char fam[256],famLat[256]; fam=family;famLat=""; for ( int i=0; imaxLen ) { imLat[1]='.'; imLat[2]=0; fioLat= to_string(imLat) + " " + to_string(famLat); } return fioLat; } //ЇєэъЎш  тючтЁр∙рхЄ 1 хёыш тёх чэрўхэш  яюыхщ эєыхт√х. ┬ яЁюЄштэюь ёыєўрх тючтЁр∙рхЄё  0 //ярЁрьхЄЁ√: // listFileds- ёяшёюъ яюфёЄЁюъ фы  яюшёър яюыхщ, яю ъюЄюЁ√ь юяЁхфхы хь чэрўхэшх (хёыш шь  яюы  ёюфхЁцшЄ яюфёЄЁюъє - юяЁхфхы хь чэрўхэшх ) AllFieldValuesIsNull(listFileds) { double eps=0.00001; //ЄюўэюёЄ№ ёЁртэхэш  var subStrings = CreateObject("ParamFuncRW"); subStrings.IInitial(to_string(listFileds),";",255); var Tabl=CreateObject("CurPrnTbl"); int rcr=Tabl.Get_N_Rcr(); //Єхъє∙р  ёЄЁюър //Ўшъы яю ёЄюысЎрь ЄрсышЎ√ for(int fld=0;fldeps) return 0; } } } return 1; } GetKassVedNumber() { var ved = GetTekKassVed(); //Єхъє∙р  "тхфюьюёЄ№" var vedList = CreateObject("CurPrnTbl"); vedList.Initial(ved.GetAdrSpVed()); //ёяшёюъ ёЇюЁьшЁютрээ√ї тхфюьюёЄхщ int idxFld=vedList.Find_Name_Fld("PRINT_NUMB"); int rcr=vedList.Get_N_Rcr(); // єърч√трхЄ эр т√сЁрээє■ тхфюьюёЄ№. ┼ёыш т√сшЁрыш эхёъюы№ъю, Єю т vedList юэш сєфєЄ юЄьхўхэ√. string result=vedList.Text(idxFld,rcr); return result; } unsigned gWhichBLPilotFSS=0; string gPilotD1=""; string gPilotD2=""; AddInfoPilotToTableName(__AdrTable,__AdrMainTable,__MainTableRcr) { try { if ( __AdrMainTable ) { /* var Tabl = CreateObject("CurPrnTbl"); Tabl.Initial(__AdrTable); int FldSumm = Tabl.Find_Name_Fld(nameFld); if(FldSumm==-1) return; int Acc=Tabl.Accurasy_Fld(FldSumm); Tabl.Fill_Bottom_Text_1(); double Sum = atof(Tabl.Get_Bottom_Text(FldSumm)); */ var TablMain=CreateObject("CurPrnTbl"); TablMain.Initial(__AdrMainTable); if ( __MainTableRcr>=0 && __MainTableRcr=0 && __MainTableRcr= 0 && kch_comb(numKCH)) TypeOKTMO_NDFL = 5; } */ return TypeOKTMO_NDFL; } MakePaidIncomeCollection_6NDFL(MonthB,MonthE) { UnloadScriptModule("forms\\DefineEnterpriseID"); LoadScriptModule("forms\\DefineEnterpriseID"); var D1 = CreateObject("KDate"); D1.SetDateII(1,MonthB); var D2 = CreateObject("KDate"); D2.SetDateII(1,MonthE); D2.SetDateII(D2.CountDay(),MonthE); var kcp = CreateObject("KPeriodsIterations"); double Tax70=0.; var PaidsExt = CreateObject("PaidIncomeCollection"); PaidsExt.Initial(false); gTypeOKTMO_NDFL = DefineTypeOKTMO_NDFL(); AddInfoPart2_6NDFL(0,kcp,6,Tax70,D1,D2,PaidsExt); UnloadScriptModule("forms\\DefineEnterpriseID"); return PaidsExt; } FindSumElem(intCode,m,mv) { var LS = CreateObject("LS"); LS.GetGlobalLS(); var MatrLS = LS.MatrLS(); var be=MatrLS.GetBaseElemByCode(intCode); if (VarHasValue(be)) { var sumVect=be.SumVect; int index=sumVect.FindRow(m,mv); if (index>=0) return sumVect.GetSum(index); } // return GetEmpty(); ш схч ¤Єющ ёЄЁюъш тхЁэхЄ Empty } // Ёрчэюёър т√яырЄ√ эр ёєььє // шёяюы№чютрЄ№ т ЄрсышЎрї Ёрчэюёъш return AddPayToSumExt(Extern_Cod, Month, MonthN, Sum, IdVed); // ёєььр яю тшфє ё Єръшь ьхё Ўхь яЁшэрфыхцэюёЄш ш эрўшёыхэш  єцх фюыцэр яЁшёєЄёЄтютрЄ№ т ыё! AddPayToSumExt(ExtCode, Month, MonthN, Sum, IdVed) { if (!AddPayToSum( Extern_To_InternE(atof(ExtCode)), absmec(GetDateFromFuncRWScript(Month)), absmec(GetDateFromFuncRWScript(MonthN)), Sum, IdVed)) BreakLineDelivery(); // шыш RaiseError("╬°шсър, эх эрщфхэр ёєььр фы  Ёрчэюёъш т√яырЄ√"); } AddPayToSum(intCode, m, mv, sum, IdVed) { var sumElem = FindSumElem(intCode,m,mv); if (!VarHasValue(sumElem)) return 0; struct PaidSumS paid; paid.IdVed=IdVed; paid.Sum=sum; sumElem.AddPay(paid); korrls=2; return 1; } DelPayFromSum(intCode, m, mv, IdVed) { bool changed = false; var sumElem = FindSumElem(intCode,m,mv); if (!VarHasValue(sumElem)) return 0; for(int i = 0; i=48 && //0 c<=57; //9 } GetOnlyDigits(str) { int len = strlen(str); char buf[len+1]; buf=str; char strDigits[len+1]; int idxDigits=0, idxStr=0; char curSimv=0; do { curSimv=buf[idxStr++]; if ( CharIsDigit(curSimv) ) strDigits[idxDigits++]=curSimv; } while (curSimv!=0); strDigits[idxDigits++]=0; return to_string(strDigits); } MapFromStr(str,Delimiter) { var Map=CreateObject("MapString"); Map.Clear(); var List = CreateObject("ParamFuncRW"); List.IInitial(to_string(str),Delimiter,9999); for(int i=0;i= 2017 && GetCommonCnfInt("ex2017","6ndfl") == 0 && reorgCode != "-1" ) bReorg = TrimN(reorgCode) != ""; else bReorg = Dat.GetYear() == DateEnd.GetYear() && quarter == quarterReorg; if (quarter == 1) return bReorg?"51":"21"; if (quarter == 2) return bReorg?"52":"31"; if (quarter == 3) return bReorg?"53":"33"; if (quarter == 4) return bReorg?"90":"34"; } GetCodPeriodRSV2017(strDate, strDateEnd) { return GetCodPeriod6NDFL(strDate, strDateEnd, "-1"); } // єўхЄ яюёыхфэхую яЁшётюхээюую эюьхЁр ёяЁртъш ё Ёрчсштъющ яю юЁурэшчрЎш ь var NumbersSpravByOrgID = CreateObject("MapLong"); InitNumberSparvByOrgID(AdrTbl,psOrgID, psNum) { NumbersSpravByOrgID.Clear(); if ( AdrTbl!=0 ) { var T = CreateObject("CurPrnTbl"); T.Initial(AdrTbl); int FldOrg = T.Find_Name_Fld(psOrgID); int FldNum = T.Find_Name_Fld(psNum); if ( FldNum!=-1 ) for ( int Rcr=0; RcrCurNum ) NumbersSpravByOrgID.Add(OrgID,Num); } } } GetNumberSpravByOrgID(OrgID) { int Number = 0; // шьхээю Єръ! ╤эрўрыр шэшЎшрышчшЁєхь, яюЄюь яЁшётрштрхь чэрўхэшх шч ь¤яр. // хёыш т ь¤ях ъы■ўр эх сєфхЄ, юэ чэрўхэшх яхЁхьхээющ эх ьхэ хЄ! Number = NumbersSpravByOrgID.GetValue(OrgID); ++Number; NumbersSpravByOrgID.Add(OrgID,Number); return Number; } GetCount2NDFLInPack(Year) { int Count = GetCommonCnfInt("CountSprav","2ndfl"); // ╤ 2018 уюфр эхЄ юуЁрэшўхэш  яю ъюышўхёЄтє ёяЁртюъ 2-═─╘╦ Їрщых. // ╥ръ ъръ т√ч√тр■∙шщ ъюф эх єьххЄ ЁрсюЄрЄ№ ё эєыхь, ъръ ючэрўр■∙шь "схч юуЁрэшўхэш ", // Єю тючтЁр∙рхь яЁюёЄю чртхфюью сюы№°юх ўшёыю. if ( Count<1 ) return Year<2018?3000:9999999; return Count; } int __BankTemplateNumber=0; string __CardNumberKchField="";//псевдоним поля к.ч. в котором хранится "номер карты" string __MobilePhoneKchField="";//псевдоним поля к.ч. в котором хранится "мобильный телефон" string __DestinationBankBikKchField="";//псевдоним поля к.ч. в котором хранится "БИК Банка получателя" string __DestinationBankInnKchField="";//псевдоним поля к.ч. в котором хранится "ИНН Банка получателя" string __DestinationBankCardNumberKchField="";//псевдоним поля к.ч. в котором хранится "Транзитный/сводный счет" DeliveryBankCardNumber(number,data,flags) //flags & 1 - <пустое> значение не разносить; { var value=number; FreeSpaceString (value,3,""); if ((flags & 1) && !strlen(value) ) return; var deliveryDate=KDateFromStr(data); if(!deliveryDate.IsValid()) //если дата не указана или указана неверно - разносим на первое число тек. месяца deliveryDate=KDateFromInt_WithDay(1,mtek); SetKchValue(__CardNumberKchField,value,deliveryDate); } StringIsEmpty(str) { return Str_Cmp(str,""," ")==0; } TcsDestinationBankBik() { var kchField=GetCommonCnfStr("DestBik","Tcs"); if(Str_Cmp(kchField," "," ")==0||kch_num_sys(kchField)==-1) return ""; return kch_from_safe(kchField); } TcsDestinationBankAccount() { var kchField=GetCommonCnfStr("DestCard","Tcs"); if(Str_Cmp(kchField," "," ")==0||kch_num_sys(kchField)==-1) return ""; return kch_from_safe(kchField); } GetBankGlobalDialogDataCurrentTable(reAskParamsIfEmpty) { string module="bank\\common"; bool moduleWasLoaded=false; if ( !ScriptCheckName("GetGlobalDataCurrentTable") ) { UnloadScriptModule(module); LoadScriptModule(module); moduleWasLoaded=true; } var rez=GetGlobalDataCurrentTable(reAskParamsIfEmpty); if(moduleWasLoaded) UnloadScriptModule(module); return rez; } GetBankDialogDataCurrentTable(reAskParamsIfEmpty) { string module="bank\\common"; bool moduleWasLoaded=false; if ( !ScriptCheckName("GetDialogDataCurrentTable") ) { UnloadScriptModule(module); LoadScriptModule(module); moduleWasLoaded=true; } var rez=GetDialogDataCurrentTable(reAskParamsIfEmpty); if(moduleWasLoaded) UnloadScriptModule(module); return rez; } BankCommon_ShowDialog() { string module="bank\\common"; bool moduleWasLoaded=false; if ( !ScriptCheckName("Bank_ShowDialog") ) { UnloadScriptModule(module); LoadScriptModule(module); moduleWasLoaded=true; } var rez=Bank_ShowDialog(); if(moduleWasLoaded) UnloadScriptModule(module); return rez; } ReLoadScriptModule(module) { UnloadScriptModule(module); LoadScriptModule(module); } ReLoadSMs(moduleArray) { for(int i=0;i0 && atof(summ)>0.001; } CombineRef(&buffer,bufsize,handle,&C_Params) { char ss[bufsize+1]; CharToOem(buffer,ss); int rc=ShowCombineRef(ss,ss, 2, 5, 70, 15); if (rc!=ESC) { sprintf(ss,"%04d",ExtCombineToInt(ss)); OemToChar(ss, buffer); return 1; } return 0; } TryEvaluate(script,&result) { try { var xm = CreateObject("XMachine"); result=xm.Evaluate(to_string(script)); return true; } catch(...) { ; } return false; } GetCommonCnfS(psVar,psTable) { if ( IsCommonCnfExist(psVar,psTable) ) { char Buf[256]; GetCommonCnf(psVar,psTable,Buf,255); FreeSpaceString(Buf,3,""); char tmp[256]; if(TryEvaluate(Buf,tmp) && tmp!="void") return to_string(tmp); return to_string(Buf); } return ""; } DefineKEmploy(combine,d) { return GetKoefEmployment(d,combine,0x01); /* var tmpComb=CreateObject("TmpCurCombine");tmpComb.Init(combine); //єёЄрэртыштрхь фюыцэюёЄ№ Єхъє∙хщ // ╩ю¤ЇЇшЎшхэЄ чрэ ЄюёЄш шч ╩╫ double k_employ=1.; char strTemp[11]; GetKchValue("k_employ",strTemp,10,d); if (Str_Cmp(strTemp," "," ")!=0) k_employ=atof(strTemp); return k_employ; */ } ExcludeLongOtp(&DatBeg,&DatEnd,&Periods,&PeriodsExcl) { PeriodsExcl.Clear(); Periods.SetBegin(); int am=-1000; // ╧Ёшчэръ хёЄ№ ыш фюя.тчэюё√ т ЁрёёьрЄЁштрхьюь ърыхэфрЁэюь ьхё Ўх am. int ExistDopPF = -1; // -1 - эх юяЁхфхы ыш, 0 - эхЄ, 1 - хёЄ№. char BufFunc[256],buf[512]; // ╧Ёюїюфшьё  яю тёхь яхЁшюфрь ─╦╬╥╧╙╤╩, ъюЄюЁ√ьш їюЄшь фюяюыэшЄ№ ёЄрц. for ( ; !Periods.End(); Periods.Next() ) { var D1 = Periods.GetCurBeg(); var D2 = Periods.GetCurEnd(); if ( am>D2.GetAbs() ) continue; // ╩рцф√щ фюсрты хь√щ яхЁшюф Ёрчсштрхь яю уЁрэшЎрь ърыхэфрЁэ√ї ьхё Ўхт // ўЄюс√ яЁютхЁшЄ№ хёЄ№ ыш т ¤Єюь ърыхэфрЁэюь ьхё Ўх фюя.тчэюё√ ш хёЄ№ ыш // т ¤Єюь ьхё Ўх "ы№уюЄэ√х" юёэютрэш . if ( am'9' ) continue; Buf[idxtarget++]=c; } Buf[idxtarget]=0; return to_string(Buf); } GetLsMainProp() { return PriorityCall("UserGetLsMainProp","SysGetLsMainProp"); } SysGetLsMainProp() { var prop = CreateObject("APropBE"); //хёыш шёЄюўэшъ т ъ.ў. єърчрэ - тючтЁр∙рхь хую int srcCode=GetGeneralSrcLS(); char tmp[256]; kch_from("itog_src",tmp); if (Str_Cmp(tmp,""," ")!=0) //эх яєёЄю srcCode=tmp[0]; //шёЄюўэшъ єърчрээ√щ фы  уыртэющ фюыцэюёЄш var CL=CreateObject("CombineList"); //srcCode=CL.GetSrc(GetGeneralCombineLS()); int subjectCode=GetGeneralSubjectLS(); int podr=CL.GetPodr(GetGeneralCombineLS()); //схЁхь яюфЁрчфхыхэшх уыртэющ фюыцэюёЄш. if(podr<1)//схЁхь яюфЁрчфхыхэшх шч ёяшёър ╦╤ podr=kch_from_int("podr"); prop.Init(srcCode,subjectCode,podr,GetGeneralCombineLS()); return prop; } GetKchStringByExtCombine(ps, dateStr, extCombine) { int idCombine = ExtCombineToInt(extCombine); var cur_combine; if (idCombine!=CLL_TOTAL_COMBINE) { cur_combine=CreateObject("TmpCurCombine"); cur_combine.Init(idCombine); } char value[256]; GetKchValue(ps, value, 255, KDateFromStr(dateStr)); return to_string(value); } AfterCorrPutRefValueByKey(strKey, strRef, keyFldRef, valueFldRef, valueNameFld, AdrTable) { char Buf[256]; GetValueClassif(strRef,strKey,Buf,255,valueFldRef,keyFldRef); TrimN(Buf); var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int fldValue = CTabl.Find_Name_Fld(to_string(valueNameFld)); if (fldValue == -1 ) { MsgBox("═х эрщфхэю яюых фы  чэрўхэш  шч ёяЁртюўэшър: " + valueNameFld,"┬эшьрэшх", MB_OK|MB_ICONWARNING); return; } CTabl.SText(fldValue, CTabl.Get_N_Rcr(), to_string(Buf)); } BeforeCorrReferenceByValue(value, strRef, keyFldRef, valueFldRef, keyNameFld, AdrTable) { var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int fldCode = CTabl.Find_Name_Fld(to_string(keyNameFld)); if (fldCode == -1 ) { MsgBox("═х эрщфхэю яюых фы  ъюфр шч ёяЁртюўэшър: " + keyNameFld,"┬эшьрэшх", MB_OK|MB_ICONWARNING); return value; } // сєфхь шёърЄ№ эх эрчтрэшх, р ъюф шч ёЄюысЎр fldCode int width = CTabl.Width_fld(fldCode); int rcr = CTabl.Get_N_Rcr(); char strKey[width + 1]; strcpy(strKey, RTrimS(CTabl.Text(fldCode, rcr))); if (SimpleRef(strRef,0,0,60,10,strKey,width,strKey,keyFldRef) == ESC) return value; CTabl.SText(fldCode, rcr, to_string(strKey)); char Buf[256]; GetValueClassif(strRef,strKey,Buf,255,valueFldRef,keyFldRef); TrimN(Buf); return to_string(Buf); } AfterCorrPutPodrName(podrCodeStr, podrNameFld, AdrTable) { int podrCode = atoi(podrCodeStr); string name = RTrimS(OtdNameByCod(podrCode)); var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); CTabl.STextS(podrNameFld, CTabl.Get_N_Rcr(), name, 0 /*не silent*/); } PodrReferenceBeforeCorr(podrName, podrNameFld, podrCodeFld, AdrTable) { var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int fldCode = CTabl.Find_Name_Fld(podrCodeFld); int fldName = CTabl.Find_Name_Fld(podrNameFld); if (fldCode == -1 || fldName == -1) { AmbaMessageBox("Не найдено одно из полей: " + podrCodeFld + ", " + podrNameFld); return podrName; } // будем искать не название, а код из столбца fldCode int width = CTabl.Width_fld(fldCode); int rcr = CTabl.Get_N_Rcr(); char podrCode[width + 1]; strcpy(podrCode, RTrimS(CTabl.Text(fldCode, rcr))); if (SimpleRef("DEPARTMENT",0,0,0,0,podrCode,width,podrCode,"C_PODR") == ESC) return podrName; CTabl.SText(fldCode, rcr, to_string(podrCode)); return OtdNameByCod(atoi(podrCode)); } AfterCorrPutDoljnNameAndId(doljnCodeStr, doljnNameFld, doljnIdFld, AdrTable) { var doljnElem = GetDoljnFromSpravByExtcode(RTrimS(doljnCodeStr)); if (!IsObject(doljnElem)) return; var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int rcr = CTabl.Get_N_Rcr(); CTabl.STextS(doljnNameFld, rcr, doljnElem.GetName(), 0 /*не silent*/); CTabl.STextS(doljnIdFld, rcr, to_string(doljnElem.GetID()), 0 /*не silent*/); } AfterCorrDoljnPutPodrNameAndCode(doljnCodeStr, podrNameFld, podrCodeFld, AdrTable) { var doljnElem = GetDoljnFromSpravByExtcode(RTrimS(doljnCodeStr)); if (!IsObject(doljnElem)) return; var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int rcr = CTabl.Get_N_Rcr(); int podr = doljnElem.GetPodr(); CTabl.STextS(podrCodeFld, rcr, to_string(podr), 0 /*не silent*/); if (podr > 0) { string podrName = OtdNameByCod(podr); CTabl.STextS(podrNameFld, rcr, podrName, 0 /*не silent*/); } else CTabl.STextS(podrNameFld, rcr, "", 0 /*не silent*/); } CodeNUReference(strCodeNU, bExt) { int Len = strlen(strCodeNU); int MaxLen = Len<1024?1024:(Len+1); char Buf[MaxLen]; Buf = strCodeNU; try // фы  Єюую ўЄюс√ ьюцэю с√ыю юЄфрЄ№ ЄрсышЎє шёяюы№чє■∙є■ CodeNUReference схч юсэютыхэш  яюёЄртъш { if (!bExt) ListNUIntToExt(Buf, MaxLen-1, ' '); if ( StrNURef(Buf, MaxLen-1, ' ', false)==ESC ) return strCodeNU; if (!bExt) ListNUExtToInt(Buf, MaxLen-1, ' '); } catch(...) { return strCodeNU; } Text_Text(strCodeNU, Buf, strlen(strCodeNU)); return strCodeNU; } DoljnReferenceNameBeforeCorr(doljnName, doljnNameFld, doljnCodeFld, doljnIdFld, AdrTable) { var CTabl = CreateObject("CurPrnTbl"); CTabl.Initial(AdrTable); int fldCode = CTabl.Find_Name_Fld(doljnCodeFld); int fldName = CTabl.Find_Name_Fld(doljnNameFld); int fldId = CTabl.Find_Name_Fld(doljnIdFld); if (fldCode == -1 || fldName == -1 || fldId == -1) { AmbaMessageBox("Не найдено одно из полей: " + doljnNameFld + ", " + doljnCodeFld + ", " + doljnIdFld); return doljnName; } // будем искать не название, не Id, а код из столбца fldCode int width = CTabl.Width_fld(fldCode); int rcr = CTabl.Get_N_Rcr(); char doljnCode[width + 1]; strcpy(doljnCode,RTrimS(CTabl.Text(fldCode, rcr))); if (SimpleRef("DOLGNOST",0,0,0,0,doljnCode,width,doljnCode,"ShortName") == ESC) return doljnName; var doljnElem = GetDoljnFromSpravByExtcode(RTrimS(doljnCode)); if (!IsObject(doljnElem)) return doljnName; CTabl.SText(fldCode, rcr, to_string(doljnCode)); CTabl.SText(fldId, rcr, to_string(doljnElem.GetID())); return to_string(doljnElem.GetName()); } MakeKchStringValueBySOUT(spisok,sout) // сформировать код для кадровой части по номеру списка и коду спец.оценки // spisok = 1 или 2, sout - пусто, В3.1, В3.2, В3.3, В3.4, О4 { int numSpis = atoi(to_string(spisok)); if ( numSpis!=1 && numSpis!=2 ) return " "; char Buf[512]; Buf = RTrimS(sout); if ( Buf[0]=='B' || Buf[0]=='В' || Buf[0]=='О' || Buf[0]=='O' ) Buf[0]=' '; int numSout = to_int(atof(Buf)*10); if ( numSout ) return to_string(numSpis*100+numSout); return to_string(numSpis); } SysGetSummNuList(month,nuList,Flag) { var arr; int cntNu=ListNUToSafeArray(nuList,',',arr); if(cntNu<1) return 0.; return SysGetSummNuArr(month,arr,Flag,true); } SysGetSummNuArr(month,&arr,Flag,flagExt) { var Prop = GetCommonProp(CMN_SRC_REFS); var ts = CreateObject("TempCommonSrc"); ts.TempCommonSrcInitial(CMN_SRC_COUNT_LS); int cntNu = GetUBound(arr)+1; double rez=0.; for(int i=0;i0.0001 && (DopFlag & 0x02)) ) break; } return rez; } FiltrRowkod(&rowkod,&cntrow, absmes,Flag) //╘-Ўш  юЄЇшы№ЄЁют√трхЄ шч ьрёёштр rowkod эхфхщёЄтє■∙шх т absmes ш эєыхт√х ёЄЁюъш { bool filtrRow=Flag & 0x01; //Їшы№ЄЁ эр эхфхщёЄтє■∙шх т absmes ёЄЁюъш bool filtrZeroRow=Flag & 0x02; //Їшы№ЄЁ эр эєыхт√х ёЄЁюъш int newCntRow=0; int NewRowkod[cntrow]; for (int row=0; rowcюїЁрэ хь ёЄЁюъє rowkod[row] т NewRowkod NewRowkod[newCntRow++]=rowkod[row]; } for(int i=0;i