Имя: Пароль:
1C
1С v8
Конвертация данных. ошибка при выгрузке
,
0 боксер
 
23.03.15
10:19
нужно выгружать контрагентов с договорами по определенной организации.
Сделал, но выгружает у таких контрагентов в основной договор, договоры по прочим организациям.
В ПКО свойства Контрагента "ОсновнойДоговорКонтрагента" перед выгрузкой добавил код:

Если значениезаполнено(Источник) тогда
Если не Источник.этогруппа и значениезаполнено (Источник.организация) тогда
    сообщить(Источник);
    Отказ = Источник.организация.код<>"000000006";
конецесли;
конецесли;

Ошибка при выгрузке:
Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1693)}: Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  Контрагенты  (Справочник: Контрагенты)
    ПКС                    =  25  (ОсновнойДоговорКонтрагента --> ОсновнойДоговорКонтрагента)
    Объект                 =  ВЕГА-прибор  ООО   (Контрагент)
    СвойствоПриемника      =  ОсновнойДоговорКонтрагента  (СправочникСсылка.ДоговорыКонтрагентов)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Поле объекта не обнаружено (организация)
1 Godofsin
 
23.03.15
10:20
(0) Патамушта источник это контрагент
2 Господин ПЖ
 
23.03.15
10:20
>Поле объекта не обнаружено (организация)

какая буква не понятна?
3 Godofsin
 
23.03.15
10:21
Замени на Источник.ОсновнойДоговор.
4 PCcomCat
 
23.03.15
10:24
Не заполнен ОсновнойДоговорКонтрагента
5 боксер
 
23.03.15
10:27
разобрался, источник оказывается контрагент, а не его реквизит основной договор. так вроде работает:
Если значениезаполнено(Источник.ОсновнойДоговорКонтрагента) тогда
Если не Источник.этогруппа и значениезаполнено (Источник.ОсновнойДоговорКонтрагента.организация) тогда
    сообщить(Источник);
    Отказ = Источник.ОсновнойДоговорКонтрагента.организация.код<>"000000006";
конецесли;
конецесли;
6 боксер
 
23.03.15
10:28
(1)спасибо
7 боксер
 
23.03.15
15:36
еще ошибка
Переношу РС "Контактная информация"
у контрагентов переносится нормально т.к. правило для реквизита РС "Объект" прописано жестко "Контрагенты"

Надо еще перенести контактную информацию для Контактных лиц контрагента т.е. подсунуть другое ИмяПКО
как это сделать?

делаю в ПКС "Объект" перед выгрузкой:
Если ОбъектКоллекции.объект.метаданные().имя="Контрагенты" Тогда
    ИмяПКО = "Контрагенты";
ИначеЕсли ОбъектКоллекции.объект.метаданные().имя="КонтактныеЛицаКонтрагентов" Тогда
    ИмяПКО = "КонтактныеЛицаКонтрагентов";
КонецЕсли;

ругается:
Обработчик             =  ПередВыгрузкойСвойства
Значение не является значением объектного типа (объект)
8 GreatOne
 
23.03.15
15:48
ОбъектКоллекции - это ссылка на какой-либо объект. Попробуй ОбъектКоллекции.метаданные()
А лучше ТипЗнч() = Тип()... Во всяком случае в типовых так.
9 SleepyHead
 
гуру
23.03.15
15:53
(8) я бы для начала вывел в окно сообщений в начале этого обработчика ТипЗнч(ОбъектКоллекции). Скорее всего, это строка табличной части, но мало ли
10 боксер
 
23.03.15
16:02
понял, но обошел проблему. Создал новое ПКО "КонтактнаяИнформацияКЛК"
для "Объект" который выгружается по правилу "КонтактныеЛицаКонтрагентов"
времени нет разобраться уже
AdBlock убивает бесплатный контент. 1Сергей