(3) _Z1, кодировку не смотрел. В zint проблема другого рода, я уже описывал в какой-то теме.
Хотелось бы в идеале как c OcvitaBarcode.ocx для 1С 8.* То есть, установил АктивХ, визуально добавил в макет и всё.
(8) Ocvita Barcode ActiveX - компонента для печати штрихкодов (для 1С 8.1, 1C 8.2 и других приложений)
и Ocvita Barcode ActiveX работает на zint
т.е. у тебя тоже все должно работать.
Любую строку ( в том числе и английскую ) надо сначало перевести в UTF-8 и результат
передавать как параметр zint.
вот что написано на сайте Ocvita Barcode ActiveX (зачти я был прав ) :
Максимальный объем штрих-кода QR Code составляет 7089 цифр,
4296 буквенно-числовых символов или 2953 байта данных ( в версии 40).
QR Code также может быть использован для кодирования данных GS1
. С помощью данного штрих-кода можно кодировать символы Latin-1 и Kanji,
являющихся частями схемы кодирования Shift-JIS.
Обратите внимание, что изначально входные данные должны быть введены как UTF-8 поток;
позже Zint автоматически переведет их в Shift-JIS.
Специальный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC),
который добавляет в начало знак «+» и контрольную цифру modulo-49 к закодированным данным.
(9) _Z1, Добавил кодирование функциями, тоже самое.
Функция ПреобразоватьСтрокуВУТФ8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Симв(209)+Симв(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Симв(208)+Симв(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции
Функция ПреобразоватьСтрокуИзУТФ8_БольшеЧем2Байта(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
ИначеЕсли (Код>=128)И(Код<192) Тогда
Иначе
Н=Н+1;
Знак2=Сред(Стр,Н,1);
Код2=КодСимв(Знак2);
Если Код=208 Тогда
Итог=Итог+Симв(КодСимв("А")+Код2-144);
ИначеЕсли Код=209 Тогда
Итог=Итог+Симв(КодСимв("р")+Код2-128);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции
Функция ПолучитьКартинкуQRКода(КодируемыйОбъект,КаталогГенератораШК, ИмяВременногоФайла) Экспорт
Попытка
стрКОд = ПреобразоватьСтрокуИзУТФ8_БольшеЧем2Байта(КодируемыйОбъект);
Сообщить(стрКОд);
КомандаСистемы(КаталогГенератораШК + " -b 58 -o " + ИмяВременногоФайла + " -d " + стрКОд);
Исключение
Сообщить(ОписаниеОшибки());
возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции
В версии 1.1 добавлена возможность выбора кодовой страницы в штрихкоде (UTF-8, windows-1251).
Для штрихкода Datamatrix добавлена возможность принудительного выбора режима кодирования (ASCII, base-256 и т.п.)
(17) _Z1, доработал Ocvita ActiveX (c++) Насчет расх. накладных информации, к сожаленью, нет. Я делал для винотеки. Они хотят клеить qr коды на бутылки. По qr-коду(ссылка на товар) покупатель может получить детальное описание товара в интернет-магазине.
(20) У меня 1с пишет
смб = КомпонентаАктХ.Объект.write_qr_2file(ИмяВременногоФайла);
{C:\TEST\QR_TEST3.ERT(18)}: Поле агрегатного объекта не обнаружено (write_qr_2file)
Перед использованием зарегистрируйте компоненту командой:
regsvr32 OcvitaBarcode.ocx
В Windows Vista / 7 / Server 2008 окно терминала обязательно
открывайте "От имени администратора"
Кроме того, в 64битных версиях данных ОС при проблемах с регистрацией
следует использовать принудительный выбор 32 битной версии regsvr32
c:\windows\syswow64\regsvr32.exe OcvitaBarcode.ocx
Ну, пример автора заработал, опосля обработки напильником.
Одно непонятно, зачем создавать картинку,загружать в неё файло из созданного временного файла, когда в моксель проще вставить сам активикс и просто указать ему нужный qr-код..
(30) сильно не разбирался но у меня как предлагаешь в 30 не получилось - сильно не разбирался
наверное надо использовать tabledoc.dll чтобы вставить сам активикс
если есть пример то выложи , а еще лучше пример с qr и стандартной OcvitaBarcode.ocx
(30) Ёпрст, я, наверное, невнимательно изучил 1С++. Что такое моксель?
Насчет моего решения. Я так сделал из-за того,что оригинальная компонента Оквита просто рисовала баркод на форме. В Таблицу АктивХ не смог прикрутить.
(35) Ёпрст, хехе, не знал ))) Есть moxel.dll Я думал про него ))Действительно, ёпрст! ))
Народ, проверьте плиз, если нетрудно с новой АктивХ. Чтобы я в публикации добавил новый файл
Я лично для различных баркодов всегда использовал StrokeScribe.ocx. Работает безотказно на любых платформах. На форму вставляется через активикс, в таблицу mxl через вставить-объект. Стоит копейки. Базовая версия что-то около 500 руб. Раньше даже была бесплатная версия. Работала как и платная, за исключением того что на штрихкод выводилась небольшая рекламка. У меня от работы с ней только положительные впечатления. Свои небольшие деньги программка отрабатывает на все 1000%.
(41) _Z1, У меня под Win XP всё четко работает. А вот попробовал на Win 2003 R2 оригинальная регится, моя нет. Сейчас покопаюсь, может быть, нарою что
(36) ivsher, для 7ки тоже вставляется через вставить-объект?
Чтобы сгенерировать такой код для вашего сайта, визитки, рекламы или просто забавы ради, нужно перейти на сайт QR-Code Generator. Там нужно задать что именно будем „зашивать“ в QR-код: URL, текст, телефонный номер или SMS. От данного выбора зависит что программа-сканнер вашего телефона будет делать с полученной информацией после сканирования: открывать браузер, звонить или открывать программу редактирования SMS-сообщений.
Далее вводите ваши данные и генерируйте код заданного размера.
Для чтения кода можно установить на iPhone бесплатную программу RQ Reader , а для пользователей Android лучший выбор сегодня — Barcode Scanner.
Сканирование выполняется фотографированием QR-кода камерой смартфона, а программа код распознает и делает с ним прошитое в коде действие.
(49) _Z1, а что даёт QR код в расходной накладной? Интересно, наверняка и мне пригодится!
(У меня к документу штрихкод привязан. Так это для того, чтобы другой документ на основании быстро генерировать с помощью сканера штрих-кода.)
OSX скачал из (46), обработку взял из (57)
При открытии ошибок не выдает, но и код не формирует.
Что еще надо сделать?
OSX зарегистрировалась без ошибок.
У меня на компьютере софта стоит всякого, компилировал на VS 2010. Видимо, всякие библиотеки при компиляции прикрепляло, вот и не регистировался на других компьютерах.
(62) Ёпрст, твоя модифицированная обработка и с оригиналом нормально работает. ))) Что будем делать, удалять публикацию или добавить туда твою обработку?
(64) Да всё равно.
(65) По-старинки, через документ оффиса - там нет проблем со вставкой оле-объекта. Можно и из снеговика попробовать сохранить в клюшечный моксель (мне лень было проверять).
(66) Ёпрст, вот я и хотел по старинке. Но в офисе тоже не было. Точнее, был элемент. Вставил на форму в VBA. Не скопирнулось в 1С. Ну да ладно, может быть, что-то не так сделал. Спасибо за обработку!
(70) во-во, начиная с него там и убрали возможность вставлять оле-объекты (или как-то через одно место они туда вставляются0. Вот в 2003 офисе, там всё ровно.
94.
intellect-21@mail.ru
06.01.18 16:51 Сейчас в теме
(63) Вы не могли бы прислать MDB-шник с этим результатом? Всё под микроскопом перечитал, так и не нашёл как в отчёте Access вывести QR-код строки с русско-английскими-цифрами
95.
intellect-21@mail.ru
06.01.18 16:54 Сейчас в теме
(63) Вы не могли бы прислать MDB-шник с этим результатом? Всё под микроскопом перечитал, так и не нашёл как в отчёте Access вывести QR-код строки с русско-английскими-цифрами
(67, 68 ) ИХМО Решение Ёпрст самое лучшее из предложеных
в этом случае можно брать основную компоненту.
Только на закладке свойст еще2 (more2) надо поставить Кодировка 1251.
Еще как бы вопрос будут или нет искажаться размеры картинки на разных принтерах
при разных разрешениях принтеров
и какой размерстороны в миллеметрах должен быть у картинки для qr cod
(69) _Z1, согласен, ёпрст надо было сразу подключить, я бы столько времени не потратил бы на изучение исходников Октавиты
В моей обработке я настроил для термопринтера 58*30. Р
А в обработке ёпрст, нужно
- убрать "лишние" пустые поля в Таблице. При распачтке выходят пустые листы
- и обязательно инициализировать qrcode в коде(нельзя QRcode = "";), иначе подвешивает и грохает 1Ску
заработал только родной АктивИкс на 2008 х64 с обработкой Ёпрст-а
а кто знает как задать например вызов звонка, смс или координаты/сеть вай-фай, как сдесь например creambee.ru/qr-generator/
пс. что-то нашел сдесь - https://github.com/zxing/zxing/wiki/Barcode-Contents
(79) dava77, Подскажите как вставить в таблицу объект Ocvita Barcode?
Получается только с вашего примера скопировать и вставить в свою таблицу.
Пробовал через меню Таблица/вставить рисунок/объект , но в списке нет объектов ActiveX
(85) beast2040, Только скопировать и вставить из примера!
В 1С в самом деле по другому нельзя сделать.
Второй вариант объект ActiveX вставляется в MSWord, а потом копировать и вставить в 1С.
(86) dava77, Может подскажите как в 1с 8.2 обратиться к компоненте, чтобы присвоить ей строку с сообщением которое нужно закодировать? В макете же нельзя написать Таб.ТекущийОбъект.barcode=QRcode
Все было правильно сделано вот только нужно было в свойствах объекта вместо
УстановитьКод(Таб.ТекущийОбъект)
написать
Таб.ТекущийОбъект.barcode=QRcode
вам спасибо, что показали, что это можно сделать в 77,
а дальше часик творческого поиска нужных строк :)
Ocvita Barcode ActiveX отличный варианта у меня все получилось достаточно быстро. с ойфона сканируется правильно и все приложения тоже дают верный результат.
97.
user615086_semenov_omsk
26.02.18 10:40 Сейчас в теме
Добрый день. Может быть у кого-то была ошибка C++ Line: 432. Формирую табличные документы (по 1000 QR кодов в файле). И примерно на 6-м файле ошибка возникает. :-( Может быть кто то знает как бороться с ней?