1c qr code как создать в 1с
Перейти к содержимому

1c qr code как создать в 1с

  • автор:

1С 8.3 Штрих-код (barcode), QRCod — Программист 1С Минск. Автоматизация бизнеса.

Штрих-код и QRCod в 1С 8.3 используется для печати ценников, маркировки товаров/материалов для учета и контроля, упрощения инвентаризации основных средств, идентификация прочих ТМЦ с помощью этикеток. В последних релизах различных типовых конфигураций штрих-код формируется с помощью общего макета метаданных КомпонентаПечатиШтрихкодов, а также вспомогательных функций и процедур: ПодключитьВнешнююКомпонентуПечатиШтрихкода, ОпределитьТипШтрихкода, ПолучитьКартинкуШтрихкода и т.п.. Скачать Пример печати QR-кода. epf

&НаКлиенте
Функция ПодключениеВнешнейКомпонентыПечатиШтрихКода ()

Подключено = ПодключитьВнешнююКомпоненту ( «ОбщийМакет.КомпонентаПечатиШтрихкодов» , «КартинкаШтрихкода» , ТипВнешнейКомпоненты . Native );

Если Подключено Тогда // Создание объекта внешней компоненты
Компонента_Barcode = Новый( «AddIn.КартинкаШтрихкода.Barcode» );
Иначе
Возврат Неопределено;
КонецЕсли;

Если НЕ Компонента_Barcode . ГрафикаУстановлена Тогда
// Картинка не может быть сформирована
Возврат Неопределено;
Иначе
// Установка параметров компоненты
Если Компонента_Barcode . НайтиШрифт ( «Tahoma» ) Тогда
Компонента_Barcode . Шрифт = «Tahoma» ; // Выбран шрифт для формирования картинки
Иначе
// Обход доступных компоненте шрифтов
Для Сч = 0 По Компонента_Barcode . КоличествоШрифтов — 1 Цикл
ТекущийШрифтШК = Компонента_Barcode . ШрифтПоИндексу ( Сч );
Если ТекущийШрифтШК Неопределено Тогда
Компонента_Barcode . Шрифт = ТекущийШрифтШК ; // Выбран шрифт для формирования картинки
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Компонента_Barcode . РазмерШрифта = 14 ;

Возврат Компонента_Barcode ;
КонецЕсли;

&НаКлиенте
Функция ОпределитьТипШтрихКода ( текШтрихКод )

Тип_ШтрихКода = «» ;
Длина_ШтрихКода = СтрДлина ( текШтрихКод );
СуммаШтрихКода = 0 ;

Если Длина_ШтрихКода = 0 Тогда
Возврат Тип_ШтрихКода ;
КонецЕсли;

Если Длина_ШтрихКода = 14 Тогда // ITF14

КоэффициентШК = 1 ;
Для Сч = 1 По 13 Цикл
ВремКодСимвола = КодСимвола ( текШтрихКод , Сч );
Если ВремКодСимвола 48 Или ВремКодСимвола > 57 Тогда
Прервать;
КонецЕсли;
СуммаШтрихКода = СуммаШтрихКода + КоэффициентШК * ( ВремКодСимвола — 48 );
КоэффициентШК = 4 — КоэффициентШК ;
КонецЦикла;
СуммаШтрихКода = ( 10 — СуммаШтрихКода % 10 ) % 10 ;
Если КодСимвола ( текШтрихКод , 14 ) = СуммаШтрихКода + 48 Тогда
Тип_ШтрихКода = «ITF14» ;
КонецЕсли;

ИначеЕсли Длина_ШтрихКода = 13 Тогда // EAN13

EAN13_Булево = Истина;
КоэффициентШК = 1 ;
Для Сч = 1 По 12 Цикл
ВремКодСимвола = КодСимвола ( текШтрихКод , Сч );
Если ВремКодСимвола 48 Или ВремКодСимвола > 57 Тогда
EAN13_Булево = Ложь;
Прервать;
КонецЕсли;
СуммаШтрихКода = СуммаШтрихКода + КоэффициентШК * ( ВремКодСимвола — 48 );
КоэффициентШК = 4 — КоэффициентШК ;
КонецЦикла;
СуммаШтрихКода = ( 10 — СуммаШтрихКода % 10 ) % 10 ;
ПроверочныйСимвол = Символ ( СуммаШтрихКода + 48 );
Если EAN13_Булево И ПроверочныйСимвол = Прав ( текШтрихКод , 1 ) Тогда
Тип_ШтрихКода = «EAN13» ;
КонецЕсли;

ИначеЕсли Длина_ШтрихКода = 8 Тогда // EAN8

EAN8_Булево = Истина;
КоэффициентШК = 3 ;
Для Сч = 1 По 7 Цикл
ВремКодСимвола = КодСимвола ( текШтрихКод , Сч );
Если ВремКодСимвола 48 Или ВремКодСимвола > 57 Тогда
EAN8_Булево = Ложь;
Прервать;
КонецЕсли;
СуммаШтрихКода = СуммаШтрихКода + КоэффициентШК * ( ВремКодСимвола — 48 );
КоэффициентШК = 4 — КоэффициентШК ;
КонецЦикла;
СуммаШтрихКода = ( 10 — СуммаШтрихКода % 10 ) % 10 ;
Если EAN8_Булево И ( КодСимвола ( текШтрихКод , 8 ) = СуммаШтрихКода + 48 ) Тогда
Тип_ШтрихКода = «EAN8» ;
КонецЕсли;

Если Тип_ШтрихКода = «» Тогда // CODE39

CODE39_Булево = Истина;
Для Сч = 1 По Длина_ШтрихКода Цикл
ВремКодСимвола = КодСимвола ( текШтрихКод , Сч );
Если ( ВремКодСимвола 32 )
И ( ВремКодСимвола 36 Или ВремКодСимвола > 37 )
И ( ВремКодСимвола 43 )
И ( ВремКодСимвола 45 Или ВремКодСимвола > 57 )
И ( ВремКодСимвола 65 Или ВремКодСимвола > 90 ) Тогда
CODE39_Булево = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;

Если CODE39_Булево Тогда
Тип_ШтрихКода = «CODE39» ;
КонецЕсли

Если Тип_ШтрихКода = «» Тогда // CODE128
// CODE128 символы ASCII от 0 до 127
// (цифры от 0 до 9, буквы от A до Z и от a до z) и специальные символы
CODE128_Булево = Истина;
Для Сч = 1 По Длина_ШтрихКода Цикл
ВремКодСимвола = КодСимвола ( текШтрихКод , Сч );
Если ( ВремКодСимвола > 127 ) Тогда
CODE128_Булево = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;

Если CODE128_Булево Тогда
Тип_ШтрихКода = «CODE128» ;
КонецЕсли

Если Тип_ШтрихКода = «CODE128» Тогда // EAN128
// В коде EAN128 регламентирован словарь CODE128
// но регламентированы группы кодов
Если КодСимвола ( текШтрихКод , 1 ) = 40 Тогда
Тип_ШтрихКода = «EAN128» ;
КонецЕсли;
КонецЕсли;

&НаКлиенте
Функция ПолучитьКартинкуШтрихкода ( ПараметрыШК )

Если КомпонентаШК = Неопределено Тогда
ВызватьИсключение НСтр ( «ru = ‘Ошибка подключения внешней компоненты печати штрихкода.'» );
КонецЕсли;
// Размер формируемой картинки
КомпонентаШК . Ширина = Окр ( ПараметрыШК . Ширина );
КомпонентаШК . Высота = Окр ( ПараметрыШК . Высота );
КомпонентаШК . АвтоТип = Ложь;

Если ПараметрыШК . ТипКода = 99 Тогда
ТипШК = ОпределитьТипШтрихкода ( ПараметрыШК . Штрихкод );
Если ТипШК = «EAN8» Тогда
КомпонентаШК . ТипКода = 0 ;
ИначеЕсли ТипШК = «EAN13» Тогда
КомпонентаШК . ТипКода = 1 ;
// Если код содержит контрольный символ, обязательно указываем.
КомпонентаШК . СодержитКС = СтрДлина ( ПараметрыШК . Штрихкод ) = 13 ;
ИначеЕсли ТипШК = «EAN128» Тогда
КомпонентаШК . ТипКода = 2 ;
ИначеЕсли ТипШК = «CODE39» Тогда
КомпонентаШК . ТипКода = 3 ;
ИначеЕсли ТипШК = «CODE128» Тогда
КомпонентаШК . ТипКода = 4 ;
ИначеЕсли ТипШК = «ITF14» Тогда
КомпонентаШК . ТипКода = 11 ;
ИначеЕсли ТипШК = «QR» Тогда
КомпонентаШК . ТипКода = 16 ;
ИначеЕсли ТипШК = «EAN13Addon2» Тогда
КомпонентаШК . ТипКода = 14 ;
ИначеЕсли ТипШК = «EAN13Addon5» Тогда
КомпонентаШК . ТипКода = 15 ;
ИначеЕсли ТипШК = «QR» Тогда
КомпонентаШК . ТипКода = 16 ;
ИначеЕсли ТипШК = «GS1DatabarExtendedStacked» Тогда
КомпонентаШК . ТипКода = 17 ;
ИначеЕсли ТипШК = «DataMatrixASCII» Тогда
КомпонентаШК . ТипКода = 18 ;
ИначеЕсли ТипШК = «DataMatrixBase256» Тогда
КомпонентаШК . ТипКода = 19 ;
ИначеЕсли ТипШК = «DataMatrixText» Тогда
КомпонентаШК . ТипКода = 20 ;
ИначеЕсли ТипШК = «DataMatrixC40» Тогда
КомпонентаШК . ТипКода = 21 ;
ИначеЕсли ТипШК = «DataMatrixX12» Тогда
КомпонентаШК . ТипКода = 22 ;
ИначеЕсли ТипШК = «DataMatrixEdifact» Тогда
КомпонентаШК . ТипКода = 23 ;
Иначе
КомпонентаШК . АвтоТип = Истина;
КонецЕсли;
Иначе
КомпонентаШК . ТипКода = ПараметрыШК . ТипКода ;
КомпонентаШК . АвтоТип = Ложь;
КонецЕсли;

Если ПараметрыШК . Свойство ( «ПрозрачныйФон» ) Тогда
КомпонентаШК . ПрозрачныйФон = ПараметрыШК . ПрозрачныйФон ;
КонецЕсли;

КомпонентаШК . ОтображатьТекст = ПараметрыШК . ОтображатьТекст ;

// Картинка штрихкода
КомпонентаШК . ЗначениеКода = ПараметрыШК . Штрихкод ;
// Угол поворота штрихкода
КомпонентаШК . УголПоворота = ?( ПараметрыШК . Свойство ( «УголПоворота» ), ПараметрыШК . УголПоворота , 0 );
// Уровень коррекции QR кода (L=0, M=1, Q=2, H=3)
КомпонентаШК . УровеньКоррекцииQR = ?( ПараметрыШК . Свойство ( «УровеньКоррекцииQR» ), ПараметрыШК . УровеньКоррекцииQR , 1 );

// Если установленная нами ширина меньше минимально допустимой для этого штрихкода
Если КомпонентаШК . Ширина КомпонентаШК . МинимальнаяШиринаКода Тогда
КомпонентаШК . Ширина = КомпонентаШК . МинимальнаяШиринаКода ;
КонецЕсли;

// Если установленная нами высота меньше минимально допустимой для этого штрихкода
Если КомпонентаШК . Высота КомпонентаШК . МинимальнаяВысотаКода Тогда
КомпонентаШК . Высота = КомпонентаШК . МинимальнаяВысотаКода ;
КонецЕсли;

Если ПараметрыШК . Свойство ( «РазмерШрифта» ) И ( ПараметрыШК . РазмерШрифта > 0 )
И ( ПараметрыШК . ОтображатьТекст ) И ( КомпонентаШК . РазмерШрифта ПараметрыШК . РазмерШрифта ) Тогда
КомпонентаШК . РазмерШрифта = ПараметрыШК . РазмерШрифта ;
КонецЕсли;

// Формирование картинки
ДвоичныеДанныеКартинки = КомпонентаШК . ПолучитьШтрихкод ();

Если ДвоичныеДанныеКартинки Неопределено Тогда
// Формируем из двоичных данных.
Возврат Новый Картинка ( ДвоичныеДанныеКартинки );
КонецЕсли;

Платежные документы с QR-кодом в «1С:Предприятии 8»

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

С этой целью в системе «1С:Предприятие 8» реализован национальный стандарт штрихкодирования платежных реквизитов, разработанный Некоммерческим партнерством «Национальный платежный совет» совместно со Сбербанком России. Это позволило совершать платежи быстро и без ошибок.

  • в системе «1С:Предприятие 8» печатает платежный документ с QR-кодом;
  • плательщик производит оплату путем автоматического сканирования данных удобным для него способом (Платежный терминал; Мобильный интернет-банк; Отделение Банка);
  • денежные средства за оказанные услуги поступают на счет получателя.

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

В отличие от обычных квитанций, обработка документов с QR-кодом занимает считанные секунды, ошибки операциониста при этом исключены. Такие квитанции принимаются к оплате в Сбербанке, а также в ряде других банков и финансовых организациях, поддержавших стандарт: ВТБ, Альфа-банк, КиберПлат, Почта России и др.

Фирма «1С» реализовала поддержку QR-кода на уровне «Библиотеки стандартных подсистем» «1С:Предприятия 8». Функция печати QR-кода предоставляется в рамках договора информационно-технологического сопровождения 1С:ИТС и может быть легко встроена в любое прикладное решение системы. Подробную инструкцию по созданию платежных документов с QR-кодом можно получить на сайте http://www.sbqr.ru/standard/files/QR_code_in_1C.pdf.

  • «1С:Бухгалтерия государственного учреждения 8» — документы ПД-4, Заявление физического лица на перевод денежных средств, Счет на оплату.
  • «1С:Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК» — квитанция на оплату услуг ЖКХ.
  • «1С:Расчет квартплаты и бухгалтерия ЖКХ» — квитанция на оплату услуг ЖКХ

Формы этих документов используются службами ЖКХ, государственными и муниципальными учреждениями для выставления квитанций на оплату госпошлин, услуг ЖКХ, услуг дошкольного и дополнительного образования и т. п. Провести платеж по квитанциям с QR-кодом можно за считанные секунды в любом отделении Сбербанка, а также в ряде других банков и финансовых организаций.

Платежные документы с QR-кодом в «1С:Предприятии 8», Печать квитанции

Информация о Едином стандарте «Двумерные символы штрихового кода на документах для осуществления платежей физическими лицами» размещена на нашем сайте в разделе «Стандарты и форматы».

QR-коды / штрих-коды за 16 минут: небольшое видео из курса «Разработка мобильных приложений на 1С:Предприятии 8.3»

Это особенно актуально для мобильных устройств – возможности для ввода на них все-таки ограничены.

Представьте, как неудобно вводить web-адреса, данные визитных карт, ссылки на PDF, полные описания товаров и прочее даже в самом современном смартфоне.

А теперь давайте посмотрим, что дает, например, простое сканирование QR-кода:

  • Считывание URL-адреса и переход на соответствующую страницу
  • Сохраняет контактные данные (“виртуальная визитка”) из QR-кода
  • Считывание простого статического текста
  • Создание e-mail, можно с предварительно заданным содержанием
  • Отправка SMS-сообщения, можно с предварительно заданным содержанием
  • Открытие PDF/MP3 из указанного в QR-коде адреса
  • Показ фотогаллереи
  • Multi URL – открытие разных ссылок в зависимости от места и времени
  • Вызов карты Google с заданной локацией

И это еще не все – есть поддержка динамических кодов, содержание которых можно менять и после того, как вы, например, распечатали QR-коды в журнале или на баннере…

В общем, отличный инструмент в умелых руках 🙂

Итак, сегодняшнее видео:

Создавайте удобные приложения: сканирование телефоном линейных и QR-кодов

В видео мы рассмотрим работу с камерой мобильного устройства – для чтения штрих-кодов.

В уроке будут разобраны 2 варианта:

  • Использование штатного функционала мобильной платформы 1С при работе со штрих-кодами
  • Применение внешних приложений.

Почему нужно использовать внешние приложения? – Потому что они могут предоставить ряд дополнительных возможностей, например, создание штрих-кода.

Полный курс по мобильной платформе 1С 8.3

Если Вы хотите не просто знать отдельные “фишки”, но и уметь разрабатывать полноценные мобильные приложения на 1С и интегрировать их со “стационарными” решениями – рекомендуем пройти полный курс.

Поддержка – 2 месяца. Объем курса – 13 учебных часов.

Добавить комментарий

Ваш адрес email не будет опубликован.