|
Индекс за пределами границы массива | ☑ | ||
---|---|---|---|---|
0
Валидатор
24.10.13
✎
17:05
|
Пишу обработку по загрузке данных из тхт в документ:
ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Артикул",ОписаниеТиповС2 , "Код номенклатуры"); ТаблицаЗначений.Колонки.Добавить("Номенклатура",ОписаниеТиповС2 , "Описание номенклатуры"); ТаблицаЗначений.Колонки.Добавить("ГТД",ОписаниеТиповС2 , "ГТД"); ТаблицаЗначений.Колонки.Добавить("СтранаПроисхождения",ОписаниеТиповС2 , "Страна происхождения"); ТаблицаЗначений.Колонки.Добавить("ДатаНакладной",ОписаниеТиповД , "Дата накладной"); ТаблицаЗначений.Колонки.Добавить("НомерНакладной",ОписаниеТиповС2 , "НомерНакладной"); ТаблицаЗначений.Колонки.Добавить("Импортер",ОписаниеТиповС2 , "Импортер"); ТаблицаЗначений.Колонки.Добавить("Количество",ОписаниеТиповЧ , "Количество"); ТаблицаЗначений.Колонки.Добавить("Цена",ОписаниеТиповЧ , "Цена"); Текст = Новый ЧтениеТекста(ПутьКФайлу, "cp866"); Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл Стр = Текст.ПрочитатьСтроку(); МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,"¦"); НоваяТЗ = ТаблицаЗначений.Добавить(); Артикул = МассивСтрок[0]; НоваяТЗ.Артикул = Артикул; Номенклатура = МассивСтрок[1]; НоваяТЗ.Номенклатура = Номенклатура; ГТД = МассивСтрок[2]; НоваяТЗ.ГТД = ГТД; СтранаПроисхождения = МассивСтрок[3]; НоваяТЗ.СтранаПроисхождения = СтранаПроисхождения; ДатаНакладной = МассивСтрок[6]; НоваяТЗ.ДатаНакладной = ДатаНакладной; НомерНакладной = МассивСтрок[7]; НоваяТЗ.НомерНакладной = НомерНакладной; Импортер = МассивСтрок[8]; НоваяТЗ.Импортер = Импортер; Количество = МассивСтрок[9]; НоваяТЗ.Количество = Количество; Цена = МассивСтрок[10]; НоваяТЗ.Цена = Цена; КонецЦикла; И вылетает ошибка: {Форма.Форма.Форма(62)}: Индекс находится за границами массива Артикул = МассивСтрок[0]; как быть? Ошибка вылетает не сразу, сначала позиции просчитываются |
|||
1
Валидатор
24.10.13
✎
17:06
|
Стр принимает неопределено значение вот и ошибка( а как это обойти? условие писать? что если неопределено тогда конец типа цикла?
|
|||
2
zbv
24.10.13
✎
17:06
|
добавь проверку на пустую строку или пустой массив.
|
|||
3
salvator
24.10.13
✎
17:06
|
Запустить отладчик не предлагать?
|
|||
4
1dvd
24.10.13
✎
17:07
|
Почитай про конструкцию Если ... Тогда
Без неё очень трудно кодить |
|||
5
Валидатор
24.10.13
✎
17:07
|
А как дальше продолжить выполнение кода, если массив пустой? че то туплю
|
|||
6
Валидатор
24.10.13
✎
17:07
|
(4) да этой конструкцией и буду пользоваться
|
|||
7
zbv
24.10.13
✎
17:07
|
(1) Стр = Текст.ПрочитатьСтроку(); - перенеси в конец цикла, перед "КонецЦикла"
|
|||
8
lex-kex
24.10.13
✎
17:08
|
(5) Продолжить
|
|||
9
Валидатор
24.10.13
✎
17:08
|
(8) продолжить не срабатывает
|
|||
10
1dvd
24.10.13
✎
17:09
|
Пока Стр <> Неопределено Цикл
Стр = Текст.ПрочитатьСтроку(); МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,"¦"); Если МассивСтрок.Количество()>0 Тогда НоваяТЗ = ТаблицаЗначений.Добавить(); ... |
|||
11
Валидатор
24.10.13
✎
17:09
|
а во, норм все
|
|||
12
Валидатор
24.10.13
✎
17:09
|
спс
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |