IronLogic СКУД

Адаптеры & Конвертеры => Z-2 Base => Тема начата: santa561990@yandex.ru от 16 Февраля 2018, 15:37

Название: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 16 Февраля 2018, 15:37
В плане бесплатного драйвера ZR1C Здорово пытаюсь подключить к 1с Перем ДемоКомп;

Процедура ВнешнееСобытие(Источник, Событие, Данные)

Сообщить(Данные);

КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

ПодключитьВнешнююКомпоненту("E:\СчитывателиЗамков\zr1c_v.1.5.1\ZR1C.dll", "Comp", ТипВнешнейКомпоненты.Native);

ДемоКомп = Новый("AddIn.Comp.ZR1CExtension");
//ДемоКомп.Порт = "Com3";           
//ДемоКомп.Лог = true;
DevID = Неопределено;
Попытка
ДемоКомп.Подключить(DevID);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
 
считывает (Работает)
А вот возможно ли с помощью программы 1с и драйвера использовать устройство как не считыватель а конвертер записывать из 1с на карту данные для открытия дверей, я что-то методы не нашёл в описании этого драйвера ZR1C или какие команды и по каким полям записывать может есть описание или нужно использовать другой драйвер?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 16 Февраля 2018, 16:57
Добрый день
Не совсем понятна задача.
В ZR1C есть команды для чтения/записи данных на карту Mifare Ultralight и Mifare Classic, считыватель должен поддерживать эти команды (Z-2 USB MF и др).
ZR1C умеет читать данные карты из определенного блока и передавать в 1c. Двери открывать ZR1C не умеет.
Нужно прописать карту для прохода в контроллер, который открывает дверь? Если да, то у нас для 1c такой компоненты нет. Можете попросить разработку у менеджеров https://ironlogic.ru/il_new.nsf/htm/ru_contacts или можете написать самостоятельно, используя Sdk Guard или протокол http://posix.con.ru/
Какое оборудование?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 20 Февраля 2018, 15:14
Спасибо нашёл описание работы с драйвером и методы Пытаюсь Разработать в 1с)))
Подключение проходит и После подключение проверяю состояние всё хорошо пытаюсь воспользоваться методом согласно описанию инструкции выдает ошибку
ReadMifareUL / ЧитатьMifareUL
Описание:
Читает одну или несколько страниц из Mifare Ultralight.

Синтаксис:
BOOL ReadMifareUL(PWSTR, UI4, BLOB, UI4, UI4=0xFFFFFFFF)Параметры:
PWSTR
[in] Идентификатор устройства (имя порта считывателя);
UI4
[in] Номер первой страницы (от 0 до 15, см. структуру памяти Mifare Ultralight);
BLOB
[out] Считанные данные страниц (каждая страница по 4 байта);
UI4
[in] Количество страниц (максимум 16);
UI4
[in] Тайм-аут ожидания. Если =0xFFFFFFFF, то функция не завершится пока не будут считаны страницы или пока не произойдет ошибка.
Возвращаемое значение:
true, команда выполнена успешно, иначе - false, информацию об ошибке можно получить методом GetLastError / ПолучитьОшибку.
[\CODE]
мой код
[CODE]
Перем ДанныеСКарты;
ЭлЗамки.GetStatus(ПортПодключение);
ЭлЗамки.ReadMifareUL(ПортПодключение,"1",ДанныеСКарты,"15","0xFFFFFFFF");
ЭлЗамки.GetLastError(Ошибка);
Сообщить("111");
[\CODE]
ошибка = Неправильный тип параметра. Естественно я понимаю что не правильно передаю Тип)) но какой должен быть я не нашёл в инструкции я уже экспериментировал Строка, Число
Какой и у какого параметра должен быть Тип? 
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 20 Февраля 2018, 15:29
BOOL ReadMifareUL(PWSTR, UI4, BLOB, UI4, UI4=0xFFFFFFFF)
Перем ДанныеСКарты;
ЭлЗамки.GetStatus(ПортПодключение);
ЭлЗамки.ReadMifareUL(ПортПодключение,"1",ДанныеСКарты,"15","0xFFFFFFFF");
ЭлЗамки.GetLastError(Ошибка);
Сообщить("111");
Какой и у какого параметра должен быть Тип? 
PWSTR - строка,
UI4 - безнаковое целое число,
I4 - знаковое целое число,
BOOL - флаг,
BLOB - бинарные данные (байты).
Скорее всего "1","15","0xFFFFFFFF" передаются как строки, а нужны числа, т.е. нужно убрать кавычки (0xFFFFFFFF можно заменить на -1 или не указывать, т.к. у этого параметра есть значение по умолчанию).
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 20 Февраля 2018, 16:17
Спасибо но есть еще одна ошибка Устройство  "Z-2 USB"
Команда не поддерживается.

ZR1C_E_CMDNOTSUPPORTED 0x8004021E Команда не поддерживается. Команду поддерживают модели считывателей: в бинарном режиме "Z-2 USB MF", "CP-Z2-MF", "Matrix III Net", в ascii-режиме "Z-2 USB", "Matrix III Rd-All", "Z-2 USB MF".

нам нужно устройство перенести в режим ascii? как это сделать?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 20 Февраля 2018, 16:28
нам нужно устройство перенести в режим ascii? как это сделать?
Не нужно переводить. Возможно, не правильно указан порт подключения. Покажите, пожалуйста, код подключения.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 20 Февраля 2018, 16:38

Но веть после подключения я проверяю методом ЭлЗамки.GetStatus(ПортПодключение); возращяет значение 3 (подключен)
ПортПодключение ="COM" + ПараметрыПодключения.Порт
ПортПодключение = COM10
Перем ЭлЗамки
Перем DevId 
ПараметрыПодключения = ПолучитьПараметрыПодключения();
ПодключитьВнешнююКомпоненту("E:\СчитывателиЗамков\zr1c_v.1.5.1\ZR1C.dll", "Comp", ТипВнешнейКомпоненты.Native);
Попытка
ЭлЗамки = Новый("AddIn.Comp.ZR1CExtension");
//ДемоКомп.ОчиститьЛог();
//ДемоКомп.ЗагрузитьНастройки();
//ДемоКомп.ОчиститьФорматы();
//ДемоКомп.ВставитьФормат(0, "GuardSaaS", "%.3u,%.5u", "b2 w01", 0, 0);
ПортПодключение ="COM" + ПараметрыПодключения.Порт; //ПеределатьНаПараметр
//ЭлЗамки.SetParameter ("Модель", Число("3"));                        //ПередлатьНаПараметр
ЭлЗамки.SetParameter("Port",ПортПодключение);
ЭлЗамки.Подключить(DevId); // Подключаемся к считывателю, в DevId получаем имя порта
//ЭлЗамки.Подключить();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки
[\CODE]
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 20 Февраля 2018, 16:50
Включите, пожалуйста, запись лога и пришлите мне. Запись лога включается так ЭлЗамки.Лог = true, или с помощью ConfigZR1C.exe: нужно на вкладке "Основное" установить флаги в группе "Лог", установить флаг "Загрузить конфигурацию при старте ZR1C" и нажать "Сохранить". Лог файл сохранится в "%AppData%\RF Enabled\ZR1C\ZR1C.log" после воспроизведения ошибки.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 20 Февраля 2018, 17:46
я сделал как вы сказали при проверке методом ЭлЗамки.GetStatus(DevId) = 2
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 20 Февраля 2018, 17:55
Судя по логу, к COM10 подключен адаптер RF-1996, который не поддерживает команды чтения/записи Mifare Ultralight / Classic.
P.S. Внешне он похож на Z-2 USB, но на дне RF-1996 наклейка с изображением антенны.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 21 Февраля 2018, 09:37
Какой устройство вы по рекомендуете приобрести для работы из 1с чтобы мы могли программировать и считывать карты
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 21 Февраля 2018, 09:51
Usb-адаптер Z-2 USB MF умеет читать/писать данные на карты Mifare: Ultralight, Classic.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 22 Февраля 2018, 09:43
Добрый день мы приобрели Z-2 USB MF )) но карты не подходят нужно приобретать новые карты? и какие карты? модель замка Z-8 а карты Temix  мы можем записывать и считывать из 1с?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 22 Февраля 2018, 10:21
Добрый день. Поддерживаемые карты описаны на странице замка Z-8 https://ironlogic.ru/il_new.nsf/htm/ru_Z8EHT (https://ironlogic.ru/il_new.nsf/htm/ru_Z8EHT) и странице Z-2 USB MF https://ironlogic.ru/il_new.nsf/htm/ru_z2usbmf (https://ironlogic.ru/il_new.nsf/htm/ru_z2usbmf)
Карта Temic может эмулировать Em-Marine или HID, записать номер Em/Hid можно с помощью Z-2 EHR, Z-2 USB, и с помощью ПО CopyCard.  В компоненте ZR1C чтение/запись номера Em/Hid на Temic не реализована, если нужно реализовать, свяжитесь с техподдержкой по телефону или email.
RF-1996 умеет читать/писать номер Em-Marine и теоретически этому можно научить ZR1C, но я пока не пробовал писать Em этим адаптером, нужно разбираться.
Также не знаю какой у Z-8 приоритет чтения карт, т.е. если на Temic записан Em-Marine, то замок прочитает Em-Marine или номер Temic. Если Z-8 читает только номер Temic, а не записанный на него Em-Marine, то не будет возможности программировать эти карты. Спросите, пожалуйста, у техподдержки https://ironlogic.ru/il_new.nsf/htm/ru_contacts (https://ironlogic.ru/il_new.nsf/htm/ru_contacts)
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 22 Февраля 2018, 12:04
уточнил информацию в тех. поддержки сказали что устройство Z-2 USB MF не поддерживает карты с замками Z-8 возвращаемся к устройству Z-2 USB (1996) и нам не подходит Обработка ZR1C а возможно Реализовать через
SDK-Hotel (SDK Serv 4.9)? из 1с отправлять команды на сервер и регистрировать или считывать карты?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 22 Февраля 2018, 12:12
Z-2 USB и RF-1996 это разные устройства. По Sdk Hotel подсказать не могу, ответит админ.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 26 Февраля 2018, 10:22
приобрели мы Z-2 USB)) уже какой по счёту теперь пробую читать карты выдает ошибку Тайм-аут получения данных ответа из порта.
Карта Temic а в руководстве разработчика только MifareUL и MifareC я понимаю не как мы не сможем из программ 1с работать с этими замками Z-8? так как они не читают карты Mifare или есть иной способ? 

DevId = COM9
ЭлЗамки.GetStatus(DevId);
проверяем на подключение  = 3 (Подключено)
ЭлЗамки.ReadMifareUL(DevId,Число("1"),ДанныеСКарты,Число("15"),Число("-1"));
ЭлЗамки.GetLastError(Ошибка);
Ошибка = Тайм-аут получения данных ответа из порта 
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 28 Февраля 2018, 12:57
приобрели мы Z-2 USB)) уже какой по счёту теперь пробую читать карты выдает ошибку Тайм-аут получения данных ответа из порта.
Карта Temic а в руководстве разработчика только MifareUL и MifareC я понимаю не как мы не сможем из программ 1с работать с этими замками Z-8? так как они не читают карты Mifare или есть иной способ? 
С помощью ZR1C и Z-2 USB можно читать/писать данные на Mifare Ultralight, но нельзя читать/писать данные Temic и Mifare Classic (можно читать только ID карт). ZR1C не работает с замками вообще.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: santa561990@yandex.ru от 12 Марта 2018, 10:04
Добрый день все вроде разобрались все работает с программой SDK Hotel
вы не сможете подсказать?
согласно описанию можно регестрировать 1 номер на карту а как регестрировать несколько номеров если одна общая дверь и дверь от комнаты на одну карту?
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 12 Марта 2018, 10:15
согласно описанию можно регестрировать 1 номер на карту а как регестрировать несколько номеров если одна общая дверь и дверь от комнаты на одну карту?
Добрый день. Я не знаком с этим Sdk. Может быть, общие двери устанавливаются параметром "common_doors", а дверь от комнаты - параметром "place".
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: godman от 02 Декабря 2019, 15:45
Добрый день.
Столкнулся с неприятным моментом:

        ПодключитьВнешнююКомпоненту("C:\temp\ZR1C64.dll", "Comp", ТипВнешнейКомпоненты.Native);
ДемоКомп = Новый("AddIn.Comp.ZR1CExtension");
ДемоКомп.Порт = "Auto";     
    ДемоКомп.Open(Ид);
        // Ид = "COM4"
Результат1 = ДемоКомп.GetStatus("COM4");
        // Результат1 = 3 - Всё правильно
Результат2 = ДемоКомп.GetStatus("Com4");
        // Результат2 = 0 - эээ, не совсем понятно почему нельзя с маленькой буквы, тогда как если сделать ДемоКомп.Порт = "Com4", то Результат2 станет = 3!
Результат3 = ДемоКомп.GetStatus("Auto");
        // Результат3 = 0 - вообще непонятно почему не работает((((((

Очень хочется, чтобы если мы подключаемся с параметром "auto" то и GetStatus("Auto") и Close("Auto") тоже корректно работали с этим параметром.
Название: Re: Интеграция 1с с Z-2 USB
Отправлено: gsa от 02 Декабря 2019, 15:58

ДемоКомп.Порт = "Auto";     
    ДемоКомп.Open(Ид);
Результат3 = ДемоКомп.GetStatus("Auto");
        // Результат3 = 0 - вообще непонятно почему не работает((((((
Очень хочется, чтобы если мы подключаемся с параметром "auto" то и GetStatus("Auto") и Close("Auto") тоже корректно работали с этим параметром.
Добрый день
В функции типа GetStatus нужно передавать Ид, которой вернула ДемоКомп.Open:
Результат3 = ДемоКомп.GetStatus(Ид)