Получение элемента по индексу для значения не определено

1. 07.09.13 15:00 Сейчас в теме
Господа! Помогите, пожалуйста! Второй день бъюсь над, чувствую что простым, затыком.
Суть: две разные отраслевые конфы. В приемнике - справочник ФизЛица, у которго есть реквизит "Гражданство"(СправочникСсылка.Гражданства), в источнике - регистр сведений "Гражданство физлиц" (Измерение-ФизЛицо(СправочникСсылка.ФизическиеЛица), Ресурс-Страна (СправочникСсылка.КлассификаторСтранМира)). При обмене мне нужно заполнить реквизит "Гражданство", основываясь на РС.
Сделал:
1) ПКО с пустым источником (Приемник-СправочникСсылка.ФизическиеЛица)
2)Сделал ПВД:
[
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГражданствоФизЛицСрезПоследних.ФизЛицо.Наименование КАК Наименование,
| ГражданствоФизЛицСрезПоследних.ФизЛицо.Код КАК Код,
| ГражданствоФизЛицСрезПоследних.Страна КАК Гражданство
|ИЗ
| РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних";
Выборка = Запрос.Выполнить().Выбрать();
ДатаВыгрузки = ТекущаяДата();
Пока Выборка.Следующий() Цикл
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Код", Строка(Выборка.Код));
ИсходящиеДанные.Вставить("Наименование", Выборка.Наименование);
ИсходящиеДанные.Вставить("Гражданство", Выборка.Гражданство.ПолучитьОбъект().Ссылка);

КонецЦикла;
ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ФизическиеЛица");
]

3) Сделал ПКС: рисунок снизу

4) Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1705)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = осн
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка получения свойства объекта из входящих данных
ПКО = ФизическиеЛица (:)
ПКС = 2 (--> Код)
Объект = РОССИЯ (Классификатор стран мира)
СвойствоПриемника = Код (Строка)
ОписаниеОшибки = Получение элемента по индексу для значения не определено
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270)
КодСообщения = 68
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1682)
КодСообщения = 31

Помогите разобраться, пожалуйста!!!
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. rosinfo1 07.09.13 16:25 Сейчас в теме
Х.з. как это делать в КД 2.0, я обычно решаю вопрос по частям.
1) Выгрузилось ли то что мне нужно в файл. Проверяется поиском реквизита в файле обмена, через любой XML редактор. Например XML Notpad
2) Загрузилось ли из файла. Ставлю точку останова при загрузке в базе приемнике, том месте где выдало ошибку, анализирую программный код. И только после этого лезу в КД 2.0 и исправляю там.
3. rosinfo1 07.09.13 16:27 Сейчас в теме
Так, у тебя ошибка при выгрузке, ставь там точку остановки и смотри что возвращает запрос.
4. Platon777 07.09.13 16:55 Сейчас в теме
Файла выгрузки нет. Ошибка при выгрузке данных. Не хочет он данные собирать для ХМЛ...
А запрос выкидывает то, что нужно... С помощью точки останова в обработке выгрузки XML я буду ооооочень долго искать затык...
5. rosinfo1 07.09.13 18:44 Сейчас в теме
Выгрузки нет, т.к. где-то в коде ошибка, это только кажется, что отладчиком очень долго искать, при определенной сноровке уйдет минут 20. Ошибка при выгрузке данных ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1705)} В этом месте, а далее вверх по коду.
Зато потом становится прозрачно и понятно, как работают правила.
"ОписаниеОшибки = Получение элемента по индексу для значения не определено," Вот эту ошибку и нужно копать. Хотя бы по гуглить для начала.
6. rosinfo1 07.09.13 18:55 Сейчас в теме
| РегистрСведений.ГражданствоФизЛиц.СрезПоследних(параметры отбора), см. синтаксис помошник
7. Xatori111 21 07.09.13 21:16 Сейчас в теме
На тебе правила, конечно без модификаций вряд ли тебе подойдут ЗУП > УПП, но как сделать вполне можно будет посмотреть. Как раз там есть примерчики подходящие.
kukaev-ali; +1 Ответить
8. Platon777 07.09.13 22:37 Сейчас в теме
(7) Xatori111, спасибо, только тут нету получения входящих данных из произвольного запроса... и типы источников и приемников совпадают... такие штуки для текущего проекта я уже сделал... тут все понятно... а вот что с моей проблемой делать ума не приложу... и ошибки, чувствую, глупейшие... просто к КД только- что судьба свела...
9. Xatori111 21 07.09.13 23:52 Сейчас в теме
(8) я просто по другому бы наверное задачу делал, переносил бы Физ лица, а от них уже цеплял данные от регистра сведений (всё равно же их тащить), а если так дела в примерчике найдёшь как в РС запись сделать.

П.С. Только что увидел, у тебя Гражданство > Приемник Справочник.Гражданство, а ты поставил ПКО ФИз лица, конечно так не взлетит (Грубо ты пытаешься заполнить справочник гражданство по ПКО для Физических лиц).

Наверное правильнее было бы сделать структуру,
Переносишь Физ лица, к ним цепляется РС, а из РС выйдешь на справочник Гражданство, и всё перенесётся, а если надо не все физ лица переносить, Универсальный обмен даёт довольно гибкий механизм отбора (Кстати можно без проблем заполнить программно)
Platon777; +1 Ответить
10. Platon777 10.09.13 00:43 Сейчас в теме
(9) Xatori111, спасибо! Все сделал, но, наверно чуть-чуть по другому... Попозже закину, как решал
11. shoy 19 03.09.14 16:01 Сейчас в теме
(10) Platon777, незакинул! Обманул!
STivO; Anna_arbuz; Gendelf; jaroslav.h; +4 Ответить
12. Abbra 23 16.09.15 09:38 Сейчас в теме
(11) shoy, Ну будем раз в год напоминать тогда
13. rrrrrr79 05.10.15 14:02 Сейчас в теме
14. suxo 12.01.17 00:06 Сейчас в теме
Да уж. мог бы и написать :( такая же беда. ждем.
Anna_arbuz; +1 Ответить
15. 1c_uZer 20.06.18 13:39 Сейчас в теме
да...вот увы но очень актуально...=)
Anna_arbuz; user811769; +2 Ответить
16. signum2009 960 30.05.19 13:13 Сейчас в теме
Продолжим славную традицию
17. dhurricane 30.05.19 13:43 Сейчас в теме
(16) Проблема по-прежнему актуальна? :)
18. signum2009 960 30.05.19 13:48 Сейчас в теме
(17) да, редко приходится с КД 2 работать
Возникла при конвертации строки в элемент справочника.
19. dhurricane 30.05.19 13:52 Сейчас в теме
(18) Опишите, пожалуйста, подробнее Вашу ситуацию. Не хотелось бы что-то советовать, опираясь на описание проблемы шестилетней давности.
20. signum2009 960 30.05.19 14:17 Сейчас в теме
(19) Проблема решена! Поскольку сам ненавижу тех, кто спрашивает, потом говорит что решил, но не говорит как, описываю ситуацию и решение.

Задача: из базы источник переносим в базу приемник документ "Суточный рапорт", в котором есть поле Маршрут. Это поле маршрут является ссылкой на справочник Маршруты и в приемнике и в источнике, но связать их ни как не получается из-за разного подхода в базах: в базе приемнике маршруты кратны подразделениями, а в базе источник один маршрут на все подразделения. Поэтому в базе источнике сделан РС, который по сути и синхронизирует маршруты для обоих баз. Поэтому при выгрузке рапорта нужно было брать маршрут и подразделение источника, находить название в РС для приемника и уже по этому названию искать нужный маршрут в приемнике.

Что было сделано:
1) Создано ПКО с пустым источником и приемником ссылкой на справочник маршрут
2) В ПКО из п.1. создано единственное ПКС с пустым источником и приемником "Код", поставлен флаг поиска
3) В ПКО рапорта создано ПКС с пустым источником, с приемником Маршрут и с правилом, созданным в п.1
4) В событии При выгрузке ПКС из п.3 сделан запрос к РС и написан следующий код

	Значение = Новый Структура;
	Значение.Вставить("Код",Выборка.НазваниеВЗУП);


И все)
Риф; user613191_olgargor; +2 Ответить
21. user613191_olgargor 31.05.19 22:53 Сейчас в теме
(20) Спасибо, что поделились решением :) Было полезно для меня!
Оставьте свое сообщение
Вакансии
Программист 1С
Рязань
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Архитектор 1С
Обнинск
зарплата от 150 000 руб. до 350 000 руб.
Полный день

Программист 1С
Обнинск
зарплата от 200 000 руб.
Полный день

Консультант-аналитик 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день