Имя: Пароль:
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
понял, но обошел проблему. Создал новое ПКО "КонтактнаяИнформацияКЛК"
для "Объект" который выгружается по правилу "КонтактныеЛицаКонтрагентов"
времени нет разобраться уже
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn