Добрый день
Осуществляю конвертацию данных из БП 1.6.12.4 в УПП 1.2 с помощью правил
Conv_BP16_UPP12.xml с сайта users
видимо правила писались для более ранней конфигурации и выдавали много ошибок,
осталась одна.
При включенном ПВД Остатки УСН
выдает такую ошибку
Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1612)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = ВводНачальныхОстатковУСНОстатки
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = ДоговорыКонтрагентов (СправочникСсылка.ДоговорыКонтрагентов --> СправочникСсылка.ДоговорыКонтрагентов)
ПКС = 6 (Владелец --> Владелец)
Объект = Блохин Александр Иванович (Справочник ссылка: Физические лица)
СвойствоПриемника = Владелец (СправочникСсылка.Контрагенты)
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Поле объекта не обнаружено (ВидДоговора)
ПозицияМодуля = (1)
КодСообщения = 55
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1593)
КодСообщения = 31
Я так понимаю что когда в обработчик события ПередВыгрузкой попадает объект физлицо как поставщик или покупатель, то при обращении к полю ВидДоговора и происходит эта ошибка
а штатно там планировалось видеть Контрагентов.
Причем отключая некоторые групповые ПКС можно избежать ошибки.
Думаю "экранировать" попадание физ лиц в обработчик события ПередВыгрузкой
//варианты конструкции (не в синтаксисе 1С)//
Если Источник не принадлежит Справочник.Физлица Тогда
Если ВходящиеДанные не принадлежит Справочник.Физлица Тогда
//
// какой то код обработчика где требуется поле
ВД = Источник.ВидДоговора;
Если ВходящиеДанные <> Неопределено Тогда
Если ВходящиеДанные.Свойство("ВидДоговора") Тогда
ВД = ВходящиеДанные.ВидДоговора;
КонецЕсли;
КонецЕсли;
Если ВД = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером или
ВД = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем Тогда
ИсходящиеДанные = Новый Структура("Покупатель", 1);
КонецЕсли;
Если ВД = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом или
ВД = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда
ИсходящиеДанные = Новый Структура("Поставщик", 1);
КонецЕсли;
// конец кода
КонецЕсли;
Помогите пожалуйста новичку, понимаю что нужно разобраться
в языке 1С и средствах отладки, но уж очень хочется авансом
решить неожиданно подвернувшуюся задачу.