5
582324
Добрый день! Помогите пожалуйста его правильно обработать! У меня есть файл выписки в котором данные поделены следующим образом: шапка, раздел дeбeтa и кредита. Сложность с обработкой дeбeтa и кредита так как они в файле используют одно и тоже поле "Amount", которое в первой части файла содержит информацию о дeбeтoвых операциях, а во второй части о кредитовых операциях.
Вот что у меня пока получилось (фрагмент кода):....
Вот что у меня пока получилось (фрагмент кода):....
Код:
КоличествоДокументовНаТранзакцию=Константа.КоличествоДокументовНаТранзакцию;
Для Ном = НомСтр По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(Ном);
Статус("Обработано... "+Окр(Ном/Текст.КоличествоСтрок()*100,2)+"%");
//***накопление информации о платежном документа***//
//Сред(Стр,2,14) = "DebetDocuments"
//Сред(Стр,2,15) = "CreditDocuments"
Если Сред(Стр,2,6) = "OpDate" Тогда // дата документа
ДатДок=Дата(Сред(Стр,9,10));
ИначеЕсли Сред(Стр,2,14) = "DocumentNumber" Тогда // номер документа
НомДок=Число(Сред(Стр,16));
ИначеЕсли Сред(Стр,2,8) = "OperType" Тогда // операции
НомОпер=Сред(Стр,12,СтрДлина(Стр)-12);
ИначеЕсли Сред(Стр,2,3) = "UNN" Тогда // УНН контрагента
УНН=Сред(Стр,6,9);
ИначеЕсли Сред(Стр,2,7) = "NameBIC" Тогда // Наименование корреспондента
НаимКонтр=Сред(Стр,10,СтрДлина(Стр)-10);
ИначеЕсли Сред(Стр,2,6) = "Ground" Тогда
НазнПлат="";
ИначеЕсли Сред(Стр,2,3) = "BIC" Тогда // Код банка
КодБанка=Сред(Стр,12,3);
ИначеЕсли Сред(Стр,2,3) = "Account" Тогда // Расчетный счет
РасчСчет=Сред(Стр,10,13); // Расчетный счет
//ИначеЕсли Сред(Стр,2,6) = "Amount=" Тогда // Списано со счета
// Расход=Число(Сред(Стр,8));
//ИначеЕсли Сред(Стр,2,6) = "Amount=" Тогда // поступило на счет
// Приход=Число(Сред(Стр,8));
ВводСтроки(ДатДок,НомДок,НомОпер,УНН,НаимКонтр,НазнПлат,КодБанка,РасчСчет,Расход,Приход
,НазнПлат);
Если Счетчик=КоличествоДокументовНаТранзакцию Тогда
Если ИтоговаяВыписка.Выбран()=1 Тогда
ИтоговаяВыписка.Записать();
Если ИтоговаяВыписка.РСчет.НеВыполнятьКонтроль=1 Тогда
ИтоговаяВыписка.Провести();
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
НачатьТранзакцию();
Счетчик=1;
КонецЕсли;
КонецЕсли;
Если Лев(Стр,1)="/Statements" Тогда // дошли до последней строки выписки //Выписка.Записать();
КонецЕсли;
КонецЦикла;