РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
s = "";
Ин = РгСофт.GetEmployeePositions(s);
При компиляции кода "на клиенте" ошибки нету, а при компиляции кода "на сервере", возникает ошибка работы ВК.
Не может быть это связано с ограничениями мини сервера? Или какими то еще проблемами?
Я думал проблему решу как в прошлый раз Подключение OLE в регламентном задании на 64-битном сервере. Но не помогло. Куда копать?
У ВК есть много методов. Сначала мы ее устанавливаем работает везде. Далее мы получаем информацию о ВК работает везде, далее инициализируем подключение работает везде. Потом уже идет получение данные из бд СКУД. Это работа по сети ВК обращается к СКУД и получает оттуда данные далее отдает нам. Разработчик говорил, что подымается соап запрос с безопасным ключом или что-то подобное. Итог на клиенте работает, а на сервере падает.
Работал под USR1CV8 тоже самое на клиенте работает, а на сервере нет.
2.
Xershi
148625.03.24 15:08 Сейчас в теме+0.01 $m
Как оказалось вся проблема была в том что на клиенте ВК один раз инициализируется и код работает с одним экземплятором.
А на сервере ВК нужно каждый раз инициалзировать и проходить все круги ада работы ВК.
&НаСервере
Функция ПолучитьКомпонентуНаСервере()
РгСофт = Неопределено;
Местоположение = "ОбщийМакет.RgSoftExtension";
Если ПодключитьВнешнююКомпоненту(Местоположение, "RgSoft", AddInType.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось установить или подключить РусГвард RgSoft");
КонецЕсли;
Возврат РгСофт;
КонецФункции
&НаСервере
Процедура НайтиСотрудникаПоКартеНаСервере()
РгСофтСервер = ПолучитьКомпонентуНаСервере();
Если РгСофтСервер <> Неопределено Тогда
ОтветПодключения = "";
РезультатПодключения = РгСофтСервер.Initialize(Объект.АдресСервера, Объект.Логин, Объект.Пароль, ОтветПодключения);
ИДСотрудника = "";
ОписаниеСотрудника = "";
РезультатПоиска = РгСофтСервер.GetAssignedAcsKeyByKeyNumber(НомерКарты, ИДСотрудника, ОписаниеСотрудника);
РезультатОтключения = РгСофтСервер.Deinitialize();
РгСофтСервер = Неопределено;
КонецЕсли;
КонецПроцедуры
Показать
К сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.
2.
Xershi
148625.03.24 15:08 Сейчас в теме+0.01 $m
Как оказалось вся проблема была в том что на клиенте ВК один раз инициализируется и код работает с одним экземплятором.
А на сервере ВК нужно каждый раз инициалзировать и проходить все круги ада работы ВК.
&НаСервере
Функция ПолучитьКомпонентуНаСервере()
РгСофт = Неопределено;
Местоположение = "ОбщийМакет.RgSoftExtension";
Если ПодключитьВнешнююКомпоненту(Местоположение, "RgSoft", AddInType.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось установить или подключить РусГвард RgSoft");
КонецЕсли;
Возврат РгСофт;
КонецФункции
&НаСервере
Процедура НайтиСотрудникаПоКартеНаСервере()
РгСофтСервер = ПолучитьКомпонентуНаСервере();
Если РгСофтСервер <> Неопределено Тогда
ОтветПодключения = "";
РезультатПодключения = РгСофтСервер.Initialize(Объект.АдресСервера, Объект.Логин, Объект.Пароль, ОтветПодключения);
ИДСотрудника = "";
ОписаниеСотрудника = "";
РезультатПоиска = РгСофтСервер.GetAssignedAcsKeyByKeyNumber(НомерКарты, ИДСотрудника, ОписаниеСотрудника);
РезультатОтключения = РгСофтСервер.Deinitialize();
РгСофтСервер = Неопределено;
КонецЕсли;
КонецПроцедуры
Показать
К сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.