Имя: Пароль:
1C
 
Ошибка драйвера при работе с ККТ
0 mzelensky
 
26.03.25
10:52
Платформа "8.3.15.1830" 64-битный сервер и 64-битный клиент. Конфа самописная. Работа на одном сервере с подключением через RDP.
Кассы Штрих-М. Кассы подключаются через TCP\IP (не через USB\COM). На сервере стоит драйвер 5.18.1077 64-битный от ККТЛаб.

Очень странное поведение при фискализации розничных чеков.

Работа с DLL-кой выполняется вот так:

ПрограммныйИдентификатор = "kktlabDrvKKT1C";
ИнтеграционнаяБиблиотека = ПолучитьОбщийМакет("ИнтеграционнаяБиблиотекаФискальныхЧеков_518");
АдресИнтеграционнойБиблиотеки = ПоместитьВоВременноеХранилище(ИнтеграционнаяБиблиотека);
            
ПодключитьВнешнююКомпоненту(АдресИнтеграционнойБиблиотеки, "ИнтеграционнаяБиблиотекаФискальныхЧеков_518");            
Драйвер = Новый ("AddIn.ИнтеграционнаяБиблиотекаФискальныхЧеков_518." + ПрограммныйИдентификатор);


Далее в полученный объект драйвера устанавливаются параметры:

Драйвер.УстановитьПараметр("ConnectionType", 6);                            
Драйвер.УстановитьПараметр("Port",              0);
Драйвер.УстановитьПараметр("Baudrate",          115200);
Драйвер.УстановитьПараметр("Speed",          115200) ;
Драйвер.УстановитьПараметр("UseIPAddress",     true);                     
Драйвер.УстановитьПараметр("IPAddress",         пСтруктураНастроекКассы.ФискальныеЧеки_АдресTCP);
Драйвер.УстановитьПараметр("TCPPort",         Формат(пСтруктураНастроекКассы.ФискальныеЧеки_ПортTCP,"ЧДЦ=0; ЧГ="));                Драйвер.УстановитьПараметр("UserPassword",      "30");
Драйвер.УстановитьПараметр("AdminPassword",  "30");
Драйвер.УстановитьПараметр("Timeout",          5000);
Драйвер.УстановитьПараметр("RegNumber",      "1");
Драйвер.УстановитьПараметр("SerialNumber",   "1");
Драйвер.УстановитьПараметр("EquipmentType",  "ККТ");


И Вызывается "подключение":

ИДОборудования = "";
РезультатОтветаДрайвера = Драйвер.Подключить(ИДОборудования);

КодОшибки = "";
Драйвер.ПолучитьОшибку(КодОшибки);


Никаких падений в фатальную ошибку нет, код полностью отрабатывает, но у ряда пользователей метод "Драйвер.Подключить(ИДОборудования)" возвращает "ложь", а в "Драйвер.ПолучитьОшибку(КодОшибки)" возвращается "Объект драйвера не установлен".

В общем макете "ИнтеграционнаяБиблиотекаФискальныхЧеков_518" находится zip файл с 2-мя DLL-ками и описанием, которые были взяты из каталога установленного драйвера "5.18.1077". Первый запуск 1С и выполнение данного кода производились под "Запуск от Администратора".

Далее странности:

1) Если выполнять код под "Администратором" терминального сервера, то проблем нет под любым пользователем 1с.
2) Если выполнять код под рядовым пользователем терминального сервера, то у части пользователей код отрабатыает корректно, а у другой части возвращает ошибку "Объект драйвера не установлен". При этом, Сервер терминалов заведен в домен. Права у "рядовых пользователей" абсолютно одинаковые.
3) У ряда пользователй, у которых система выдавала ошибку утром, к вечеру код стал отрабатывать. При этом в правах ничего не менялось.
4) Если создать нового "рядового" пользователя, то тут лотерея - может заработать, а может нет.
1 mzelensky
 
26.03.25
10:52
Заранее прошу прощения за много букв, постарался описать максимально полно и понятно
2 arsik
 
гуру
26.03.25
11:03
3 mzelensky
 
26.03.25
11:16
(2) С вот этим не совсем понял.

В каталоге "Roaming\1C\1cv8\ExtCompT" лежит только файлик "registry.xml". Больше там ничего нет, ни у пользователей, которых РАБОТАЕТ, ни у пользователей, которых НЕ работает
4 mzelensky
 
26.03.25
11:54
Забыл уточнить - работа идет в "Толстом клиенте"
5 mzelensky
 
26.03.25
12:43
ап
6 arsik
 
гуру
26.03.25
13:04
(3) А что внутри "registry.xml" у работающих и неработающих?
7 mzelensky
 
26.03.25
13:30
(6) Содержимое файла "registry.xml" одинаково:

<?xml version="1.0" encoding="UTF-8"?>
<registry xmlns="" target="_blank">http://v8.1c.ru/8.2/addin/registry"/>
8 arsik
 
гуру
26.03.25
13:57
(7) Сделай как в мануале в (2)
сначала УстановитьВнешнююКомпоненту, потом уже ПодключитьВнешнююКомпоненту
9 mzelensky
 
26.03.25
14:17
(8) Уже сделал.

Кажется все же проблема не в этом. А в кривой работе самого драйвера ККТЛаб.

Драйвер устанавливался на сервер под пользователем с административными правами. Сейчас заметили, что у проблемных рядовых пользователей не запускается тест-драйвер. Выдается ошибка "Установите Посцентр Драйвер ККт 64-бит".

У пользователей, у которых тест-драйвер запускается - и ошибки фискализации нет.

Пошли разбираться в чем косяк с установкой драйвера.
10 Garykom
 
гуру
26.03.25
15:43
(9) вероятно через com работает этот драйвер
надо первый раз под юзером с админскими правами (от имени админа) тест запустить