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

1. Platon777 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 18 07.09.13 21:16 Сейчас в теме
На тебе правила, конечно без модификаций вряд ли тебе подойдут ЗУП > УПП, но как сделать вполне можно будет посмотреть. Как раз там есть примерчики подходящие.
kukaev-ali; +1 Ответить
8. Platon777 07.09.13 22:37 Сейчас в теме
(7) Xatori111, спасибо, только тут нету получения входящих данных из произвольного запроса... и типы источников и приемников совпадают... такие штуки для текущего проекта я уже сделал... тут все понятно... а вот что с моей проблемой делать ума не приложу... и ошибки, чувствую, глупейшие... просто к КД только- что судьба свела...
9. Xatori111 18 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 1039 30.05.19 13:13 Сейчас в теме
Продолжим славную традицию
17. dhurricane 30.05.19 13:43 Сейчас в теме
(16) Проблема по-прежнему актуальна? :)
18. signum2009 1039 30.05.19 13:48 Сейчас в теме
(17) да, редко приходится с КД 2 работать
Возникла при конвертации строки в элемент справочника.
19. dhurricane 30.05.19 13:52 Сейчас в теме
(18) Опишите, пожалуйста, подробнее Вашу ситуацию. Не хотелось бы что-то советовать, опираясь на описание проблемы шестилетней давности.
20. signum2009 1039 30.05.19 14:17 Сейчас в теме
(19) Проблема решена! Поскольку сам ненавижу тех, кто спрашивает, потом говорит что решил, но не говорит как, описываю ситуацию и решение.

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

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

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


И все)
user811769; Риф; user613191_olgargor; +3 Ответить
21. user613191_olgargor 31.05.19 22:53 Сейчас в теме
(20) Спасибо, что поделились решением :) Было полезно для меня!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот