8.х ОБМЕН Как составить конструкцию определяющую что источник, объект - справочник физицеские лица

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем simox, 4 фев 2009.

  1. TopicStarter Overlay
    simox
    Offline

    simox

    Регистрация:
    3 фев 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Добрый день

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

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

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

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

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

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

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

    КонецЕсли;

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

    simox

    Регистрация:
    3 фев 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Сделал так

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

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

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

    simox

    Регистрация:
    3 фев 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Ура!!!, допёр как сделать - добавил в справочник ФизЛица в конфигураторе старой базы все реквизиты какие есть у справочника Договоры контрагентов, обработка прошла.

Поделиться этой страницей