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

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

  • автор:

 

Оплата через СБП по кассовому QR-коду в 1С:Рознице и 1С:УНФ

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

Кассовый QR-код в Рознице и УНФ

Что такое кассовый QR-код при оплате через СБП

В статье рассмотрим, как настроить кассовый QR-код для приема оплат в 1С:Рознице 3.0 и 1С:Управление нашей фирмой.

Для настройки получения оплаты по кассовому QR-коду необходимо подключить Систему быстрых платежей (СБП). Узнать, как подключить СБП в 1С:Рознице и 1С:УНФ можно в статье на сайте ИТС «Как работать с СБП» (доступна по договору).

Создание и печать кассового QR-кода для оплаты через СБП

Кассовый QR-код создается и распечатывается для каждой кассы ККМ.

Для этого открываем карточку кассы в справочнике «Кассы ККМ» и устанавливаем флажок «Использовать кассовый QR-код». Выбираем способ оплаты из настроек подключения СБП. По кнопке «Сформировать QR-код» создаем для конкретной кассы свой код для приема оплат. По кнопке «Печать QR-кода» распечатываем код.

Создание и печать кассового QR-кода

Распечатанный QR-код размещаем рядом с кассой для свободного сканирования покупателями.

Создание и печать кассового QR-кода

Прием оплаты по QR-коду через СБП

После настройки подключения к СБП и печати кассового QR-кода появляется кнопка «СБП» для оплаты.

Оформить продажу и прием оплаты можно на рабочем месте кассира.

Оплата по СБП в чеке ККМ

Оплата по СБП в чеке ККМ

После нажатия на кнопку «СБП» кассир сообщает покупателю, что можно оплачивать. В этот момент времени QR-код содержит оплату товара конкретного покупателя. После сканирования QR-кода в приложении своего банка покупатель видит сумму покупки и ему достаточно просто оплатить.

Если покупатель не успел оплатить, то можно закрыть окно оплаты и сформировать новое. Для оплаченного чека доступна возможность «Отложить чек».

Отменить оплату или отложить чек по СБП

Использование NFC при оплате СБП для розничных продаж

Кассовый QR-код c NFC-меткой в Рознице и УНФ

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

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

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

Прием оплаты по кассовому QR-коду уже сейчас можно подключить через платежный агрегатор «Пэймастер». Далее список банков с поддержкой кассовых QR-кодов будет расширяться. Новая возможность удобна в использовании, позволяет сэкономить на эквайринговом оборудовании и бумаге.

Внешний компонент “1C:Печать штрихкодов” (Native) для платформы «1С: Предприятие 8.3»

Внешний компонент «1С:Печать штрихкодов» для платформы «1С:Предприятие 8.3» поставляется в составе «1С:Библиотеки подключаемого оборудования» (далее БПО) и «1С:Библиотеки стандартных подсистем» (далее БСП) . Компонент предназначен для формирования изображений штрихкодов в формате PNG на основе передаваемых в компонент данных и параметров построения изображения. Компонент может использоваться только совместно с программными продуктами системы «1С:Предприятие 8» на рабочих местах, обеспеченных Лицензией на использование системы программ «1С:Предприятие 8».

  • Основные возможности
  • Алгоритм генерации изображений ШК
  • Невозможность генерации изображения
  • Свойства
  • Методы
  • Особенности работы с GS1 кодами
  • Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

Основные возможности

Внешний компонент «1С:Печать штрихкодов» позволяет формировать изображения штрихкодов следующих типов: EAN8, EAN13, EAN13 AddOn 2, EAN13 AddOn 5, ITF14, RSS14, EAN128, Code39, Code39 Full ASCII, Code93, Code128, Code16k Industrial 2 of 5, Interleaved 2 of 5, CodaBar, PDF417, QR, GS1 databar extended stacked, DataMatrix ASCII, DataMatrix Base256, DataMatrix Text, DataMatrix C40, DataMatrix X12, DataMatrix Edifact, GS1 Datamatrix. Компонент позволяет автоматически определять тип штрихкода исходя из передаваемых параметров (см. раздел «Свойства компонента»).

Алгоритм генерации изображений ШК

Внешний компонент «1С:Печать штрихкодов» реализует следующий алгоритм генерации изображений ШК:

  1. Валидация переданных параметров. На этапе валидации производится определение ТипаКода, если он не задан явно (см. свойство АвтоТип), преобразование ЗначенияКода в соответствии с ТипомВходныхДанных к внутреннему формату, а так же проверка возможности генерации ШК по полученным значениям.
  2. Генерация штрихкода, как таблицы значений закрашенных и не закрашенных областей
  3. Определение предельных габаритов ШК на изображении в соответствии с запрошенными Шириной и Высотой. Компонент рассчитывает максимально возможные размеры ШК, с элементами состоящими из максимального целого числа пикселей. Например, 1d ШК состоит из линий ширины 1ч-1б-2ч-2б-1ч — то есть 7(1+2+1 черных полосы и 1+2 белых), поэтому если будет запрошена Ширина, скажем, 27 пиксела, то будет сгенерирован ШК ширины 21 пиксел (максимальный кратный 7), остальное место на изображении останется не занятым. Таким образом, компонент генерирует точное растровое изображение: размер минимального элемента составляет минимум 1 пиксель и количество пикселей на элемент всегда целое.
  4. Определение габаритов генерируемого изображения. Если свойство УбратьЛишнийФон не задано, то будет сгенерировано изображение запрошенных Ширины и Высоты, иначе, изображение такого же размера как размер ШК определенный на предыдущем этапе. Так в примере выше, считая что запрашиваемые Ширина Высота, скажем 27 и 10 соответственно, если свойство УбратьЛишнийФон принимает значение Ложь, то будет сгенерировано изображение 27х10, ШК на котором будет 21х10(1d ШК). Т.е 6 пикселей — по 3 с левой и правой стороны от значащей части ШК, будут оставаться пустыми. Если же свойство УбратьЛишнийФон установлено, то будет сгенерировано изображение 21х10 со значащей частью 21х10 изображающей ШК.


    5. Генерация изображения ШК с учетом заданного угла поворота и других параметров визуализации. Графически это можно представить следующим образом:

В случае успешной генерации изображения ШК свойство Результат будет содержать значение 0.

Невозможность генерации изображения

Свойства

Название RU/EN Тип Чтение Запись Описание
Свойства, общие для всех типов штриховых кодов
ТипКода (CodeType) Число + + Свойство содержит идентификатор типа штрихкода. Может принимать одно из следующих значений:
0 (тип кода — EAN8)
1 (тип кода — EAN13)
2 (тип кода — EAN128)
3 (тип кода — CODE39)
4 (тип кода — CODE128)
5 (тип кода — CODE16K)
6 (тип кода — PDF417)
7 (тип кода — Industrial2of5)
8 (тип кода — Interleaved2of5)
9 (тип кода — Code39FullASCII)
10 (тип кода — CODE93)
11 (тип кода — ITF14)
12 (тип кода — RSS14)
13 (тип кода — CodaBar)
14 (тип кода — EAN13 AddOn 2)
15 (тип кода — EAN13 AddOn 5)
16(тип кода — QR)
17(тип кода — GS1 databar extended stacked), [с версии 9.0.2.2],
18(тип кода DataMatrix ASCII), [с версии 9.0.2.2],
19(тип кода DataMatrix Base256), [с версии 9.0.2.2],
20(тип кода DataMatrix Text), [с версии 9.0.2.2],
21(тип кода DataMatrix C40), [с версии 9.0.2.2],
22(тип кода DataMatrix X12), [с версии 9.0.2.2],
23(тип кода DataMatrix Edifact)[с версии 9.0.2.2],
24(тип кода GS1 Datamatrix) [с версии 9.0.6.4]
АвтоТип (CodeAuto, AutoType) Булево + + Свойство определяет признак автоматического определения ТипаКода в зависимости от значения переданных в свойствах ЗначениеКода и ТипВходныхДанных.
Когда значение свойства принимает значение «Истина» ТипКода определяется автоматически.
ЗначениеКода (CodeValue)) Строка + + Строка или Base64 Строка (см. свойство ТипВходныхДанных) содержащая данные генерируемого ШК
ТекстКода (CodeText) Строка + Свойство содержит подпись штрихкода
ОтображатьТекст (TextVisible) Булево + + Свойство указывает необходимость отображать подпись штрихкода на сгенерированном изображении
Шрифт (Font) Шрифт + + Свойство содержит шрифт, используемый при отображении подписи штрихкода
РазмерШрифта (FontSize) Число + + Свойство содержит размер шрифта в пикселах
КоличествоШрифтов(FontCount) Число + Свойство содержит количество шрифтов установленных в системе, которые может использовать компонент.
Разделители (CodeSentinel) Число + + Свойство содержит высоту полос-разделителей (только в EAN8 и EAN13) в процентах от высоты текста
Шрифт (Font) Шрифт + + Свойство содержит шрифт, используемый при отображении строки на поверхности штрихкода (свойство имеет смысл только в том случае, когда предусмотрен вывод данной строки).
РазмерШрифта (FontSize) Число + + Свойство содержит размер шрифта в пикселях
КоличествоШрифтов(FontCount) Число + Свойство содержит количество шрифтов установленных в системе, которые может использовать компонента.
ПоложениеТекста (TextPosition) Число + + Свойство задаёт положение подписи. Свойство принимать следующие значения:
0 (снизу)
1 (сверху)
ПрозрачныйФон (BgTransparent) Булево + + Свойство содержит признак использования прозрачного фона
УголПоворота (CanvasRotation) Число + + Свойство содержит угол поворота (в градусах) штрихкода на сгенерированном изображении. Может принимать следующие значения:
0
90
180
270
УголПоворота (CanvasRotation) Число + + Свойство содержит угол поворота (в градусах) штрихкода.
Может принимать следующие значения:
0
90
180
270
ВертикальноеВыравниваниеКода(BarVerticalAlign, CodeVerticalAlign) Число + + Свойство задает способ вертикального выравнивания штрихкода на сгенерированном изображении.
Свойство может принимать следующие значения:
1 (по верхнему краю)
2 (по центру)
3 (по нижнему краю)
ТипВходныхДанных (InputDataType) Число + + Отмечает тип входных данных, которые задаются в свойстве ЗначениеКода. Свойство может принимать следующие значения
0 –Строка
1 – Base64 строка
Результат (Result) Число + Возвращает результат генерации изображения ШК
0 – успешная генерация
1 – ошибка
УбратьЛишнийФон (RemoveExeedBackgroud, RemoveExtraBackgroud) Булево + + Указывает генератору, что требуется убрать лишний фон по краям ШК. В этом случае сгенерированное изображение ШК может быть меньше, чем указанные в свойствах Ширина и Высота. Изображение штрихкода будет совпадать с максимальным размером ШК, который можно вписать в указанные Ширину и Высоту
Ширина (Width) Число + + Свойство задает Ширину генерируемого изображения в пикселах
Высота (Height) Число + + Свойство задает Высоту генерируемого изображения в пикселах
УровеньКоррекции (ECL) Строка + + Свойство задаёт уровень коррекции ошибок. Актуально для PDF417.
МинимальнаяВысота (CodeMinHeight) Число + Свойство содержит минимально возможную высоту области, на которой может быть отображён данный штрихкод
МинимальнаяШирина (CodeMinWidth) Число + Свойство содержит минимально возможную ширину области, на которой может быть отображён штрихкод с заданными параметрами
Линейные (ld) штрихкоды
СодержитКС (CodeIsRaw, CodeHasCS) Булево + + Данное свойство содержит признак того, что переданное сообщение содержит контрольный символ
ВидимостьКС (CodeShowCS) Булево + + В случае, когда данное свойство принимает значение «Истина», контрольный символ будет включён в строку подписи
КонтрольныйСимвол (CodeCheckSymbol) Строка + Свойство содержит контрольный символ, если тип штрихкода предполагает его использование
PDF417
КоличествоСтолбцов (ColumnCount) Число + + Свойство задаёт количество столбцов штрихкода. Актуально для PDF417
КоличествоСтрок (RowCount) Число + + Свойство задаёт количество строк штрихкода. Актуально для PDF417
Пропорции (AspectRatio) Строка + + Свойство задаёт соотношение высоты: ширины модулей штрихкода. Актуально для PDF417
УровеньКоррекции (ECL) Строка + + Свойство задаёт уровень коррекции ошибок. Актуально для PDF417
QR
УровеньКоррекцииQR(QRErrorCorrectionLevel) Число + + Свойство содержит значение уровня коррекции QR-кода.
Может принимать одно из следующих значений:
0 — L
1 — M
2 — Q
3 – H
ЛоготипКартинка(LogoImage)
ЛоготипКартинкаBase64(LogoImageBase64)
Строка + Передает PNG картинку логотипа вписываемого в QR-код в виде Base64 строки
ЛоготипРазмерПроцентОтШК(LogoSizePercentFromBarcode) Число + + Отмечает процент заполнения логотипом изображения QR-кода
GS1 Databar extended stacked
GS1DatabarКоличествоСтрок(GS1DatabarRowCount) Число + + Свойство содержит количество строк штрихкода GS1 Databar extended stacked
Устаревшие свойства*
Разделители (CodeSentinel) Число + + Свойство содержит высоту полос-разделителей (только в EAN8 и EAN13) в процентах от высоты текста
ЦветТекста (TextColor Цвет + + Свойство содержит цвет, используемый при отображении строки на поверхности штрихкода (свойство имеет смысл только в том случае, когда предусмотрен вывод данной строки).
ЦветФона (BgColor) Цвет + + Свойство задаёт цвет заливки фона штрихкода. Имеет смысл только тогда, когда не используется прозрачный фон.
ЦветПолос (BarColor) Цвет + + Свойство содержит цвет, используемый для заливки полос на поверхности штрихкода
ГорСмещение (CanvasXOffset) Число + + (В настоящий момент не используется)
Свойство содержит значение горизонтального смещения изображения штрихкода
ВертСмещение (CanvasYOffset) Число + + (В настоящий момент не используется)
Свойство содержит значение вертикального смещения изображения штрихкода
РазмерКрая (CanvasMargin) Число + + (В настоящий момент не используется)
Свойство задаёт ширину рамки вокруг изображения штрихкода
ВыравниваниеКода (BarAlign) Число + + (В настоящий момент не используется)
Свойство задаёт способ автоматического расположения изображения штрихкода.
Может принимать следующие значения:
0 (не использовать автоматическое выравнивание)
1 (по левому краю области)
2 (по центру)
3 (по правому краю области)
ОриентацияТекста (TextAlign) Число + + Свойство задаёт способ размещения подписи штрихкода. Свойство может принимать следующие значения:
0 (выравнивание текста по центру области)
1 (выравнивание текста по левому краю области)
2 (выравнивание текста по правому краю области)
3 (растянуть текст по ширине области)
4,5,6 (варианты расположения текста, обычно применяемые на штрихкодах типов EAN8 и EAN13)

* Устаревшие свойства не используются в актуальных версиях компонента и будут удалены (станут недоступны) начиная с версии 10.1.1.1.

Методы

Название (алиас) Параметры Возвращаемое значение Описание
ПолучитьШтрихкод (GetBarcode) Изображение Метод возвращает изображение сгенерированного штрихкода
ШрифтПоИндексу (FontAt) Индекс Шрифта (от 0 до КоличествоШрифтов(FontCount)-1) Строка Строка — имя Шрифта по индексу
НайтиШрифт (FindFont) Имя Шрифта Истина/Ложь Метод возвращает «Истина» если шрифт с указанным именем был найден, и «Ложь» в противном случае

Особенности работы с GS1 кодами

К GS1 типам кодов относятся – EAN128, GS1 Datamatrix и GS1 Databar extended stacked. При задании ЗначенияКода GS1 кодов допускается две формы ввода:

  1. В виде Строки. В этом случае ЗначениеКода должно содержать код GS1 в HRI (Human Readable Inеrpretation) виде, в котором коды групп применения заключены в круглые скобки, например, (01)04600822901507(11)161109(30)2434. В этом случае компонент интерпретирует строку как код GS1, раскрывает скобки, добавляет символ GS в конце каждой группы переменной длины и генерирует изображение, добавив графический символ начала кода FNC1.
  2. В виде Строки Base64. В этом случае внешняя система передает в компонент двоичные данные, содержащие в соответствии со стандартом GS1 группы применения и символ GS завершения группы переменной длины. Компонент генерирует изображение полученных данных, добавляя в штрихкод лидирующий графический символ FMC1. Проверка данных на соответствие стандарту GS1 не производиться. Пример входного значения — MDEwMDg1MTc2ODAwMzAyMDIxPktvbzNLUkx0Z0YicB05M2RHVno=

Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

В состав БПО и БСП включены и необходимые методы по инициализации компоненты “1C:Печать штрихкодов” (Native) и генерации изображений штрихкодов в прикладных решениях 1С.
Для генерации картинки штрикода необходимо использовать метод «ИзображениеШтрихкода()» общего модуля «ГенерацияШтрихкода»
Внешняя компонента будет загружена и инициализирована автоматически при первом вызове этого метода.
Подробное описание возможных значений входящих параметров даны в описании функции конструктора для заполнения структуры входящих параметров «ПараметрыГенерацииШтрихкода()» общего модуля «ГенерацияШтрихкода» .

Пример использования компоненты в составе БПО или БСП может быть представлен следующим листингом

Разработка мобильных приложений 1С — Аутентификация пользователя

Разработка мобильных приложений 1С - Аутентификация пользователя

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

Демонстрация работы мобильного приложения 1С:

Блок-схема работы мобильного приложения 1С:

Схема и принцип работы мобильного приложения 1С

Схема и принцип работы мобильного приложения 1С

Примечание:

  1. Для простоты старта, без использования протокола HTTPS и соответствующих сертификатов.
  2. Логин пользователя и номер телефона должны быть заранее заведены в основной базе данных.
  3. Для взаимодействия и хранения паролей используется только хеш-сумма пароля. Для большей безопасности необходимо использовать так называемую «Соль».
    💡 Что такое хеш: https://ru.wikipedia.org/wiki/Хеш-функция
    💡 Что такое «Соль»: https://ru.wikipedia.org/wiki/Соль_(криптография)
  4. Смартфон находится в локальной сети по Wi-Fi, для того чтобы реализовать весь функционал в более глобальном масштабе необходимо публиковать HTTP сервисы на публичных серверах с «белыми» IP адресами.
  5. При разработке не используются принципы программирования, о которых более подробно рассказано в радио-подкасте Никиты Зайцева «Радио 1С Энтерпрайз».

В текущий момент, в 1С существуют три варианта разработки приложения:

1. Приложение на мобильной платформе.

Мобильная платформа 1С

Мобильная платформа 1С

2. Мобильный клиент.

Мобильный клиент 1С

Мобильный клиент 1С

3. Мобильный клиент с автономным режимом.

Мобильный клиент автономный

Мобильный клиент автономный

Установка на устройство доступно в двух видах:
  1. Публикация конфигурации для мобильной платформы 1С на веб-сервере, с последующей загрузкой на устройстве.
  2. Сборка apk-файла с помощью сборщика мобильных приложений, с последующей установкой либо напрямую в устройство либо через Google Play.

1. Подготовительные действия.

1.1 Установить платформу 1С на компьютере.

Где взять? Настоятельно рекомендую приобрести Комплект для специалиста по разработке, а так же при необходимости мини-сервер 1С, пока есть возможность купить все это по низким ценам: https://1c.ru/news/info.jsp?id=27081

1.2 Установить веб-сервер Apache.

В разработке не только для 1С использую Open Server, цитата с сайта «программный комплекс включает в себя тщательно подобранный набор серверного программного обеспечения, а также невероятно удобную и продуманную управляющую утилиту, которая обладает мощными возможностями по администрированию и настройке всех доступных компонентов.» Отлично, то что нам нужно, но здесь есть нюансы использования, а именно то что Apache устанавливается как приложение и не регистрируется как служба. Дело в том, что 1С при публикации использует следующие методы поиска веб-сервера: https://its.1c.ru/db/v8320doc#bookmark:adm:TI000000771.

Что для этого необходимо сделать:

В настройках Open Server, выбрать все допустимые IP адреса:

Все доступные IP

Все доступные IP

Зарегистрировать Apache как службу, установить тип запуска «Вручную»:

В «Командной строке» (запущенной от имени администратора), необходимо перейти в папку где расположен файл «httpd.exe», в моем случае это путь «C:\OpenServer\modules\http\Apache_2.4-PHP_8.0\bin», с помощью команды:

Далее выполнить команду:

Установка службы Apache

Установка службы Apache

Тип запуска Apache

Тип запуска Apache

1.3 Устройство на ОС Андроид.

В текущей статье разработка будет идти сразу на реальное устройство, без эмуляторов. Для этого, необходимо установить мобильную платформу на ваше устройство. Как это сделать? Просто!

Включить опцию «Неизвестные источники»:

Временно, на устройстве включаем опцию «Неизвестные источники», которая позволит устанавливать приложения миную Google Play, напрямую с помощью apk файла:

Неизвестные источники

 

Скачать и установить мобильную платформу:

Скачиваем zip файл с адреса https://releases.1c.ru/project/mobile в моем случае это версия 8.3.20.37. Распаковываем архив и в папке «Android» видим множество файлов apk, нам нужен файл “1cem-arm.apk”. Более подробное описание файлов apk можно прочесть по адресам: https://its.1c.ru/db/edtdoc#content:10430:hdoc и https://its.1c.ru/db/v8320doc#bookmark:dev:TI000002024.
Выбранный apk файл копируем на Android устройство, находим его в телефоне и устанавливаем, просто запустив его.

2. Разработка основной базы.

Согласно выше представленной блок-схемы, обращения к основной базе возникают в трех случаях:

  • Запрос пароля — Пользователь впервые входить в мобильное приложение (сканирует QR-код), в этом случае ввод пароля не доступен, тогда он нажимает «Запросить пароль» и выполняется HTTP запрос к основной базе данных, в которой генерируется новый пароль и отправляется в SMS.
  • Восстановление пароля — Пользователь не помнить пароль, нажимает «Восстановить пароль», выполняется HTTP запрос к основной базе, в которой генерируется новый пароль и отправляется в SMS.
  • Проверка пароля — Пользователь ввел пароль, выполняется HTTP запрос к основной базе данных, где необходимо сверить полученный хеш с тем, что хранится в основной базе данных и выдать результат проверки.

По сути запрос и восстановление пароля делают одно и тоже, но в дальнейшем такое разделение может быть полезным.

Давайте реализуем все три HTTP сервиса и один вспомогательный для проверки, для этого необходимо:

2.1. Запустить платформу 1С от имени Администратора.
2.2. Создать пустую конфигурацию.
2.3. Добавить HTTP-сервис с именем «СервисАутентификации».

Зададим корневой URL: authentication

2.4. Добавить проверочный шаблон URL.

В свойстве «Шаблоны URL» добавляем шаблон с именем «Ping» и HTTP-методом «GET», обработчик которого будет содержать следующий код:

Шаблон URL Ping

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

2.5. Тестовая публикация основной базы.

Обновляем конфигурацию базы данных, после создаем папку «C:\PublishedServices», далее в конфигураторе «Администрирование» – «Публикация на веб-сервере…», отключаем все опции и оставляем только наш HTTP сервис.
Проверьте, что флажок «Open Server Panel» красного цвета, то есть сервер остановлен. Обратите внимание, что имя публикуемой базы, было изменено на «AuthenticationService», во избежание проблем с кириллицей в строке адреса. При запросе на перезапуск веб-сервера, ответьте отказом, так как запуск будет осуществляется вручную.

Публикация на веб сервере

Публикация на веб сервере

2.6. Перенос настроек публикации.

После публикации HTTP сервиса с помощью 1С, нужно будет один раз перенести настройки в конфигурационных файлах Apache — это действие необходимо так как «Open Server Panel» использует шаблон конфигурационного файла, которой при каждом старте, копируется в основной файл настройки сервера Apache. Для этого из файла:

перенести следующие настройки:

Перенос настроек публикации

Перенос настроек публикации

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

2.7. Проверка тестовой публикации.

Проверим наш опубликованный HTTP-сервис, с помощью шаблона «Ping», для этого в браузере необходимо перейти по адресу:

В результате должна быть отображена страница с текстом «Pong».

Осталось реализовать три основных метода сервиса аутентификации, для этого необходимо добавить недостающие объекты конфигурации.

2.8. Добавляем регистр сведений «ДанныеПользователей».

Непериодический, независимый регистр сведений «ДанныеПользователей», со следующей структурой:
— Измерение «ЛогинПользователя», тип строка, длина 4 символа.
— Ресурс «НомерТелефона», тип строка, маска «79999999999», длина 11 символов.
— Ресурс «ХешПароля», тип строка, длина 100 символов.

Сам пароль не хранится в базе данных, если необходимо хранить, можно реализовать через использование безопасного хранилища паролей в БСП, более подробно о безопасности в 1С: Безопасность 1С

2.9. Добавляем основные шаблоны URL.

В HTTP сервис «СервисАутентификации» добавляем соответствующие шаблоны URL:

  • PasswordRequest — запрос пароля, метод GET, шаблон: /PasswordRequest/
  • PasswordRecovery — восстановление пароля, метод GET, шаблон: /PasswordRecovery/
  • PasswordCheck — проверка пароля, метод GET, шаблон: /PasswordCheck//

Так как, по сути запрос и восстановление пароля делают одно и тоже, то вызывают они одну и туже функцию, которая по входящему логину, читает из регистра сведений данные о пользователе, генерирует новый случайный пароль, формирует и обновляет хеш-сумму пароля и отправляет SMS пользователю:

Отправка SMS осуществляется с помощью сервиса https://sms.ru, вы можете воспользоваться удобным для вас методом, например, PUSH уведомлением или сообщение в Telegram, о том как это сделать, описано в статье: Телеграм бот 1С.

Обновляем конфигурацию базы данных и запускаем в режиме «1С:Предприятие», добавляем пользователя, например с логином «0000» и корректным номером телефона, в формате «79999999999».

Далее воспользуемся браузером, где в строке адреса вводим:

В результате должен быть получен текст «Пользователь не найден.», так как логина «1234» не существует в нашей базе.

Проверим генерацию пароля, хеша и отправку SMS, по адресу:

В данном случае, логин «0000» присутствует в основной базе данных и SMS сообщение успешно отправляется.

Проверяем что хеш пароля сохранился и SMS пришло на телефон:

Хеш пароля сохранен

Хеш пароля сохранен

Осталось реализовать проверку хеша пароля, введенного пользователем в мобильном приложении, с тем что хранится в основной базе данных, для этого прямо в обработчике шаблона URL «PasswordCheckGET» пишем следующий код:

Обновляем конфигурацию основной базы данных и в браузере используем следующий адрес:

Из него следует, что логин «0000» указан верно, но хеш пароля не верный, в результате будет выведено слово «Нет». Если вместо «123» использовать правильный хеш из основной базы, тогда проверка будет пройдена. Следующим шагом, будет разработка мобильного приложения 1С.

3. Разработка мобильного приложения на 1С.

3.1. Создание мобильной конфигурации.

Запускаем платформу 1С от имени администратора и создаем пустую конфигурацию, задаем ей имя «МобильноеПриложение» и в «Назначения использования» указываем «Приложение для мобильной платформы». Далее, в параметре «Используемая функциональность мобильного приложения», добавляем опцию «Камера».

3.2. Настройка взаимодействия с устройством.

Сразу настроим взаимодействие с мобильным устройством, для этого, публикуем мобильное приложение на веб-сервер, открываем меню «Конфигурация» – «Мобильное приложение» – «Публиковать…» и устанавливаем настройки согласно скриншоту, далее нажимаем «Опубликовать»:

Публикация мобильного приложения 1С

Публикация мобильного приложения 1С

Так как выполняется новая публикация на веб-сервере Apache, нужно перенести настройки публикации из файла «C:\OpenServer\modules\http\Apache_2.4-PHP_8.0\conf\httpd.conf» в файл «C:\OpenServer\userdata\config\Apache_2.4-PHP_8.0_server.conf», как было показано выше, но в нашем случае добавляется новая публикация:

Перенос настроек публикации мобильного приложения

Перенос настроек публикации мобильного приложения

После перезапустите веб-сервер и проверьте доступ к публикации с помощью браузера, по адресу:

Должен загрузится XML файл:

XML файл публикации

XML файл публикации

На устройстве запустите мобильную платформу 1С и добавьте опубликованное приложение, для этого нажать кнопку со знаком «+», ввести адрес:

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

3.3. Добавление объектов в мобильное приложение 1С.

▪ Добавляем константу «ХешПароля», тип «Строка», длина «100» с отключенной опцией «Использовать стандартные команды».
▪ Добавляем общую форму с наименованием «ФормаВходa» и устанавливаем ее в рабочую область начальной страницы:

Рабочая область начальной страницы

Рабочая область начальной страницы

Модуль формы содержит следующий код:

▪ Добавляем общую форму ввода пароля, с наименованием «ФормаВводаПароля», в которой размещены следующие элементы:
— Реквизит «Логин», с включенной опцией «ТолькоПросмотр».
— Реквизит «Пароль», тип «Строка», длина «4».
— Реквизит формы «ХешПароля», тип строка.
— Команда «Войти».
— Команда «ЗапроситьВосстановитьПароль», для запроса восстановления пароля из основной базы.

Модуль формы содержит следующий код:

▪ Необходимо обновить публикацию мобильного приложения 1С на веб-сервере, для этого служит пункт меню «Конфигурация – Мобильное приложение – Обновить публикуемое приложение».
▪ На устройстве запустите мобильную платформу 1С, далее долгим нажатием в списке установленных конфигураций вызовите контекстное меню и выберите пункт «Обновить».

Сгенерируйте в любом удобном для вас сервисе QR-код с логином который заведен у вас в основной базе, для генерации QR-кода можно воспользоваться сервисом: http://qrcoder.ru/

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

Генерация штрихкодов с помощью стандартных подсистем 1с для программистов

Привет всем! В данной статье предлагаю небольшой обзор возможностей актуальной библиотеки стандартных подсистем (БСП) на предмет формирования большинства существующих штрихкодов.

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

Основные возможности БСП инструментов разработчика «Генерация штрихкодов»

Базовой «входящей» серверной функцией-структурой для вывода штрих-кода является функция ПараметрыГенерацииШтрихкода() Экспорт

Выглядит она вот так:

Обратите внимание на параметр структуры «ТипКода». Поддерживаются следующие типы кодов:

Далее, все достаточно просто — мы отправляем структуру параметров в серверную функцию ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода) через экспортную функцию ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт

выглядит это так:

Данная функция возвращает структуру РезультатОперации следующего содержания:

Так же, обратите внимание, что Внешняя компонента — основной объект для формирования «картинки» штрихкода, встроенный в ОбщийМакет.КомпонентаПечатиШтрихкодов конфигурации БСП. Получить его можно вот так:

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

Рабочий пример использования функционала БСП для формирования штрихкода

Здесь я привожу набор процедур и функций для формирования штрихкода:

Заключение и выводы

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

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *