Работа Native API компоненты RusGuardSoft на сервере
Приветствую, коллеги!
Столкнулся с проблемой.
1С:Предприятие 8.3 (8.3.21.1709)
Установлен 1С мини сервер. СУБД постгри.
Используется компонента для работы со СКУД:
Компонента написана по технологии Native API.
Из каркасной конфигурации разработчика по ссылке выше был использован метод:
При компиляции кода "на клиенте" ошибки нету, а при компиляции кода "на сервере", возникает ошибка работы ВК.
Не может быть это связано с ограничениями мини сервера? Или какими то еще проблемами?
Я думал проблему решу как в прошлый раз . Но не помогло. Куда копать?
У ВК есть много методов. Сначала мы ее устанавливаем работает везде. Далее мы получаем информацию о ВК работает везде, далее инициализируем подключение работает везде. Потом уже идет получение данные из бд СКУД. Это работа по сети ВК обращается к СКУД и получает оттуда данные далее отдает нам. Разработчик говорил, что подымается соап запрос с безопасным ключом или что-то подобное. Итог на клиенте работает, а на сервере падает.
Работал под USR1CV8 тоже самое на клиенте работает, а на сервере нет.
Столкнулся с проблемой.
1С:Предприятие 8.3 (8.3.21.1709)
Установлен 1С мини сервер. СУБД постгри.
Используется компонента для работы со СКУД:
Компонента написана по технологии Native API.
Из каркасной конфигурации разработчика по ссылке выше был использован метод:
РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
s = "";
Ин = РгСофт.GetEmployeePositions(s);При компиляции кода "на клиенте" ошибки нету, а при компиляции кода "на сервере", возникает ошибка работы ВК.
Не может быть это связано с ограничениями мини сервера? Или какими то еще проблемами?
Я думал проблему решу как в прошлый раз . Но не помогло. Куда копать?
У ВК есть много методов. Сначала мы ее устанавливаем работает везде. Далее мы получаем информацию о ВК работает везде, далее инициализируем подключение работает везде. Потом уже идет получение данные из бд СКУД. Это работа по сети ВК обращается к СКУД и получает оттуда данные далее отдает нам. Разработчик говорил, что подымается соап запрос с безопасным ключом или что-то подобное. Итог на клиенте работает, а на сервере падает.
Работал под USR1CV8 тоже самое на клиенте работает, а на сервере нет.
Прикрепленные файлы:
Найденные решения
Как оказалось вся проблема была в том что на клиенте ВК один раз инициализируется и код работает с одним экземплятором.
А на сервере ВК нужно каждый раз инициалзировать и проходить все кругиада работы ВК.
К сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.
А на сервере ВК нужно каждый раз инициалзировать и проходить все круги
&НаСервере
Функция ПолучитьКомпонентуНаСервере()
РгСофт = Неопределено;
Местоположение = "ОбщийМакет.RgSoftExtension";
Если ПодключитьВнешнююКомпоненту(Местоположение, "RgSoft", AddInType.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось установить или подключить РусГвард RgSoft");
КонецЕсли;
Возврат РгСофт;
КонецФункции
&НаСервере
Процедура НайтиСотрудникаПоКартеНаСервере()
РгСофтСервер = ПолучитьКомпонентуНаСервере();
Если РгСофтСервер <> Неопределено Тогда
ОтветПодключения = "";
РезультатПодключения = РгСофтСервер.Initialize(Объект.АдресСервера, Объект.Логин, Объект.Пароль, ОтветПодключения);
ИДСотрудника = "";
ОписаниеСотрудника = "";
РезультатПоиска = РгСофтСервер.GetAssignedAcsKeyByKeyNumber(НомерКарты, ИДСотрудника, ОписаниеСотрудника);
РезультатОтключения = РгСофтСервер.Deinitialize();
РгСофтСервер = Неопределено;
КонецЕсли;
КонецПроцедуры
ПоказатьК сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Как оказалось вся проблема была в том что на клиенте ВК один раз инициализируется и код работает с одним экземплятором.
А на сервере ВК нужно каждый раз инициалзировать и проходить все кругиада работы ВК.
К сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.
А на сервере ВК нужно каждый раз инициалзировать и проходить все круги
&НаСервере
Функция ПолучитьКомпонентуНаСервере()
РгСофт = Неопределено;
Местоположение = "ОбщийМакет.RgSoftExtension";
Если ПодключитьВнешнююКомпоненту(Местоположение, "RgSoft", AddInType.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
РгСофт = Новый("AddIn.RgSoft.RgSoftExtension");
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось установить или подключить РусГвард RgSoft");
КонецЕсли;
Возврат РгСофт;
КонецФункции
&НаСервере
Процедура НайтиСотрудникаПоКартеНаСервере()
РгСофтСервер = ПолучитьКомпонентуНаСервере();
Если РгСофтСервер <> Неопределено Тогда
ОтветПодключения = "";
РезультатПодключения = РгСофтСервер.Initialize(Объект.АдресСервера, Объект.Логин, Объект.Пароль, ОтветПодключения);
ИДСотрудника = "";
ОписаниеСотрудника = "";
РезультатПоиска = РгСофтСервер.GetAssignedAcsKeyByKeyNumber(НомерКарты, ИДСотрудника, ОписаниеСотрудника);
РезультатОтключения = РгСофтСервер.Deinitialize();
РгСофтСервер = Неопределено;
КонецЕсли;
КонецПроцедуры
ПоказатьК сожалению разработчик про эту особенность не упомянул, а отладка на этот не очевидный трюк не давала ответа, ВК падала. В ходе переписки с разработчиком не удалось получить рабочий пример с кодом на сервере, но с его скринов стало понятно, что что-то не так и тут опыт других проектов подсказал, что скорее всего дело в не последовательных вызовах ВК. Это и решило проблему, код для ознакомления предоставил.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
