![]() |
|
v7: Компонента RiK_Inet, метод СоздатьСервер работает неправильно у одного юзера | ☑ | ||
---|---|---|---|---|
0
snaiper
11.06.16
✎
13:02
|
Добрый день!
Мою работу парализовала странная проблема. Загрузил компоненту RiK_Inet и создал слушающий сервер в ПриНачалеРаботыСистемы(). У всех пользователей кроме одного (Пусть, для определённости, его будут звать, например, ОператорККМ4) всё работает как надо. Вообще, несколько пользователей одновременно серверов не создают, порты используют разные и заведомо свободные. В ПриЗавершенииРаботыСистемы() переменную с объектом сервера сбрасываю в 0. У этого "Оператора" есть две странности в поведении. Во-первых, несмотря на то, что СоздатьСервер() возвращает 1, событие "Инет_СтрокаОтКлиента" не выстреливает. Строку передавал и компонентой, и своей программой. Формат строки верный, т.к. у других пользователей всё нормально принимается и отрабатывает. Во-вторых, при закрытии окна 1С процесс 1cv7.exe от данного пользователя не выгружается из памяти и висит, не давая зайти снова до тех пор, пока его не грохнут руками. Плюс переиндексацию приходится делать после "гроха". У остальных пользователей ИБ, опять же, всё нормально выгружается - код полностью идентичен. Менять пользователя можно, но не хочется, пока есть хоть какая-то надежда разобраться, в чём, всё-таки, была проблема и возможно ли решить её. Может, кто сталкивался с такими приколами от ВК? |
|||
1
snaiper
11.06.16
✎
13:04
|
Тут нельзя редактировать сообщения? Совсем забыл привести код:
// Это - в ПриНачалеРаботыСистемы() Если глПолучитьПолномочие("РазрешитьОплатуЧековККМ") = 1 Тогда // Создаём сервер только для того, кто имеет свои права доступа Если ЗагрузитьВнешнююКомпоненту("RiK_Inet.dll") <> 1 Тогда Сообщить("Ошибка загрузки компоненты RiK Inet. Сообщите программисту!"); //Возврат; Иначе глНомерПортаСервера = глПользователь.ПортЛокальногоСервера; глАдресПлатёжногоСервера = СокрЛП(глПользователь.АдресПлатёжногоСервера); глПортПлатёжногоСервера = глПользователь.ПортПлатёжногоСервера; Если (ПустоеЗначение(глНомерПортаСервера) = 1)ИЛИ(ПустоеЗначение(глАдресПлатёжногоСервера) = 1)ИЛИ (ПустоеЗначение(глПортПлатёжногоСервера) = 1) Тогда Сообщить("Не заданы параметры платёжного сервера для эквайринга!"); Иначе глИнет = СоздатьОбъект("AddIn.R_Inet"); глИнет.ВыводитьСообщенияОбОшибках(1); глАдресСистемы = глИнет.ПолучитьТекущийIPАдрес(); Если глИнет.СоздатьСервер(глНомерПортаСервера) = 1 Тогда Сообщить("Сервер "+глАдресСистемы+":"+глНомерПортаСервера+" поднят."); //глИнет.ОтправитьСтроку(глАдресПлатёжногоСервера, Строка(глПортПлатёжногоСервера), "?operation=pay&amount=1.23&doc_number=0000000001&response_addr="+глАдресСистемы+"&response_port="+Строка(глНомерПортаСервера)+"&response_format=RIK RIP :-/", 0); Иначе Сообщить("Сервер не поднимается :("); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; // Это - в ПриЗавершенииРаботыСистемы() глИнет = 0; |
|||
2
Garykom
гуру
11.06.16
✎
15:22
|
Права + ось
|
|||
3
Garykom
гуру
11.06.16
✎
15:22
|
= глюки
|
|||
4
snaiper
12.06.16
✎
07:57
|
(2) Интересно, что платформу запускал с ограниченного аккаунта Windows, но под разными юзерами 1С, в том числе и с ограниченными правами в 1С - работало! :( глюки, глюки... ОС - ХРюша из-под терминалов.
|
|||
5
snaiper
12.06.16
✎
08:23
|
Ладно, я всё понял. Создал нового пользователя, а старому поменял пароль и засунул его... подальше, в общем, засунул.
Причина глюка так и не выявлена, но, в общем, и пофиг теперь уже :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |