|
Процедура или функция с указанным именем не определена | ☑ | ||
---|---|---|---|---|
0
iiwanc
07.09.24
✎
13:53
|
Здравствуйте!
Учусь. Делаю задание, но не могу найти ошибку. Цель: Создание механизма импорта данных. Задача заключается в импорте данных для справочников Пишу: &НаСервере Процедура ПрочитатьФайлНаСервере() ТекстовыйДокумент = Новый ТекстовыйДокумент; //1.Путь к файлу ТекстовыйДокумент.Прочитать(ПутьКФайлу); ВсегоСтрок = ТекстовыйДокумент.КоличествоСтрок(); //2. Подсчет количества строк Счетчик =2; ТЗ = Новый ТаблицаЗначений; //4.Заголовки таблицы значений ТЗ.Колонки.Добавить("Код"); ТЗ.Колонки.Добавить("Товар"); ТЗ.Колонки.Добавить("Описание"); ТЗ.Колонки.Добавить("Категория"); ТЗ.Колонки.Добавить("Поставщик"); ТЗ.Колонки.Добавить("Город"); Пока Счетчик <= ВсегоСтрок Цикл //5.Разделитель данных и массива в цикле Строка = ТекстовыйДокумент.ПолучитьСтроку(Счетчик); Массив = СтрРазделить(Строка, ";"); НоваяСтрокаТЗ=ТЗ.Добавить(); НоваяСтрокаТЗ.Код = Массив(0); НоваяСтрокаТЗ.Товар = Массив (1); НоваяСтрокаТЗ.Описание = Массив (2); НоваяСтрокаТЗ.Категория = Массив (3); НоваяСтрокаТЗ.Поставщик = Массив (4); НоваяСтрокаТЗ.Город = Массив (5); Счетчик=Счетчик+1; КонецЦикла; НоваяТЗ=ТЗ.Скопировать(); //6.Импорт данных НоваяТЗ.Свернуть("Код, Товар, Описание, Категория, Поставщик, Город"); Для каждого Стр Из НоваяТЗ Цикл НайденныйГород=Справочники.Города.НайтиПоНаименованию(Стр.Город); Если НайденныйГород=Справочники.Города.ПустаяСсылка() Тогда НовыйГород=Справочники.Города.СоздатьЭлемент(); НовыйГород.Наименование=Стр.Город; НовыйГород.Записать(); НайденныйГород=НовыйГород.Ссылка; КонецЕсли; НайденнаяФирма=Справочники.Фирмы.НайтиПоНаименованию(Стр.Поставщик); Если НайденнаяФирма = Справочники.Фирмы.ПустаяСсылка() тогда НоваяФирма=Справочники.Фирмы.СоздатьЭлемент(); НоваяФирма.Наименование=Стр.Поставщик; НоваяФирма.Записать();; НайденнаяФирма=новаяФирма.Ссылка; КонецЕсли; НайденныйТовар=Справочники.Товары.НайтиПоНаименованию(Стр.Товар); Если НайденныйТовар=Справочники.Товары.ПустаяСсылка() тогда НовыйТовар=Справочники.Товары.СоздатьЭлемент(); НовыйТовар.Код=Стр.Код; НовыйТовар.Наименование=Стр.Товар; НовыйТовар.Описание=Стр.Описание; Попытка //Если Значения перечисления нет, выдаем ошибку НовыйТовар.Категория=Перечисления.Категории[Стр.категория]; Исключение Сообщить("Категория " +Стр.Категория+" не найдена"); КонецПопытки; НовыйТовар.ОсновнойПоставщик=НайденнаяФирма; НовыйТовар.Записать(); найденныйТовар=новыйТовар.Ссылка; КонецЕсли; КонецЦикла; Сообщить ("Импорт в справочник Товары выполнен"); КонецПроцедуры Получаю: {Обработка.ИмпортИзФайлаТовары.Форма.Форма.Форма(27,28)}: Процедура или функция с указанным именем не определена (Массив) НоваяСтрокаТЗ.Описание = <<?>>Массив (2); (Проверка: Сервер) В чем моя ошибка? Подскажите, пожалуйста. Буду благодарен за советы. |
|||
1
ЕRPe
07.09.24
✎
13:59
|
аккуратнее - () в 1с это вызов метода, потому либо Массив[2], Массив.Получить(2)
|
|||
2
Волшебник
07.09.24
✎
14:04
|
(0) Как Вы дошли до пункта 6, если в пункте 5 у вас синтаксические ошибки?
тупой бот |
|||
3
craxx
07.09.24
✎
14:58
|
(2) Так ему про эту ошибку как раз и орет система. Хотя странно, система должна была ругнуться двумя строками выше.
(0) обращение к элементу массива через квадратные скобки идет. |
|||
4
iiwanc
07.09.24
✎
15:39
|
(1) , (3) спасибо.
До этого правильно писал в квадратные скобки. Были другие ошибки, исправлял их и попутно в круглые скобки обращение к элементу массива переписал. |
|||
5
Волшебник
07.09.24
✎
15:52
|
(4) это грибы...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |