Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Странное поведение СОМОбъекта

Странное поведение СОМОбъекта
Я
   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Объект.Справочники.Контрагенты;
СправочникГруппаПоставщики = МенеджерКонтрагенты.НайтиПоНаименованию("Поставщики");
Все хорошо отрабатывает. Потом ищем справочники и тут возникает странность! Если сделать поиск по наименованию в другой базе, примерно так:
СправочникСдатчик = МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик);
то тогда у СправочникСдатчик есть метод Пустая(), а если так
СправочникСдатчик = МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики);
то у СправочникСдатчик метода Пустая() нет. Пишет что метод не найден, но если переделать так то все работает.
МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики).Пустая()
чем может быть причина подобного поведения?
 
 
   Lexey_
 
1 - 28.11.18 - 15:35
(0) что странного?
в одном случае НайтиПоНаименованию() возвращает Неопределено, в другом - Ссылку
   zhukovia
 
2 - 28.11.18 - 15:37
(1) Да в том то и дело что возвращает не Неопределено, а СОМобъект
   zhukovia
 
3 - 28.11.18 - 15:38
(1) Конструкция
МенеджерКонтрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Сдатчик,,СправочникГруппаПоставщики).Пустая() 
 выдает Ложь
   zhukovia
 
4 - 28.11.18 - 15:51
И кстати если создать в другой базе новый элемент справочника вот так
СправочникСдатчик=МенеджерКонтрагенты.СоздатьЭлемент();
СправочникСдатчик.Родитель=СправочникГруппаПоставщики;
СправочникСдатчик.Наименование=ВыборкаДетальныеЗаписи.Сдатчик;
СправочникСдатчик.Записать();

То у СправочникСдатчик тоже не будет метода Пустая(). Но возможно так и должно быть. Тогда вопрос. Как понять что элемент создался и записался? И можно ли его присвоить реквизиту вновь создаваемого в другой базе документа или нужно делать опять НайтиПоНаименованию?
   Lexey_
 
5 - 28.11.18 - 15:59
(4) "СправочникСдатчик тоже не будет метода Пустая()"
конечно не будет, Пустая() - это метод Ссылки(СправочникСсылка.<Имя справочника>)
   zhukovia
 
6 - 28.11.18 - 16:44
(5) А вот так получилось, спасибо.
СправочникСдатчик.Ссылка.Пустая()

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует