Имя: Пароль:
1C
1С v8
КД - составной тип данных
0 VladSt
 
10.11.15
19:18
Добрый день
Выгружаю из одной табличной части в другую данные. Реквизит Номенклатура - составной (Справочник.Материалы, Справочник.МатериалыСоставЛаборатории).
Если в ПКС указываю на ПКО Номенклатура_Материалы, то все работает:
[img]http://i.imgur.com/EcI9nL7.png[/img]
если же хочу в зависимости от типа значения отправить в другое ПКО, то ошибка. Для упрощения, даже если хочу указать программно ПКО:
[img]http://i.imgur.com/zSpqnQe.png[/img]

Ошибка такая:
Начало выгрузки:   10.11.2015 19:03:11

Ошибка получения значения свойства объекта (по имени свойства источника)
    ПКО                    =  Номенклатура_Материалы  (:)
    ПКС                    =  2  (Код --> Код)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Код  (Строка)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(8323)
    КодСообщения           =  13

Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  уатТТД_РасходнаяНакладнаяБСУ  (:)
    ПКС                    =  29  (--> Номенклатура)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка получения значения свойства объекта (по имени свойства источника)
    ПКО                    =  Номенклатура_Материалы  (:)
    ПКС                    =  2  (Код --> Код)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Код  (Строка)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(8323)
    КодСообщения           =  13
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1672)
    КодСообщения           =  55

Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
    ПВД                    =  РасходнаяНакладнаяБСУ
    Обработчик             =  ПередОбработкойВыгрузкиДанных
    ОписаниеОшибки         =  Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  уатТТД_РасходнаяНакладнаяБСУ  (:)
    ПКС                    =  29  (--> Номенклатура)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка получения значения свойства объекта (по имени свойства источника)
    ПКО                    =  Номенклатура_Материалы  (:)
    ПКС                    =  2  (Код --> Код)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Код  (Строка)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(8323)
    КодСообщения           =  13
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1672)
    КодСообщения           =  55
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1672)
    КодСообщения           =  31

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1695)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
    ПВД                    =  РасходнаяНакладнаяБСУ
    Обработчик             =  ПередОбработкойВыгрузкиДанных
    ОписаниеОшибки         =  Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  уатТТД_РасходнаяНакладнаяБСУ  (:)
    ПКС                    =  29  (--> Номенклатура)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка получения значения свойства объекта (по имени свойства источника)
    ПКО                    =  Номенклатура_Материалы  (:)
    ПКС                    =  2  (Код --> Код)
    Объект                 =    (Неопределено)
    СвойствоПриемника      =  Код  (Строка)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(8323)
    КодСообщения           =  13
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1672)
    КодСообщения           =  55
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1672)
    КодСообщения           =  31

Помогите разобраться
1 MaxS
 
10.11.15
19:21
Зачем так сложно? Почитайте в справке про ИмяПКО
2 VladSt
 
10.11.15
19:24
Так я же и указываю ПКО, но если я его программно устанавливаю
ВыгрузитьПоПравилу(, , ОбъектКоллекции.Изделие, , "Номенклатура_Материалы");
, то не работает ((
3 VladSt
 
10.11.15
19:56
Сделал передавать структурой, тоже не работает:
[img]http://i.imgur.com/fK1s75l.png[/img]
причем проходит п.1 и п.2
[img]http://i.imgur.com/QrhYYBc.png[/img]
4 VladSt
 
10.11.15
20:08
вот так правильно:
Значение = ОбъектКоллекции.Изделие;
Если (ТипЗнч(ОбъектКоллекции.Изделие)) = Тип("СправочникСсылка.Материалы") Тогда
    ИмяПКО = "Номенклатура_Материалы";
    
ИначеЕсли (ТипЗнч(ОбъектКоллекции.Изделие)) = Тип("СправочникСсылка.МатериалыСоставЛаборатории") Тогда
    ИмяПКО = "Номенклатура_МатериалыСоставЛаборатории";
Иначе
    Отказ = Истина;
    Сообщить("Не известная номенклатура: " + ОбъектКоллекции.Изделие);    
КонецЕсли;    
(1) Спасибо!