8.х ОБМЕН Ошибка в ПКС с пустым источником

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем ximera, 6 дек 2011.

  1. TopicStarter Overlay
    ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток.

    Пишу правила обмена из бухи в стороннюю конфу. Требуется перетащить поле с адресом - в источнике оно представляет запись регистра сведений, а в приемнике - строка. Сделал следующее:

    1) создаю ПКС для свойства приемника. Источник пустой и стоит галка получать из входящих данных
    2) в ПКС в событии ПередВыгрузкой() стоит код:

    Код:
    сообщить (0);
    Если Источник.ЭтоГруппа = ложь тогда
    сообщить (1);
    запр = новый запрос;
    Запр.текст ="ВЫБРАТЬ
    |	КонтактнаяИнформация.Представление
    |ИЗ
    |	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |	КонтактнаяИнформация.Объект = &Объект
    |	И КонтактнаяИнформация.Тип = &Тип
    |	И КонтактнаяИнформация.Вид = &Вид";
    
    Запр.установитьПараметр("Объект",Источник);
    Запр.установитьПараметр("Тип",	перечисления.ТипыКонтактнойИнформации.Адрес);
    Запр.установитьПараметр("Вид",	справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
    сообщить (2);
    Выборка = Запр.выполнить().выбрать();
    сообщить (3);
    Пока Выборка.Следующий() цикл
    сообщить (4);
    //сообщить ("111 "+Выборка.Представление);
    //ВходящиеДанные = новый Структура;
    //ВходящиеДанные.вставить ("ФактАдрес",Выборка.Представление);
    Значение = Строка(Выборка.Представление);
    КонецЦикла;
    КонецЕсли;
    
    
    по сообщениям сужу что не доходит до цикла. вываливается ошибка

    Вопрос - что я делаю не так? и как это поправить? :angry:
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Вы уверены что вот эта строка у Вас корректно отработает
    Код:
    справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента
    
    Не указано у кого брать у источника или у приемника, также с перечислением.
  3. TopicStarter Overlay
    ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    рабочий код (может кому-то пригодится для анализа собственных ошибок):

    Код:
    Если Источник.ЭтоГруппа = ложь тогда
    запр = новый запрос;
    Запр.текст ="ВЫБРАТЬ
    |	КонтактнаяИнформация.Представление
    |ИЗ
    |	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |	КонтактнаяИнформация.Объект.Наименование = &Объект
    |	И КонтактнаяИнформация.Тип = &Тип
    |	И КонтактнаяИнформация.Вид = &Вид";
    
    Запр.установитьПараметр("Объект",Источник.Наименование);
    Запр.установитьПараметр("Тип",	Перечисления.ТипыКонтактнойИнформации.Адрес);
    Запр.установитьПараметр("Вид",	справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
    Результат = Запр.выполнить().выгрузить();
    Если Результат.Количество() <> 0 тогда
    Значение = Строка(Результат[0].Представление);
    иначе 
    Значение = "";
    КонецЕсли;
    КонецЕсли;
    
    
    ошибка крылась в том что, если результат запроса был пустой, то значение было равно "неопределено"

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