Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > 1Сv77: Монопольный режим, работа через OLE


Автор: sergey_85 7.10.2011, 08:31
Привет!

Есть небольшая БД 1Сv77 (dbf). При входе пароль и юзеров не требует. Через монитор видно, что база блокируется, т.е. монопольный режим.
 
Проблемка следующая...
Создаю простую ert, запускаю 1С, выбираю эту БД, открываю обработку - по кнопке сформировать вып. следующий код
Код

БазаОле=СоздатьОбъект("V77.Application");

КаталогБазыОЛе  = "C:\МояБаза\"; -- я уже работаю в этой БД

РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                       СокрЛП(КаталогБазыОле), "NO_SPLASH_SHOW");

Если РезультатПодключения = 0 Тогда
     Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
 КонецЕсли;

СпрOLE = БазаОле.CreateObject("Справочник.Фирмы");


Соединение с БД не происходит ("РезультатПодключения = 0"), думаю из-за того, что монопольный режим (см. через монитор).

Вопрос как от этого избавиться? =)

Заранее спасибо!

Автор: rarxxx 8.10.2011, 13:01
Код

Процедура ПодключитьБазу() Экспорт
    
    if Не Константы.Подлючать1с7.Получить() then
        //Возврат false;
    endIf;
    
    v7=Новый COMОбъект("V77s.Application");
    ТекПутьКБазе = Константы.Путь1с7.Получить();
    ТекПользователь = Константы.Пользователь1с7.Получить();
    ТекПароль = Константы.Пароль1с7.Получить();
    Попытка
        strApp = "/D"""+ТекПутьКБазе+""" /N"""+ТекПользователь+""" /P"""+ТекПароль+"""";
        Открыта=v7.Initialize(v7.RMTrade,strApp,"NO_SPLASH_SHOW");
        Если Открыта Тогда
            Сообщить("Подключена база 1с 7.7" + v7.Метаданные().Идентификатор);
            
            Попытка
                Счет7 = v7.CreateObject("Документ.Счет");
            Исключение
                v7 = "";
                Предупреждение("База  1с 7.7 не подключена. База в моноплоном режиме");
            КонецПопытки;
        Иначе
            Предупреждение("Ошибка подключения к базе " + ТекПутьКБазе  + " под пользователем " + ТекПользователь);
            v7 = "";
        КонецЕсли;
        
    Исключение
        Предупреждение("Ошибка подключения к базе " + ТекПутьКБазе  + " под пользователем " + ТекПользователь);
        v7 = "";
    КонецПопытки;
КонецПроцедуры


Код

    Счет7 = v7.CreateObject("Документ.Счет");
    Счет7.Новый();
    Счет7.ДатаДок    = Счет8.Дата;
    Счет7.Комментарий = "Выгружен из 1с 8.1";

Автор: sergey_85 9.10.2011, 22:14
Товарищи!!!

Вы меня не так поняли, Я работаю на 1Cv77. 

Проблемка в том, что когда я запускаю конфиг. и открываю в ней обработку, то при инициализации OLE она не может еще раз открыть эту же конфиг, т.к. я в монопольном режиме!!!!!

А вот когда я эту обработку запускаю через другую конфиг. (при условии, что первая закрыта), то все ок...

Как же мне выйти из этой ситуации????

Чтобы можно было одновременно работать в одной конфигурации без монопольного режима, напомню что конфига там стандартная, юзеров и паролей при старте не требует...

Заранее благодарю за ответы!!!!!!

Автор: sergey_85 9.10.2011, 22:29
Вот, что наковырял в google

Код

В 1С 7.7, режим «Монопольно» присутствует только в сетевых версиях 1С. Если же у Вас не сетевая версия, то Вы будете по умолчанию заходить монопольно – Вас об этом даже не спросят.


Как это изменить?

Автор: rarxxx 10.10.2011, 09:40
действительно не понимаю что ты хочешь... кто в мониторе сидит монопольно ? если ты, то ты заходишь в 1с из конфигуратора(нажав F5), в этом случае ты заходишь монопольно, если хочешь не монопольно заходи с рабСтола ярлык 1с выбираешь и заходишь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)