Версия для печати темы (https://pro1c.org.ua/index.php?s=9829ae2fb0f620cae6059a2e7899c35f&showtopic=66946)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Обмен документами между базами

Автор: kostya77 05.04.22, 11:51

Добрый день. помогите решить проблему с обменом документами между базами. Делаю так -

БазаОле=СоздатьОбъект("V77S.Application"); // Получаем доступ к OLE объекту 1С
КаталогБазыОЛе  = "C:\program files\1cv77\МояБаза\";
ПользовательОле = "Администратор";
ПарольОле       = "qwerty";
МонопольныйРежимOLE = " /m";
ЗапускБезЗаставки = 1;      
                          
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                       СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
                       " /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
                       ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
     Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
КонецЕсли;

ДокOLE = БазаОле.CreateObject("Документ.РасходнаяНакладная");

ДокOLE .ВыбратьДокументы(начДата,конДата);
Пока ДокOLE .ПолучитьДокумент()=1 Цикл
    Сообщить(ДокOLE.ДатаДок); // !!!!!!!!!!!!!!! - тут все зависает :(
КонецЦикла;


Что делаю не так?

Автор: denis84 05.04.22, 12:05

kostya77 @ Сегодня, 12:51 * ,
Добрый! Сообщение выдает или вообще ничего не происходит? К базе происходит соединение?

Автор: kostya77 05.04.22, 12:06

denis84 @ Сегодня, 12:05 * ,
сообщение не выдает. к базе подключается. Ставлю точку останова - база виснет

Автор: denis84 05.04.22, 12:22

kostya77 @ Сегодня, 13:06 * ,
я взял ваш код. и вот что получилось: пользователь мой без пароля - у меня появилось окно авторизации доступа к базе. я нажал "ок" и произошло соединение с базой и сообщило дату документа

а вот такой код этого не делает:

    БазаОле = СоздатьОбъект("V77.Application"); // Получаем доступ к OLE объекту 1С
    КаталогБазыОЛе = "d:\1c\моя база\";
    ПользовательОле = "Админ";
    ПарольОле = "";
    
    результатПодключения = базаОЛЕ.Initialize(базаОЛЕ.RMTrade, "/d" + сокрЛП(КаталогБазыОЛе) + " /n" +
                                              сокрЛП(ПользовательОле) + " /p " + сокрЛП(ПарольОле), "");
    
    если результатПодключения = 0 тогда
        предупреждение("Не удалось выполнить подключение к указанной БД! Проверьте параметры подключения!");
    иначе
        состояние("БД инициализирована!");
    конецЕсли;    
    ДокOLE = БазаОле.CreateObject("Документ.РасходнаяНакладная");
        
    ДокOLE .ВыбратьДокументы(начДата,Кондата);
    Пока ДокOLE.ПолучитьДокумент()=1 Цикл
    Сообщить(ДокOLE.ДатаДок);
    КонецЦикла;

Автор: kostya77 05.04.22, 12:34

denis84 @ Сегодня, 12:22 * ,
так и не понял в чем ошибка sad.gif. Подскажите

Автор: sava1 05.04.22, 12:51

база индексации не просит?

Автор: denis84 05.04.22, 12:51

kostya77 @ Сегодня, 13:34 * ,
как я посмотрел из-за монопольного режима. Могу конечно ошибаться, но у меня без него норм отработало. Я никогда его не использовал. и вот так создавал базу оле БазаОле = СоздатьОбъект("V77.Application");
Может, кто - то меня поправит.

Автор: kostya77 05.04.22, 15:00

denis84 @ Сегодня, 12:51 * ,
Спасибо.

Автор: Vofka 05.04.22, 15:30

Цитата(kostya77 @ 05.04.22, 16:00) *
Спасибо.

Для спасибо, если что, у нас есть специальная кнопочка.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua