Распознаем штрих-коды QR, EAN-13, Code 128 с помощью 1С и веб камеры
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предисловие.
Несложно заметить, что на просторах интернета достаточно много разработок для генерирования штрих-кодов разного типа. Многие используются в качестве онлайн сервисов, другие - как отдельные приложения и, наконец - как внешние компоненты, в том числе и для 1С. Однако, последние, хоть и генерируются в 1С, распознаны ею уже не могут быть. Поиски решения как распознать штрих-код заняли много времени, и были безуспешны - поэтому было решено создать ActiveX для распознавания штрих-кодов.
Технология.Камера
Работа с камерой осуществляется с помощью библиотеки avicap32.dll. Благодаря ей же, реализован метод ПолучитьИмяУстройства(Индекс) возвращающий имя драйвера, который можно использовать для построения списка устройств ввода видео данных.
Технология.РаспознованиеШтрихКода
Изобретать велосипед незачем ,так как уже есть проверенные библиотеки распознавания:
ZXing-2.1*
MessagingToolkit Barcode*
*Библиотеки бесплатны для некоммерческого использования.
Выбор пал на последнюю, ввиду большей скорости обработки информации, однако замечу, что после множества тестов распознавания сложных штрих-кодов (таких как PDF 317 и CODE 128) процент ошибок ZXing был сравнительно ниже.
ВнешняяКомпонента.Использование
К сожалению, на момент написания статьи не удалось решить проблему использования одной библиотеки для обоих клиентов, поэтому чтобы использовать компонент в толстом клиенте используется Shakmaev.Decoder.dll, для тонкого Shakmaev.TDecoder.dll.
Для начала работы с компонентой убедитесь что на компьютере установлен Microsoft Framework 4.
Затем ее необходимо зарегистрировать выполнив команду:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe ".\Shakmaev.Decoder.dll" /codebase
и скопировать файл avicap32.dll(сохраните старый файл, если он уже есть) в папку \Windows\System32.
Для облегчения работы в папке с ВК вы найдете BAT файл(Registry.bat), который поможет сделать все это автоматически.
[Толстый клиент]
Библиотека для работы с обычными формами Shakmaev.Decoder.dll [GUID: 779D9FB8-C4A3-40c2-9E08-296CDAF1165F]
Если вся работа была проделана правильно, в списке окна Форма-Вставить ActiveX должна появиться строка Shakmaev.Decoder. Перед началом работы необходимо указать коды каких типов вы будете пытаться распознать. Для этого существуют параметры вида ИскатьХ, где Х - это любой из этого списка поддерживаемых типов штрих-кодов (например ИскатьQR):
UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 128, QR Code, Interleaved 2 of 5, Codabar, RSS-14, Data Matrix, PDF 417, Aztec, MaxiCode.
Для удобства в ВК есть параметр "ИспользоватьСигнал", если присвоить ему значение "Истина", то при выполнении функции "РаспознатьКод()" системный динамик должен издать звук. К сожалению, это работает только в операционных системах архитектуры x86.
Подробности в обработке "Decoder" архива проекта, форма "ОбычнаяФорма".
[Тонкий клиент, Веб-клиент]
Библиотека для работы с управляемыми формами Shakmaev.TDecoder.dll [GUID: AE078288-5E41-4316-95FF-33AFE7753168]
Чтобы добиться корректной работы ActiveX в управляемом приложении необходимо в настройках обозревателя разрешить выполнение ActiveX сценариев и все что с ними связано. Функции и параметры доступные в обычном приложении тут работают аналогично.
Подробности в обработке "Decoder" архива проекта, форма "УправляемаяФорма".
[UPD 27.08.2013]
Любые действия, связанные с регистрацией компоненты, вы должны выполнять с правами администратора.
//Ошибка RegAsm : error RA0000: При записи регистрационной информации в реестр произошла ошибка.//
Cкорее всего, у вас нет прав доступа к ветке реестра HKEY_CLASSES_ROOT.
Алгоритм дейтвий такой:
1. Нажимаем Пуск - Выполнить
2. Пишем regedit и жмем Enter
3. Кликаем правой кнопкой мыши по ветке HKEY_CLASSES_ROOT и выбираем "Разрешения"
4. Выберите группу Администраторы
5. Убедитесь, пункт "Полный доступ" отмечен, в противном случае отметьте его.
6. Нажмите "Применить", и "ОК"
7. Установка должна пройти успешно. При необходимости перезагрузитесь.
//Ошибка RegAsm : error RA0000: Unable to locate input assembly. 'Путь в ковычках'//
Ошибка связана с тем, что программа регистрации не может найти файл библиотеки. Библиотека компоненты должна находиться в той же папке, что и bat файл.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)
5246 руб.
04.05.2018 52205 128 68
Разработка внешних компонент Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)
Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).
5084 руб.
12.05.2020 34962 147 100
Разработка внешних компонент Инструментарий разработчика Разработчик 1С 8.3 Бесплатно (free)
Внешняя обработка проверяет выгрузку конфигурации, расширений и внешних обработок и находит места, где код руками делает то, что платформа умеет штатно: регулярки через COM, пауза пустым циклом, свой хеш и Base64, распаковка архивов программой, буфер обмена через HTML-поле. По каждой находке пишет, доступна ли замена на месте или мешает тонкий клиент.
13.10.2026 1359 145 nedomolkov.ivan 5
Разработка внешних компонент Разработчик 1С:Предприятие 8 Бесплатно (free)
Нативная внешняя компонента для 1С 8 для чтения файлов Excel без установленного Excel и делает это быстро, файл 68МБ загружается в таблицу значений ~1 секунду. Компонента поддерживает чтение двух форматов: Excel 2007+ и Excel 97-2003 Формат файла определяется автоматически по сигнатуре (первые 8 байт файла), а не по расширению. Позволяет открывать XLS и XLSX файлы и получать содержимое листов в виде ТаблицыЗначений или JSON-массива.
03.07.2026 2395 skyadmin 31
Разработка внешних компонент Разработчик 1С 8.3 Бесплатно (free)
В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.
03.04.2026 4314 SultanovStas 8
Разработка внешних компонент Разработчик 1С 8.3 Россия Бесплатно (free)
Создать NativeAPI-компоненту для Python-скриптов? Это просто!
20.10.2025 11043 IlyaKuznetsov 10
Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)
Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!
14.01.2025 8243 bayselonarrend 17
Разработка внешних компонент Разработчик 1С:Предприятие 8 Россия Бесплатно (free)
В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.
04.12.2024 13847 kovalevdmv 29
Проверить обработку не смог, при старте обработки возникает ошибка:
{Форма.ОбычнаяФорма.Форма(4)}: Ошибка при вызове метода контекста (ПолучитьИмяУстройства)
Устройство = ЭлементыФормы.Декодер.ПолучитьИмяУстройства(К);
по причине:
Произошла исключительная ситуация (Shakmaev.Decoder): Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)
Причем, если вернуть старый avicap32.dll, обработка загружается, но штрих код не распознает (код -1)
Что делать?
{Форма.ОбычнаяФорма.Форма(4)}: Метод объекта не обнаружен (ПолучитьИмяУстройства)
Устройство = ЭлементыФормы.Декодер.ПолучитьИмяУстройства(К);
Компоненту заменил - перестала работать вебка.
Что-т мне кааца, не то она что-то инициализирует.
ЗЫ: Права самые самые, админ я
1. Из примеров работы компоненты можно заметить, что прицеливание работает под разными углами.
2. Конечно, если использовать камеру 0,3 мп, по понятным причинам распознать штрих код сложно.
3. В своей компании я внедрил этот инструмент в бизнес процесс, оператор, в стандартно освещенной комнате, тратит не более 5 секунд для распознавания(цикл постоянно ждет появления штрих-кода EAN и QR).
Ну и наконец, в устройствах(телефоны, планшеты), которые используют похожие алгоритмы, установлены камеры с разрешением от 2 мп, а работают они только если есть освещение.
для QR в разы больше, а тут поколдовать с планшетом и вот тебе реализация себестоимость которой \
4000-20000 т.р.
Единственное - актуален вопрос освещения, для планшетов это проблема. С другой стороны какой-нибудь смарт типа самсунг галакси со здоровенным экраном и вспышкой вполне подойдет.
Таким образом, если убедить директора в такой реализации - то 1Сник получит прямую прибыль.
поэтому плюс.
P.S.: спрашиваю потому, что лень скачивать и заниматься экпериментами. Please, проконсультируй, и измени описание на эту тему, чтобы подобных вопросов не было.
Что касаемо тонкого клиента, если вы правильно установили Shakmaev.TDecoder.dll, попробуйте разрешить выполнение сценариев ActiveX и снимите прочие ограничения ActiveX элементов в окне "Свойства браузера" панели управления.
{Форма.УправляемаяФорма.Форма(14)}: Значение не является значением объектного типа (ИскатьQR)
ВКОбъект.ИскатьQR = Истина;
А именно поиск товара/документа в 1С по алгоритму - нажимаем кнопку - активируется камера, автоматически наводится фокус на штрихкод - распознается код - копируется значение в буфер - деактивируется камера - закрывается обработка - происходит поиск документа по штрих-коду среди документов в открытом журнале документов или товара в подборе товаров или добавление товара непосредственно в документе.
У меня вопрос - скачал вашу обработку "Распознаем штрих-коды QR, EAN-13, PDF 417 и др. с помощью веб камеры" у нас на ноутбуках в системе -разрядности 32х всё отлично работает, а на ноутах, где стоит Windows 7 Проф 64х - при запуска команды "%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe ".\Shakmaev.Decoder.dll" /codebase" выдаёт Ошибку:
RegAsm : error RA0000 : Невозможно загрузить файл или сборку "file:///D:\Decoder\Shakmaev.Decoder.dll" или один из зависимых от них компонентов. Операция не поддерживается. <Исключение из HRESULT: 0x80131515>,
Фото - СкринШот - приложил!
Что посоветуешь???
P.S.
Просто это единственная нормальная компонента, которую я нашел для работы с qr-кодом :)
Прилагаю скрин.
Пытался сделать это на 2-х разных машинах.
1. Windows 8 планшет (где и предполагается потом ее основная работа). После установки всех разрешений браузер даже не начинает серфинг, а выдает сообщение о уязвимости машины. Результат - как на скриншоте в 74 сообщении.
2. Для удобства отладки решил сделать это сначала на рабоче машине (Windows XP). То же самое , но перед открытием формы выдается еще такое вот окно.
Где снять этот запрет? Может я что-то не понимаю? Вот скрин, где меняю настройки. Может что-то не так?
Само распознавание проверить не удалось. Камера, которая под рукой, дает очень нечеткое изображение. Обработка всегда возвращает -1.
В Windows 8 после аналогичных настроек с безопасностью проявились проблемы с камерой. Словом, на Win8 не работает.
-
" или одну из ее зависимых сборок.
Пробовал
Поместите руками вот это "Shakmaev.Decoder.dll" в вот сюда %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe " и запустите .bat
не помогло есть еще варианты?
Виндус 7 64 бита.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 157814
Создание 31.10.12 13:28
Обновление 15.06.20 12:54
Просмотры 99709
Загрузки 278
Рейтинг
151
Комментарии 90
Код открыт Да
Рубрики Разработка внешних компонент
Кому
Системный администратор
,
Разработчик
Тип файла Архив с данными
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)