Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обмен между 1С7.7 и 1С8.3
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Вся 1С
qwe666666
Добрый день.

Возникла необходимость синхронизации баз 1С:ERP Управление предприятием 2.1 (2.1.1.13) и ИТРП: Производственное предприятие 2002 Стандарт. Сервер 1с8.3 находится на Windows 2008 x64.

Синхронизация осуществляется в регламентном задании на стороне 1с8.3. Процесс представляет собой проверку буферных таблиц и при наличии в них данных выполняется подключение к 1с77 через V77S.Application и дальнейшая обработка данных.

На локальной базе 1с8.3 все работало нормально, но при переносе на серверную возникли проблемы с V77S.Application. COMОбъект создается, но при попытке подключения метод Initialize() выдает 0 и на этом все. При этом никаких исключений не появляется, а 1cv7s.exe висит в процессах около 1 секунды и затем закрывается.

Были мысли, что выскакивает какое ни будь диалоговое окно, но при выдаче разрешения взаимодействия с рабочим столом серверу 1С8.3 были обнаружены только консоли сервера. Диалоговое окно можно поймать, если не была добавлена база в список баз клиента 1с77.

Базу 1с77 пробовал локальную и SQLную – эффект один и тот же, на локальной базе 1с8.3 работает, на серверной – нет.

По советам добавил V77.GeneralPropPage через реестр – не помогло.

Вход в обе базы в режиме предприятия через клиент 1с77, который находится на Windows 2008, проходит нормально.
В общем нужно каким-то образом заставить V77S.Application нормально подключаться из сервиса, но как это сделать не совсем ясно…
Ниже привожу код, который осуществляет подключение к 1с77.

&НаСервере 
Функция ПроверкаНаВалидностьCOMСоединения(COMОбъект)
    
    Попытка    
        Если COMОбъект <> Неопределено Тогда
            COMОбъект.ПолучитьТА();
            Возврат Истина;
        КонецЕсли;
    Исключение
    КонецПопытки;
    
    Возврат Ложь;
    
КонецФункции

&НаСервере
Функция ПолучитьCOMСоединение(база = "D:\MD7_0\", логин = "_xxx_", пароль = "")
    
    COMОбъект = Неопределено;
    
    ПутьБазы = база;
    Пароль = пароль;
    Пользователь = логин;
    COMОбъект = Новый COMОбъект("V77S.Application");
    Попытка
        Пользователь = ?(ПустаяСтрока(Пользователь), "", " /N" + Пользователь);
        Пароль = ?(ПустаяСтрока(Пароль), "", " /P" + Пароль);
        Если COMОбъект.Initialize(COMОбъект.RMTrade, "/D""" + ПутьБазы + """" + Пользователь + Пароль, "NO_SPLASH_SHOW") = 0 Тогда
            COMОбъект = Неопределено;
        Иначе
        КонецЕсли;
    Исключение
        COMОбъект = Неопределено;
    КонецПопытки;
    
    Если Не ПроверкаНаВалидностьCOMСоединения(COMОбъект) Тогда
        COMОбъект = Неопределено;
    КонецЕсли;    
    
    Возврат COMОбъект;
    
КонецФункции
Vofka
А служба сервера 1С х64? Может попробовать запустить его под службой х32?
Acid
курите доменные права доступа.
qwe666666
Цитата(Vofka @ 18.09.15, 14:07) необходимо зарегистрироваться для просмотра ссылки
А служба сервера 1С х64? Может попробовать запустить его под службой х32?

Служба 1С х64, и похоже другой нет. На releases.1c.ru нашел только х64 сервера(у нас сейчас используется Технологическая платформа 8.3, версия 8.3.6.2237 ).


Цитата(Acid @ 18.09.15, 14:47) необходимо зарегистрироваться для просмотра ссылки
курите доменные права доступа.

Похоже действительно что-то с правами, ради интереса перенес локальную файловую базу 1с77 на машину с сервером и попробовал подключиться к ней… заработало! Буду копать в этом направлении.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.