v7: OLE Как отсоединить базу или как работать с базами в цикле #358652


#0 by PRADA
Есть 5 баз например, нужно из каждой базы вытащить данные в ТЗ, делается это в общей конфе, где базы прописаны в справочнике. Далее я обращаюсь к  спрБазы.КаталогБазы - это путь. С кодом всё верно. Первую базу открываем, работает всё, вытаскивает данные, потом пробует открыть вторую, но на этом всё! Уже переменная Открыта = 0. Как побороть? Базы прописую сл.образом:
#1 by Попытка1С
Открыта = "";
#2 by PRADA
делал так, ничего не помогает при завершении работы с базой прописал Открыта = ""; Затем цикл опять выполняется но уже с другим путем к базе и открыть он ее не может. Я пробовал и Не помогает!!! Потом висит процесс первой открытой базы!
#3 by PRADA
И всё же интересно
#4 by dk
Есть ограничение винды на количество открытых 1с-ок от 2 до 7 - зависит от конфигурации --- т.е. тупо не по оле попробуй открыть несколько 1с-ок, вот столько и по оле сможешь открыть
#5 by PRADA
открыл 5, дальше не хочу пробовать... сдвинуться бы с места и открыть 2 базу, а то он и вторую не открывает
#6 by milan
Я в открытой по оле базе запускал обработку, которая выгружала данные а после окончания работы делала ЗавершитьРаботуСистемы; А вообще посмотри может там модальные диалоги без ограничения времени выскакивают при закрытии 1С, изза этого может быть косяк с зависонами.
#7 by PRADA
Сейчас буду пробовать ЗавершитьРаботуСистемы, диалогов нет!
#8 by Хоменко Валерий
У меня работает так: .....
#9 by vde69
надо обнулить все переменные которые содержат объекты удаленной базы
#10 by PRADA
взять отдельной процедурой что ли написать? переменных уже нет, все закоментировал, пробую уже в цикле тупо открыть, закрыть и открыть следующую (естественно с собщениями об открытии)
#11 by Хоменко Валерий
Не это главное, у меня твоя строка Открыта = разбита на две, и для закрытия всего лишь обнуляется созданный объект.
#12 by vde69
ладно дам секретное оружие: создаешь отдельную обработку, которая конектиться к ОДНОЙ базе (по параметру формы), и в этом параметре возвращает ТЗ (только смотри типы в ТЗ, там не должно быть ни одного обьекта из подключаемой базы) потом в цикле создаешь обработку и открываешь форму, после отработки не забудь поставить Форма.Закрыть при этом форма закроеться, и есть 99.99999% гарантия, что процесс 77 прибьеться (сработает сборщик мусора)
#13 by victuan1
Все намного проще! грамотно базу надо так закрывать: Ну и, соответсвенное, никаких диалогов в закрываемой базе типа "Завершить работу программы?" быть НЕ должно.
#14 by PRADA
При добавлении строчки: Открыта = V7.Initialize(V7.RMTrade, "/d" + спрБазы.КаталогБазы + "/NPrada /P73501505" , ""); {Обработка.ООТ.Форма.Модуль}: Значение не представляет агрегатный объект (RMTrade)
#15 by Яндекс
смотри
#16 by Павел_Вирич
Ты ж обнулил объект, нада его теперь обьявить опять
#17 by Злопчинский
1. в вызываемой базе не должно висеть вопрсов на закрытие базы. 2. перед открытием очередной базы сделай маленькое ожидание, секунды 3-5 - может поможет...
#18 by PRADA
Вопрос закрыть!
#19 by PRADA
Спасибо! Разобрался!
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С