Работа с Ole-объектом

  • Автор темы Автор темы ЧИА
  • Дата начала Дата начала
После
БазаОле = ПолучитьПустоеЗначение();
пишем
ВыбФирма = ПолучитьПустоеЗначение();

должно помочь
 
Опробовал вашу конструкцию, все работает корректно. Многократно переподключался между базами и выбирал фирму.
ВыбФирма = ПолучитьПустоеЗначение();
Обнулять такие переменные не обязательно, ведь они содержат лишь ссылки на ОЛЕ объект и мешать закрытию базы не должны.
Конструкция БазаОле = ""; работает гораздо быстрее, нежели БазаОле = ПолучитьПустоеЗначение();.

Видимо причина в другом...
 
Интересно, что там у автора темы

Конструкция БазаОле = ""; работает гораздо быстрее, нежели БазаОле = ПолучитьПустоеЗначение();.
я не буду спорить, тем более, что сам использую =""
поскольку ситуация была мутная, то я предлагал на всякий случай использовать ПолучитьПустоеЗначение()

Добавлено:
Обнулять такие переменные не обязательно, ведь они содержат лишь ссылки на ОЛЕ объект и мешать закрытию базы не должны.

а вот с этим поспорю, потому что
Если сзФирмы.ВыбратьЗначение(ВыбФирма,"Выберите фирму",1,,2) = 0 Тогда
Возврат;
КонецЕсли;
// В этот момент происходит отключение предыдущего пользователя

то есть базу держит до изменения значения ВыбФирма
при этом ВыбФирма объявлена через Перем, что наводит на некоторые размышления
 
Обнулять такие переменные не обязательно, ведь они содержат лишь ссылки на ОЛЕ объект и мешать закрытию базы не должны.
а вот тут позвольте не согласиться: 1с уничтожает объекты тогда, когда на них больше нет ссылок (причем неважно в том-же модуле или в другом). а с не уничтоженным объектом она скорее всего завершаться не будет.
 
Вызванная из ОЛЕ 1с даже не знает что к ней так обращаются и соответственно не может проверить ссылки на ОЛЕ-контейнеры.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab