ВРМ запрашивает доступ к камере и микрофону и пользователи как правило его дают. Хочу этим воспользоваться для распознавания QR-кодов.

Например, кнопка в разделе "добавить элемент из QR-кода" - открывается окошко с видом камеры, пользователь подносит QR-код, тот сканируется, распознается и создается новый элемент раздела по параметрам из расшифрованного QR-кода.

Кто-нибудь делал что-нибудь подобное? Есть примеры или , может быть, компоненты? Пусть и платные?

Нравится

2 комментария

На английском Community спрашивали, говорят, сейчас нет, но завели идею для будущих версий.

 

А вообще, в QR-кодах записывается обычный URL. Там можно закодировать ссылку на запись в разделе и при считывании кода стандартной функцией телефона перейти прямо в программу (обработка ссылок появилась в 7.14.4).

 

Но если нужно сделать более сложную логику, вроде создания записи с нужными полями, тут может потребоваться запуск процесса или обращение к сервису, которые недоступны из мобильной версии, особенно, если она находящаяся оффлайн.

 

В этом случае потребуется обращение напрямую к серверу, что вызывает вопрос об авторизации до момента открытия запроса из QR-кода. Или как-то разработать дополнительную логику определённой мобильной карточки, отрабатывающей при её открытии и учитывающей значения полей из своего URL.

Кстати, сделал на библиотеке instascan.js. Кому надо, обращайтесь.

 

Показать все комментарии

В прошлый раз мы генерировали QR-коды при помощи веб-сервиса Google. Сейчас рассмотрим другой вариант, работающий без Интернета.

qrcode

Для этого понадобится ActiveX-компонент BarcodeGenerator от Душелова. Разработчиком заявлена поддержка формата QR и многих форматов штрих-кодов.

Качаем и распаковываем архив, запускаем батник reg.bat. Для работы компонента нужен .NET Framework 2.0.

На форму помещаем ActiveXControl с именем axcTest, GUID равным {A7E27105-8C26-331E-BE0B-0308B687EAAC} и ProgID равным Душелов.Barcode1C. Значения ширины и высоты компонента у меня равны 180.

Скрипт генерации крайне прост:

  axcTest.ActiveXObject.Штрихкод = edtText.Value;
  axcTest.ActiveXObject.ТипШтрихкода = 'QR Code';
  axcTest.ActiveXObject.Сгенерировать();

Больше свойств и методов описано в файле документации.

Например, сохранение кода в графический файл:

СохранитьКартинку(ПутьКФайлу, Тип); //тип - строка (bmp, gif, jpg, png или tiff)

Для вышеописанного тестового примера будет:

axcTest.ActiveXObject.СохранитьКартинку('C:\\file.bmp', 'bmp');

Такой QR-код можно использовать в карточке контакта или контрагента для быстрого звонка с мобильного по указанному номеру, ещё его можно выводить в печатные формы.

Нравится

Поделиться

23 комментария

Здравствуйте! Есть такой вопрос:
Стоит задача, в рамках которой мы должны генерировать двумерный штрих код по трем полям.
Есть поля: Артикул, серийный номер и дата производства... Вопрос в том, какими символами их нужно разделять, чтобы сканер потом это распознал?
Нужно ли будет каким-то особым образом настраивать сканер?

Алёна, это зависит от того, куда передаётся и чем обрабатывается информация от сканера. Для обычных одномерных кодов сканеры чаще всего просто имитируют ввод цифр с клавиатуры.

В двухмерном может быть строка произвольной структуры, если её получать от сканера как одну строку и разделять программно. Например, программы для телефонов умеют специальным образом обрабатывать гиперссылки, телефонные номера, email и т.д.

Если разбирать строку в Terrasoft, можно разделить части хоть пробелом, хоть каким-то # примерно так:

var CodeText = '123#456#31.04.2012';
var NumberParts = CodeText.split('#');

Получим массив из 3 строковых элементов.

Александр, спасибо за быстрый ответ! К сожалению, я пока не знаю, как именно будет обрабатываться информация из сканеров, выясню это у клиента.

Здравствуйте!
В Terrasoft установили данный вариант, но на открытии карточки, где расположен ActiveXControl, выдается ошибка (файл во вложение).
Пробовали установить в Visual Studio, так же возникает ошибка.

Марина, а батник reg.bat отработал без ошибок? Файл Dushelov.Barcode1C.dll не перемещали после запуска батника? Фреймворк установлен нужной версии?

Здравствуйте!

Александр, батник установился успешно, файл не перемещали. И фреймворк установлен версии 2.0.

Странно. А на другом компьютере то же самое, не работает?
А другой ActiveX нормально открывается?

Вот мои сервисы тестового примера для 3.3.2.

На другом компьютере аналогичная ошибка: "Не удается найти указанный файл". А вот другой ActiveX (видео) открывается нормально

А мой сервис тоже не открылся?

Снова эта же ошибка :(

Марина, для диагностики проблемы требуется следующая информация:

  1. Операционная система (включая информацию о сервис-паках);
  2. Версия базы данных Terrasoft;
  3. Версия бинарных файлов;
  4. Скриншот колл-стека (касается сбоя в комментарии #4)

1. ОС Windows Server 2003 R2 Enterprise Edition (Service Pack 2)

2. SQL Server 2008

3. Terrasoft 3.4.0.97

4. Скриншот

Проверил на 3.4.0 - тоже работает. А на другом компьютере тоже Windows Server 2003? Может, в ней чего-то не хватает для регистрации библиотеки? Или попробовать регистрировать и тестировать в Windows от пользователя с правами админа?

А Windows 32-битная или 64-битная?

Сейчас попробовала на Terrasoft 3.3.2.255 все работает, получается проблема не в ОС, а в Terrasoft 3.4.0.97

В 97 тоже работает.
3.4.0.97

function wnd_TestFormOnPrepare(Window) {
	Self.WindowCaption = 'Версия программы ' + Connector.Version;
}

Странно, почему у меня не хочет работать в 3.4. А в сам Террасофт ни каких доп сервисов не нужно загружать?

Я переносил только эту тестовую форму и её скрипт. Может, не совпадает GUID или ProgID ActiveX компонента?

При вводе GUID он автоматически сам указывает ProgID и наоборот, поэтому они совпадают. Переношу форму из 3.3.2 в 3.4 опять ошибка, что не найден указанный файл.

Очистка кэша не помогает?

Не помогло, ошибка осталась

Добрый день! Возможно ли уменьшить размер штрихкода? Сделать 238 * 238 пикселей? Если просто уменьшать картинку, то штрихкод не всегда считывается (искажается)

Марина, там есть параметры ШиринаШтрихкода и ВысотаШтрихкода. Код искажается при их изменении? Если же нужно сделать более простой код из меньшего числа клеточек, то не уверен, что этот компонент так умеет, это недостаток.

Показать все комментарии

или как позвонить по номеру из Terrasoft CRM с сотового телефона

Мы уже ознакомились с возможностями OpenSearch и применением RSS, настало время не менее интересной технологии QR-кодов.

Что это?

QR-код, ссылка на сайт Terrasoft

QR-код - двухмерный аналог штрих-кода, клетчатый квадрат, считываемый специальным уйстройством или камерой сотового. В нём может быть закодирован короткий текст, гиперссылка на сайт, телефонный номер и многое другое.

использование QR-кода

Как это нам пригодится?

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

Приступим

Простейшая реализация не требует программирования. Воспользуемся веб-сервисом Google Chart Tools. На детали "Web" раздела "Контакты" или "Контрагенты" создаём новый web-источник под названием "Позвонить". Список источников открывается кнопкой с лупой вверху детали.

создание web-источника

В поле "URL" вводим макрос:

http://chart.apis.google.com/chart?chs=250x250&cht=qr&chl=tel:#Communication1#

Тут "250x250" - размер картинки,"tel:" - протокол обработки содержимого, а "#Communication1#" -
место для подстановки первого номера из базы.

В результате получим такое:
деталь с QR-кодом

Недостатки

  • Для работы нужен доступ в Интернет. Альтернатива - создание своего генератора QR-кодов.
  • Вся информация с кодов уходит в Корпорацию Добра. Впрочем, пользователям GMail и Android переживать уже не стоит.
  • Номера должны храниться в одинаковом формате без пробелов и скобок или приводиться к таковому программно.

Нравится

Поделиться

17 комментариев

Отличная идея!
Еще круче её развить до шифровки информации о контакте в целом (в формате vCard например)
И тогда у нас получиться кейс: менеджер перед встречей с клиентом не переписывает инфу из CRM в свой телефон - а фотографирует экран с QR кодом - и получает в телефоне "карточку" клиента

Экспорт (в идеале и импорт) в vCard был бы сам по себе полезной штукой, безотносительно QR-кодов. Десяток-два карточек лучше заливать на телефон по радио или кабелю, чем фотографируя по одной. Но сделать его в три клика не выйдет, нужно время.

Отличные идеи, как хоть минимально восполнить отсутствие столь необходимого мобильного клиента

Хорошее дело! Какая должна быть версия Terrasoft? У нас нет детали Web.

На 3.3.2 и 3.4.0 деталь есть. На более старых (в разумных пределах) должна быть тоже. Может, она у вас просто скрыта по умолчанию?

Здравствуйте!
Я проверял список деталей по настройке для контактов и контрагентов. Этой детали нет. Версия 3.2.1.61.

Правильно, в 3.2.1 и ранее ее и нету:) можно попробовать туда перетащить из старшей версии

Очень достойное решение, с хорошими возможностями по развитию в сторону vCard, URL, e-mail, и т.п.

Спасибо!

Использовать для email и URL можно уже сейчас, главное придумать ситуацию, в которой может понадобиться делать это с телефона.

Скажем, отправка SMS с шаблонным текстом по разным номерам может найти применение как замена интеграции с SMS-центром для небольших объёмов рассылки.

А если использовать TS на ноутбуке с вебкамерой или планшете с камерой (скажем, под Windows 8), можно будет использовать QR-коды по прямому назначению – как гиперссылки из реальности. Если программа распознавания позволит, можно будет метить ссылками terrasoft:// разные бумажные документы и быстро переходить к ним в системе.

Часть вторая, обходимся без Гугла.

"Владимир Соколов" написал:

Отличные идеи, как хоть минимально восполнить отсутствие столь необходимого мобильного клиента


Запоздало, но все таки дам ссылку - Terrasoft Mobile PT

А в вашем мобильном клиенте случайно не планируется поддержка сабжа? Иначе оффтоп.:wink:

"Зверев Александр" написал:не планируется поддержка сабжа?

Не планируется и именно поэтому это не оффтоп: признайте, что фотографирование номера телефона с экрана компьютера через QR-код- это костыль. И нужен был этот костыль только потому что не было клиента, который сразу умеет синхронизировать контакты.
Сейчас такой клиент есть и не нужно выполнять лишние действия: открыть Террасофт на ПК, открыть приложение для QR-кодов, сфотографировать, внести (вручную!) данные контакта, сохранить в адресной книге. Теперь все просто -
скачиваете приложение на смартфон и у Вас УЖЕ все актуальные контакты в телефоне.

А вот теперь оффтоп:
Мне тут недавно клиент прислал документ ворд, в котором был вставлен Jpeg, на котором сфотографирован монитор, на котором видно MessageBox с ошибкой. Если не уметь пользоваться скриншотами, то это тоже выход!

Речь не обязательно о коде с монитора. Ими можно метить бумажные документы и даже живых контактов (на пропуске). И смартфон с клиентом TS мог бы помочь для их полуавтоматического отслеживания при появлении.

К примеру, в 3.X есть гиперссылки вида terrasoft://, ведущие на разделы и записи. Их было бы можно хранить внутри кодов.

"Зверев Александр" написал:гиперссылки вида terrasoft://

Где можно подробнее про эти гиперссылки?
"Зверев Александр" написал:Ими можно метить бумажные документы

Согласен, это чуть более живой пример, чем перенос контакта через QR-код с монитора. Но я все равно не могу придумать, как этот код должен попадать на документ?
Вариант 1: документ генерируется в Террасофт. Зачем его тогда потом сканировать обратно в Террасофт?
Вариант 2: документ распечатан из другой системы, принесен курьером. Откуда там появится QR-код, о формате которого знает только Террасофт?
"Зверев Александр" написал:и даже живых контактов

А вот эта идея мне нравится. Например на форуме Террасофт (или любых других конференциях) можно было бы ставить такие коды на пропуска и при его считывании создавался бы контакт в мобильном приложении Террасофт.
Если бы в QR-коде еще была ссылка на профиль/фото, то можно было бы решить и такую проблему: часто (у меня по крайнем мере) приезжая с конференции с кучей визиток я пытаюсь их сопоставить с лицами в памяти и не всегда получается:(

"Свистунов Александр Сергеевич" написал:Где можно подробнее про эти гиперссылки?

в scr_HyperlinkUtils и немного тут.

"Свистунов Александр Сергеевич" написал:Вариант 1: документ генерируется в Террасофт. Зачем его тогда потом сканировать обратно в Террасофт?

Например, бланк, сгенерированный TS, выходит в неавтоматизированную часть БП, где должен собрать написанные от руки визы, подписи, пометки или печати. После её окончания код считывается и в системе он уже проходит в новом состоянии "подписан".

"Свистунов Александр Сергеевич" написал:А вот эта идея мне нравится. Например на форуме Террасофт (или любых других конференциях) можно было бы ставить такие коды на пропуска и при его считывании создавался бы контакт в мобильном приложении Террасофт.

Можно и создавать контакт, в коде могут храниться стандартизированные визитки vCard, которые возможно парсить. Но более распространённый сценарий — помечать существующий контакт, заранее зарегистрировавшийся на конференцию и получивший или распечатавший пропуск, как посетивший мероприятие.

"Зверев Александр" написал:в scr_HyperlinkUtils и немного тут.

За ссылку спасибо!
"Зверев Александр" написал:выходит в неавтоматизированную часть БП

Я за полную автоматизацию. В частности по сборку подписей и согласований сейчас как раз собираем обратную связь для решения по документообороту на BPMOnline
ИМХО, после печати и подписи нужен скан документа, а не QR-код с данными.

Показать все комментарии