Имя: Пароль:
1C
1С v8
Конвертация данных, ВыгрузитьПоПравилу, РС СоответствиеОбъектовИнформационныхБаз
,
0 lg2marvel
 
02.03.21
11:49
Всем привет. Старая тема немного потеряла актуальность, вопрос пока не решен, прошу помощи повтороно.

Конвертация данных. Задача из документа источника (поступление товаров услуг) передавать в документ приемник (некий документ операция упр), документы по своей структуре различаются.

Способ решения: в ПВД ПослуплениеТоваровУслуг в обработчике ПередВыгрузкой собираются данные из документа источника в структуру ВходящиеДанные и в конце

// выгружаем в ПКО ОперацияУПР
ВыгрузитьПоПравилу(Объект.Ссылка,,ВходящиеДанные,,"ОперацияУПР");
// прерываем дальнейшую обработку
Отказ = Истина;

ПКО ОперацияУПР все свойства получаем из входящих данных.

В итоге - документ обменом передается, документы снимаются с регистрации при повторном запуске, т.е. механизм работает. В базе приемнике в регистре СоответствиеОбъектовИнформационныхБаз создается запись, где указаны ссылки, но не заполняется тип приемника.
И при обмене в базе источнике ошибка в журнале регистрации:

Значение не является значением объектного типа (Менеджер)
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(8978)}:    УникальныйИдентификаторИсточника = СтруктураСвойств.Менеджер.ПолучитьСсылку(УникальныйИдентификаторИсточника);

источник ошибки из отладчика:

Обработка.КонвертацияОбъектовИнформационныхБаз
Функция ПрочитатьИнформациюОРегистрацииОбъекта()
    // Присваиваем ПЕРЕКРЕСТНЫЕ значения переменным; РС симметричен.
    УникальныйИдентификаторПриемника = одАтрибут(ФайлОбмена, ТипСтрока, "УникальныйИдентификаторИсточника");
    УникальныйИдентификаторИсточника = одАтрибут(ФайлОбмена, ТипСтрока, "УникальныйИдентификаторПриемника");
    ТипПриемника                     = одАтрибут(ФайлОбмена, ТипСтрока, "ТипИсточника");
    ТипИсточника                     = одАтрибут(ФайлОбмена, ТипСтрока, "ТипПриемника");
    ПустойНабор                      = одАтрибут(ФайлОбмена, ТипБулево, "ПустойНабор");
Идентификаторы есть, ТипПриемника есть, ТипИсточника - нет
1 Ёпрст
 
02.03.21
11:53
(0) а обмен через чего хоть ? через универсальнуюзагрузкувыгрузку или обменчерез планы обмена ?
2 lg2marvel
 
02.03.21
11:57
(1) через планы обмена, конвертация 2.1
3 Ёпрст
 
02.03.21
12:00
(2) если через планы обмена, то ПВД там вообще не учитываются.. только для какой-то версии бсп пвд работают.
4 Ёпрст
 
02.03.21
12:01
И.. проще ЭТО сделать через ПКО .
5 lg2marvel
 
02.03.21
12:03
(3) (4) Сделаю тест через ПКО, но не уверен что-то изменится
6 lg2marvel
 
02.03.21
12:07
(4) почитал описание обработчика, да, возможно, попробую. Спасибо
7 Pro-tone
 
02.03.21
12:13
(3) все зависит от того что стоит в ПВД в "Способ выборки". Если "произвольный алгоритм" то учитывается. Выборка по планам обмена идет если в ПВД стоит "Стандартная выборка".
8 lg2marvel
 
02.03.21
12:15
(7) да, произвольный алгоритм
9 Ёпрст
 
02.03.21
13:43
(7) ээ..так что учитывается, а что не учитывается то в итоге ?
10 Ёпрст
 
02.03.21
13:43
)
11 lg2marvel
 
02.03.21
14:52
(9) если старндартная выборка  - не учитывается
Если произвольный алгоритм - учитывается, можно задать свой запрос для выборки данных
Переделал через ПКО, пока в процессе отладки заполнения свойств
12 lg2marvel
 
02.03.21
15:40
все ок, переделал через ПКО
13 lg2marvel
 
02.03.21
15:40
спасибо
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.