1nasty1
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Помогите пожалуйста, с таким вопросом: Есть обработка: Код: Процедура Заполнить(ДокументОбъект,ТабЧасть) Экспорт Перем Файл; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл"; Диалог.ПолноеИмяФайла = ""; Фильтр = "TXT (*.TXT)|*.TXT"; Диалог.Фильтр = Фильтр; Диалог.МножественныйВыбор = Ложь; Если Диалог.Выбрать() Тогда Файл = Диалог.ПолноеИмяФайла; КонецЕсли; Счетчик = 1; мЧтение = Новый Массив; рМассив = Новый Массив; Текст = Новый ТекстовыйДокумент; Попытка Текст.Прочитать(Файл,"iso-8859-5", Символы.ПС); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Для Номер = 1 По Текст.КоличествоСтрок() Цикл Если Номер = 1 Тогда Продолжить; КонецЕсли; Стр = Текст.ПолучитьСтроку(Номер); мЧтение.Добавить(Стр); Если СокрЛП(Стр) = "03" ИЛИ СокрЛП(Стр) = "#joborder complete#" Тогда Если мЧтение.Количество()>1 Тогда Результат = ПарсингРезультата(мЧтение,Счетчик); Если Результат.Количество() > 0 Тогда рМассив.Добавить(Результат); КонецЕсли; Счетчик = Счетчик + 1; мЧтение.Очистить(); Иначе мЧтение.Очистить(); КонецЕсли; КонецЕсли; Для Каждого СтрокаТЧ Из рМассив Цикл //Сообщить(""+СтрокаТЧ.Работа+" "+СтрокаТЧ.НЧ+""); ТекНоменклатура = Справочники.Автоработы.НайтиПоНаименованию(СокрЛП(СтрокаТЧ.Работа)); Если ТекНоменклатура <> Справочники.Автоработы.ПустаяСсылка() Тогда Нов = ДокументОбъект.Работы.Добавить(); Нов.Работа = ТекНоменклатура; Нов.Количество = 1; Нов.Коэффициент = 1; ДокументОбъект.ОбработкаРеквизита("Работы.Работа",Нов,); Иначе Сообщить("НЕ найдена работа: "+СтрокаТЧ.Работа+" "+СтрокаТЧ.НЧ+" строка НЕ добавлена"); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Функция ПарсингРезультата(Массив,Счетчик) рСтруктура = Новый Структура; // Это работа Если Счетчик <> 1 Тогда Попытка рСтруктура.Вставить("Номер",Массив[0]+"-"+Массив[1]+"-"+Массив[2]); Исключение КонецПопытки; Попытка рСтруктура.Вставить("НЧ",Число(Массив[3])/10); Исключение рСтруктура.Вставить("НЧ",0); КонецПопытки; // Получаем работу НомерСтроки = 6; Работа = ""; Пока НомерСтроки < Массив.Количество() Цикл Стр = СокрЛП(Массив[НомерСтроки]); Если Стр <> "03" И Стр <> "#joborder complete#" Тогда Работа = Работа + Стр+" "; КонецЕсли; НомерСтроки = НомерСтроки + 1; КонецЦикла; Попытка рСтруктура.Вставить("Работа",Работа); Исключение КонецПопытки; КонецЕсли; Возврат рСтруктура; КонецФункции | Вот так визуально выглядят данные, которые должна загрузить обработка: Эти же данные, но уже в готовом к загрузке текстовом формате: Код: VERSION=1 01 00 26.01.2020 01:03 WDB2110161A031891 00 22 10 28 211 E-класс 13 E 270 CDI E 270 CDI 647961 03 03 3000 06 015 0 R Передний сальник коленчатого вала (со стороны ременного привода): заменить 03 03 1284 02 003 0 R Ременный шкив коленчатого вала с демпфером снять, установить, по результатам осмотра заменить (двигатель снят) 03 03 3013 01 002 0 R Передний сальник коленчатого вала (со стороны ременного привода): заменить (доступ обеспечен) 03 03 6111 01 ZM 0 R Шатуны (все): измерить соосность отверстий (шатун снят) 03 03 7061 04 023 0 R Поршни (все): снять и установить (двигатель и головка цилиндров сняты) 03 14 1310 04 027 0 R Впускной коллектор снять, установить #joborder complete# | и есть результат загрузки: Код: НЕ найдена работа: стороны ременного привода): заменить 0 строка НЕ добавлена НЕ найдена работа: стороны ременного привода): заменить 0 строка НЕ добавлена НЕ найдена работа: стороны ременного привода): заменить 0 строка НЕ добавлена НЕ найдена работа: стороны ременного привода): заменить 0 строка НЕ добавлена НЕ найдена работа: стороны ременного привода): заменить 0 строка НЕ добавлена ........... НЕ найдена работа: соосность отверстий (шатун снят) 0 строка НЕ добавлена НЕ найдена работа: (двигатель и головка цилиндров сняты) 0 строка НЕ добавлена НЕ найдена работа: Впускной коллектор снять, установить 2,7 строка НЕ добавлена | Я так понимаю, что обработка не может справиться с форматированием строк и пытается загрузить целое частями. как исправить эту проблему? | Всего записей: 751 | Зарегистр. 11-03-2005 | Отправлено: 01:19 26-01-2020 | Исправлено: 1nasty1, 00:00 28-01-2020 |
|