7.7 Через OLE к 1С на другом компе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем SamProf, 4 июл 2007.

  1. TopicStarter Overlay
    SamProf
    Offline

    SamProf

    Регистрация:
    4 июл 2007
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Есть примерно такой код:
    С2 = СоздатьОбъект("V77s.Application");
    С2.Initialize(С2.RMTrade(), "/dC:\База\ /nРазработчик /p", "");
    Тов2 = С2.createobject("Справочник.Товары");

    Ну и т.д. и т.п.
    В данной реализации запускается ещё один экземпляр 1С и из него можно черпать данные... так вот врос - можно ли чтобы этот экземпляр 1С запускался на другом ПК. Насколько я знаю, что OLE это позволяет, но как это сделать....?
  2. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Вряд ли... Зачем тогда нужно было бы устанавливать сервера терминаль ного доступа, если можно обойтись технологией OLE?
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Нет уж. Возможно в заблуждение ввели фразы типа "OLE Automation сервер". Но это значит что программа позволяет использовать себя постредством кокого-нить алгоритмического языка из другой программы, и не более того.
  4. AntiKoerper
    Offline

    AntiKoerper

    Регистрация:
    8 авг 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    1) Обойтись технологией OLE не получилось бы в связи с страшными тормозами при записи информации в базу. Кстати, такое явление наблюдается не только в 1С, но и вобще при использовании OLE.
    2) пробовали при подключении базы указывать сетевой путь к ней? я не пробовал, самому интересно.
  5. Gr.T
    Offline

    Gr.T

    Регистрация:
    4 сен 2007
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Пихаем все это в глобальный модуль
    Через глУстановитьСвязь() соединяемся с любой базой - Константа.КаталогТорговля, например...

    Перем глServerOLE Экспорт;
    Функция глУстановитьСвязь() Экспорт
    Перем Путь_, Пользователь_, Пароль_;

    Путь_ = СокрЛП(Константа.КаталогТорговля);
    Пользователь_ = СокрЛП(Константа.ПользовательOLE);
    Пароль_ = Константа.ПарольПользовательOLE;

    ф=1;

    Если ФС.Существуетфайл(СокрЛП(Путь_) + "\1cv7.md") = 0 Тогда
    Сообщить("Не найдена информационная база '1С Торговля'");
    ф=0;
    Иначе
    // Силаев 14032006/1012
    Если ИнициализацияV7SApplication("ToySQL") = 0 Тогда
    Возврат 0;//ош
    КонецЕсли;
    // Силаев 14032006/1012
    глServerOLE = СоздатьОбъект("V77S.Application");
    Если глServerOLE.Initialize(глServerOLE.RMTrade,"/d"+СокрЛП(Путь_)+" "+""+" "+?(ПустоеЗначение(Пользователь_)=0,"/N"+Пользователь_,"")+" "+?(ПустоеЗначение(Пароль_)=0,"/p"+Пароль_,""),"NO_SPLASH_SHOW") = 0 Тогда
    Сообщить("Ошибка открытия информационной базы '1С Торговля'");
    ф=0;
    КонецЕсли;
    КонецЕсли;

    Если ф=0 Тогда //log off
    Если ПустоеЗначение(глServerOLE)=0 Тогда
    глServerOLE.ExecuteBatch("СохранитьЗначение(""НеЗапрашиватьПодтверждениеПриВыходе"",1)");
    глServerOLE.ExecuteBatch("ЗавершитьРаботуСистемы(0)");
    глServerOLE="";
    Сообщить("Связь с '1С Торговля' разорвана");
    КонецЕсли;
    Иначе
    Сообщить("Установлена связь с '1С Торговля'");
    КонецЕсли;

    Возврат ф;
    КонецФункции

Поделиться этой страницей