Автор Тема: Вопрос по конфигуратору ZR1C  (Прочитано 5428 раз)

MikeSPb

  • Пользователь
  • *****
  • Сообщений: 3
Вопрос по конфигуратору ZR1C
« : 22 Апреля 2020, 22:02 »
Добрый день! Возник вопрос по поводу настройки компоненты ZR1C. Есть потребность, чтобы при считывании карты EM- Marine (считыватель Z2-USB) считывался номер не в формате GuardSaaS как по умолчанию происходит, а в другом формате (шаблон: %.2X%.2X%.2X%.2X%.2X , Параметры: b4 b3 b2 b1 b0). В итоге шаблон нужный я создал, протестировал его в PlaceCard. Потом все это проделал в конфигураторе ZR1C и никак не получается прописать это в самой компоненте. Это вообще возможно? Чтобы при чтении карты компонента возвращала номер карты в указанном выше формате? Спасибо.

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по конфигуратору ZR1C
« Ответ #1 : 22 Апреля 2020, 23:12 »
Добрый вечер
Нужно в ConfigZR1C на вкладке "Форматы" добавить нужный формат (+установить флаг "Включено" и флаг "Em-Marine" в типах ключей), на вкладке "Основное" в группе "Настройки ZR1C" установить флаг "Загрузить при старте ZR1C", и нажать кнопку "Сохранить".

MikeSPb

  • Пользователь
  • *****
  • Сообщений: 3
Re: Вопрос по конфигуратору ZR1C
« Ответ #2 : 23 Апреля 2020, 11:27 »
Все проделал как указано, но не получилось. Возможно я не совсем понимаю как конфигуратор работает с компонентой. Первый вопрос как он определяет где лежит файл ZR1C64.dll ? Он же прописывает формат непосредственно в него? Просто я себе как вижу это: Я выгружаю компоненту из 1С в zip архиве. Там лежит версия 1.5.2.1. Распаковываю и подкидываю туда файл конфигуратора ConfigZR1C64.exe и ConfigZR1C.exe (они скачены с версией 1.7.6). И проделываю все что тут написано. При этом я открывал конфигуратор просто двойным нажатием, а так же пробовал перетаскивать dll на конфигуратор (он вроде как его открывает). Но похоже, что не сохраняет по той схеме что вы описали: установить флаг "Загрузить при старте ZR1C", и нажать кнопку "Сохранить". Причем флаг запоминается в реестре я так понимаю, и при повторном открытии конфигуратора он стоит. Я тестировал не только в 1С получившуюся dll, но и в самом конфигураторе на вкладке тест и он мне стабильно выдает данные в формате GuardSaaS. Я Даже для надежности удалил все формты из конфигуратора кроме своего. Если я тестирую через вкладку Формат, то все показывает как надо.

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по конфигуратору ZR1C
« Ответ #3 : 23 Апреля 2020, 12:17 »
как он определяет где лежит файл ZR1C64.dll ?
Конфигуратор ConfigZR1C использует ZR1C64.dll в своей папке (где сам находится).

Он же прописывает формат непосредственно в него?
Формат сохраняет в реестр.

Я тестировал не только в 1С получившуюся dll, но и в самом конфигураторе на вкладке тест и он мне стабильно выдает данные в формате GuardSaaS.
У меня это не проявляется. Такое может быть если dll не той же версии, что и ConfigZR1C, или у dll нет доступа для чтения из реестра.

ConfigZR1C.exe и ZR1C.dll должны быть одной и той же версии (из одного архива), т.к. с v1.7.5 изменен адрес настроек в реестре (было "HKCU\Software\RF Enabled\ZR1C", стало "HKCU\Software\IronLogic\ZR1C").
Нужно:
  • Найти файл "ZR1C.dll" В папках 1С и вручную заменить на новый (битность программы 1С и ZR1C.dll должны совпадать);
  • В ConfigZR1C настроить формат, установить флаг "Загрузить при старте ZR1C" и нажать "Сохранить";
  • Перезапустить 1С.

MikeSPb

  • Пользователь
  • *****
  • Сообщений: 3
Re: Вопрос по конфигуратору ZR1C
« Ответ #4 : 23 Апреля 2020, 12:52 »
Спасибо за помощь! Действительно нужно чтобы конфигуратор и сама dll были одной версии! Плохо только, что в 1С Розница прописана версия dll прямо в конфигурации ("1.5.2.1") и чтобы она не ругалась в подключаемом оборудовании нужно ее изменять в коде, возможно что я проще допишу код вида:

Если ТипЗнч(ОбъектДрайвера) = Тип("AddIn.ZR1CExtension.ZR1CExtension") Тогда
ОбъектДрайвера.ОчиститьФорматы();
ОбъектДрайвера.ВставитьФормат(0, "GateIP", "%.2X%.2X%.2X%.2X%.2X", "b4 b3 b2 b1 b0", 0, 0);
КонецЕсли;

И тогда вроде как работает с стандартной dll из поставки 1С.