Помощь - Поиск - Пользователи - Календарь
Полная версия: Как составить конструкцию определяющую что источник, объект - справочник физицеские лица
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Обмен данными
simox
Добрый день

Осуществляю конвертацию данных из БП 1.6.12.4 в УПП 1.2 с помощью правил
Conv_BP16_UPP12.xml с сайта users
видимо правила писались для более ранней конфигурации и выдавали много ошибок,
осталась одна.

При включенном ПВД Остатки УСН
выдает такую ошибку

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1612)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = ВводНачальныхОстатковУСНОстатки
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = ДоговорыКонтрагентов (СправочникСсылка.ДоговорыКонтрагентов --> СправочникСсылка.ДоговорыКонтрагентов)
ПКС = 6 (Владелец --> Владелец)
Объект = Блохин Александр Иванович (Справочник ссылка: Физические лица)
СвойствоПриемника = Владелец (СправочникСсылка.Контрагенты)
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Поле объекта не обнаружено (ВидДоговора)
ПозицияМодуля = (1)
КодСообщения = 55
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1593)
КодСообщения = 31

Я так понимаю что когда в обработчик события ПередВыгрузкой попадает объект физлицо как поставщик или покупатель, то при обращении к полю ВидДоговора и происходит эта ошибка
а штатно там планировалось видеть Контрагентов.
Причем отключая некоторые групповые ПКС можно избежать ошибки.

Думаю "экранировать" попадание физ лиц в обработчик события ПередВыгрузкой

//варианты конструкции (не в синтаксисе 1С)//
Если Источник не принадлежит Справочник.Физлица Тогда
Если ВходящиеДанные не принадлежит Справочник.Физлица Тогда
//

// какой то код обработчика где требуется поле
ВД = Источник.ВидДоговора;
Если ВходящиеДанные <> Неопределено Тогда
Если ВходящиеДанные.Свойство("ВидДоговора") Тогда
ВД = ВходящиеДанные.ВидДоговора;
КонецЕсли;
КонецЕсли;
Если ВД = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером или
ВД = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем Тогда
ИсходящиеДанные = Новый Структура("Покупатель", 1);
КонецЕсли;
Если ВД = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом или
ВД = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда
ИсходящиеДанные = Новый Структура("Поставщик", 1);
КонецЕсли;
// конец кода

КонецЕсли;

Помогите пожалуйста новичку, понимаю что нужно разобраться
в языке 1С и средствах отладки, но уж очень хочется авансом
решить неожиданно подвернувшуюся задачу.

simox
Сделал так

Если Источник.ДатаРождения = Неопределено Тогда

И получил вот это

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1612)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = ВводНачальныхОстатковУСНОстатки
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = ДоговорыКонтрагентов (СправочникСсылка.ДоговорыКонтрагентов --> СправочникСсылка.ДоговорыКонтрагентов)
ПКС = 6 (Владелец --> Владелец)
Объект = Основной договор (Справочник ссылка: Договоры контрагентов)
СвойствоПриемника = Владелец (СправочникСсылка.Контрагенты)
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Поле объекта не обнаружено (ДатаРождения)
ПозицияМодуля = (1)
КодСообщения = 55
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1593)
КодСообщения = 31
simox
Ура!!!, допёр как сделать - добавил в справочник ФизЛица в конфигураторе старой базы все реквизиты какие есть у справочника Договоры контрагентов, обработка прошла.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.