public static bool WriteVFiles(int DayDate, string DestinationFolder, int VMode) { CSepVWriter A = new CSepVWriter(); string File_Name = "!" + (VMode == 0 ? "V" : "W") + "UUIA" + CCommon.StrY(CCommon.Month(DayDate), 1) + CCommon.StrY(CCommon.Day(DayDate), 1) + "." + CCommon.Right("0" + CCommon.Hour(CCommon.Clock()), 2) + CCommon.StrY(CCommon.Minute(CCommon.Clock()) >> 1, 1); if (!A.Create(DestinationFolder + "\\" + File_Name, CAbc.CHARSET_DOS)) { return(false); } CRecordSet Data = new CRecordSet(Connection1); if (Data.Open("exec dbo.pMega_OpenGate_Report;3 @TaskCode='ErcGate', @DateFrom = " + DayDate.ToString() + " , @Mode = " + VMode.ToString())) { if (!Data.Read()) { A.Head[CSepVFileInfo.H_EMPTYSTR] = ""; // char[100] // Пеpвые 100 - пpобелы A.Head[CSepVFileInfo.H_CRLF1] = CAbc.CRLF; // char[ 2]; // Символ концец строки A.Head[CSepVFileInfo.H_FILENAME] = CCommon.Left(File_Name.Trim(), 12); // char[ 12]; // Наименование файла A.Head[CSepVFileInfo.H_DATE] = Now_Date_Str; // char[ 6]; // Дата создания файла A.Head[CSepVFileInfo.H_TIME] = Now_Time_Str; // char[ 4]; // Дата создания файла A.Head[CSepVFileInfo.H_STRCOUNT] = "0"; // char[ 6]; // Количество ИС в файле A.Head[CSepVFileInfo.H_TOTALDEBET] = "0"; // char[ 16]; // Сумма дебета по файлу A.Head[CSepVFileInfo.H_TOTALCREDIT] = "0"; // char[ 16]; // Сумма кpедита по файлу A.Head[CSepVFileInfo.H_EMPTYSTR2] = ""; // char[ 64]; // Пустое пространство A.Head[CSepVFileInfo.H_CRLF2] = CAbc.CRLF; // char[ 2]; // Символ конец строки if (!A.WriteHeader()) { Data.Close(); A.Close(); return(false); } } else { A.Head[CSepVFileInfo.H_EMPTYSTR] = ""; // char[100] // Пеpвые 100 - пpобелы A.Head[CSepVFileInfo.H_CRLF1] = CAbc.CRLF; // char[ 2]; // Символ концец строки A.Head[CSepVFileInfo.H_FILENAME] = CCommon.Left(File_Name.Trim(), 12); // char[ 12]; // Наименование файла A.Head[CSepVFileInfo.H_DATE] = Now_Date_Str; // char[ 6]; // Дата создания файла A.Head[CSepVFileInfo.H_TIME] = Now_Time_Str; // char[ 4]; // Дата создания файла A.Head[CSepVFileInfo.H_STRCOUNT] = Data["TotalLines"].Trim(); // char[ 6]; // Количество ИС в файле A.Head[CSepVFileInfo.H_TOTALDEBET] = "0"; // char[ 16]; // Сумма дебета по файлу A.Head[CSepVFileInfo.H_TOTALCREDIT] = Data["TotalCents"].Trim(); // char[ 16]; // Сумма кpедита по файлу A.Head[CSepVFileInfo.H_EMPTYSTR2] = ""; // char[ 64]; // Пустое пространство A.Head[CSepVFileInfo.H_CRLF2] = CAbc.CRLF; // char[ 2]; // Символ конец строки if (!A.WriteHeader()) { Data.Close(); A.Close(); return(false); } do { A.Line[CSepVFileInfo.L_DEBITMFO] = Data["SourceCode"].Trim(); // char[ 9]; // Дебет-МФО A.Line[CSepVFileInfo.L_DEBITACC] = Data["DebitMoniker"].Trim(); // char[ 14]; // Дебет-счет A.Line[CSepVFileInfo.L_CREDITMFO] = Data["TargetCode"].Trim(); // char[ 9]; // Кредит-МФО A.Line[CSepVFileInfo.L_CREDITACC] = Data["CreditMoniker"].Trim(); // char[ 14]; // Кредит счет A.Line[CSepVFileInfo.L_FLAG] = "1"; // char[ 1]; // Флаг `дебет/кредит` A.Line[CSepVFileInfo.L_SUMA] = Data["CrncyCents"].Trim(); // char[ 16]; // Сумма в копейках A.Line[CSepVFileInfo.L_DTYPE] = Data["Kind"].Trim(); // char[ 2]; // Вид документа A.Line[CSepVFileInfo.L_NDOC] = Data["DocNum"].Trim(); // char[ 10]; // Номер документа A.Line[CSepVFileInfo.L_CURRENCY] = Data["CurrencyId"].Trim(); // char[ 3]; // Валюта A.Line[CSepVFileInfo.L_DATE1] = CCommon.DtoC(CCommon.CInt32(Data["DayDate"].Trim())).Substring(2, 6); // char[ 6]; // Дата платежа A.Line[CSepVFileInfo.L_ID] = Data["Id"].Trim(); // char[ 9]; // Идентификатор документа A.Line[CSepVFileInfo.L_FILENAME1] = Data["FileName"].Trim(); // char[ 12]; // Имя файла N 1 A.Line[CSepVFileInfo.L_LINENUM1] = Data["LineNum"].Trim(); // char[ 6]; // Номер строки в файле N 1 A.Line[CSepVFileInfo.L_FILENAME2] = Data["FileName"].Trim(); // char[ 12]; // Имя файла N 2 A.Line[CSepVFileInfo.L_LINENUM2] = Data["LineNum"].Trim(); // char[ 6]; // Номер строки в файле N 2 A.Line[CSepVFileInfo.L_STATUS] = (((CCommon.CInt32(Data["ProcessFlag"].Trim()) & 3) == 3) ? "Y" : "N"); // char[ 1]; // Флаг квитовки платежа A.Line[CSepVFileInfo.L_TIME] = Now_Time_Str; // char[ 4]; // Время A.Line[CSepVFileInfo.L_NOL1] = "0"; // char[ 1]; // A.Line[CSepVFileInfo.L_NOL2] = "0"; // char[ 1]; // A.Line[CSepVFileInfo.L_CRLF] = CAbc.CRLF; // char[ 2]; // Символы конца строки if (!A.WriteLine()) { Data.Close(); A.Close(); return(false); } } while (Data.Read()); } } Data.Close(); A.Close(); return(true); }