Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 12:41

Итератор для значения не определен

Автор Sasha_Mur, 13 окт 2014, 11:33

0 Пользователей и 1 гость просматривают эту тему.

Sasha_Mur

Здравствуйте.
Конфигурация: 1С:Медицина. Зарплата и кадры бюджетного учреждения, редакция 1.0
Платформа:1С:Предприятие 8.2 (8.2.19.102)

Вылетает следующая ошибка:
Итератор для значения не определен
   Для Каждого ЭлМассива из СтруктураКолонок Цикл
Функция, в которой ошибка:
Функция ПрочитатьКлассификаторМедРаботниковXML(ИмяФайла, ПолучитьТаблицой = Ложь) Экспорт
СтруктураКолонокТаблиц = ПолучитьСтруктуруТаблицКлассификаторов();       
ТаблицаРезультат = Новый ТаблицаЗначений;
        Чтение = Новый ЧтениеXML;
        Чтение.ОткрытьФайл(ИмяФайла);
Чтение.Прочитать();
СтруктураКолонок = СтруктураКолонокТаблиц[Чтение.Имя];
    Для Каждого ЭлМассива из СтруктураКолонок Цикл
   ТаблицаРезультат.Колонки.Добавить(ЭлМассива.Ключ,ЭлМассива.Значение);
    КонецЦикла;
КонецФункции


ПолучитьСтруктуруТаблицКлассификаторов() выглядит следующим образом:
Функция ПолучитьСтруктуруТаблицКлассификаторов();
СтруктураКолонокБезИерархии = Новый Структура;
СтруктураКолонокБезИерархии.Вставить("ID",ОбщегоНазначенияЗК.ПолучитьОписаниеТиповЧисла(10));
СтруктураКолонокБезИерархии.Вставить("Name",ОбщегоНазначенияЗК.ПолучитьОписаниеТиповСтроки(254));

        СтруктураКолонокТаблиц = Новый Соответствие;
        СтруктураКолонокТаблиц.Вставить("ArrayOfCitizenship",СтруктураКолонокБезИерархии);

        Возврат СтруктураКолонокТаблиц;
КонецФункции;


Не могу понять что не так.

cska-fanat-kz

Какого типа у вас переменная СтруктураКолонок на момент исполнения цикла?
Предполагается что структура, но видимо это не так.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sasha_Mur

Структура колонок с типом "Неопределено". Хотя Чтение.Имя имеет строковое значение "ArrayOfСitizenship".

TreeDogNight

Так у вас же здесь соответствие, а не структура!
СтруктураКолонокТаблиц = Новый Соответствие;
        СтруктураКолонокТаблиц.Вставить("ArrayOfCitizenship",СтруктураКолонокБезИерархии);



Sasha_Mur

Цитата: TreeDogNight от 14 окт 2014, 09:31
Так у вас же здесь соответствие, а не структура!
СтруктураКолонокТаблиц = Новый Соответствие;
        СтруктураКолонокТаблиц.Вставить("ArrayOfCitizenship",СтруктураКолонокБезИерархии);


Может я чего-то не понимаю. В данной конструкции СтруктураКолонокБезИерархии - это структура. Далее в коде, я делаю поиск по ключу, т.о. у меня получается переменная типа Структура. Что вас смущает?

TreeDogNight

А почему вы сразу не передадите структуру?
  Функция ПолучитьСтруктуруТаблицКлассификаторов()
СтруктураКолонокБезИерархии = Новый Структура;   
    СтруктураКолонокБезИерархии.Вставить("ID",ОбщегоНазначенияЗК.ПолучитьОписаниеТиповЧисла(10));
    СтруктураКолонокБезИерархии.Вставить("Name",ОбщегоНазначенияЗК.ПолучитьОписаниеТиповСтроки(254));


        Возврат СтруктураКолонокБезИерархии;
КонецФункции;

cska-fanat-kz

проверьте чему равно 'СтруктураКолонокТаблиц["ArrayOfCitizenship"]'
то есть явно указать эту строку...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sasha_Mur

Цитата: cska-fanat-kz от 14 окт 2014, 13:37
проверьте чему равно 'СтруктураКолонокТаблиц["ArrayOfCitizenship"]'
то есть явно указать эту строку...

Если явно указать, то все нормально. Значение с типом структура.
Добавлено: 14 окт 2014, 16:16


А сразу не передать структуру, потому что в зависимости от значения ключа будет возвращаться своя структура.

TreeDogNight

Попробуйте вместо
СтруктураКолонок = СтруктураКолонокТаблиц[Чтение.Имя];
вот так
СтруктураКолонок = СтруктураКолонокТаблиц.Получить(Чтение.Имя);

cska-fanat-kz

а вот так:
СтруктураКолонок = СтруктураКолонокТаблиц[Строка(Чтение.Имя)];

?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск