// Сведения о численности и оплате труда работников сферы социального обслуживания // по категориям персонала // Приказ Росстата от 30.10.2012 № 574 // Форма № 3П-соц var CFile, CTabl, CMsg; int len = 512, W = 250, // не менее символов A = 250, // не более символов bTime = false; int tmi = 0; char str[len], arg[len], ts[len]; var XMLDoc; char Year[9]; char KodOP[5]; char DatTek[15]; char file[len]; double eps = 0.001; double tmp = 0; // Параметры int Format = 0; int FPRINT = 1; int CHVS = 1; int CHSP = 0; int TipChisl = 1; char fullXlsName[len]; int deltaPosSch = 0; int deltaPosVch = 0; int fMonthForm = 0; // 0 - квартальная, 1 - за январь, 2 - остальные "месячные" Final(AdrTable) { var tabl=CreateObject("CurPrnTbl"); tabl.Initial(AdrTable); SetParametrTable(tabl,"monthBegin",to_string(Str_Date_0)); SetParametrTable(tabl,"monthEnd",to_string(Str_Date_1)); int monthCount=KDateFromStr(to_string(Str_Date_1)).GetAbs()-KDateFromStr(to_string(Str_Date_0)).GetAbs()+1; SetParametrTable(tabl,"monthCount",to_string(monthCount)); } ReadParam(¶m,np) // чтение параметров { if ( np > 0 ) Format = atoi(param[0]); if ( np > 1 ) FPRINT = atoi(param[1]); if ( np > 2 ) CHVS = atoi(param[2]); // корректировка парметров (если необходимо) // CHVS = atoi(p3get("p3soc","chisvs")); if ( CHVS ) CHVS = 1; CHSP = atoi(p3get("p3soc","chisspis")); if ( CHSP ) CHSP = 1; TipChisl = atoi(p3get("p3soc","TipChisl")); if ( TipChisl ) TipChisl = 1; if ( -1 == fld[idxTSCH01] ) TipChisl = 1; return 0; } p3soc(¶m,np) { ReadParam(param,np); CFile = CreateObject("CurPrnFile"); CFile.SetFlagBrowse(0); CFile.SetFlag_Print(0); // не печатать table(); } table() { UnLoadScriptModule("forms\\p3common"); LoadScriptModule("forms\\p3common"); CTabl = CreateObject("CurPrnTbl"); if ( fTrans ) { // Передача в файл по Alt+F9 CTabl.Initial(TabAdr); } int cr = CTabl.Count_Rcr(); int CR_INS = CTabl.GetCountInsertRcr(), REC_INS = 0; FillFld(); Year = TextOrEmpty(CTabl,fld[idxYear],0); KodOP = Trim(TextOrEmpty(CTabl,fld[idxKodOP],0)); if ( strlen(KodOP) == 1 ) KodOP = "0" + KodOP; int abeg = atoi(TextOrEmpty(CTabl,fld[idxABEG],0)); int aend = atoi(TextOrEmpty(CTabl,fld[idxAEND],0)); int dper = aend - abeg + 1; var km = CreateObject("KMonth"); km.SetMonth(abeg); int kalendBeg = km.GetMonth(); km.SetMonth(aend); int kalendEnd = km.GetMonth(); tmi = atoi(TextOrEmpty(CTabl,fld[idxKodOP],0)); if ( atoi(Year) >= 2020 ) fMonthForm = 0; else if ( tmi == 3 || tmi == 6 || tmi == 9 || tmi == 12 ) fMonthForm = 0; else fMonthForm = tmi==1?1:2; CMsg = CreateObject("ProgressBar"); CMsg.Initial(0,100,1); CMsg.SetShowTime(static_cast_to_int(bTime)); double sch = 0.0; double sch_s = 0.0; double sum00 = 0.0; double TSC[rowsCount+1]; double TVC[rowsCount+1]; for ( int i = 0; i <=rowsCount; i++ ) { T01[i] = 0.0; T02[i] = 0.0; T03[i] = 0.0; T04[i] = 0.0; T05[i] = 0.0; T06[i] = 0.0; T07[i] = 0.0; T08[i] = 0.0; T09[i] = 0.0; T10[i] = 0.0; T11[i] = 0.0; TSC[i] = 0.0; TVC[i] = 0.0; } int vsovm = 0; // признак внешнего совместителя fullXlsName = Trim(TextOrEmpty(CTabl,fld[idxFNAME1],0)) + Trim(TextOrEmpty(CTabl,fld[idxFNAME2],0)); int acc = access(to_string(fullXlsName),0); if ( acc ) FPRINT = 1; if ( fTrans ) { // Передача в файл по Alt+F9 if ( acc ) { AmbaMessageBox("Перед передачей в файл необходимо сформировать отчет по F5","Внимание!",0,0); return 0; } CHVS = atoi(p3get("p3soc","chisvs")); if ( CHVS ) CHVS = 1; CHSP = atoi(p3get("p3soc","chisspis")); if ( CHSP ) CHSP = 1; // return 0; } int templateVersion=GetCommonCnfInt("TemplVer","zpSocObl"); if ( Format == 0 ) { try { string templateFileName = templateVersion==0 ? "zp_soc_obl.xltx" : "zp_soc_obl_04.2024.xltx"; string fullFileName = GetPathXLT(NameCommonDir(), templateFileName); tPrepereOfficeForWork(); // определяем работать на Excel или на Calc (определяем какой из офисов (MS Office или OpenOffice) установлен и какой предпочтительнее) if ( FPRINT == 0 ) { fullFileName = to_string(fullXlsName); tOpenXlsObjects(fullFileName,"3П-соц областная- Сведения о численности и оплате труда работников сферы социального обслуживания"); // создание основных объектов tEndXlsWork(1); // делаем форму видимой return 0; } else { // удаляем ранее созданный xls файл if ( !access(to_string(fullXlsName),0) ) { DeleteFile(to_string(fullXlsName)); } tCreateXlsObjects(fullFileName,"3П-соц областная- Сведения о численности и оплате труда работников сферы социального обслуживания"); // создание основных объектов } // цикл по записям таблицы for ( int zap = 0; zap < cr; zap++ ) { if ( CMsg.Msg_Proc(" Подождите немного. Идет подготовка к печати. ",100.*zap/cr)==ESC ) return 0; REC_INS = CTabl.Flag_Action_1(zap); // если какие-то записи выделены, печатаем только их if (CR_INS) if (!REC_INS) continue; for ( int i = 0; i < cm; i++ ) { KODS[i] = 0; KR[i] = 0; BUDvznosi[i] = 0.0; OMCvznosi[i] = 0.0; HOZvznosi[i] = 0.0; BUD[i] = 0.0; OMC[i] = 0.0; HOZ[i] = 0.0; DOG[i] = 0.0; SovBUD[i] = 0.0; SovOMC[i] = 0.0; SovHOZ[i] = 0.0; SalaryB[i] = 0.0; SalaryH[i] = 0.0; } int ids = idxKODS01; int idk = idxKR01; int ida = idxBUD01; int idb = idxOMC01; int idc = idxHOZ01; int idd = idxDOG01; int ide = idxSovBUD01; int idf = idxSovOMC01; int idg = idxSovHOZ01; for ( int i = 1; i < cm; i++ ) { KODS[i] = atoi(CTabl.Text(fld[ids],zap)); KR[i] = atoi(CTabl.Text(fld[idk],zap)); BUDvznosi[i] = atof(GetElementFromString(i-1,CTabl.Text(fld[idxBUDvznosi],zap),"^")); OMCvznosi[i] = atof(GetElementFromString(i-1,CTabl.Text(fld[idxOMCvznosi],zap),"^")); HOZvznosi[i] = atof(GetElementFromString(i-1,CTabl.Text(fld[idxHOZvznosi],zap),"^")); SalaryB[i] = atof(GetElementFromString(i-1,CTabl.Text(fld[idxSalaryB],zap),"^")); SalaryH[i] = atof(GetElementFromString(i-1,CTabl.Text(fld[idxSalaryH],zap),"^")); BUD[i] = atof(CTabl.Text(fld[ida],zap)); OMC[i] = atof(CTabl.Text(fld[idb],zap)); HOZ[i] = atof(CTabl.Text(fld[idc],zap)); DOG[i] = atof(CTabl.Text(fld[idd],zap)); SovBUD[i] = atof(CTabl.Text(fld[ide],zap)); SovOMC[i] = atof(CTabl.Text(fld[idf],zap)); SovHOZ[i] = atof(CTabl.Text(fld[idg],zap)); ids++; idk++; ida++; idb++; idc++; idd++; ide++; idf++; idg++; } int ks = -1; // индекс строки ids = idxKODS12; //цикл по месяцам for ( int i = 1; i < cm; i++ ) { tmi = atoi(CTabl.Text(fld[ids],zap)); if ( tmi > 0 ) { ks = GetRowIndex(tmi); //нормер строки в Excel минус 9 ( например для строки 10 иднекс будет 1=10-9) break; } ids--; } if ( ks > rowsCount ) continue; // ошибочный номер строки tmi = atoi(CTabl.Text(fld[idxFCkod_rab],zap)); // код работы для среднесписочной численности if ( tmi == 4 || tmi == 9 ) vsovm = 1; else vsovm = 0; sum00 = atof(CTabl.Text(fld[idxSUM00],zap)); // Всего начислено sch = atof(CTabl.Text(fld[idxSCH],zap)); // среднесписочная численность sch_s = atof(CTabl.Text(fld[idxSCH_S],zap)); // среднесписочная численность внешних совместителей if ( TipChisl ) { if ( ks >= 0 && ks <= rowsCount ) { T01[ks] += sch; T02[ks] += sch_s; } } else { if ( ks >= 0 && ks <= rowsCount ) { TSC[ks] += sch; TVC[ks] += sch_s; if ( !deltaPosSch && sch > eps ) deltaPosSch = ks; if ( !deltaPosVch && sch_s > eps ) deltaPosVch = ks; } } int idx = idxKSS01; int idn = idxSOV01; int idtchis = idxTSCH01; int idvchis = idxVSCH01; for ( int i = 1; i < cm; i++, idx++, idn++, idtchis++, idvchis++ ) { ks = GetRowIndex(KODS[i]); if ( ks < 0 || ks > rowsCount ) continue; // Код работы (1-списочный состав; 2-внешний совместитель; 0-остальные) int kr = KR[i]; if ( kr == 0 ) continue; if ( kr == 2 ) vsovm = 1; else vsovm = 0; //внешний совместитель bool bIntSovm = (kr==1) && 1==atoi(CTabl.Text(fld[idxFBSov],zap)); //внутреннее совместительство bool isChislPoKateg = !TipChisl && (i >= kalendBeg && i <= kalendEnd); if ( isChislPoKateg ) { T01[ks] += atof(CTabl.Text(fld[idtchis],zap)) / dper; T02[ks] += atof(CTabl.Text(fld[idvchis],zap)) / dper; } if ( vsovm ) { T09[ks] += BUD[i]; T10[ks] += OMC[i]; T11[ks] += HOZ[i]; T29[ks] += BUDvznosi[i]; T30[ks] += OMCvznosi[i]; T31[ks] += HOZvznosi[i]; SalaryBUDSov[ks] += SalaryB[i]; SalaryHOZSov[ks] += SalaryH[i]; } else { T06[ks] += BUD[i]; T07[ks] += OMC[i]; T08[ks] += HOZ[i]; T26[ks] += BUDvznosi[i]; T27[ks] += OMCvznosi[i]; T28[ks] += HOZvznosi[i]; SalaryBUD[ks] += SalaryB[i]; SalaryHOZ[ks] += SalaryH[i]; T04[ks] += DOG[i]; //взносы вн. совместителей if(bIntSovm) { T24[ks] += BUDvznosi[i]; T24[ks] += OMCvznosi[i]; T24[ks] += HOZvznosi[i]; } if ( nabs(SovBUD[i]+SovOMC[i]+SovHOZ[i])>0.00001 ) { T04[ks] += SovBUD[i]; T04[ks] += SovOMC[i]; T04[ks] += SovHOZ[i]; } else { //int kss = atoi(CTabl.Text(fld[idx],zap)); //if ( kss > 0 && ks <= rowsCount ) T04[kss] += atof(CTabl.Text(fld[idn],zap)); T04[ks] += atof(CTabl.Text(fld[idn],zap)); } } } } // конец цикла по записям таблицы int MsgRub = 0; if ( atoi(p3get("p3soc","MsgRub")) ) { if ( 1 == AmbaMessageBox("Отображать суммы в рублях и копейках?","",1,1) ) MsgRub = 1; } for ( int i = 0; i <= rowsCount; i++ ) { roundd(T01[i],CHSP,T01[i]); roundd(T02[i],CHVS,T02[i]); if ( !TipChisl ) { roundd(TSC[i],CHSP,TSC[i]); roundd(TVC[i],CHVS,TVC[i]); } if ( !MsgRub ) { roundd(T03[i]/1000.0,1,T03[i]); roundd(T04[i]/1000.0,1,T04[i]); roundd(T05[i]/1000.0,1,T05[i]); roundd(T06[i]/1000.0,1,T06[i]); roundd(T07[i]/1000.0,1,T07[i]); roundd(T08[i]/1000.0,1,T08[i]); roundd(T09[i]/1000.0,1,T09[i]); roundd(T10[i]/1000.0,1,T10[i]); roundd(T11[i]/1000.0,1,T11[i]); roundd(T24[i]/1000.0,1,T24[i]); roundd(T26[i]/1000.0,1,T26[i]); roundd(T27[i]/1000.0,1,T27[i]); roundd(T28[i]/1000.0,1,T28[i]); roundd(T29[i]/1000.0,1,T29[i]); roundd(T30[i]/1000.0,1,T30[i]); roundd(T31[i]/1000.0,1,T31[i]); roundd(SalaryBUD[i]/1000.0,1,SalaryBUD[i]); roundd(SalaryHOZ[i]/1000.0,1,SalaryHOZ[i]); roundd(SalaryBUDSov[i]/1000.0,1,SalaryBUDSov[i]); roundd(SalaryHOZSov[i]/1000.0,1,SalaryHOZSov[i]); } } // корректировка if ( !TipChisl ) { KorrectChislZp(deltaPosSch,T01,TSC,rowsCount,CHSP); KorrectChislZp(deltaPosVch,T02,TVC,rowsCount,CHVS); } tGetWshByIndex(1); // получаем ссылку на лист (worksheet) PrintTableHead(templateVersion); // печать строк от 2 до 15(10-23 строки в Excel) for ( int idxRow = 0; idxRow <= rowsCount; idxRow++ ) { int excelRow=DefineExcelRow(idxRow); if(excelRow==14) //04 педагогические работники всего, из них { //добавляем 05 "преподаватели" AddRowValues(idxRow,idxRow+1); //добавляем 051 "мастера производственного обучения" AddRowValues(idxRow,idxRow+2); } if(excelRow==21) //13 прочий персонал всего, из них { //добавляем 132 "специалисты по социальной работе" AddRowValues(idxRow,idxRow+1); //добавляем 133 "работники, замещающие должности педагогических работников в учреждениях, не имеющих лицензию на образовательную деятельность" AddRowValues(idxRow,idxRow+2); } WriteOneRowToExcel(excelRow,idxRow,templateVersion); } PrintTableFooter(); GetCurrentDirectory(511,str); // рабочий каталог амбы if ( !IsLocalZPL() ) { if ( IsCommonResource(NameCommonDir()) == 2 ) { GetCommonZPL(str,511); } } char IDTime[20]; struct SYSTEMTIME st; GetLocalTime(st); R_SYS_DATA("6",DatTek,10,0); var Par = CreateObject("ParamFuncRW"); Par.IInitial(to_string(DatTek),".",3); int g = atoi(Par.Get(2)); sprintf(IDTime,"%04d%02d%02d%02d%02d%02d", g, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond); str = str + "\\"+NameCommonDir()+"\\STAT\\" + Year + "_" + KodOP + "\\"; fullpath(str,str,511); mkdirAll(str); str = str + "zp_soc_obl" + IDTime + ".xlsx"; //tProtect("",true,false); tSaveXlsObjects(to_string(str)); string FName1 = SubStr(str,0,250); string FName2 = SubStr(str,250,500); for ( int zap = 0; zap < cr; zap++ ) { CTabl.SText(fld[idxFNAME1],zap,FName1); CTabl.SText(fld[idxFNAME2],zap,FName2); CTabl.SText(fld[idxFFIRST],zap,"1"); } CTabl.Rewrite(); tGetWshByIndex(1); tWshSelect(); tFreeClipboard(); tEndXlsWork(1); // делаем форму видимой } catch(object err) { SayError(err); } catch(...) { SayUndefinedScriptError(); } } if ( Format == 1 ) { // передача в файл //AmbaMessageBox("Данный режим недоступен","",0,0); //return 0; try { if ( FileGmsInit()==ESC ) return 0; FileGmsFinal(XMLDoc); } catch(object err) { SayError(err); } catch(...) { SayUndefinedScriptError(); } } UnLoadScriptModule("forms\\p3common"); return 1; } PrintTableHead(templateVersion) { char str[256]; var monthBegin=KDateFromStr(GetParametrTable(CTabl,"monthBegin")); var monthEnd =KDateFromStr(GetParametrTable(CTabl,"monthEnd")); sprintf(str,"Таблица: форма ЗП-СОЦ за %s-%sг.", monthBegin.NameMonth(1,1),monthEnd.NameMonth()); tWriteStringToCell("A2",OemToAnsi(str));//период отчета GetEnterpriseVar("ИМЯП", str, 255); tWriteStringToCell("A3",OemToAnsi("Организация: " +str));//наименование организации tWriteStringToCell(templateVersion==0?"P6":"AC6",GetParametrTable(CTabl,"monthCount"));//количество месяцев (для расчета среднего) if(templateVersion==1) { sprintf(str,"Период: %sг.",monthEnd.NameMonth()); tWriteStringToCell("A5",OemToAnsi(str));//период отчета } } PrintTableFooter() { char str[256]; GetEnterpriseVar("РУКПП", str, 255); tWriteStringToCell("D26",OemToAnsi(str));//Руководитель учреждения GetEnterpriseVar("ГЛБУХП", str, 255); tWriteStringToCell("D29",OemToAnsi(str));//Главный бухгалтер GetEnterpriseVar("ТЕЛП", str, 255); tWriteStringToCell("F28",OemToAnsi(str));//Главный бухгалтер var date=KDateFromStr(to_string(datatek)); tWriteStringToCell("I28",OemToAnsi(date.NameMonth(1,4) + " год"));//дата составления документа } GetRowIndex(excelRow) { return excelRow-10; } DefineExcelRow(idxRow) { return idxRow+10; } FileGmsInit() { var fullFileName = to_string(fullXlsName); tPrepereOfficeForWork(); // определяем работать на Excel или на Calc (определяем какой из офисов (MS Office или OpenOffice) установлен и какой предпочтительнее) tOpenXlsObjects(fullFileName,""); // создание основных объектов string IDF = "1"; tGetWshByIndex(1); UnloadScriptModule("msxml"); LoadScriptModule("msxml"); PutCharToStr(Year,4,'\0'); string OKUD = "0606049"; string IDP = "4"; if ( fMonthForm ) { OKUD = "0606059"; IDP = "12"; } string OP = ""; if ( fMonthForm == 0 ) { if ( atoi(KodOP) <= 3 ) { OP = "1"; } else if ( atoi(KodOP) <= 6 ) { OP = "2"; } else if ( atoi(KodOP) <= 9 ) { OP = "3"; } else if ( atoi(KodOP) <= 12 ) { OP = "4"; } } else { OP = to_string(atoi(KodOP)); } string PERIOD = Year + "_" + OP; string OKPO = GetStrCell("S49"); string Org = GetStrCell("AV42"); string Adr = GetStrCell("S44"); string Kod = GetStrCell("BB49"); file = OKUD + "_" + IDF + "_" + IDP + "_" + OKPO + "_" + PERIOD; OKUD = "606049"; IDF = "00" + IDF; IDP = "004"; if ( fMonthForm ) { OKUD = "606059"; IDP = "012"; } tGetWshByIndex(2); for ( int i = 0; i < 12; i++ ) { s[1][i] = ""; s[6][i] = ""; s[11][i] = ""; s[2][i] = ""; s[7][i] = ""; s[12][i] = ""; s[3][i] = ""; s[8][i] = ""; s[13][i] = ""; s[4][i] = ""; s[9][i] = ""; s[5][i] = ""; s[10][i] = ""; } s[1][1] = GNC("AW6", 15,CHSP); s[1][2] = GNC("BI6", 15,CHVS); s[1][3] = GNC("BT6", 15,1); s[1][4] = GNC("CF6", 15,1); s[1][5] = GNC("CS6", 15,1); s[1][6] = GNC("DD6", 15,1); s[1][7] = GNC("DO6", 15,1); s[1][8] = GNC("DX6", 15,1); s[1][9] = GNC("EH6", 15,1); s[1][10] = GNC("ES6", 15,1); s[1][11] = GNC("FB6", 15,1); s[2][1] = GNC("AW9", 15,CHSP); s[2][2] = GNC("BI9", 15,CHVS); s[2][3] = GNC("BT9", 15,1); s[2][4] = GNC("CF9", 15,1); s[2][5] = GNC("CS9", 15,1); s[2][6] = GNC("DD9", 15,1); s[2][7] = GNC("DO9", 15,1); s[2][8] = GNC("DX9", 15,1); s[2][9] = GNC("EH9", 15,1); s[2][10] = GNC("ES9", 15,1); s[2][11] = GNC("FB9", 15,1); s[3][1] = GNC("AW10",15,CHSP); s[3][2] = GNC("BI10",15,CHVS); s[3][3] = GNC("BT10",15,1); s[3][4] = GNC("CF10",15,1); s[3][5] = GNC("CS10",15,1); s[3][6] = GNC("DD10",15,1); s[3][7] = GNC("DO10",15,1); s[3][8] = GNC("DX10",15,1); s[3][9] = GNC("EH10",15,1); s[3][10] = GNC("ES10",15,1); s[3][11] = GNC("FB10",15,1); s[4][1] = GNC("AW11",15,CHSP); s[4][2] = GNC("BI11",15,CHVS); s[4][3] = GNC("BT11",15,1); s[4][4] = GNC("CF11",15,1); s[4][5] = GNC("CS11",15,1); s[4][6] = GNC("DD11",15,1); s[4][7] = GNC("DO11",15,1); s[4][8] = GNC("DX11",15,1); s[4][9] = GNC("EH11",15,1); s[4][10] = GNC("ES11",15,1); s[4][11] = GNC("FB11",15,1); s[5][1] = GNC("AW12",15,CHSP); s[5][2] = GNC("BI12",15,CHVS); s[5][3] = GNC("BT12",15,1); s[5][4] = GNC("CF12",15,1); s[5][5] = GNC("CS12",15,1); s[5][6] = GNC("DD12",15,1); s[5][7] = GNC("DO12",15,1); s[5][8] = GNC("DX12",15,1); s[5][9] = GNC("EH12",15,1); s[5][10] = GNC("ES12",15,1); s[5][11] = GNC("FB12",15,1); s[6][1] = GNC("AW13",15,CHSP); s[6][2] = GNC("BI13",15,CHVS); s[6][3] = GNC("BT13",15,1); s[6][4] = GNC("CF13",15,1); s[6][5] = GNC("CS13",15,1); s[6][6] = GNC("DD13",15,1); s[6][7] = GNC("DO13",15,1); s[6][8] = GNC("DX13",15,1); s[6][9] = GNC("EH13",15,1); s[6][10] = GNC("ES13",15,1); s[6][11] = GNC("FB13",15,1); s[7][1] = GNC("AW14",15,CHSP); s[7][2] = GNC("BI14",15,CHVS); s[7][3] = GNC("BT14",15,1); s[7][4] = GNC("CF14",15,1); s[7][5] = GNC("CS14",15,1); s[7][6] = GNC("DD14",15,1); s[7][7] = GNC("DO14",15,1); s[7][8] = GNC("DX14",15,1); s[7][9] = GNC("EH14",15,1); s[7][10] = GNC("ES14",15,1); s[7][11] = GNC("FB14",15,1); s[8][1] = GNC("AW15",15,CHSP); s[8][2] = GNC("BI15",15,CHVS); s[8][3] = GNC("BT15",15,1); s[8][4] = GNC("CF15",15,1); s[8][5] = GNC("CS15",15,1); s[8][6] = GNC("DD15",15,1); s[8][7] = GNC("DO15",15,1); s[8][8] = GNC("DX15",15,1); s[8][9] = GNC("EH15",15,1); s[8][10] = GNC("ES15",15,1); s[8][11] = GNC("FB15",15,1); s[9][1] = GNC("AW16",15,CHSP); s[9][2] = GNC("BI16",15,CHVS); s[9][3] = GNC("BT16",15,1); s[9][4] = GNC("CF16",15,1); s[9][5] = GNC("CS16",15,1); s[9][6] = GNC("DD16",15,1); s[9][7] = GNC("DO16",15,1); s[9][8] = GNC("DX16",15,1); s[9][9] = GNC("EH16",15,1); s[9][10] = GNC("ES16",15,1); s[9][11] = GNC("FB16",15,1); s[10][1] = GNC("AW18",15,CHSP); s[10][2] = GNC("BI18",15,CHVS); s[10][3] = GNC("BT18",15,1); s[10][4] = GNC("CF18",15,1); s[10][5] = GNC("CS18",15,1); s[10][6] = GNC("DD18",15,1); s[10][7] = GNC("DO18",15,1); s[10][8] = GNC("DX18",15,1); s[10][9] = GNC("EH18",15,1); s[10][10] = GNC("ES18",15,1); s[10][11] = GNC("FB18",15,1); s[11][1] = GNC("AW19",15,CHSP); s[11][2] = GNC("BI19",15,CHVS); s[11][3] = GNC("BT19",15,1); s[11][4] = GNC("CF19",15,1); s[11][5] = GNC("CS19",15,1); s[11][6] = GNC("DD19",15,1); s[11][7] = GNC("DO19",15,1); s[11][8] = GNC("DX19",15,1); s[11][9] = GNC("EH19",15,1); s[11][10] = GNC("ES19",15,1); s[11][11] = GNC("FB19",15,1); s[12][1] = GNC("AW20",15,CHSP); s[12][2] = GNC("BI20",15,CHVS); s[12][3] = GNC("BT20",15,1); s[12][4] = GNC("CF20",15,1); s[12][5] = GNC("CS20",15,1); s[12][6] = GNC("DD20",15,1); s[12][7] = GNC("DO20",15,1); s[12][8] = GNC("DX20",15,1); s[12][9] = GNC("EH20",15,1); s[12][10] = GNC("ES20",15,1); s[12][11] = GNC("FB20",15,1); s[13][1] = GNC("AW21",15,CHSP); s[13][2] = GNC("BI21",15,CHVS); s[13][3] = GNC("BT21",15,1); s[13][4] = GNC("CF21",15,1); s[13][5] = GNC("CS21",15,1); s[13][6] = GNC("DD21",15,1); s[13][7] = GNC("DO21",15,1); s[13][8] = GNC("DX21",15,1); s[13][9] = GNC("EH21",15,1); s[13][10] = GNC("ES21",15,1); s[13][11] = GNC("FB21",15,1); for ( int i = 1; i <= 13; i++ ) { int x = 0; for ( int j = 1; j <= 11; j++ ) { if ( nabs(atof(s[i][j])) > eps ) x = 1; } if ( x ) s[i][0] = "1"; else s[i][0] = "0"; } char Ruk[len]; GetEnterpriseVar("РУКПП", Ruk, len-1); Trim(Ruk); string DOtv = GetStrCell("AY32"); string Otv = GetStrCell("CG32"); string Tel = GetStrCell("AY35"); string Day = (atoi(Year)>=2014) ? GetStrCell("DQ35") : GetStrCell("CI35"); string God = (atoi(Year)>=2014) ? GetStrCell("EN35") : GetStrCell("DF35"); God = "20" + God; string Mes = (atoi(Year)>=2014) ? GetStrCell("DX35") : GetStrCell("CP35"); string Eml = GetStrCell("CO35"); if ( Mes == "▀═┬└╨▀" ) Mes = "01"; else if ( Mes == "╘┼┬╨└╦▀" ) Mes = "02"; else if ( Mes == "╠└╨╥└" ) Mes = "03"; else if ( Mes == "└╧╨┼╦▀" ) Mes = "04"; else if ( Mes == "╠└▀" ) Mes = "05"; else if ( Mes == "╚▐═▀" ) Mes = "06"; else if ( Mes == "╚▐╦▀" ) Mes = "07"; else if ( Mes == "└┬├╙╤╥└" ) Mes = "08"; else if ( Mes == "╤┼═╥▀┴╨▀" )Mes = "09"; else if ( Mes == "╬╩╥▀┴╨▀" ) Mes = "10"; else if ( Mes == "═╬▀┴╨▀" ) Mes = "11"; else if ( Mes == "─┼╩└┴╨▀" ) Mes = "12"; //else Mes = "03"; string Dat = Day + "." + Mes + "." + God; XMLDoc = CreateXML(toUTF8("version=\"1.0\" encoding=\"UTF-8\"")); XMLDoc.documentElement = CreateElemXML(XMLDoc,toUTF8("report")); // Корневой элемент { SetAttrElemXML(XMLDoc.documentElement,toUTF8("code"), toUTF8(OKUD+IDF+IDP)); SetAttrElemXML(XMLDoc.documentElement,toUTF8("form"), toUTF8(to_string(atoi(IDF)))); SetAttrElemXML(XMLDoc.documentElement,toUTF8("shifr"), toUTF8("q_zp_soc")); if ( atoi(Year) >= 2022 ) { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("10-02-2022")); } else if ( atoi(Year) >= 2019 ) { if ( fMonthForm ) SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("22-12-2017")); else SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("25-02-2019")); } else if ( atoi(Year) == 2018 ) { if ( fMonthForm ) SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("22-12-2017")); else SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("03-03-2017")); } else if ( atoi(Year) == 2017 ) { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("03-03-2017")); } else if ( atoi(Year) == 2016 ) { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("03-03-2016")); } else if ( atoi(Year) == 2015 ) { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("31-03-2015")); } else if ( atoi(Year) == 2014 ) { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("26-02-2014")); } else { SetAttrElemXML(XMLDoc.documentElement,toUTF8("version"),toUTF8("04-04-2013")); } SetAttrElemXML(XMLDoc.documentElement,toUTF8("format-version"),toUTF8("1.3")); SetAttrElemXML(XMLDoc.documentElement,toUTF8("year"), toUTF8(Year)); SetAttrElemXML(XMLDoc.documentElement,toUTF8("period"),toUTF8(OP)); var XMLTitle = CreateChildElemXML(XMLDoc,XMLDoc.documentElement,toUTF8("title")); // Титул { var XMLItem2 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // Наименование организации { SetAttrElemXML(XMLItem2,toUTF8("name"), toUTF8("name")); SetAttrElemXML(XMLItem2,toUTF8("value"),toUTF8(Org)); } var XMLItem1 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // ОКПО { SetAttrElemXML(XMLItem1,toUTF8("name"), toUTF8("okpo")); SetAttrElemXML(XMLItem1,toUTF8("value"),toUTF8(OKPO)); } // var XMLItem3 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // ФИО руководителя // { // SetAttrElemXML(XMLItem3,toUTF8("name"), toUTF8("leader_fio")); // SetAttrElemXML(XMLItem3,toUTF8("value"),toUTF8(OemToAnsi(Ruk))); // } var XMLItem4 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // Должность ответственного { SetAttrElemXML(XMLItem4,toUTF8("name"), toUTF8("responsible_post")); SetAttrElemXML(XMLItem4,toUTF8("value"),toUTF8(DOtv)); } var XMLItem5 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // ФИО ответственного { SetAttrElemXML(XMLItem5,toUTF8("name"), toUTF8("responsible_fio")); SetAttrElemXML(XMLItem5,toUTF8("value"),toUTF8(Otv)); } var XMLItem6 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); // телефон { SetAttrElemXML(XMLItem6,toUTF8("name"), toUTF8("phone")); SetAttrElemXML(XMLItem6,toUTF8("value"),toUTF8(Tel)); } var XMLItem7 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); { SetAttrElemXML(XMLItem7,toUTF8("name"), toUTF8("org_adress")); SetAttrElemXML(XMLItem7,toUTF8("value"),toUTF8(Adr)); } var XMLItem8 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); { SetAttrElemXML(XMLItem8,toUTF8("name"), toUTF8("org_type")); SetAttrElemXML(XMLItem8,toUTF8("value"),toUTF8(Kod)); } var XMLItem9 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); { SetAttrElemXML(XMLItem9,toUTF8("name"), toUTF8("document_cretaion_date")); SetAttrElemXML(XMLItem9,toUTF8("value"),toUTF8(Dat)); } if ( atoi(Year) >= 2014 ) { var XMLItem10 = CreateChildElemXML(XMLDoc,XMLTitle,toUTF8("item")); { SetAttrElemXML(XMLItem10,toUTF8("name"), toUTF8("email")); SetAttrElemXML(XMLItem10,toUTF8("value"),toUTF8(Eml)); } } } // title var XMLSections = CreateChildElemXML(XMLDoc,XMLDoc.documentElement,toUTF8("sections")); { var XMLSection = CreateChildElemXML(XMLDoc,XMLSections,toUTF8("section")); { SetAttrElemXML(XMLSection,toUTF8("code"), toUTF8("1")); for ( int i = 1; i <= 13; i++ ) { if ( atoi(s[i][0]) ) { var XMLRow = CreateChildElemXML(XMLDoc,XMLSection,toUTF8("row")); { SetAttrElemXML(XMLRow,toUTF8("code"), toUTF8(to_string(i))); for ( int j = 1; j <= 11; j++ ) { if ( nabs(atof(s[i][j])) > eps ) { var XMLCol = CreateChildElemXML(XMLDoc,XMLRow,toUTF8("col")); { SetAttrElemXML(XMLCol,toUTF8("code"), toUTF8(to_string(j))); ts = s[i][j]; SetValueTextBndXML(XMLCol,toUTF8(ts),strlen(ts)); } // col } } } // row } } } } // Sections } } string s[14][12]; FillFld() //============================================================================= // Находим поля в таблице //============================================================================= { fld[idxSUM00] = CTabl.Find_Name_Fld("SUM00"); fld[idxC_FIO] = CTabl.Find_Name_Fld("C_FIO"); fld[idxFIO] = CTabl.Find_Name_Fld("FIO"); fld[idxKODSTR] = CTabl.Find_Name_Fld("KODSTR"); fld[idxSCH] = CTabl.Find_Name_Fld("SCH"); fld[idxSCH_S] = CTabl.Find_Name_Fld("SCH_S"); fld[idxABEG] = CTabl.Find_Name_Fld("ABEG"); fld[idxAEND] = CTabl.Find_Name_Fld("AEND"); fld[idxFFIRST] = CTabl.Find_Name_Fld("FFIRST"); fld[idxFNAME1] = CTabl.Find_Name_Fld("FNAME1"); fld[idxFNAME2] = CTabl.Find_Name_Fld("FNAME2"); fld[idxYear] = CTabl.Find_Name_Fld("Year"); fld[idxKodOP] = CTabl.Find_Name_Fld("KodOP"); fld[idxFCkod_rab] = CTabl.Find_Name_Fld("FCkod_rab"); fld[idxSUM01] = CTabl.Find_Name_Fld("SUM01"); fld[idxSUM02] = CTabl.Find_Name_Fld("SUM02"); fld[idxSUM03] = CTabl.Find_Name_Fld("SUM03"); fld[idxSUMSV] = CTabl.Find_Name_Fld("SUMSV"); fld[idxSTVS] = CTabl.Find_Name_Fld("STVS"); fld[idxSUMSV1] = CTabl.Find_Name_Fld("SUMSV1"); fld[idxRLISTNU] = CTabl.Find_Name_Fld("RLISTNU"); fld[idxKSS01] = CTabl.Find_Name_Fld("KSS01"); if ( -1 == fld[idxKSS01] ) fld[idxKSS01] = CTabl.Find_Name_Fld("ST01"); fld[idxKSS02] = CTabl.Find_Name_Fld("KSS02"); if ( -1 == fld[idxKSS02] ) fld[idxKSS02] = CTabl.Find_Name_Fld("ST02"); fld[idxKSS03] = CTabl.Find_Name_Fld("KSS03"); if ( -1 == fld[idxKSS03] ) fld[idxKSS03] = CTabl.Find_Name_Fld("ST03"); fld[idxKSS04] = CTabl.Find_Name_Fld("KSS04"); if ( -1 == fld[idxKSS04] ) fld[idxKSS04] = CTabl.Find_Name_Fld("ST04"); fld[idxKSS05] = CTabl.Find_Name_Fld("KSS05"); if ( -1 == fld[idxKSS05] ) fld[idxKSS05] = CTabl.Find_Name_Fld("ST05"); fld[idxKSS06] = CTabl.Find_Name_Fld("KSS06"); if ( -1 == fld[idxKSS06] ) fld[idxKSS06] = CTabl.Find_Name_Fld("ST06"); fld[idxKSS07] = CTabl.Find_Name_Fld("KSS07"); if ( -1 == fld[idxKSS07] ) fld[idxKSS07] = CTabl.Find_Name_Fld("ST07"); fld[idxKSS08] = CTabl.Find_Name_Fld("KSS08"); if ( -1 == fld[idxKSS08] ) fld[idxKSS08] = CTabl.Find_Name_Fld("ST08"); fld[idxKSS09] = CTabl.Find_Name_Fld("KSS09"); if ( -1 == fld[idxKSS09] ) fld[idxKSS09] = CTabl.Find_Name_Fld("ST09"); fld[idxKSS10] = CTabl.Find_Name_Fld("KSS10"); if ( -1 == fld[idxKSS10] ) fld[idxKSS10] = CTabl.Find_Name_Fld("ST10"); fld[idxKSS11] = CTabl.Find_Name_Fld("KSS11"); if ( -1 == fld[idxKSS11] ) fld[idxKSS11] = CTabl.Find_Name_Fld("ST11"); fld[idxKSS12] = CTabl.Find_Name_Fld("KSS12"); if ( -1 == fld[idxKSS12] ) fld[idxKSS12] = CTabl.Find_Name_Fld("ST12"); fld[idxSOV01] = CTabl.Find_Name_Fld("SOV01"); if ( -1 == fld[idxSOV01] ) fld[idxSOV01] = CTabl.Find_Name_Fld("SM01"); fld[idxSOV02] = CTabl.Find_Name_Fld("SOV02"); if ( -1 == fld[idxSOV02] ) fld[idxSOV02] = CTabl.Find_Name_Fld("SM02"); fld[idxSOV03] = CTabl.Find_Name_Fld("SOV03"); if ( -1 == fld[idxSOV03] ) fld[idxSOV03] = CTabl.Find_Name_Fld("SM03"); fld[idxSOV04] = CTabl.Find_Name_Fld("SOV04"); if ( -1 == fld[idxSOV04] ) fld[idxSOV04] = CTabl.Find_Name_Fld("SM04"); fld[idxSOV05] = CTabl.Find_Name_Fld("SOV05"); if ( -1 == fld[idxSOV05] ) fld[idxSOV05] = CTabl.Find_Name_Fld("SM05"); fld[idxSOV06] = CTabl.Find_Name_Fld("SOV06"); if ( -1 == fld[idxSOV06] ) fld[idxSOV06] = CTabl.Find_Name_Fld("SM06"); fld[idxSOV07] = CTabl.Find_Name_Fld("SOV07"); if ( -1 == fld[idxSOV07] ) fld[idxSOV07] = CTabl.Find_Name_Fld("SM07"); fld[idxSOV08] = CTabl.Find_Name_Fld("SOV08"); if ( -1 == fld[idxSOV08] ) fld[idxSOV08] = CTabl.Find_Name_Fld("SM08"); fld[idxSOV09] = CTabl.Find_Name_Fld("SOV09"); if ( -1 == fld[idxSOV09] ) fld[idxSOV09] = CTabl.Find_Name_Fld("SM09"); fld[idxSOV10] = CTabl.Find_Name_Fld("SOV10"); if ( -1 == fld[idxSOV10] ) fld[idxSOV10] = CTabl.Find_Name_Fld("SM10"); fld[idxSOV11] = CTabl.Find_Name_Fld("SOV11"); if ( -1 == fld[idxSOV11] ) fld[idxSOV11] = CTabl.Find_Name_Fld("SM11"); fld[idxSOV12] = CTabl.Find_Name_Fld("SOV12"); if ( -1 == fld[idxSOV12] ) fld[idxSOV12] = CTabl.Find_Name_Fld("SM12"); fld[idxSUMDOG] = CTabl.Find_Name_Fld("SUMDOG"); fld[idxFBCom] = CTabl.Find_Name_Fld("FBCom"); fld[idxSUM01M] = CTabl.Find_Name_Fld("SUM01M"); fld[idxSUM02M] = CTabl.Find_Name_Fld("SUM02M"); fld[idxSUM03M] = CTabl.Find_Name_Fld("SUM03M"); fld[idxKODS01] = CTabl.Find_Name_Fld("KODS01"); fld[idxKODS02] = CTabl.Find_Name_Fld("KODS02"); fld[idxKODS03] = CTabl.Find_Name_Fld("KODS03"); fld[idxKODS04] = CTabl.Find_Name_Fld("KODS04"); fld[idxKODS05] = CTabl.Find_Name_Fld("KODS05"); fld[idxKODS06] = CTabl.Find_Name_Fld("KODS06"); fld[idxKODS07] = CTabl.Find_Name_Fld("KODS07"); fld[idxKODS08] = CTabl.Find_Name_Fld("KODS08"); fld[idxKODS09] = CTabl.Find_Name_Fld("KODS09"); fld[idxKODS10] = CTabl.Find_Name_Fld("KODS10"); fld[idxKODS11] = CTabl.Find_Name_Fld("KODS11"); fld[idxKODS12] = CTabl.Find_Name_Fld("KODS12"); fld[idxKR01] = CTabl.Find_Name_Fld("KR01"); fld[idxKR02] = CTabl.Find_Name_Fld("KR02"); fld[idxKR03] = CTabl.Find_Name_Fld("KR03"); fld[idxKR04] = CTabl.Find_Name_Fld("KR04"); fld[idxKR05] = CTabl.Find_Name_Fld("KR05"); fld[idxKR06] = CTabl.Find_Name_Fld("KR06"); fld[idxKR07] = CTabl.Find_Name_Fld("KR07"); fld[idxKR08] = CTabl.Find_Name_Fld("KR08"); fld[idxKR09] = CTabl.Find_Name_Fld("KR09"); fld[idxKR10] = CTabl.Find_Name_Fld("KR10"); fld[idxKR11] = CTabl.Find_Name_Fld("KR11"); fld[idxKR12] = CTabl.Find_Name_Fld("KR12"); fld[idxBUDvznosi] = CTabl.Find_Name_Fld("VznosiBud"); fld[idxOMCvznosi] = CTabl.Find_Name_Fld("VznosiOms"); fld[idxHOZvznosi] = CTabl.Find_Name_Fld("VznosiHoz"); fld[idxFBSov] = CTabl.Find_Name_Fld("FBSov"); fld[idxSalaryB] = CTabl.Find_Name_Fld("SalaryB"); fld[idxSalaryH] = CTabl.Find_Name_Fld("SalaryH"); fld[idxBUD01] = CTabl.Find_Name_Fld("BUD01"); if ( -1 == fld[idxBUD01] ) fld[idxBUD01] = CTabl.Find_Name_Fld("SA01"); fld[idxBUD02] = CTabl.Find_Name_Fld("BUD02"); if ( -1 == fld[idxBUD02] ) fld[idxBUD02] = CTabl.Find_Name_Fld("SA02"); fld[idxBUD03] = CTabl.Find_Name_Fld("BUD03"); if ( -1 == fld[idxBUD03] ) fld[idxBUD03] = CTabl.Find_Name_Fld("SA03"); fld[idxBUD04] = CTabl.Find_Name_Fld("BUD04"); if ( -1 == fld[idxBUD04] ) fld[idxBUD04] = CTabl.Find_Name_Fld("SA04"); fld[idxBUD05] = CTabl.Find_Name_Fld("BUD05"); if ( -1 == fld[idxBUD05] ) fld[idxBUD05] = CTabl.Find_Name_Fld("SA05"); fld[idxBUD06] = CTabl.Find_Name_Fld("BUD06"); if ( -1 == fld[idxBUD06] ) fld[idxBUD06] = CTabl.Find_Name_Fld("SA06"); fld[idxBUD07] = CTabl.Find_Name_Fld("BUD07"); if ( -1 == fld[idxBUD07] ) fld[idxBUD07] = CTabl.Find_Name_Fld("SA07"); fld[idxBUD08] = CTabl.Find_Name_Fld("BUD08"); if ( -1 == fld[idxBUD08] ) fld[idxBUD08] = CTabl.Find_Name_Fld("SA08"); fld[idxBUD09] = CTabl.Find_Name_Fld("BUD09"); if ( -1 == fld[idxBUD09] ) fld[idxBUD09] = CTabl.Find_Name_Fld("SA09"); fld[idxBUD10] = CTabl.Find_Name_Fld("BUD10"); if ( -1 == fld[idxBUD10] ) fld[idxBUD10] = CTabl.Find_Name_Fld("SA10"); fld[idxBUD11] = CTabl.Find_Name_Fld("BUD11"); if ( -1 == fld[idxBUD11] ) fld[idxBUD11] = CTabl.Find_Name_Fld("SA11"); fld[idxBUD12] = CTabl.Find_Name_Fld("BUD12"); if ( -1 == fld[idxBUD12] ) fld[idxBUD12] = CTabl.Find_Name_Fld("SA12"); fld[idxOMC01] = CTabl.Find_Name_Fld("OMC01"); if ( -1 == fld[idxOMC01] ) fld[idxOMC01] = CTabl.Find_Name_Fld("SB01"); fld[idxOMC02] = CTabl.Find_Name_Fld("OMC02"); if ( -1 == fld[idxOMC02] ) fld[idxOMC02] = CTabl.Find_Name_Fld("SB02"); fld[idxOMC03] = CTabl.Find_Name_Fld("OMC03"); if ( -1 == fld[idxOMC03] ) fld[idxOMC03] = CTabl.Find_Name_Fld("SB03"); fld[idxOMC04] = CTabl.Find_Name_Fld("OMC04"); if ( -1 == fld[idxOMC04] ) fld[idxOMC04] = CTabl.Find_Name_Fld("SB04"); fld[idxOMC05] = CTabl.Find_Name_Fld("OMC05"); if ( -1 == fld[idxOMC05] ) fld[idxOMC05] = CTabl.Find_Name_Fld("SB05"); fld[idxOMC06] = CTabl.Find_Name_Fld("OMC06"); if ( -1 == fld[idxOMC06] ) fld[idxOMC06] = CTabl.Find_Name_Fld("SB06"); fld[idxOMC07] = CTabl.Find_Name_Fld("OMC07"); if ( -1 == fld[idxOMC07] ) fld[idxOMC07] = CTabl.Find_Name_Fld("SB07"); fld[idxOMC08] = CTabl.Find_Name_Fld("OMC08"); if ( -1 == fld[idxOMC08] ) fld[idxOMC08] = CTabl.Find_Name_Fld("SB08"); fld[idxOMC09] = CTabl.Find_Name_Fld("OMC09"); if ( -1 == fld[idxOMC09] ) fld[idxOMC09] = CTabl.Find_Name_Fld("SB09"); fld[idxOMC10] = CTabl.Find_Name_Fld("OMC10"); if ( -1 == fld[idxOMC10] ) fld[idxOMC10] = CTabl.Find_Name_Fld("SB10"); fld[idxOMC11] = CTabl.Find_Name_Fld("OMC11"); if ( -1 == fld[idxOMC11] ) fld[idxOMC11] = CTabl.Find_Name_Fld("SB11"); fld[idxOMC12] = CTabl.Find_Name_Fld("OMC12"); if ( -1 == fld[idxOMC12] ) fld[idxOMC12] = CTabl.Find_Name_Fld("SB12"); fld[idxHOZ01] = CTabl.Find_Name_Fld("HOZ01"); if ( -1 == fld[idxHOZ01] ) fld[idxHOZ01] = CTabl.Find_Name_Fld("SC01"); fld[idxHOZ02] = CTabl.Find_Name_Fld("HOZ02"); if ( -1 == fld[idxHOZ02] ) fld[idxHOZ02] = CTabl.Find_Name_Fld("SC02"); fld[idxHOZ03] = CTabl.Find_Name_Fld("HOZ03"); if ( -1 == fld[idxHOZ03] ) fld[idxHOZ03] = CTabl.Find_Name_Fld("SC03"); fld[idxHOZ04] = CTabl.Find_Name_Fld("HOZ04"); if ( -1 == fld[idxHOZ04] ) fld[idxHOZ04] = CTabl.Find_Name_Fld("SC04"); fld[idxHOZ05] = CTabl.Find_Name_Fld("HOZ05"); if ( -1 == fld[idxHOZ05] ) fld[idxHOZ05] = CTabl.Find_Name_Fld("SC05"); fld[idxHOZ06] = CTabl.Find_Name_Fld("HOZ06"); if ( -1 == fld[idxHOZ06] ) fld[idxHOZ06] = CTabl.Find_Name_Fld("SC06"); fld[idxHOZ07] = CTabl.Find_Name_Fld("HOZ07"); if ( -1 == fld[idxHOZ07] ) fld[idxHOZ07] = CTabl.Find_Name_Fld("SC07"); fld[idxHOZ08] = CTabl.Find_Name_Fld("HOZ08"); if ( -1 == fld[idxHOZ08] ) fld[idxHOZ08] = CTabl.Find_Name_Fld("SC08"); fld[idxHOZ09] = CTabl.Find_Name_Fld("HOZ09"); if ( -1 == fld[idxHOZ09] ) fld[idxHOZ09] = CTabl.Find_Name_Fld("SC09"); fld[idxHOZ10] = CTabl.Find_Name_Fld("HOZ10"); if ( -1 == fld[idxHOZ10] ) fld[idxHOZ10] = CTabl.Find_Name_Fld("SC10"); fld[idxHOZ11] = CTabl.Find_Name_Fld("HOZ11"); if ( -1 == fld[idxHOZ11] ) fld[idxHOZ11] = CTabl.Find_Name_Fld("SC11"); fld[idxHOZ12] = CTabl.Find_Name_Fld("HOZ12"); if ( -1 == fld[idxHOZ12] ) fld[idxHOZ12] = CTabl.Find_Name_Fld("SC12"); fld[idxDOG01] = CTabl.Find_Name_Fld("DOG01"); if ( -1 == fld[idxDOG01] ) fld[idxDOG01] = CTabl.Find_Name_Fld("SD01"); fld[idxDOG02] = CTabl.Find_Name_Fld("DOG02"); if ( -1 == fld[idxDOG02] ) fld[idxDOG02] = CTabl.Find_Name_Fld("SD02"); fld[idxDOG03] = CTabl.Find_Name_Fld("DOG03"); if ( -1 == fld[idxDOG03] ) fld[idxDOG03] = CTabl.Find_Name_Fld("SD03"); fld[idxDOG04] = CTabl.Find_Name_Fld("DOG04"); if ( -1 == fld[idxDOG04] ) fld[idxDOG04] = CTabl.Find_Name_Fld("SD04"); fld[idxDOG05] = CTabl.Find_Name_Fld("DOG05"); if ( -1 == fld[idxDOG05] ) fld[idxDOG05] = CTabl.Find_Name_Fld("SD05"); fld[idxDOG06] = CTabl.Find_Name_Fld("DOG06"); if ( -1 == fld[idxDOG06] ) fld[idxDOG06] = CTabl.Find_Name_Fld("SD06"); fld[idxDOG07] = CTabl.Find_Name_Fld("DOG07"); if ( -1 == fld[idxDOG07] ) fld[idxDOG07] = CTabl.Find_Name_Fld("SD07"); fld[idxDOG08] = CTabl.Find_Name_Fld("DOG08"); if ( -1 == fld[idxDOG08] ) fld[idxDOG08] = CTabl.Find_Name_Fld("SD08"); fld[idxDOG09] = CTabl.Find_Name_Fld("DOG09"); if ( -1 == fld[idxDOG09] ) fld[idxDOG09] = CTabl.Find_Name_Fld("SD09"); fld[idxDOG10] = CTabl.Find_Name_Fld("DOG10"); if ( -1 == fld[idxDOG10] ) fld[idxDOG10] = CTabl.Find_Name_Fld("SD10"); fld[idxDOG11] = CTabl.Find_Name_Fld("DOG11"); if ( -1 == fld[idxDOG11] ) fld[idxDOG11] = CTabl.Find_Name_Fld("SD11"); fld[idxDOG12] = CTabl.Find_Name_Fld("DOG12"); if ( -1 == fld[idxDOG12] ) fld[idxDOG12] = CTabl.Find_Name_Fld("SD12"); fld[idxSovBUD01] = CTabl.Find_Name_Fld("SovBUD01"); if ( -1 == fld[idxSovBUD01] ) fld[idxSovBUD01] = CTabl.Find_Name_Fld("SE01"); fld[idxSovBUD02] = CTabl.Find_Name_Fld("SovBUD02"); if ( -1 == fld[idxSovBUD02] ) fld[idxSovBUD02] = CTabl.Find_Name_Fld("SE02"); fld[idxSovBUD03] = CTabl.Find_Name_Fld("SovBUD03"); if ( -1 == fld[idxSovBUD03] ) fld[idxSovBUD03] = CTabl.Find_Name_Fld("SE03"); fld[idxSovBUD04] = CTabl.Find_Name_Fld("SovBUD04"); if ( -1 == fld[idxSovBUD04] ) fld[idxSovBUD04] = CTabl.Find_Name_Fld("SE04"); fld[idxSovBUD05] = CTabl.Find_Name_Fld("SovBUD05"); if ( -1 == fld[idxSovBUD05] ) fld[idxSovBUD05] = CTabl.Find_Name_Fld("SE05"); fld[idxSovBUD06] = CTabl.Find_Name_Fld("SovBUD06"); if ( -1 == fld[idxSovBUD06] ) fld[idxSovBUD06] = CTabl.Find_Name_Fld("SE06"); fld[idxSovBUD07] = CTabl.Find_Name_Fld("SovBUD07"); if ( -1 == fld[idxSovBUD07] ) fld[idxSovBUD07] = CTabl.Find_Name_Fld("SE07"); fld[idxSovBUD08] = CTabl.Find_Name_Fld("SovBUD08"); if ( -1 == fld[idxSovBUD08] ) fld[idxSovBUD08] = CTabl.Find_Name_Fld("SE08"); fld[idxSovBUD09] = CTabl.Find_Name_Fld("SovBUD09"); if ( -1 == fld[idxSovBUD09] ) fld[idxSovBUD09] = CTabl.Find_Name_Fld("SE09"); fld[idxSovBUD10] = CTabl.Find_Name_Fld("SovBUD10"); if ( -1 == fld[idxSovBUD10] ) fld[idxSovBUD10] = CTabl.Find_Name_Fld("SE10"); fld[idxSovBUD11] = CTabl.Find_Name_Fld("SovBUD11"); if ( -1 == fld[idxSovBUD11] ) fld[idxSovBUD11] = CTabl.Find_Name_Fld("SE11"); fld[idxSovBUD12] = CTabl.Find_Name_Fld("SovBUD12"); if ( -1 == fld[idxSovBUD12] ) fld[idxSovBUD12] = CTabl.Find_Name_Fld("SE12"); fld[idxSovOMC01] = CTabl.Find_Name_Fld("SovOMC01"); if ( -1 == fld[idxSovOMC01] ) fld[idxSovOMC01] = CTabl.Find_Name_Fld("SF01"); fld[idxSovOMC02] = CTabl.Find_Name_Fld("SovOMC02"); if ( -1 == fld[idxSovOMC02] ) fld[idxSovOMC02] = CTabl.Find_Name_Fld("SF02"); fld[idxSovOMC03] = CTabl.Find_Name_Fld("SovOMC03"); if ( -1 == fld[idxSovOMC03] ) fld[idxSovOMC03] = CTabl.Find_Name_Fld("SF03"); fld[idxSovOMC04] = CTabl.Find_Name_Fld("SovOMC04"); if ( -1 == fld[idxSovOMC04] ) fld[idxSovOMC04] = CTabl.Find_Name_Fld("SF04"); fld[idxSovOMC05] = CTabl.Find_Name_Fld("SovOMC05"); if ( -1 == fld[idxSovOMC05] ) fld[idxSovOMC05] = CTabl.Find_Name_Fld("SF05"); fld[idxSovOMC06] = CTabl.Find_Name_Fld("SovOMC06"); if ( -1 == fld[idxSovOMC06] ) fld[idxSovOMC06] = CTabl.Find_Name_Fld("SF06"); fld[idxSovOMC07] = CTabl.Find_Name_Fld("SovOMC07"); if ( -1 == fld[idxSovOMC07] ) fld[idxSovOMC07] = CTabl.Find_Name_Fld("SF07"); fld[idxSovOMC08] = CTabl.Find_Name_Fld("SovOMC08"); if ( -1 == fld[idxSovOMC08] ) fld[idxSovOMC08] = CTabl.Find_Name_Fld("SF08"); fld[idxSovOMC09] = CTabl.Find_Name_Fld("SovOMC09"); if ( -1 == fld[idxSovOMC09] ) fld[idxSovOMC09] = CTabl.Find_Name_Fld("SF09"); fld[idxSovOMC10] = CTabl.Find_Name_Fld("SovOMC10"); if ( -1 == fld[idxSovOMC10] ) fld[idxSovOMC10] = CTabl.Find_Name_Fld("SF10"); fld[idxSovOMC11] = CTabl.Find_Name_Fld("SovOMC11"); if ( -1 == fld[idxSovOMC11] ) fld[idxSovOMC11] = CTabl.Find_Name_Fld("SF11"); fld[idxSovOMC12] = CTabl.Find_Name_Fld("SovOMC12"); if ( -1 == fld[idxSovOMC12] ) fld[idxSovOMC12] = CTabl.Find_Name_Fld("SF12"); fld[idxSovHOZ01] = CTabl.Find_Name_Fld("SovHOZ01"); if ( -1 == fld[idxSovHOZ01] ) fld[idxSovHOZ01] = CTabl.Find_Name_Fld("SG01"); fld[idxSovHOZ02] = CTabl.Find_Name_Fld("SovHOZ02"); if ( -1 == fld[idxSovHOZ02] ) fld[idxSovHOZ02] = CTabl.Find_Name_Fld("SG02"); fld[idxSovHOZ03] = CTabl.Find_Name_Fld("SovHOZ03"); if ( -1 == fld[idxSovHOZ03] ) fld[idxSovHOZ03] = CTabl.Find_Name_Fld("SG03"); fld[idxSovHOZ04] = CTabl.Find_Name_Fld("SovHOZ04"); if ( -1 == fld[idxSovHOZ04] ) fld[idxSovHOZ04] = CTabl.Find_Name_Fld("SG04"); fld[idxSovHOZ05] = CTabl.Find_Name_Fld("SovHOZ05"); if ( -1 == fld[idxSovHOZ05] ) fld[idxSovHOZ05] = CTabl.Find_Name_Fld("SG05"); fld[idxSovHOZ06] = CTabl.Find_Name_Fld("SovHOZ06"); if ( -1 == fld[idxSovHOZ06] ) fld[idxSovHOZ06] = CTabl.Find_Name_Fld("SG06"); fld[idxSovHOZ07] = CTabl.Find_Name_Fld("SovHOZ07"); if ( -1 == fld[idxSovHOZ07] ) fld[idxSovHOZ07] = CTabl.Find_Name_Fld("SG07"); fld[idxSovHOZ08] = CTabl.Find_Name_Fld("SovHOZ08"); if ( -1 == fld[idxSovHOZ08] ) fld[idxSovHOZ08] = CTabl.Find_Name_Fld("SG08"); fld[idxSovHOZ09] = CTabl.Find_Name_Fld("SovHOZ09"); if ( -1 == fld[idxSovHOZ09] ) fld[idxSovHOZ09] = CTabl.Find_Name_Fld("SG09"); fld[idxSovHOZ10] = CTabl.Find_Name_Fld("SovHOZ10"); if ( -1 == fld[idxSovHOZ10] ) fld[idxSovHOZ10] = CTabl.Find_Name_Fld("SG10"); fld[idxSovHOZ11] = CTabl.Find_Name_Fld("SovHOZ11"); if ( -1 == fld[idxSovHOZ11] ) fld[idxSovHOZ11] = CTabl.Find_Name_Fld("SG11"); fld[idxSovHOZ12] = CTabl.Find_Name_Fld("SovHOZ12"); if ( -1 == fld[idxSovHOZ12] ) fld[idxSovHOZ12] = CTabl.Find_Name_Fld("SG12"); fld[idxTSCH01] = CTabl.Find_Name_Fld("TSCH01"); fld[idxTSCH02] = CTabl.Find_Name_Fld("TSCH02"); fld[idxTSCH03] = CTabl.Find_Name_Fld("TSCH03"); fld[idxTSCH04] = CTabl.Find_Name_Fld("TSCH04"); fld[idxTSCH05] = CTabl.Find_Name_Fld("TSCH05"); fld[idxTSCH06] = CTabl.Find_Name_Fld("TSCH06"); fld[idxTSCH07] = CTabl.Find_Name_Fld("TSCH07"); fld[idxTSCH08] = CTabl.Find_Name_Fld("TSCH08"); fld[idxTSCH09] = CTabl.Find_Name_Fld("TSCH09"); fld[idxTSCH10] = CTabl.Find_Name_Fld("TSCH10"); fld[idxTSCH11] = CTabl.Find_Name_Fld("TSCH11"); fld[idxTSCH12] = CTabl.Find_Name_Fld("TSCH12"); fld[idxVSCH01] = CTabl.Find_Name_Fld("VSCH01"); fld[idxVSCH02] = CTabl.Find_Name_Fld("VSCH02"); fld[idxVSCH03] = CTabl.Find_Name_Fld("VSCH03"); fld[idxVSCH04] = CTabl.Find_Name_Fld("VSCH04"); fld[idxVSCH05] = CTabl.Find_Name_Fld("VSCH05"); fld[idxVSCH06] = CTabl.Find_Name_Fld("VSCH06"); fld[idxVSCH07] = CTabl.Find_Name_Fld("VSCH07"); fld[idxVSCH08] = CTabl.Find_Name_Fld("VSCH08"); fld[idxVSCH09] = CTabl.Find_Name_Fld("VSCH09"); fld[idxVSCH10] = CTabl.Find_Name_Fld("VSCH10"); fld[idxVSCH11] = CTabl.Find_Name_Fld("VSCH11"); fld[idxVSCH12] = CTabl.Find_Name_Fld("VSCH12"); } int idxSUM00 = 0, idxC_FIO = 1, idxFIO = 2, idxKODSTR = 3, idxSCH = 4, idxSCH_S = 5, idxAEND = 6, idxFFIRST = 7, idxFNAME1 = 8, idxFNAME2 = 9, idxYear = 10, idxKodOP = 11, idxFCkod_rab = 12, idxSUM01 = 13, idxSUM02 = 14, idxSUM03 = 15, idxSUMSV = 16, idxSTVS = 17, idxSUMSV1 = 18, idxRLISTNU = 19, idxKSS01 = 20, idxKSS02 = 21, idxKSS03 = 22, idxKSS04 = 23, idxKSS05 = 24, idxKSS06 = 25, idxKSS07 = 26, idxKSS08 = 27, idxKSS09 = 28, idxKSS10 = 29, idxKSS11 = 30, idxKSS12 = 31, idxSOV01 = 32, idxSOV02 = 33, idxSOV03 = 34, idxSOV04 = 35, idxSOV05 = 36, idxSOV06 = 37, idxSOV07 = 38, idxSOV08 = 39, idxSOV09 = 40, idxSOV10 = 41, idxSOV11 = 42, idxSOV12 = 43, idxSUMDOG = 44, idxFBCom = 45, idxSUM01M = 46, idxSUM02M = 47, idxSUM03M = 48, idxKODS01 = 49, idxKODS02 = 50, idxKODS03 = 51, idxKODS04 = 52, idxKODS05 = 53, idxKODS06 = 54, idxKODS07 = 55, idxKODS08 = 56, idxKODS09 = 57, idxKODS10 = 58, idxKODS11 = 59, idxKODS12 = 60, idxKR01 = 61, idxKR02 = 62, idxKR03 = 63, idxKR04 = 64, idxKR05 = 65, idxKR06 = 66, idxKR07 = 67, idxKR08 = 68, idxKR09 = 69, idxKR10 = 70, idxKR11 = 71, idxKR12 = 72, idxBUD01 = 73, idxBUD02 = 74, idxBUD03 = 75, idxBUD04 = 76, idxBUD05 = 77, idxBUD06 = 78, idxBUD07 = 79, idxBUD08 = 80, idxBUD09 = 81, idxBUD10 = 82, idxBUD11 = 83, idxBUD12 = 84, idxOMC01 = 85, idxOMC02 = 86, idxOMC03 = 87, idxOMC04 = 88, idxOMC05 = 89, idxOMC06 = 90, idxOMC07 = 91, idxOMC08 = 92, idxOMC09 = 93, idxOMC10 = 94, idxOMC11 = 95, idxOMC12 = 96, idxHOZ01 = 97, idxHOZ02 = 98, idxHOZ03 = 99, idxHOZ04 = 100, idxHOZ05 = 101, idxHOZ06 = 102, idxHOZ07 = 103, idxHOZ08 = 104, idxHOZ09 = 105, idxHOZ10 = 106, idxHOZ11 = 107, idxHOZ12 = 108, idxDOG01 = 109, idxDOG02 = 110, idxDOG03 = 111, idxDOG04 = 112, idxDOG05 = 113, idxDOG06 = 114, idxDOG07 = 115, idxDOG08 = 116, idxDOG09 = 117, idxDOG10 = 118, idxDOG11 = 119, idxDOG12 = 120, idxSovBUD01 = 121, idxSovBUD02 = 122, idxSovBUD03 = 123, idxSovBUD04 = 124, idxSovBUD05 = 125, idxSovBUD06 = 126, idxSovBUD07 = 127, idxSovBUD08 = 128, idxSovBUD09 = 129, idxSovBUD10 = 130, idxSovBUD11 = 131, idxSovBUD12 = 132, idxSovOMC01 = 133, idxSovOMC02 = 134, idxSovOMC03 = 135, idxSovOMC04 = 136, idxSovOMC05 = 137, idxSovOMC06 = 138, idxSovOMC07 = 139, idxSovOMC08 = 140, idxSovOMC09 = 141, idxSovOMC10 = 142, idxSovOMC11 = 143, idxSovOMC12 = 144, idxSovHOZ01 = 145, idxSovHOZ02 = 146, idxSovHOZ03 = 147, idxSovHOZ04 = 148, idxSovHOZ05 = 149, idxSovHOZ06 = 150, idxSovHOZ07 = 151, idxSovHOZ08 = 152, idxSovHOZ09 = 153, idxSovHOZ10 = 154, idxSovHOZ11 = 155, idxSovHOZ12 = 156, idxABEG = 157, idxTSCH01 = 158, idxTSCH02 = 159, idxTSCH03 = 160, idxTSCH04 = 161, idxTSCH05 = 162, idxTSCH06 = 163, idxTSCH07 = 164, idxTSCH08 = 165, idxTSCH09 = 166, idxTSCH10 = 167, idxTSCH11 = 168, idxTSCH12 = 169, idxVSCH01 = 170, idxVSCH02 = 171, idxVSCH03 = 172, idxVSCH04 = 173, idxVSCH05 = 174, idxVSCH06 = 175, idxVSCH07 = 176, idxVSCH08 = 177, idxVSCH09 = 178, idxVSCH10 = 179, idxVSCH11 = 180, idxVSCH12 = 181, idxBUDvznosi = 182, idxOMCvznosi = 183, idxHOZvznosi = 184, idxFBSov = 185, idxSalaryB = 186, idxSalaryH = 187, CntIdx = 188; int fld[CntIdx]; int cm = 13; int KODS[cm]; int KR[cm]; double BUD[cm]; double OMC[cm]; double HOZ[cm]; double DOG[cm]; double SovBUD[cm]; double SovOMC[cm]; double SovHOZ[cm]; double BUDvznosi[cm]; double OMCvznosi[cm]; double HOZvznosi[cm]; double SalaryB[cm]; double SalaryH[cm]; int fTrans = 0; int TabAdr = 0; Transfer(AdrCTabl, AdrCListTabl, RcrInList) { TabAdr = AdrCTabl; fTrans = 1; // выполняется передача в файл по Alt+F9 Format = 1; // передача в файл table(); return 0; } Correct2016() { // ёэрўрыр ь√ эр яхЁтюь ышёЄх, яюяЁртшь яЁшърч if ( atoi(Year) >= 2017 ) tWriteStringToCell("DP19","╧Ёшърч ╨юёёЄрЄр:\n╬с єЄтхЁцфхэшш ЇюЁь√\nюЄ 21.10.2016 ╣ 670\n╬ тэхёхэшш шчьхэхэшщ (яЁш эрышўшш)"); else tWriteStringToCell("DP19","╧Ёшърч ╨юёёЄрЄр:\n╬с єЄтхЁцфхэшш ЇюЁь√\nюЄ 30.11.2015 ╣ 594\n╬ тэхёхэшш шчьхэхэшщ (яЁш эрышўшш)"); tGetWshByIndex(2); // яюыєўрхь ёё√ыъє эр ышёЄ (worksheet) // ёЄЁюър 102 яш°хь tWriteStringToCell("B10","чрьхёЄшЄхыш ЁєъютюфшЄхы ,\nЁєъютюфшЄхыш ёЄЁєъЄєЁэ√ї\nяюфЁрчфхыхэшщ (ъЁюьх\nтЁрўхщ - ЁєъютюфшЄхыхщ\nёЄЁєъЄєЁэ√ї яюфЁрчфхыхэшщ),\nшэ√х ЁєъютюфшЄхыш"); // tWriteStringToCell("B11","ёЄЁєъЄєЁэ√ї яюфЁрчфхыхэшщ (ъЁюьх тЁрўхщ -"); // tWriteStringToCell("B12","ЁєъютюфшЄхыхщ ёЄЁєъЄєЁэ√ї яюфЁрчфхыхэшщ,\nчртхфє■∙шї єўхсэющ ўрёЄ№■) ш шї чрьхёЄшЄхыш"); tGetWshByIndex(1); // тючтЁр∙рхь ёё√ыъє эр яхЁт√щ ышёЄ яхЁхф т√їюфюь return 0; } GetInsurancePayment(sourceAsString,tip,CodCom) // sourceAsString - список источников финансирования - букв перечисленные через запятую // tip - 0-суммы берутся по месяцу принадлежности; 1-по месяцу начисления // CodCom - совместительство { string result=""; var mbeg = KDateFromStr(to_string(Str_Date_0)), mend = KDateFromStr(to_string(Str_Date_1)); var yearFirstMonth=KDateFromDayMonthYear(1,1,mbeg.GetYear()); var sourceList = CreateObject("ParamFuncRW"); sourceList.IInitial(to_string(sourceAsString),",",99); var mapNu=CllNUToMap("LST_NU_02","zpSocObl"); //цикл за 12 мес.. for ( int absMonth = yearFirstMonth.GetAbs(); absMonth <=yearFirstMonth.GetAbs()+11; absMonth++ ) { double summ=0; //месяц попадает в период выборки if( absMonth>=mbeg.GetAbs() && absMonth<=mend.GetAbs() ) { //цикл по "источникам" for( int idxSource = 0; idxSource < sourceList.Count(); idxSource++ ) { var Prop = CreateObject("APropBE"); Prop.LoadFromStr(sourceList.Get(idxSource)); Prop.SetCombine(atoi(CodCom)); summ+=GetReportSummNuList(Prop,absMonth,mapNu,atoi(tip)==0 ? CL_M : CL_MV); } } result+=to_string(summ)+"^"; } return result; } GetSalary(sourceAsString,tip,CodCom) // sourceAsString - список источников финансирования - букв перечисленные через запятую // tip - 0-суммы берутся по месяцу принадлежности; 1-по месяцу начисления // CodCom - совместительство { string result=""; var mbeg = KDateFromStr(to_string(Str_Date_0)), mend = KDateFromStr(to_string(Str_Date_1)); var yearFirstMonth=KDateFromDayMonthYear(1,1,mbeg.GetYear()); var sourceList = CreateObject("ParamFuncRW"); sourceList.IInitial(to_string(sourceAsString),",",99); var mapNu=CllNUToMap("LST_NU_03","zpSocObl"); //цикл за 12 мес.. for ( int absMonth = yearFirstMonth.GetAbs(); absMonth <=yearFirstMonth.GetAbs()+11; absMonth++ ) { double summ=0; //месяц попадает в период выборки if( absMonth>=mbeg.GetAbs() && absMonth<=mend.GetAbs() ) { //цикл по "источникам" for( int idxSource = 0; idxSource < sourceList.Count(); idxSource++ ) { var Prop = CreateObject("APropBE"); Prop.LoadFromStr(sourceList.Get(idxSource)); Prop.SetCombine(atoi(CodCom)); summ+=GetReportSummNuList(Prop,absMonth,mapNu,atoi(tip)==0 ? CL_M : CL_MV); } } result+=to_string(summ)+"^"; } return result; } //сумма по набору внутренних кодов видов nuList //Flag:CL_M - сумма по месяцу принадлежности // CL_MV - сумма по месяцу начисления GetReportSummNuList(prop,month,mapNu,Flag) { bool bNach = (Flag & CL_MV) ? true: false; double rez=0.; for (bool Cur=mapNu.InitIterator();Cur;Cur=mapNu.Next()) { int code =mapNu.GetCurKey(); if(bNach) rez+=CollectSummProp(code,0,month,Flag,prop); else rez+=CollectSummProp(code,month,0,Flag,prop); } return rez; } AddRowValues(rowDest,rowSource) { T01[rowDest]+=T01[rowSource]; T02[rowDest]+=T02[rowSource]; T03[rowDest]+=T03[rowSource]; T04[rowDest]+=T04[rowSource]; T05[rowDest]+=T05[rowSource]; T06[rowDest]+=T06[rowSource]; T07[rowDest]+=T07[rowSource]; T08[rowDest]+=T08[rowSource]; T09[rowDest]+=T09[rowSource]; T10[rowDest]+=T10[rowSource]; T11[rowDest]+=T11[rowSource]; T24[rowDest]+=T24[rowSource]; T26[rowDest]+=T26[rowSource]; T27[rowDest]+=T27[rowSource]; T28[rowDest]+=T28[rowSource]; T29[rowDest]+=T29[rowSource]; T30[rowDest]+=T30[rowSource]; T31[rowDest]+=T31[rowSource]; SalaryBUD[rowDest]+=SalaryBUD[rowSource]; SalaryHOZ[rowDest]+=SalaryHOZ[rowSource]; SalaryBUDSov[rowDest]+=SalaryBUDSov[rowSource]; SalaryHOZSov[rowDest]+=SalaryHOZSov[rowSource]; } WriteOneRowToExcel(excelRow,idxRow,templateVersion) { string cell = ""; //Средняя if ( nabs(T01[idxRow]) > eps ) {cell = CalcColumn("D",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T01[idxRow]);} if ( nabs(T02[idxRow]) > eps ) {cell = CalcColumn("E",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T02[idxRow]);} //ФЗП внутренних совместителей if ( nabs(T04[idxRow]) > eps ) {cell = CalcColumn("G",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T04[idxRow]);} //ФЗП списочного состава if ( nabs(T06[idxRow]) > eps ) {cell = CalcColumn("I",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T06[idxRow]);} if ( nabs(T07[idxRow]) > eps ) {cell = CalcColumn("J",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T07[idxRow]);} if ( nabs(T08[idxRow]) > eps ) {cell = CalcColumn("K",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T08[idxRow]);} //ФЗП внешних совместителей if ( nabs(T09[idxRow]) > eps ) {cell = CalcColumn("L",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T09[idxRow]);} if ( nabs(T10[idxRow]) > eps ) {cell = CalcColumn("M",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T10[idxRow]);} if ( nabs(T11[idxRow]) > eps ) {cell = CalcColumn("N",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T11[idxRow]);} //Взносы if ( nabs(T24[idxRow]) > eps ) {cell = CalcColumn("Q",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T24[idxRow]);} if ( nabs(T26[idxRow]) > eps ) {cell = CalcColumn("S",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T26[idxRow]);} if ( nabs(T27[idxRow]) > eps ) {cell = CalcColumn("T",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T27[idxRow]);} if ( nabs(T28[idxRow]) > eps ) {cell = CalcColumn("U",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T28[idxRow]);} if ( nabs(T29[idxRow]) > eps ) {cell = CalcColumn("V",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T29[idxRow]);} if ( nabs(T30[idxRow]) > eps ) {cell = CalcColumn("W",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T30[idxRow]);} if ( nabs(T31[idxRow]) > eps ) {cell = CalcColumn("X",templateVersion) + to_string(excelRow); tWriteNumToCell(cell,T31[idxRow]);} if(templateVersion==1) { if ( nabs(SalaryBUD[idxRow]) > eps ) {cell = "J" + to_string(excelRow); tWriteNumToCell(cell,SalaryBUD[idxRow]);} if ( nabs(SalaryHOZ[idxRow]) > eps ) {cell = "M" + to_string(excelRow); tWriteNumToCell(cell,SalaryHOZ[idxRow]);} if ( nabs(SalaryBUDSov[idxRow]) > eps ) {cell = "O" + to_string(excelRow); tWriteNumToCell(cell,SalaryBUDSov[idxRow]);} if ( nabs(SalaryHOZSov[idxRow]) > eps ) {cell = "R" + to_string(excelRow); tWriteNumToCell(cell,SalaryHOZSov[idxRow]);} } } CalcColumn(column,templateVersion) { switch(column) { case "J": return templateVersion==0?"J":"K"; case "K": return templateVersion==0?"K":"L"; case "L": return templateVersion==0?"L":"N"; case "M": return templateVersion==0?"M":"P"; case "N": return templateVersion==0?"N":"Q"; case "Q": return templateVersion==0?"Q":"U"; case "S": return templateVersion==0?"S":"W"; case "T": return templateVersion==0?"T":"X"; case "U": return templateVersion==0?"U":"Y"; case "V": return templateVersion==0?"V":"Z"; case "W": return templateVersion==0?"W":"AA"; case "X": return templateVersion==0?"X":"AB"; } return column; } int firstExcelRow =10, lastExcelRow =23, rowsCount =lastExcelRow-firstExcelRow+1; //количество строк в отчете //каждый массив - соответствующая графа (оригинального) отчета double T01[rowsCount+1]; //Средняя численность работников за отчетный период, чел. double T02[rowsCount+1]; //---внешних совместителей 2 double T03[rowsCount+1]; double T04[rowsCount+1]; //ФЗП внутренних совместителей double T05[rowsCount+1]; double T06[rowsCount+1];//ФЗП списочного состава double T07[rowsCount+1]; double T08[rowsCount+1]; double T09[rowsCount+1];//ФЗП внешних совместителей double T10[rowsCount+1]; double T11[rowsCount+1]; double T24[rowsCount+1];//взносы внутренних совместителей double T26[rowsCount+1];//взносы списочного состава double T27[rowsCount+1]; double T28[rowsCount+1]; double T29[rowsCount+1];//взносы внешних совместителей double T30[rowsCount+1]; double T31[rowsCount+1]; //должностные оклад double SalaryBUD[rowsCount+1];//должностные оклады (из гр. 6) double SalaryHOZ[rowsCount+1];//должностные оклады (из гр. 8) double SalaryBUDSov[rowsCount+1];//должностные оклады (из гр. 9) -внешних совместителей double SalaryHOZSov[rowsCount+1];//должностные оклады (из гр. 11) -внешних совместителей