Имя: Пароль:
1C
1C 7.7
v7: Периодически возникает ошибка при создании объекта из компоненты. Терминал
0 Ваше благородие
 
09.08.13
11:34
Всем привет.

1С 7.7 027. Терминал Windows Server 2008 R2, база SQL.

Используем считыватель карт:

ЗагрузитьВнешнююКомпоненту("ESDK2_1C.dll");
            acr122_PCSCInfo = СоздатьОбъект("AddIn.PCSCInfo");
            acr122_DataHelper = СоздатьОбъект("AddIn.DataHelper");
            PCSCCard_mifare = СоздатьОбъект("AddIn.PCSCCard_mifare");

Какое-то время у пользователей все работает нормально, но потом раз, и ошибка при создании объекта (отсутствует интерфейс IInitDone).

Обычно помогает перезапуск сеанса. Заканчиваем сеанс, заходим заново, какое-то время работает и раз - у нескольких пользователей опять ошибка, снова завершай сеанс.

У пользователей прав на запись реестра нет. Библиотека зарегистрирована.

Как думаете, что можно сделать?
1 Ваше благородие
 
09.08.13
11:40
Ах, да. Вот еще иногда возникает у некоторых пользователей:

Имя сбойного приложения: 1cv7s.exe, версия: 7.70.0.27, отметка времени: 0x4573fcd8
Имя сбойного модуля: Seven.dll, версия: 7.70.0.27, отметка времени 0x4573f8a8
Код исключения: 0xc0000005
Смещение ошибки: 0x00005033
Идентификатор сбойного процесса: 0x390d0
Время запуска сбойного приложения: 0x01ce94cab1d3974e
Путь сбойного приложения: D:\1cv77S_lice\BIN\1cv7s.exe
Путь сбойного модуля: D:\1cv77S_lice\BIN\Seven.dll
Код отчета: 4fd039c0-00c3-11e3-9cce-001e672eb628
2 Ваше благородие
 
09.08.13
11:41
При старте 1С еще загружается FormEx.dll
3 Ваше благородие
 
09.08.13
12:55
Сами сканеры подключены по USB. Для подключения по rpd к серверу используются линуксовые машины.
4 Ваше благородие
 
09.08.13
12:56
Сканеры ARC 122U
5 Ваше благородие
 
14.08.13
10:50
ЗагрузитьВнешнююКомпоненту("ESDK2_1C.dll") возвращает 0 через какое-то время у случайных пользователей.
6 Ваше благородие
 
16.08.13
11:14
В журнале похоже при этом возникает такое событие:

Серверу лицензирования удаленных рабочих столов не удалось обновить атрибуты лицензии для пользователя "Master12" в домене Active Directory "altufst.msk". Убедитесь, что учетная запись компьютера для сервера лицензирования входит в группу серверов лицензирования серверов терминалов в домене Active Directory "altufst.msk".
Если сервер лицензирования установлен на контроллере домена, то учетная запись сетевой службы также должна входить в группу серверов лицензирования серверов терминалов.
Если сервер лицензирования установлен на контроллере домена, то после добавления соответствующих учетных записей в группу серверов лицензирования серверов терминалов необходимо перезапустить службу лицензирования удаленных рабочих столов для отслеживания и создания отчетов об использовании клиентских лицензий служб удаленных рабочих столов "на пользователя".
Код ошибки Win32: 0x80070005

0x80070005 - это ошибка доступа. Получается, 1С пытается ЗагрузитьКомпонету, а ей отказано.

Интересно, почему это происходит не регулярно и что делать.
7 Ваше благородие
 
16.08.13
12:59
Сейчас код

ЗагрузитьВнешнююКомпоненту("ESDK2_1C.dll");
            acr122_PCSCInfo = СоздатьОбъект("AddIn.PCSCInfo");
            acr122_DataHelper = СоздатьОбъект("AddIn.DataHelper");
            PCSCCard_mifare = СоздатьОбъект("AddIn.PCSCCard_mifare");

выполняется множество раз (код в обработке, отвечающей за чтение карты). Может быть попробовать выполнять его 1 раз и сохранять значения acr122_PCSCInfo,acr122_DataHelper, PCSCCard_mifare в глобальном контексте, чтобы исключить повторный вызов ЗагрузитьВнешнююКомпоненту?
8 Ваше благородие
 
16.08.13
13:03
По времени в журналах виндовс событие (6) предшествует событию (1). Правда событие в (1) проявляется не всегда, когда наступает событие (6).