|
Загрузка в ТЗ из txt с разделителями | ☑ | ||
---|---|---|---|---|
0
Tumakota
04.12.12
✎
10:06
|
Всем доброго времени суток, вот код заполнения таблицы
Процедура ЗаполнитьТаблицу() текст = Новый ТекстовыйДокумент; Попытка //обязательно устанавливаем кодировку, в которой наш файл текст.Прочитать(Файл,КодировкаТекста.UTF8); Исключение Сообщить("Не удалось прочитать файл: " + ОписаниеОшибки(),СтатусСообщения.ОченьВажное); Возврат; КонецПопытки; Объект.ТЗНастройки.Очистить();//очищаем таблицу квоСтрок = текст.КоличествоСтрок(); Если Не квоСтрок > 0 Тогда Сообщить("Файл пустой",СтатусСообщения.Внимание); Возврат; КонецЕсли; //получаем первую строку с форматом файла стрТекста = текст.ПолучитьСтроку(1); //преобразуем строку в массив при помощи функции общего модуля, которая есть в типовых //ниже я дам её код, на случай, если нет масЗначСтр = РазложитьСтрокуВМассивПодстрок(стрТекста,разделительПолей); Для каждого зн Из масЗначСтр Цикл //убираем лишний символОграничения значение = СтрЗаменить(зн,символОграничения,""); //кол = Объект.ТЗНастройки.Добавить(значение); КонецЦикла; //создаём колонки в табличном поле //Объект.ТЗНастройки.Добавить(); //начиная со второй строки читаем строки файла, раскладывая их в массив Для номСтр = 2 По квоСтрок Цикл стрТекста = текст.ПолучитьСтроку(номСтр); масЗначСтр = РазложитьСтрокуВМассивПодстрок(стрТекста,разделительПолей); //добавляем новую строку в таблицу новСтр = Объект.ТЗНастройки.Добавить(); //новСтр.НомерСтроки = номСтр; //начиная с третьей колонки производим установку значений в колонки номЗнач = 2; Для каждого зн Из масЗначСтр Цикл новСтр[номЗнач] = СтрЗаменить(зн,символОграничения,""); номЗнач = номЗнач + 1; КонецЦикла; КонецЦикла; КонецПроцедуры при обработке выдает ошибку: "Получение элемента по индексу для значения не определено новСтр[номЗнач] = СтрЗаменить(зн,символОграничения,"");" Но вот понять не могу, на УТ 10.3 работает, а вот на Рознице.Аптека 2.0 выдает такую ошибку:( |
|||
1
Wobland
04.12.12
✎
10:07
|
вас понял
|
|||
2
mikecool
04.12.12
✎
10:07
|
новСтр не имеет индекса
|
|||
3
cw014
04.12.12
✎
10:07
|
Отладчиком пользоваться учили?
|
|||
4
mikecool
04.12.12
✎
10:08
|
(3) миста - лучший отладчик (с) не знаю, чье
|
|||
5
Рэйв
04.12.12
✎
10:11
|
номЗнач = 2;
Для каждого зн Из масЗначСтр Цикл новСтр[Объект.ТЗНастройки.Колонки[номЗнач].Имя] = СтрЗаменить(зн,символОграничения,""); номЗнач = номЗнач + 1; КонецЦикла; Только границу индексов проверяй. |
|||
6
cw014
04.12.12
✎
10:12
|
(2) Ну если на УТ работает, то либо для УТ нет данных, либо все таки у строки ТЧ есть возможность по индексу колонки обратиться к свойству, а не по его имени
|
|||
7
Reset
04.12.12
✎
10:13
|
(0) В Рознице.Аптека 2.0 для элемента коллекции Объект.ТЗНастройки не определено получение элемента по индексу
|
|||
8
Reset
04.12.12
✎
10:13
|
или (6) :)
квоСтрок<2 в УТ ;) |
|||
9
Reset
04.12.12
✎
10:14
|
или масЗначСтр - пустой
|
|||
10
Reset
04.12.12
✎
10:16
|
А серьезно - к строке ТЧ нельзя обращаться по индексу
|
|||
11
Tumakota
04.12.12
✎
10:18
|
(5) Если как вы написали то ошибка что поле объекта Колонки не найдены
|
|||
12
Reset
04.12.12
✎
10:20
|
Для метода как (5) нужно имена колонок или из метаданных брать или (имхо некрасиво) из связанного ТП
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |