Имя: Пароль:
1C
1С v8
Мистика с COM connection
0 patapum
 
21.07.14
14:50
Разработал обработку, которая подключается из бухгалтерской базы в оперативную, она должна находить контрагента по ссылке (ссылка в бухгалтерии есть), и потом из контрагента-COM-объекта считать его реквизиты.
Обработка работает весьма странным образом, у некоторых контрагентов она реквизиты читает, а у некоторых не видит (хотя они есть, зайдя в базу напрямую, я их вижу).
Есть у кого-то идеи, с чем может быть связано и как это можно побороть?

Картинки:
читаются реквизиты http://savepic.org/5827249.png
не читаются реквизиты http://savepic.org/5817009.png

Кусок кода (отрабатывает на активизации строки):
    УИД = ЭлементыФормы.дрСоответствиеКонтрагентамУТ.ТекущиеДанные.УникальныйИдентификаторУТ;
    Если ЭлементыФормы.дрСоответствиеКонтрагентамУТ.ТекущиеДанные <> Неопределено И СокрЛП(УИД) <> "" Тогда
        УТ_Контрагент = УТ.Справочники.Контрагенты.ПолучитьСсылку(УТ.NewObject("УникальныйИдентификатор",УИД));
        //Наименование = УТ_Контрагент.Наименование;
        ИНН = УТ_Контрагент.ИНН;
        КПП = УТ_Контрагент.КПП;
        Код77 = УТ_Контрагент.дрКод77;
    Иначе
        //Наименование = "";
        ИНН = "";
        КПП = "";
        Код77 = "";
    КонецЕсли;
1 ObjectRelation Model
 
21.07.14
14:52
что говорит отладчик?
2 patapum
 
21.07.14
14:56
(1) отладчик говорит, что в обоих случаях получаем COM-объект (причем, попадаем в основную ветку, не в "иначе"), но для первого контрагента читает ИНН, КПП, и все прочее, а для другого нет.
3 le_
 
21.07.14
15:00
Может, по UID'у получается не то, что должно получаться? Т.е., UID некорректный.
4 exchang
 
21.07.14
15:01
Если УТ_Контрагент.ПолучитьОбъект() = неопределено Тогда
// ошибка
КонецЕсли;
5 patapum
 
21.07.14
15:11
(3) ага, УИД не тот. спасибо! буду копать, как он туда попал
6 Defender aka LINN
 
21.07.14
15:12
(4) В коленку за такую проверку на существование ссылки расстреливать надо.