|
Странное поведение СОМОбъекта | ☑ | ||
---|---|---|---|---|
0
zhukovia
28.11.18
✎
15:12
|
Имеется 1С:Предприятие 8.3 (8.3.12.1529) SQL + самописанная конфигурация.
Есть следующая задача нужно подключиться к другой базе (тоже SQL на этом же сервере) и создать в ней документ, при этом поискав в справочниках в ней и создав необходимые в случае отсутствия. Создаем подключение, не знаю только, насколько критично что стоит V82COMConnector: СтрокаПараметров = "Srvr=127.0.0.1;Ref=kassa_sql;Usr=Кассир;Pwd=8888"; V82COMConnector = Новый COMОбъект("V83.COMConnector"); Попытка Возврат V82COMConnector.Connect(СтрокаПараметров); Исключение Сообщить("Ошибка подключения!"); Возврат Неопределено; КонецПопытки; МенеджерКонтрагенты = COMОбъект.Справочники.Контрагенты; СправочникГруппаПоставщики = МенеджерКонтрагенты.НайтиПоНаименованию("Поставщики"); Все хорошо отрабатывает. Потом ищем справочники и тут возникает странность! Если сделать поиск по наименованию в другой базе, примерно так: СправочникСдатчик = МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик); то тогда у СправочникСдатчик есть метод Пустая(), а если так СправочникСдатчик = МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики); то у СправочникСдатчик метода Пустая() нет. Пишет что метод не найден, но если переделать так то все работает. МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики).Пустая() чем может быть причина подобного поведения? |
|||
1
Lexey_
28.11.18
✎
15:35
|
(0) что странного?
в одном случае НайтиПоНаименованию() возвращает Неопределено, в другом - Ссылку |
|||
2
zhukovia
28.11.18
✎
15:37
|
(1) Да в том то и дело что возвращает не Неопределено, а СОМобъект
|
|||
3
zhukovia
28.11.18
✎
15:38
|
(1) Конструкция
МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики).Пустая() выдает Ложь |
|||
4
zhukovia
28.11.18
✎
15:51
|
И кстати если создать в другой базе новый элемент справочника вот так
СправочникСдатчик=МенеджерКонтрагенты.СоздатьЭлемент(); СправочникСдатчик.Родитель=СправочникГруппаПоставщики; СправочникСдатчик.Наименование=ВыборкаДетальныеЗаписи.Сдатчик; СправочникСдатчик.Записать(); То у СправочникСдатчик тоже не будет метода Пустая(). Но возможно так и должно быть. Тогда вопрос. Как понять что элемент создался и записался? И можно ли его присвоить реквизиту вновь создаваемого в другой базе документа или нужно делать опять НайтиПоНаименованию? |
|||
5
Lexey_
28.11.18
✎
15:59
|
(4) "СправочникСдатчик тоже не будет метода Пустая()"
конечно не будет, Пустая() - это метод Ссылки(СправочникСсылка.<Имя справочника>) |
|||
6
zhukovia
28.11.18
✎
16:44
|
(5) А вот так получилось, спасибо.
СправочникСдатчик.Ссылка.Пустая() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |