Имя: Пароль:
1C
 
Чтение txt для обмена в банк (исходящие) в ТЗ
0 anisa8310
 
20.12.15
08:11
Доброго утра!
Мучаюсь с текстовым файлом
ТОт файл который мы отправляем в Банк нужно считать в ТЗ, как правильно цикл в цикле сделать чтобы когда "КонецДокумента" вернулся на заспиьс нового набора в ТЗ начиная с номера дока даты и т.д файл текстовый
1 anisa8310
 
20.12.15
08:15
Текст.Прочитать("U:\User_Folders\Documents\Выгрузка в банк\1.txt");
//Создаем ТЗ
Таб=Новый ТаблицаЗначений;
Таб.Колонки.Добавить("Номер");
Таб.Колонки.Добавить("Дата");
Таб.Колонки.Добавить("Сумма");
Таб.Колонки.Добавить("ПлательщикСчет");
Таб.Колонки.Добавить("Плательщик");
Таб.Колонки.Добавить("ПлательщикИНН");
Таб.Колонки.Добавить("Плательщик1");
Таб.Колонки.Добавить("ПлательщикРасчСчет");
Таб.Колонки.Добавить("ПлательщикБанк1");
Таб.Колонки.Добавить("ПлательщикБанк2");
Таб.Колонки.Добавить("ПлательщикБИК");
Таб.Колонки.Добавить("ПлательщикКорсчет");
Таб.Колонки.Добавить("ПолучательСчет");
Таб.Колонки.Добавить("Получатель");
Таб.Колонки.Добавить("ПолучательИНН");
Таб.Колонки.Добавить("Получатель1");
Таб.Колонки.Добавить("ПолучательРасчСчет");
Таб.Колонки.Добавить("ПолучательБанк1");
Таб.Колонки.Добавить("ПолучательБанк2");
Таб.Колонки.Добавить("ПолучательБИК");
Таб.Колонки.Добавить("ПолучательКорсчет");
Таб.Колонки.Добавить("ВидПлатежа");
Таб.Колонки.Добавить("ВидОплаты");
Таб.Колонки.Добавить("ПлательщикКПП");
Таб.Колонки.Добавить("Очередность");
Таб.Колонки.Добавить("НазначениеПлатежа");
Таб.Колонки.Добавить("НазначениеПлатежа1");
Таб.Колонки.Добавить("НазначениеПлатежа2");
Таб.Колонки.Добавить("НазначениеПлатежа3");
// перебор строк текстового документа
Для НомерСтроки=12 по Текст.КоличествоСтрок() Цикл
КонецДокумента=Найти(СтрСтр,"КонецДокумента");
// получить строку файла с указанным номером
СтрСтр = Текст.ПолучитьСтроку(НомерСтроки);
Для Каждого СтрСтр Пока КонецДокумента<> 1 Цикл
Позиция = Найти (СтрСтр, "=");
//Если //разделила границу нужно и не нужного
Строка1=Найти(СтрСтр,"Номер");
КонецДокумента=Найти(СтрСтр,"КонецДокумента");

Если Строка1=1 Тогда
Строка2=Сред(СтрСтр,Позиция+1); //сообщила нужное
Сообщить(Строка2);
Стр = Таб.Добавить();
Стр.Номер = Строка2;


КонецЕсли;
КонецЦикла;
2 фобка
 
20.12.15
09:15
"Для Каждого СтрСтр Пока КонецДокумента<> 1 Цикл "
Что это?
3 anisa8310
 
20.12.15
10:11
В строке есть слово"КонецДокумента" значит нужно снова вернуться в    чтение цикла
Номер
Дата
Плательщик...
...
КонецДокумента
Вот здесь уже новый документ пойдет
снова читаем и записываем в ТЗ НОмер дата и т.д
4 Amra
 
20.12.15
10:20
(3) Намекают что такая конструкция невозможна
5 фобка
 
20.12.15
10:41
(3) стереть все что написано после Таб.Колонки.Добавить("НазначениеПлатежа3"); и написать заново, последовательно, проговаривая каждый свой шаг про себя
6 RomanYS
 
20.12.15
10:43
цикл должен быть один

//цикл по строкам файла
...Цикл
...
если ЭтоПерваяСтрока(СтрокаТекста) тогда
СтрокаТЗ = ТЗ.Добавить();
иначеесли ЭтоСтрокаПоказателя(СтрокаТекста) тогда
УстановитьПоказатель(СтрокаТЗ, СтрокаТекста);
иначеесли ЭтоКонецДокумента(СтрокаТекста) тогда
//ничего не делаем
КонецЕсли;
КонецЦикла;
7 zak555
 
20.12.15
10:49
зачем это делать, если есть готовое ?
AdBlock убивает бесплатный контент. 1Сергей