Cipherlab rs30 подключение к 1с

Обновлено: 04.07.2024

В компанию был куплен аппарат CipherLab RS30, ТСД на базе ОС Android 4.4.2 cо встроенным сканером штрихкода. Было решено разработать приложение для работы с этим чудом техники на базе Мобильной Платформы 1С. Для примера была взята конфигурация "Мобильная Касса", в которой была уже реализована работа со штрихсканером, с помощью внешних компонент (Стандартная от 1С, вторая от компании ScanCode).

После опытов оказалось, что штрихкод считывается во внешнем окне, которое загораживает весь интерфейс, плюс для каждого считывания штрихкода нужно нажимать кнопку для вызова этого окна, что было совершенно неприемлемо. Было принято решение разработать собственную внешнюю компоненту для считывания штрихкода и передачи его в 1С, без дополнительных окон и нажатий лишних кнопок.

Пришлось декомпилировать платформу, изучить весь внутренний код, но все попытки заканчивались неудачей. И вот настал день, когда надо было окончательно решить, каким способом организовать работу с этим аппаратом, и мы было уже отказались от идеи внешней компоненты и подумывали запустить всю систему через RDP, как, о чудо, после еще одной отчаянной попытки решение было найдено.

А теперь самое главное.

Ограничения: Данный способ подходит только для приложений, собранных с помощью Конфигурации "Сборщик мобильных приложений", также способ подразумевает небольшое вмешательство в исходные файлы мобильной платформы.

Дано:

1. CipherLab RS30

2. SDK для вашего сканера

3. Сборщик мобильных приложений

4. Сама мобильная платформа

5. Android Studio

А теперь начинается магия:

1. Распаковываем файлы платформы

2. Нас интересует Android\prjandroid-arm\bin\permissions.xml этот файл

Этот файл используется при сборке приложений и добавляет в AndroidManifest разрешения, которые указаны в конфигурации.

3. Нас интересует секция <LocalNotification>, которая добавляется, если установлена отметка Локальные Уведомления в требуемых разрешениях мобильного приложения. По умолчанию она выглядит так.

5. Дальше нам нужно добавить фильтр, который будет указывать, какое событие может принять наш receiver, его-то мы и будем передавать из нашей компоненты.

Теперь наша секция должна выглядеть так

6. Теперь запаковываем все обратно, наша мобильная платформа готова.

7. Дальше можно приступать и к разработке в 1С, создаем обработчик локальных уведомлений

Всем большое спасибо за внимание, надеюсь, эта информация будет кому-нибудь полезна.

В результате был написан внешний сервис, работающий в фоновом режиме, который получает штрихкод со сканера и передает его в 1С.

Читайте также: