Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Замена Справочника при выгрузке данных

Замена Справочника при выгрузке данных
Я
   Amfiaray
 
29.02.20 - 20:01
Добрый день!

Перенос кадровых документов из 1С ЗУП 2.5 для Казахстана в 1С КУФИБ 3

Конфигурации сильно отличаются между собой по метаданным, сделал правила для переноса документов "Прием на работу".
В ПВД для "Прием на работу" написал правило для выгрузки только нужных документов.
В ПКО справочника "Физические лица" написал в обработчике "Перед выгрузкой" заполнение ТЗ со структурой как в справочнике приемнике и присвоил "ИсходящиеДанные = Моя ТЗ".
При выгрузке данных выходит ошибка
        Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1593)}: Ошибка получения свойства объекта из входящих данных
    ПКО                    =  ФизическиеЛица  (Справочник: Физические лица)
    ПКС                    =  1  (--> Код)
    Объект                 =  Конирбаев Бисен Аманышович  (Физические лица)
    СвойствоПриемника      =  Код  (Строка)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8202)
    КодСообщения           =  68

Подскажите в чем ошибка? С конвертацией данных работаю первый раз, так что сильно не пинайте )
   RomanYS
 
1 - 29.02.20 - 20:14
почитай описание обработчиков. Навскидку вот это выглядит подозрительно:
"В ПКО справочника "Физические лица" написал в обработчике "Перед выгрузкой" заполнение ТЗ со структурой как в справочнике приемнике и присвоил "ИсходящиеДанные = Моя ТЗ"."

ПКО по идее для одного объекта, ТЗ быть не должно
   Amfiaray
 
2 - 29.02.20 - 20:16
(1) ИсходящиеДанные - Произвольный - произвольные вспомогательные данные. Данные передаются по следующим правилам:

1.      ПВД.ИсходящиеДанные -> ПКО.ВходящиеДанные

2.      ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные

3.      ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные

а в каком виде передать? сейчас попробую структурой.
   welwel
 
3 - 29.02.20 - 20:20
заполнение ТЗ
По логике в ПВД должно быть

А в ПКО может вообще достаточно реквизиты источника и приемника сопоставить и без кода обойтись
   welwel
 
4 - 29.02.20 - 20:22
ИсходящиеДанные/Входящиеданные немного для другого нужны: передавать поля, которые не сопоставить
   welwel
 
5 - 29.02.20 - 20:25
В ПВД ПередОбработкой определить КоллекцияОбьектов, как массив ссылок справочника источника
(2)
   Amfiaray
 
6 - 29.02.20 - 20:26
(3) не получается сопоставить, в приемнике полей больше чем в источнике, в источнике эти данные хранятся в регистрах сведений
   Amfiaray
 
7 - 29.02.20 - 20:26
(4) Ну вот у меня они и не сопоставились
   welwel
 
8 - 29.02.20 - 20:31
(6) можно все тогда поля приемника в пко указать Получить из входящих данных
В пвд передобработкой отказ=истина и свой алгоритм с обходом выборки и выгрузитьпоправилу, где как ИсходящиеДанные передается структура, которая будет Входящиеданные для пко
   welwel
 
9 - 29.02.20 - 20:32
Пример в справке по обработчикам в кд2
   welwel
 
10 - 29.02.20 - 20:36
Здесь вроде разжевано ещё 
http://catalog.mista.ru/public/1195038/
   Amfiaray
 
11 - 29.02.20 - 20:36
(8) В ПВД для справочника? Если для справочника. то как определить ссылка на какой элемент выгружается? ведь справочник выгружается по ссылке
   welwel
 
12 - 29.02.20 - 20:42
(11) да
Если справочник выгружается по ссылке, например, как реквизит документа, то исходящиеданные определяются/заполняются/передаются в передвыгрузкой пкс реквизита пко этого документа
   welwel
 
13 - 29.02.20 - 20:46
К книге Бояркин Филатов Конвертация данных
демобаза есть, емнип там можно подглядеть еще по этой теме
   Amfiaray
 
14 - 29.02.20 - 20:50
(13) Спасибо, буду разбираться
   welwel
 
15 - 29.02.20 - 20:51
Вообще с нуля писать такое - занятие неблагодарное. Возможно есть правила переноса либо из нужного источника во что-то, либо в нужный приёмник из чего-то. Последнее полезнее: можно увидеть необходимые для заполнения поля и обработчики послезагрузки.
Либо курить правила для похожего приемника.
   welwel
 
16 - 29.02.20 - 20:55
Есть ещё в кд2 кнопка полезная "Скопировать с заменой конвертации", которая копирует пко из одной конвертации в другую - так можно "надергать" из образца в свою конвертацию нужные пко для своего переноса. Обе конвертации должны быть в одной базе кд2.
   welwel
 
17 - 29.02.20 - 20:59
+ (16) и останется лишь подправить пкс, обработчики.
   welwel
 
18 - 29.02.20 - 21:02
И при ошибках на кофейной гуще не гадать, а сразу использовать режим отладки и в отладчик. Прямо начиная с ВыгрузитьПоПравилу - код там достаточно понятный.
   Amfiaray
 
19 - 29.02.20 - 21:29
Не смог найти правила для КУФИБа
   Amfiaray
 
20 - 29.02.20 - 21:29
не так часто его у нас внедряют и используют
   welwel
 
21 - 29.02.20 - 21:55
Возможно, есть правила для типового 1С ЗУП для Казахстана. Макет правил обычно в конфигурации.
   welwel
 
22 - 29.02.20 - 22:01
(11) если выгружается выборка документов, то можно в пвд определить структуру исходящиеданные со всеми данными физлиц - она будет доступна и в пкс, как Входящиеданные - в ней можно найти данные для нужного физлица и передать уже через исходящиеданные в пко физлица
   welwel
 
23 - 29.02.20 - 22:08
(22) передать уже через исходящиеданные в пко физлица
В обработчике передвыгрузкой соотв-го пкс


Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.