|
Подключение через СОМОбъект из 8.2 к 7.7 (Получить реквизит ссылочного типа) | ☑ | ||
---|---|---|---|---|
0
america2013
06.12.13
✎
12:15
|
Рад приветствовать, уважаемые форумчане!!!
Прошу помочь мне с такой проблемой, имею код: v7 = Новый COMObject("V77.Application"); Попытка СтрокаПодключения = "/D""" + СокрЛП(ПутьКБазе77) + """ /N""" + СокрЛП(Пользователь) + """ /P""" + СокрЛП(Пароль) + """"; Открыта = v7.Initialize(v7.RMTrade, СтрокаПодключения, "NO_SPLASH_SHOW"); Исключение Предупреждение("Ошибка при подключении!"); Сообщить(ИнформацияОбОшибке()); КонецПопытки; ВыбДок = v7.CreateObject("Документ.ПлатежноеПоручение"); ВыбДок.ВыбратьДокументы(НачПериода, КонПериода); Пока ВыбДок.ПолучитьДокумент() = 1 Цикл //Здесь нормельно: ФормаСтатуса.СтрокаСостояния = ВыбДок.НомерДок; ФормаСтатуса.СтрокаСостояния = ВыбДок.ДатаДок; //А здесь проблема!!! Выдает пустое значение : ((( ФормаСтатуса.СтрокаСостояния = ВыбДок.ВидДвиженияДенежныхСредств.Наименование; КонецЦикла; v7 = ""; Подключиться удается, получить значения - документы, - тоже, а проблема в том, что не удается получить значения реквизитов у документа, так как тип у них - Справочник. Как получить значение реквизита с типом Справочник? Заранее благодарен! |
|||
1
Wobland
06.12.13
✎
12:16
|
а как ты себе представляешь значение типа тамошний справочник на этой стороне?
|
|||
2
DmitriyDI
06.12.13
✎
12:17
|
(0) получаемый реквизит будет простым типом данных
|
|||
3
america2013
06.12.13
✎
12:23
|
(1) Представлял, что это будет набор простых значений типа число или строка. Вообще, когда начинал с этим работать, такой задачи не было, а сейчас планирую каким-то образом получать эти данные. Думаю над тем, что может быть стоит сначала считать в таблицу значения справочника реквизита ВидДвиженияДенежныхСредств, а затем сравнивать с получившейся таблицей, получаемые значения нужного реквизита при переборе. Понятно, что с однородными конфигами такой проблемы не было бы, но можно сделать в данном случае?
|
|||
4
america2013
06.12.13
✎
13:23
|
Что же, господа, совсем без вариантов?
|
|||
5
Фомич
06.12.13
✎
13:33
|
Создать объект, на который ссылаетесь из документа и найти его по коду/наименованию, м.б. так?
|
|||
6
Фомич
06.12.13
✎
13:39
|
КлючПоиска = ТекущаяСтрока.Виды.Наименование;
СпрВД = БазаОле.CreateObject("Справочник.ВидыДеятельности"); Если СпрВД.НайтиПоРеквизиту("КодВидов",КлючПоиска,1) = 1 Тогда ТекВД = СпрВД.ТекущийЭлемент(); КонецЕсли; |
|||
7
america2013
06.12.13
✎
13:51
|
(6) Благодарю за совет!
Позволил себе перефразировать ваше предложение, если не верно понял вашу мысль, прошу поправьте, вот что получилось: v7 = Новый COMObject("V77.Application"); Попытка СтрокаПодключения = "/D""" + СокрЛП(ПутьКБазе77) + """ /N""" + СокрЛП(Пользователь) + """ /P""" + СокрЛП(Пароль) + """"; Открыта = v7.Initialize(v7.RMTrade, СтрокаПодключения, "NO_SPLASH_SHOW"); Исключение Предупреждение("Ошибка при подключении!"); Сообщить(ИнформацияОбОшибке()); КонецПопытки; ВыбДок = v7.CreateObject("Документ.ПлатежноеПоручение"); СпрВД = v7.CreateObject("Справочник.ВидыДвиженияДенежныхСредств"); ВыбДок.ВыбратьДокументы(НачПериода, КонПериода); Пока ВыбДок.ПолучитьДокумент() = 1 Цикл //Здесь нормально: ФормаСтатуса.СтрокаСостояния = ВыбДок.НомерДок; ФормаСтатуса.СтрокаСостояния = ВыбДок.ДатаДок; //Ругается на строке!!! КлючПоиска = ВыбДок.ВидДвиженияДенежныхСредств.Код; Если СпрВД.НайтиПоРеквизиту("Код",КлючПоиска,1) = 1 Тогда ТекВД = СпрВД.ТекущийЭлемент(); КонецЕсли; //А здесь проблема!!! Выдает пустое значение : ((( ФормаСтатуса.СтрокаСостояния = ВыбДок.ВидДвиженияДенежныхСредств.Наименование; КонецЦикла; v7 = ""; Выдает ошибку: {Форма.Форма.Форма(379)}: Ошибка при вызове метода контекста (НайтиПоРеквизиту) Если СпрВД.НайтиПоРеквизиту("Код",КлючПоиска,1) = 1 Тогда по причине: Произошла исключительная ситуация (1С:Предприятие): Неверное имя реквизита! |
|||
8
hhhh
06.12.13
✎
13:57
|
(7) "Код" - это не реквизит.
используйте СпрВД.НайтиПоКоду |
|||
9
dk
06.12.13
✎
14:04
|
вообще-то должен нормально через несколько точек возвращать
может проблема в том, что без выбратьстроки обращаешься к табличному реквизиту? |
|||
10
dk
06.12.13
✎
14:05
|
или виддвижения не заполнен
или виддвижения это перечисление или ... короче отладчик в зубы и вперед |
|||
11
Фомич
06.12.13
✎
14:17
|
(8) - правильно сказал, или найдите по коду или по наименованию, по реквизиту - он должен быть с "отбором по реквизиту".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |