Оживляем ТСД на Android 13-15 для 1С

04.05.26

Интеграция - Терминал сбора данных

Купили ТСД на Android 13-15, или обновили прошивку сканера, и мобильная платформа 1С перестала принимать аппаратный Enter? Старые внешние компоненты падают с ошибками, а склад стоит? 📦 В этой статье делюсь решением как оживить любые сканеры с помощью легковесного самописного APK. Решение последней надежды, когда штатные методы сдались.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Готовый Android APK + Код на 1С
.zip 954,60Kb
0 3 400 руб. Купить
Исходный код проекта на Kotlin
.zip 428,50Kb
0 4 600 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Представим сценарий: приобрели партию терминалов сбора данных на Android 13-15. Красивые, мощные аппараты и все отлично работает, но в какой-то момент прилетает обновление прошивки сканера и... мобильное приложение 1С просто перестает получать штрихкоды. 

Причины и ошибки могут быть разные:

  • внешние компоненты падают с ошибками совместимости.
  • Broadcast не летит.
  • В режиме эмуляции клавиатуры сканер бессовестно отрезает суффикс Enter.

Итог закономерен: склад стоит, менеджеры в панике, разработчик в мыле.

 

Почему стандартные методы пасуют на Android 13-15?

Проблемы проявляются из-за следующих факторов:

  • Зоопарк ТСД огромен, и у каждого производителя свои нюансы работы с Intent и железом.
  • Новые версии Android 🤖 (особенно SDK 33-35) жестко ограничивают работу фоновых сервисов и доступ к файловой системе.
  • Ошибки или изменения в прошивках сканера приводят к тому, что аппаратное нажатие Enter просто перестает транслироваться через стандартные механизмы.

 

Решение 🚀

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

  1. 1С дергает невесомое Android-приложение через стандартный Intent.
  2. Android-приложение открывается поверх всех окон и забирает фокус в скрытое поле ввода текста.
  3. Сканер "плюет" туда символы, и когда поток символов останавливается срабатывает таймаут (100 - 2000 мс) или ловится IME_ACTION_DONE, если сканер его вдруг передал.
  4. Штрихкод записывается в текстовый файл, и активность Android-приложения сама закрывается.
  5. 1С получает сообщение, что приложение закрыто, забирает файл из каталога, читает и удаляет его.

 

Внутри APK и Интеграция с 1С: Техническая часть

Главное препятствие на свежих Android - Scoped Storage. Начиная с Android 11+ нельзя просто так взять и записать файл в корень. Поэтому при первом старте приложение запрашивает доступ и в настройках Android следует выдать приложению права "Доступ ко всем файлам". Только тогда приложение может беспрепятственно писать данные по пути, который сможет прочитать 1С.

На стороне 1С всё сводится к вызову внешнего приложения и чтению результата. Путь к директории должен совпадать с тем, куда пишет APK.

//...
#Если МобильноеПриложениеКлиент Тогда
   ЗапускПриложения = Новый ЗапускПриложенияМобильногоУстройства();
   ЗапускПриложения.Приложение = "ИМЯ_ПРИЛОЖЕНИЯ";
   ЗапускПриложения.ИмяКласса = "ИМЯ_ПРИЛОЖЕНИЯ.MainActivityKts";
   ЗапускПриложения.Запустить(Истина); 
#КонецЕсли

Для каждого Файл из НайтиФайлы("ПУТЬ_К_ДИРЕКТОРИИ","*.txt", Истина) Цикл
   ОбработкаФайла(Файл.ПолноеИмя);
КонецЦикла; 
//...

&НаКлиенте
Процедура ОбработкаФайла(ФайлПолноеИмя)
    Текст = "";
    ТекстФайл = Новый ЧтениеТекста(ФайлПолноеИмя);
    Стр = ТекстФайл.ПрочитатьСтроку();
    Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
        Текст = Текст + Стр;
        Стр = ТекстФайл.ПрочитатьСтроку();
    КонецЦикла;
    ТекстФайл.Закрыть();    
    УдалитьФайлы(ФайлПолноеИмя);   
    Сообщить(Текст); // Штрихкод
КонецПроцедуры

 

Выводы и файлы для скачивания 🎯

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

Решение протестировано с мобильной платформой 1С версии 8.3.27.* для Андроид 13-15. А также работает на старых Андроид с мобильной платформой 8.3.15.105.

Файлы для скачивания:

  • Готовый APK (EanReader.apk) + Пример Кода на 1С для вызова и парсинга. Решение для тех, кому нужно здесь и сейчас. Просто скачай, поставь на ТСД, пропиши путь в 1С и используй. Сборка поддерживает все версии SDK 26-35 включительно.
  • Полный исходный код проекта на Kotlin (ZIP-архив). Для тех, кто хочет поменять логику, изменить иконку, добавить какие-то фишки на уровне исходного кода.

 

Возможно, Вас заинтересуют и другие публикации:

Вступайте в нашу телеграмм-группу Инфостарт

ТСД Android 13 Android 15 сканер штрихкодов мобильная платформа 1С внешняя компонента Intent APK Scoped Storage эмуляция клавиатуры Kotlin интеграция 1С разработка под Android штрихкод прошивка

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3050 руб.

03.12.2018    69416    238    106    

187

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

3050 руб.

22.04.2019    118869    714    205    

376

Мобильная разработка Терминал сбора данных Программист 1С 8.3 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Возникла необходимость написать мобильное приложение на платформе 1С под терминал сбора данных Cipher RK 26. В этом терминале, само собой, есть встроенный сканер ШК. Мое приложение должно как-то работать с ним. Самый простой вариант - через эмуляцию клавиатуры, но у этого способа есть минусы: служебные символы, типа GS1, могут не приходить, или приходить с искажениями, корректность ввода зависит от фокуса и режима редактирования поля штрихкода, постоянная борьба с экранной клавиатурой, и т.д. И есть другой вариант - ловить так называемые "интенты" (broadcast intent) - события ОС Андроид. А как их ловить в 1С? Оказывается, это умеет делать типовой "драйвер устройств ввода", включенный в БПО 1С. Вот об этом варианте я и хочу рассказать. Также предлагаю скачать тестовую конфигурацию мобильного приложения, демонстрирующую результат. Но это не обязательно, т.к. все настройки опишу далее.

5 стартмани

23.04.2026    385    kirlog    7    

3

Логистика, склад и ТМЦ Терминал сбора данных Программист Пользователь 1С 8.3 1С 8.5 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Проверка и подбор маркируемой продукции с помощью мобильного терминала сбора данных. Простое и элегантное решение для склада, которое позволяет осуществить сверку маркируемой продукции при поступлении и сделать подбор в документ реализации при отгрузке. Работает посредством бесплатного мобильного клиента (не путать с мобильным приложением) в режиме онлайн с подключением к базе данных напрямую.

1 стартмани

17.04.2026    606    6    Avkisl    5    

2

Терминал сбора данных Системный администратор Программист 1С 8.3 Абонемент ($m)

Набор мобильных конфигураций с примерами работы со встроенными сканерами ТСД различных производителей.

10 стартмани

07.04.2026    1757    3    aximo    9    

8

Терминал сбора данных Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В статье описывается применение мобильного клиента 1С:ERP при разработке интерфейса терминала сбора данных (ТСД), на примере выполненного проекта в отрасли пищевой промышленности, экспертами по внедрению 1С:ERR, компании "Институт типовых решений - производство".

09.07.2025    4504    itrp    5    

2

Терминал сбора данных Программист 1С:Предприятие 8 1С:Розница 2 Казахстан Абонемент ($m)

Расширение позволяет отправлять суммы чеков на терминалы посредством API.

1 стартмани

11.03.2025    4713    18    stanisoni    18    

3
Для отправки сообщения требуется регистрация/авторизация