23.08.2024

Требования к разработке драйверов подключаемого оборудования (версия 4.3)

Изменения в стандарте

Примечание. Устаревшие версии требований доступны в архиве.

Начиная с версии стандарта 3.3  в данном документе объединены требования к разработке драйверов подключаемого оборудования и требования к разработке драйверов мобильных устройств.
Для каждого типа оборудования указана возможность использования данного типа оборудования в мобильных приложениях и перечислены типы клиентов "1С:Предприятия".

В соответствии с данными требованиями фирма 1С выпускает два продукта:

Версия Раздел Изменения
4.3 Общие требования к разрабатываемому драйверу и его архитектуре 1. Параметры подключения к устройству передаются в XML пакете при подключении. Ранее каждый параметр передавался отдельным вызовом функции. Реализованы новые методы получения параметров и подключения и отключения устройства.
  ПараметрыОборудования (EquipmentParameters)
  ПодключитьОборудование (ConnectEquipment)
  ОтключитьОборудование (DisconnectEquipment)
3.Добавлена функция авто-настройки оборудования
  АвтонастройкаОборудования (EquipmentAutoSetup).
4.Добавлена функция передачи в драйвер информации о прикладном решении
  УстановитьИнформациюПриложения (SetApplicationInformation)
Требования к разработке драйверов для эквайринговых терминалов 1.Все методы приведены к единому виду:
  ИмяМетода(ИДУстройства, ВходяшиеПараметрыXML, ИсходящиеПараметрыXML, ТекстКвитанции).
2. Все исходящие и исходящие параметры передают в виде XML.
3. Изменены название методов:
   Оплатить (Pay), ВернутьПлатеж (ReturnPayment), ОтменитьПлатеж (CancelPayment),
   Преавторизация (Authorisation), ЗавершитьПреавторизацию (AuthConfirmation),
   ОтменитьПреавторизацию (CancelAuthorisation), ОплатаCВыдачейНаличных (PayWithCashWithdrawal)
4. Реализован новый метод покупки с зачислением денежных средств на карту клиента
   ПокупкаСЗачислением (PurchaseWithEnrollment).
5.
Добавлен новый флаг разрешающий использование биометрических данных для авторизации операции оплаты.
Требования к разработке драйверов для дисплеев покупателя Добавлена возможность обработки событий нажатия на экран от дисплеев покупателя подключенных как второй монитор(Touch Screen)
4.2 Требования к разработке драйверов для электронных весов Добавлено событие о контроле размещения товара на весовой поверхности.
4.1 Требования к разработке драйверов для ККТ с функцией передачи в ОФД 1. В структуру TableParametersKKT добавлены новые параметры: IsVendingMachine, IsCateringServices, IsWholesaleTrade.
2. В структуру InputParameters добавлен новый атрибут PrintRequired. При вызове методов открытия и закрытия смены он управляет необходимостью печати бумажного документа.
3. Изменен вызов метода фискализации чека. Метод считается выполненным успешно если чек был фискализирован. Если при  печати бумажной формы чека произошла ошибка - метод возвращает True, а в атрибуте выходных параметров возвращается флаг ошибки печати PrintError = True.
4. В структуру CheckPackage добавлен параметр GroupingPositionsWhenPrinting - признак сворачивание одинаковых строк на печатной форме документа.
5. В структуру DocumentOutputParameters добавлен параметр MTNumber -Содержит номер документа "Уведомление о реализации МТ" в который включается данные чека.
6. В структуру OutputParameters добавлен параметр FNValidityDate - Срок действия ФН.
4.1 Требования к разработке драйверов для устройств распознавания Добавлен новый тип устройства, Устройство распознавания, используется для распознавания товаров.
4.1 Требования к разработке драйверов для ККТ с функцией передачи в ОФД В структуру RequestKM запроса КМ добавлен новый параметр NotSendToServer (BOOL).В случае передачи данного параметра со значением True - запрос КМ формируется локально и не отправляется на сервер ОИСМ.
4.1 Требования к разработке драйверов для дисплеев покупателя Добавлен новый метод ОтобразитьСтатусРабочегоМеста. Отобразить статус состояния рабочего места на дисплее покупателя. К примеру POS система может быть оснащена цветовым или звуковым индикатором.
4.0 Общие требования к разрабатываемому драйверу и его архитектуре

Добавлены требования обязательного включения логов для драйверов типа "Эквайринговый терминал" и "ККТ".

4.0 Требования к разработке драйверов для электронных весов 1. Устройства могут генерировать новое событие "Взвешивание" и возвращать вес.
2. Добавлен метод ПараметрыВесов (ScaleOptions) - возвращает возможности весов.
4.0 Требования к разработке драйверов для эквайринговых терминалов Добавлена поддержка Consumer-Presented QR-операций на стороне эквайреров ПС «Мир».
Добавлена поддержка частичной отмена, на сумму меньшую оригинальной операции, если терминал поддерживает данную операцию.
Добавлена поддержка получения списка операции по картам.
4.0 Требования к разработке драйверов для дисплеев покупателя Добавлен метод вывода HTML на дисплей покупателя.
4.0 Общие требования к разрабатываемому драйверу и его архитектуре Добавлен метод получения шаблона локализация драйвера.
Добавлен метод установки локализованного шаблона для драйвера.
3.9 Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE" Добавлена выгрузка изображение товара.
3.9 Требования к разработке драйверов для дисплеев покупателя Добавлен метод отображения индикаторов состояние на дисплеях покупателя.
Изменены параметры метода ПолучитьПараметрыДисплеяПокупателя (GetCustomerDisplayOptions). 
3.8 Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE" Добавлена выгрузка:
-
Номер формата этикетки
- Индекс кнопки товаров на весах
- Дополнительные цены
3.7 Требования к разработке драйверов для эквайринговых терминалов Изменена функция получения параметров карты.
Добавлен параметр PAR(Payment Account Reference)
Требования к разработке драйверов устройств ввода (сканеры штрихкода, считыватели магнитных карт и т.д.) Расширены типы событий. Возможность получения данных с устройств ввода в формате Base64.

3.6

Требования к разработке драйверов для эквайринговых терминалов Добавлена операция оплаты по карте с выдачей наличных.
Операция выдачи наличных не является самостоятельной операцией и сопровождается обязательной оплатой по карте.

3.5

Требования к разработке драйверов для эквайринговых терминалов Добавлена функции оплаты и возвратов с применением электронных сертификатом ФЭС НСПК.
Добавлена функция получения параметров карты.
Добавлена функция получения параметров эквайрингового терминала.
Требования к разработке драйверов для дисплеев покупателя Добавлена поддержка вывода QR кода.

3.4

Требования к разработке драйверов для ККТ с функцией передачи в ОФД Поддержка формата фискальных документов версии по приказу ФНС России от 14.09.2020 N ЕД-7-20/662@ "Об утверждении дополнительных реквизитов фискальных документов и форматов фискальных документов, обязательных к использованию" версия 1.2.

3.3

Общие требования к разрабатываемому драйверу и его архитектуре Требования объединены с требованиями для драйверов для подключения оборудования для мобильных приложений.
Требования к разработке драйверов для терминалов сбора данных В таблицу товаров для выгрузки в ТСД добавлено поле "Код типа маркированной продукции"
Требования к разработке драйверов для принтеров чеков Расширен список типов штрихкодов, которые может выводить на печать принтер чеков. Добавлены следующие типы: "Code128", "Code16k", "Code93", "PDF417", "DataMatrix" , "ITF14", "EAN13Addon2", "EAN13Addon5", "GS1DataBarExpandedStacked".
Требования к разработке драйверов для терминалов сбора данных Добавлены требования к формату передаваемых и принимаемых штрихкодов.
Штрихкод кодируется текстом в кодировке Base64.
Требования к разработке драйверов для ККТ с функцией передачи в ОФД
Требования к разработке драйверов для принтеров чеков
Требования к разработке драйверов для принтеров этикеток

Введение

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

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

Поддерживается взаимодействие с программно-аппаратными POS-системами (от англ. "Point of Sale" - "Точка продаж"), обеспечивающими розничные продажи.
Взаимодействие обеспечивается с помощью файлового обмена с помощью встроенного в библиотеку "1С:Библиотека подключаемого оборудования" модуля "1С: ККМ-Offline".

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


Рис. 1. Схемы взаимодействия конфигураций системы программ «1С:Предприятие» с подключаемым оборудованием

Общую структуру документа можно разделить на две части: требования к разработке драйвера для подключения оборудования локально к устройству пользователя и подключение аппаратно-программных систем с помощью веб-сервиса оборудования.

Разработка драйвера для подключения оборудования локально к устройству пользователя

Оборудование подключается к системе с помощью драйвера, разработанного в соответствии с технологией создания внешних компонент. Технология определяет интерфейс взаимодействия между платформой 1С и драйвером. Реализация драйвера возможна с использованием стандартных компонентных объектов только для Windows (COM-интерфейс) и собственной технологии фирмы 1С – NativeAPI .

Разработка драйвера в технологии NativeAPI имеет ряд преимуществ. С помощью технологии можно создавать внешние компоненты, которые могут подключаться как в клиентском приложении, в том числе в тонком и web-клиенте, мобильном клиенте, мобильном приложении, так и на сервере "1С:Предприятия", разработать универсальные программные компоненты для Windows, Linux, Android и iOS.

Интерфейс внешней компоненты можно условно разделить на несколько частей:

1. Общие требования к разрабатываемому драйверу и его архитектуре

Разрабатываемый драйвер должен:

  1. Быть разработан в виде внешней компоненты по технологии создания внешних компонент, приведенной в статье "Технология создания внешних компонент".
  2. Внешняя компонента для работы с подключаемым оборудованием должна содержать только один объект, реализующий расширение встроенного языка, и возвращать методом «RegisterExtensionAs» имя расширения, совпадающее с второй частью ProgID компоненты. Пример: для компоненты с ProgID «AddIn.Scanner» функция должна возвращать «Scanner». Имя расширения не должно содержать пробелов и недопустимых символов (в соответствии с правилами формирования имен объектов "1С:Предприятия").
  3. Обеспечить возможность реализации функционала в полном объеме (должны быть реализованы и работать все методы) для подключаемого типа оборудования. Если оборудованием данная функция не поддерживается, должно возвращаться "False", а в описании ошибки, возвращаемом методом "ПолучитьОшибку/GetLastError", содержится текст, что данная функция оборудованием не поддерживается.
  4. Предоставлять русскоязычные и англоязычные названия методов (например ПолучитьОшибку() - GetLastError() и др.).
  5. Поддерживать работу с несколькими экземплярами устройств, в рамках процедур в которых используется данное оборудование.
  6. При возникновении ошибки в работе предоставлять подробное описание произошедшей ошибки, позволяющее пользователю понять причину ее возникновения и возможный способ устранения.
  7. При возникновении внештатных ситуаций (некорректные действия пользователя, отсутствие запрашиваемого метода или функции, передача некорректных значений и др.) корректно обрабатывать их. Не должно быть аварийных завершений работы драйвера и прочих действий драйвера, которые могут привести к нарушению нормальной работы пользователя.
  8. Принимать/возвращать и обрабатывать таблицы значений в виде XML документа (текст в формате XML с кодировкой UTF-8, передаваемый с помощью параметра типа STRING).
    Для упрощения обработки структур данных используются наименования атрибутов только на английском языке.
  9. Обрабатывать метод SetLocale для локализации драйвера в соответствии с полученным кодом локализации и настраивать свое окружение (текстовые надписи, сообщения об ошибках и т.д.). Драйвер должен поддерживать локализированное окружение для локального кода региона и локализацию окружения на английском языке. Если полученный код локализации отличается от предусмотренного в драйвере, то драйвер должен настроить свое окружение на использование английского языка. Более подробно использование метода SetLocale описано в документе "Технология создания внешних компонент".

При разработке драйвера можно использовать несколько архитектурных решений:

ВНИМАНИЕ: Для типа оборудования "Дисплей покупателя", "Устройства ввода", "Принтеры чеков", "Терминал сбора данных", "Электронные весы" допускается разработка драйвера в однокомпонентной архитектуре. Для других типов оборудования необходимо использовать многокомпонентную архитектуру!

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

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

Драйвер поддерживает два основных этапа работы с оборудованием в конфигурации:

Регистрация и настройка оборудования

  1. Получение описания драйвера вызовом метода «ПолучитьОписание(GetDescription)».
  2. Получение доступных параметров для настройки драйвера методом «ПолучитьПараметры(GetParameters)».
  3. Построение формы настройки драйвера на основании списка доступных параметров.
  4. Сохранение параметров настройки драйвера в базе данных конфигурации.

Использование оборудования пользователем в процессе работы

  1. Инициализация и подключение оборудования с помощью метода «Подключить(Open)» с сохраненными в базе параметрами.
    Метод «Подключить(Open)» возвращает идентификатор подключенного экземпляра устройства. 
  2. Вызов обязательных функций и методов, специфичных для данного типа подключаемого оборудования, с использованием идентификатора подключенного экземпляра устройства.
  3. Получение кода ошибки и описание ошибки методом «ПолучитьОшибку(GetLastError)» в случае ее возникновения.
  4. Отключение устройства методом «Отключить(Close)» по идентификатору подключенного экземпляра устройства.

ВНИМАНИЕ: Все значения интерфейсных элементов (наименование, описание, заголовки, сообщения) должны быть реализованы на языке,
установленном кодом локализации. (см. п.9 раздела Общие требования к разрабатываемому драйверу и его архитектуре).

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ПолучитьРевизиюИнтерфейса (GetInterfaceRevision) - - -

LONG

Возвращает поддерживаемую версию требований** для данного типа оборудования
ПолучитьОписание (GetDescription) ОписаниеДрайвера (DriverDescription)
XML таблица
STRING [OUT] Структура описания драйвера

BOOL

Возвращает информацию о драйвере
ПолучитьОшибку (GetLastError) ОписаниеОшибки (ErrorDescription)

STRING [OUT]

Описание ошибки

LONG

Возвращает код и описание последней произошедшей ошибки.

ПараметрыОборудования (EquipmentParameters)

ТипОборудования (EquipmentType)

STRING [IN]

Тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".

BOOL

Возвращает список параметров настройки драйвера и их типы, значения по умолчанию и возможные значения.
ТаблицаПараметров
(TableParameters)
XML таблица

STRING [OUT]

Список параметров
ПодключитьОборудование (ConnectEquipment) ИДУстройства (DeviceID)

STRING [OUT]

Идентификатор устройства

BOOL

Подключает оборудование с текущими значениями параметров. Возвращает идентификатор подключенного экземпляра устройства
ТипОборудования (EquipmentType)

STRING [IN]

Тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".
ПараметрыПодключения
(ConnectionParameters)
XML таблица

STRING [IN]

Параметры подключения
ОтключитьОборудование (DisconnectEquipment) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Отключает оборудование
ТестированияОборудования (EquipmentTest) ТипОборудования (EquipmentType)

STRING [IN]

Тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".

BOOL

Выполняет пробное подключение и опрос устройства с текущими значениями параметров, установленными функцией «УстановитьПараметр». При успешном выполнении подключения в описании возвращается информация об устройстве
ПараметрыПодключения
(ConnectionParameters)
XML таблица
STRING [IN] Параметры подключения
Описание (Description) STRING [OUT] Описание результата выполнения теста
АктивированДемоРежим (DemoModeIsActivated) STRING [OUT] Возвращает описание ограничений демонстрационного режима при его наличии и пустой результат при его отсутствии. Пример: драйвер является платным, и для полноценной работы нужен ключ защиты.
АвтонастройкаОборудования (EquipmentAutoSetup) ТипОборудования (EquipmentType) STRING [OUT] Тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".

BOOL

Выполняет авто-настройку оборудования.
Драйвер может показывать технологическое окно, в котором производиться авто настройка оборудования.  В случае успеха драйвер возвращает параметры подключения оборудования установленные в результате авто-настройки.
ПараметрыПодключения
(ConnectionParameters)
XML таблица
STRING [IN] Параметры подключения оборудования по умолчанию
ПараметрыПодключения
(ConnectionParameters)
XML таблица
STRING [OUT] Параметры подключения оборудования установленные в результате авто-настройки
ПоказыватьОкноАвтонастройки (ShowAutoSetupWindow) BOOL [IN] Показывать окно авто-настройки оборудования
Таймаут (Timeout) LONG [IN] Таймаут, по которому операция прерывается. Если таймаут имеет значение 0 - таймаут нет ограничен.
УстановитьИнформациюПриложения (SetApplicationInformation) ПараметрыПриложения (ApplicationSettings) STRING [IN] Параметры приложения

BOOL

Метод передает в драйвер информацию о приложение в котором используется данных драйвер.
ПолучитьДополнительныеДействия (GetAdditionalActions) ТаблицаДействий
(TableActions)
XML таблица

STRING [OUT]

Список дополнительных действий

BOOL

Получает список действий, которые будут отображаться как дополнительные пункты меню в форме настройки оборудования, доступной администратору. Если действий не предусмотрено, возвращает пустую строку.
ВыполнитьДополнительноеДействие (DoAdditionalAction) ИмяДействия (ActionName) STRING [IN] Имя действия

BOOL

Команда на выполнение дополнительного действия с определенными именем
ПолучитьШаблонЛокализации (GetLocalizationPattern) ШаблонЛокализации (LocalizationPattern)

STRING [OUT]

Шаблон локализации. XML в виде текста

BOOL

Возвращает шаблон локализации содержавший идентификаторы тестовых ресурсов для последующего заполнения.
УстановитьЛокализацию (SetLocalization) КодЯзыка (LanguageCode)

STRING [IN]

Язык интерфейса, выбранный для текущего пользователя TD>

BOOL

Устанавливает для драйвера код языка для текущего пользователя и шаблон локализации для текущего пользователя.
ШаблонЛокализации (LocalizationPattern)

STRING [IN]

Локализация в виде XML текста


** - Версия требований – версия текущего документа (Версии 2.00 соответствует число 2000. Версии 2.4 соответствует число 2004. Текущей версии 4.1 соответствует число 4001.

ОписаниеДрайвера (DriverDescription)

Текст в формате XML, передаваемый с помощью параметра типа STRING. Содержит информацию о драйвере.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Name Да string Наименование драйвера
Description Да string Назначение драйвера (Произвольный текст, описывающий назначение драйвера)
EquipmentType Да string Строка определяющая тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".
Допустимо одно как RU там и EN, рекомендуется использовать EN написание.
Может иметь несколько значений разделенных ","
IntegrationComponent Да bool Признак интеграционного компонента:
False - однокомпонентный драйвер
True - интеграционный компонент для основной поставки драйвера
MainDriverInstalled Да bool Для интеграционного компонента возвращает флаг установки основной поставки драйвера
DriverVersion Да string Возвращает, номер версии установленной основной поставки драйвера
IntegrationComponentVersion Да string Возвращает номер версии интеграционного компонента.
В случае однокомпонентной архитектуры значение должно совпадать с значением "DriverVersion".
IsEmulator Нет bool Возвращает является ли драйвер эмулятором устройства
LocalizationSupported Нет bool Возвращает поддерживается ли драйвер локализацию (Будут использоваться методы ПолучитьШаблонЛокализации и УстановитьЛокализацию)
AutoSetup Нет bool Возвращает может ли драйвер производить авто-настройку оборудования
DownloadURL Да* string Возвращает пустую строку или адрес страницы сайта производителя, по которому доступна ссылка для скачивания основной поставки драйвера или иная информация о драйвере. При возвращении пустой строки функционал установки основной поставки драйвера не активируется.
EnvironmentInformation Нет string Информация об окружении драйвера. Может содержать дополнительные сведенья об основной поставке драйвера и ее комплектации.
LogIsEnabled Да bool Возвращает флаг включения лога драйвера.
Для определенных типов оборудования необходимо включать ведение лога драйвера по умолчанию.  См.таблицу "Тип оборудования".
LogPath Да string Возвращает полный путь к файлу лога драйвера.

* - Обязательно только для многокомпонентных драйверов.

Тип оборудования
Строка Описание
BarcodeScanner СканерШтрихкода Сканер штрихкода
CardReader СчитывательМагнитныхКарт Считыватель магнитных карт
KKT ККТ Контрольно-кассовая техника *
ReceiptPrinter ПринтерЧеков Принтер чеков
CustomerDisplay ДисплейПокупателя Дисплей покупателя
DataCollectionTerminal ТерминалСбораДанных Терминал сбора данных
POSTerminal ЭквайринговыйТерминал Эквайринговый терминал *
WeighingScales ЭлектронныеВесы Электронные весы
LabelPrintingScale ВесыСПечатьюЭтикеток Весы с печатью этикеток
LabelPrinter ПринтерЭтикеток Принтер этикеток
RFIDReader СчитывательRFID Считыватель RFID

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

Пример XML описания драйвера :

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<DriverDescription 
      Name="Драйвер сканера" 
      Description="Драйвер сканера" 
      EquipmentType="BarcodeScanner" 
      IntegrationComponent="true" 
      MainDriverInstalled="true" 
      DriverVersion="1.1" 
      IntegrationComponentVersion="1.1" 
      DownloadURL="http://files.1с.ru/file.ZIP" 
      LogIsEnabled="true" 
      LogPath="C:\Users\drivers\"/>
ТаблицаПараметров (TableParameters)

Текст в формате XML, передаваемый с помощью параметра типа STRING. Содержит описание всех параметров драйвера и описание визуального интерфейса настройки драйвера.

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

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Name Да string Имя параметра, для которого создается поле ввода, не должно содержать пробелов и недопустимых символов (в соответствии с правилами формирования имен объектов "1С:Предприятия") и быть уникальным в рамках таблицы параметров
Caption Да string Произвольная надпись перед полем ввода
Description Нет string Описание параметра. Справочная информация, выводимая в выпадающей подсказке.
TypeValue Да string Одно из нижеуказанных типов данных:
“String“, “Number“, “Boolean”
FieldFormat Нет string Строка форматирования значения параметра
DefaultValue Нет string Значение параметра по умолчанию
ReadOnly Нет boolean Параметр только для просмотра
ChoiceList Нет list Содержит список доступных для выбора значений параметра
PageCaption Нет string Наименование закладки, по которому будут группироваться поля ввода
GroupCaption Нет string Наименование группы, по которому будут группироваться поля ввода

Пример текстового XML описывающего параметры драйвера:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8" ?>
 <Settings>
      <Page Caption="Параметры">    
      <Group Caption="Параметры подключения">
           <Parameter Name="Model" Caption="Модель" TypeValue="Number"/> 
           <Parameter Name="Port" Caption="Порт" TypeValue="Number" DefaultValue="0">
              <ChoiceList>
                  <Item Value="0">Клавиатура</Item>
                  <Item Value="1">COM1</Item>
                  <Item Value="2">COM2</Item>
               </ChoiceList>
           </Parameter>
           <Parameter Name="Parity" Caption="Четность" TypeValue="Boolean" DefaultValue="true"/>
           <Parameter Name="Speed" Caption="Скорость" TypeValue="Number" DefaultValue="1"/>
         </Group>
      </Page>
 </Settings>

В результате будет сформирована следующая форма для ввода параметров:

ПараметрыПриложения (ApplicationSettings)

Текст в формате XML, передаваемый с помощью параметра типа STRING. Содержит информацию об используемом приложении.

Имя атрибута Обязательное наличие в структуре Типы данных Описание атрибута
ApplicationName Да string Название приложение
ApplicationVersion Да string Версия приложения

Пример текстового XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<ApplicationSettings
      ApplicationName="1С:РМКДрайвер сканера" 
      ApplicationVersion="1.13.1.1"/>
ПараметрыПодключения (ConnectionParameters)

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

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Parameters     Параметр подключения

Parameter

Name Да string Имя
Value Да string Значение параметра

Пример текстового XML, описывающего дополнительные действия:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8" ?>
 <Parameters>
      <Parameter Name="ComPort" Value="COM1"/> 
      <Parameter Name="SettingLog" Value="c:\Temp"/> 
 </Parameters>

ТаблицаДействий (TableActions)

Текст в формате XML, передаваемый с помощью параметра типа STRING. Содержит описание дополнительных действий для настройки и управления драйвером в форме настройки оборудования, доступной администратору.
Данные действия будут отображаться пунктами меню в разделе "Функции", после пункта меню "Тест устройства" на форме настройки экземпляра подключаемого оборудования. При выборе определенного пункта меню будет вызван метод драйвера "ВыполнитьДополнительноеДействие" с параметром "ИмяДействия", соответствующий данному пункту меню. При выполнении данного действия драйвер может создавать дополнительные диалоговые окна в соответствии с документом "Технология создания внешних компонент".

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Actions Да   Пользовательские действия.

Action

Name Да string Имя действия, для которого создается пункт меню, не должно содержать пробелов и недопустимых символов (в соответствии с правилами формирования имен объектов "1С:Предприятия") и быть уникальным в рамках таблицы параметров
Caption Да string Заголовок пункта меню

Пример текстового XML, описывающего дополнительные действия:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8" ?>
 <Actions>
      <Action Name="SettingLog" Caption="Параметры журналирования"/> 
 </Actions>

В результате будут сформированы следующие пункты меню для формы для ввода параметров:

 

3. Описание методов, специфичных для типов подключаемого оборудования

3.1. Требования к разработке драйверов для электронных весов

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

Конфигурациями поддерживаются следующие возможности работы с весами on-line:

  1. Ввод значения веса тары, используемой для упаковки взвешиваемого товара.
  2. Получение значения веса товара за вычетом веса тары.
  3. Получение внешнего события от драйвера.
Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ПараметрыВесов (ScaleOptions) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Получить параметры работы весов.
ПараметрыВесов
(ScaleOptions)
XML таблица

STRING [OUT]

Параметры работы весов
УстановитьВесТары (Calibrate) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Производит установку веса тары на весах. Если значение «ВесТары» имеет значение 0 – в качестве значения принимается текущее значение веса на весах.
ВесТары (TareWeight)

DOUBLE [IN]

Вес тары
ПолучитьВес (GetWeight) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Получает текущий вес товара на весах.
ТекущийВес (Weight)

DOUBLE [OUT]

Текущий вес товара на весах

Весы могут сообщать о результате произведенного взвешивания.

Работа с драйвером строится следующим образом:

  1. При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия", с помощью которого можно вызывать метод:
    HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
  2. При каждом успешном взвешивании драйвер должен вызывать метод HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData).
  3. Переданные данные размещаются в очереди сообщений. Сообщения из очереди обрабатываются только после обработки всех системных сообщений "1С:Предприятия". При переполнении очереди полученные сообщения игнорируются.

Описание методов, доступных для асинхронного вызова из драйвера*

Описание методов
Название (alias) Параметрыры Тип возвращаемого значения Описание метода
Имя Тип Описание
ExternalEvent bstrWho BSTR [IN] Уникальный идентификатор подключенного устройства **

HRESULT

Помещает данные, полученные от устройства в очередь сообщений
bstrWhat BSTR [IN] Тип сообщения/тип данных ***
bstrData BSTR [IN] Считанные устройством данные
SetEventBufferDepth lDepth BSTR [IN] Максимальное число сообщений в очереди

HRESULT

Устанавливает длину очереди сообщений

* - Описание остальных функций, доступных для вызова из драйвера, см. в документе «Технология создания внешних компонент»
** - В параметре bstrWho драйвер передает уникальный идентификатор подключенного устройства.
*** - Параметр bstrWhat используется для поддержки событий различных типов. Допустимо как EN так RU написание.
Список возможных значение bstrWhat приведены в таблице:

Значение bstrWhat Описание
Взвешивание Произведено взвешивание на весах, в параметре bstrData передается вес товара.
Вес передается в строке следующем формате: <ВЕС>;<Признак стабилизации>;<ОшибкаРазмещения>
<ВЕС> - число в формате XML (xs:decimal)
<Признак стабилизации> - Одно из следующих значений "stable","unstable"; Либо может не указываться.
<ОшибкаРазмещения> - Ошибка размещением товара на весах, пересечение зон. Одно из значений "err,err-1,err-2,err-..". Либо может не указываться.
Примеры строк: "324.56;stable", "34.12;unstable", "32.67", "34.12;unstable;err", "34.12;stable;err-8"
"324.56;stable" - стабильные вес 324.56
"34.12;unstable" - вес не стабильный 34.14
"32.67" - стабильные вес 32.67
34.12;unstable;err" - вес не стабильный 34.12, пересечение границы без указание зоны
"34.12;stable;err-8" - стабильные вес 34.12, пересечение границы в зоне 8
Weighting
ОшибкаДрайвера В случае ошибки устройства. В этом случае параметр bstrData должен содержать описание ошибки.
DriverError
ПараметрыВесов (ScaleOptions)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
WeighingEvent Нет bool Весы поддерживают внешнее событие о получении веса.
Calibrate Нет bool Весы поддерживают тарирование
PlacementControl Нет bool Контроль размещения товара на весах

Пример XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<ScaleOptions
      Calibrate="true"
      WeighingEvent="true"/>

3.4. Требования к разработке драйверов для терминалов сбора данных

Поддержка: тонкий клиент, web-клиент, толстый клиент.

Работа с терминалами сбора данных (ТСД) заключается в выгрузке таблицы товаров из конфигурации и загрузке данных об отобранных товарах.
Таблица для выгрузки в ТСД формируется на основе базы данных средствами конфигурации. Обработка выгрузки таблицы товаров в ТСД должна предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьТаблицу (UploadTable)» с пакетами данных определенного размера (например, по 100 записей) с дополнительным параметром, определяющим статус пакета ("first" - первый пакет,  "regular" - очередной, "last" - последний пакет).

В терминал загружается таблица товаров, и по ней отбираются товары. Предусматривается как частичная, так и полная выгрузка. Из терминала загружается таблица отобранных товаров.
Загрузка таблицы товаров производится однократно методом «ЗагрузитьТаблицу (DownloadTable)».

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ВыгрузитьТаблицу (UploadTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Выгружает таблицу товаров в ТСД
ТаблицаТоваров
(GoodsTable)
XML таблица
STRING [IN] Выгружаемая таблица
СтатусПакета (PackageStatus) STRING [IN] Статус пакета *
ЗагрузитьТаблицу (DownloadTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Загружает таблицу из ТСД
ТаблицаЗагрузки
(DownloadTable)
XML таблица
STRING [OUT] Загружаемая таблица
ОчиститьТаблицу (ClearTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Очищает загруженную ранее таблицу товаров в ТСД

* - Строка, определяющая статус пакета, имеет одно из значений: "first", "regular", "last".  Если пакет один, то статусу пакета присваивается "last".

ТаблицаТоваров (GoodsTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута

Table

FullLoad Да boolean Признак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в терминале сбора данных.

Record

BarCodeBase64 Да string Штрихкод номенклатуры.
Штрихкод кодируется текстом в кодировке Base64.
Name Нет string Наименование товара
Article Нет string Артикул товара
UnitOfMeasurement Нет string Единица измерения номенклатуры
CharacteristicOfNomenclature Нет string Характеристика номенклатуры
SeriesOfNomenclature Нет string Серия номенклатуры
Quality Нет string Качество товара
Price Нет decimal Цена товара
Quantity Нет decimal Количество товара
ContainerBarcodeBase64 Нет string Штрихкод упаковки.
Штрихкод кодируется текстом в кодировке Base64.
MarkedGoodTypeCode Нет int Код типа маркированной продукции.
См. таблицу: Код типа маркированной продукции
Alcohol Нет boolean Признак того, что товар является алкогольной или спиртосодержащей продукцией
AlcoholExcisable <Определяется> boolean Признак того, что товар (алкоголь) маркируется акцизной или специальной алкогольной маркой. Выгружается при положительном значении атрибута "Alcohol".
AlcoholKindCode <Определяется> string Код вида алкогольной продукции. Выгружается при положительном значении атрибута "Alcohol".
AlcoholCode <Определяется> string Код алкогольной продукции. Выгружается при положительном значении атрибута "Alcohol".
AlcoholContainerSize <Определяется> decimal Ёмкость тары в литрах. Выгружается при положительном значении атрибута "Alcohol".
AlcoholStrength <Определяется> decimal Процентное содержание спирта. Выгружается при положительном значении атрибута "Alcohol".
VendorINNCode <Определяется> string ИНН производителя. Выгружается при положительном значении атрибута "Alcohol".
VendorKPPCode <Определяется> string КПП производителя. Выгружается при положительном значении атрибута "Alcohol".
AlcoholExciseStampBase64 <Определяется> string Штрихкод PDF417 акцизной или спец. марки алкогольной продукции.
Штрихкод кодируется текстом в кодировке Base64.

Пример текстового XML, содержащий данные: 

Копировать в буфер обмена
 
<?xml version="1.0" encoding="UTF-8"?>
<Table FullLoad="true">
    <Record BarCode="4008110271538" Name="Блокнот для заметок" UnitOfMeasurement="Штуки" CharacteristicOfNomenclature="" 
SeriesOfNomenclature="" Quality="" Price="25,30" Quantity="7"/> <Record BarCode="2900001355643" Name="Финики в банке" UnitOfMeasurement="Штуки" CharacteristicOfNomenclature="" SeriesOfNomenclature="" Quality="Зеленые" Price="95,50" Quantity="7"/> </Table>

3.2. Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE"

Поддержка: тонкий клиент, web-клиент, толстый клиент.

Работа с электронными весами с печатью этикеток заключается в выгрузке таблицы товаров. Таблица формируется на основе базы данных средствами конфигурации. Выгрузка таблицы товаров в весы должна предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьТовары (UploadGoods)» с пакетами данных определенного размера (например, по 100 записей) с дополнительным параметром, определяющим статус пакета ("first" - первый пакет,  "regular" - очередной, "last" - последний пакет).

Выгрузка изображений предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьИзображенияТоваров (UploadProductImages) » с пакетами данных определенного размера (например, по 100 записей) с дополнительным параметром, определяющим статус пакета ("first" - первый пакет,  "regular" - очередной, "last" - последний пакет).
Картинки будут в формате PNG закодированная текстом в кодировке BASE64. При получении изображений драйвер весов может по собственному усмотрение сохраниться их во временную папку (расположение папки можно вывести в настройки драйвера в 1С) и в последующем выгружает их в весы.
 

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ВыгрузитьТовары (UploadGoods) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Выгружает товары в весы
ТаблицаТоваров
(GoodsTable)
XML таблица

STRING [IN]

Таблица товаров
СтатусПакета (PackageStatus)

STRING [IN]

Статус пакета *
ОчиститьТовары (ClearGoods) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Удаляет ранее загруженные товары в весах
ВыгрузитьИзображенияТоваров (UploadProductImages) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Выгрузить изображения товаров на весы
ТаблицаИзображений
(TableImages)
XML таблица

STRING [IN]

Таблица изображений
СтатусПакета (PackageStatus)

STRING [IN]

Статус пакета *

* - Строка, определяющая статус пакета, имеет одно из значений: "first", "regular", "last".

ТаблицаТоваров (GoodsTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Table Да   Таблица товаров

Record

PLU Да long PLU товара (Индекс товара в весах)
Code Да long Код весового товара
IsWeightGoods Да boolean Флаг весового товара. По умолчанию true.
Если false – то это штучный товар, фасуемый на весах.
Name Да string Наименование товара
Price Да decimal Цена за килограмм
AdditionalPrices Price1 Нет decimal Дополнительная цена 1 за килограмм
Price2 Нет decimal Дополнительная цена 2 за килограмм
Price3 Нет decimal Дополнительная цена 3 за килограмм
Price4 Нет decimal Дополнительная цена 4 за килограмм
Description Нет string Текстовое описание товара (состав товара, список ингредиентов и пр.)
ShelfLife Нет long Длительность хранения/срок годности товара, в днях
ButtonNumber Нет long Номер кнопки товара на весах
LabelFormat Нет long Номер формата этикетки

Пример текстового XML, содержащий данные:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
 <Table>
    <Record PLU="1" Code="1003" Name="Яблоки Антоновка" Price="95,50" ShelfLife="7" IsWeightGoods="true">
        <AdditionalPrices Price1="80,50" Price2="0" Price3="0" Price4="0"/>
    </Record>
    <Record PLU="2" Code="1023" Name="Салат Болгарский" Price="500,00" IsWeightGoods="true" 
            Description="Состав: свекла, морковь, ветчина, мясо, сыр, яйцо, лук репчатый, майонез" ShelfLife="5"/>
         <AdditionalPrices Price1="450,34" Price2="0" Price3="0" Price4="0"/>
    </Record>
 </Table>
ТаблицаИзображений (TableImages)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Table Да   Таблица товаров

Record

PLU Да long PLU товара (Индекс товара в весах)
Code Да long Код весового товара
Picture Да string Картинка будет в формате PNG закодированная текстом в кодировке BASE64.

Пример текстового XML, содержащий данные:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<Table>
<Record PLU="1" Code="1" Picture="iVBORw0KGgoAAAANSUhEUgAAADoAAAAsCAIAAAC7Vjz5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFrSURBVFh
H7djhmYMgDIDhzsVAzMM0WYZhvESpd4cpCRDytE/9ftqqbykt6mP7qG7uym7uyvTcDDE86iKUV7vKGVKKMWDlOGe0LYQYYwLIOZcdzlRcPDpDpbq4qERi2VNZdQKB+xp6pOWyX40mJVdyljTcnMakew1uBppSXV+
XxJ2iUq+5EMtbOmpyp62YG3fkcNecuDZYJ64V1oWrnrO4HqTrYoAb8B/6WEi6uHQ0aJ6b46o+dohwWbIU1dx9BUz0mcvW9lAxXIU2pBEq9YfL18uVtewEUmbNFeft+MhS1lxpcOe01lxpcCe1X85dPBe+nCtNhg/
7qc16jbmaNe2yT0fWXI13YoTNufJ02Ju/xOHr5erG94i9gCzXj3hrS7eN1QkWcDu8cg5c7YTQ5ME1BPtwMZsp4ca1GWJHLjb8bOyZL5dSPm7j8+cejaHr9c+N+6zxKPp8Fo134r+34v8Sue/VzV3ZzV3Xtv0Anez
IuBpvpbUAAAAASUVORK5CYII="/>
</Table>

3.3. Требования к разработке драйверов для дисплеев покупателя

Поддержка: тонкий клиент, web-клиент, толстый клиент.

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

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ВывестиСтрокуНаДисплейПокупателя (StringOutputOnCustomerDisplay) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Выводит переданные строки на дисплей покупателя. Одна строка соответствует одной строке дисплея. Если строка пуста, то информация в данной строке на дисплее не меняется
Строки (Strings)

STRING [IN]

Cтроки, содержащие информацию для отображения на дисплее
ОчиститьДисплейПокупателя (ClearCustomerDisplay) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Очищает дисплей покупателя
ВывестиHTML (OutputHTML) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Отображает HTML на дисплее покупателя.
Изображения передаются внутри HTML в BASE64.
HTML (HTML)

STRING [IN]

HTML в виде текста
ВывестиQRКодНаДисплейПокупателя (QRCodeOutputOnCustomerDisplay) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Отображает QR на дисплее покупателя.
Передается текстовое значение QR кода и сформированное изображение QR если дисплей поддерживает графику.
ЗначениеQRКода (QRCodeValue)

STRING [IN]

Значение QR кода для отображения на дисплее покупателя. Текстовое значение.
КартинкаQRКода (QRСodePicture)

STRING [IN]

Изображение QR кода. Картинка будет в формате PNG закодированная текстом в кодировке BASE64.
ОтобразитьСтатусОперации (DisplayOperationStatus) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Отобразить индикатор состояние на дисплее покупателя. К примеру на дисплее QR кода могут быть цветовые индикаторы выполнения операция - "выполнено успешно", "не выполнено".
СтатусОперации (OperationStatus)

LONG [IN]

Статус индикаторов:
0 - Статусы не установлены
1 - Операция выполнено успешно
2 - Операция не выполнена
ОтобразитьСтатусРабочегоМеста  (DisplayWorkplaceStatus) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Отобразить статус состояния рабочего места на дисплее покупателя. К примеру POS система может быть оснащена цветовым или звуковым индикатором.
СтатусРабочегоМеста
(WorkplaceStatus)

LONG [IN]

Статусу рабочего места:
0 - Статус не установлен
1 - Сервисный режим
2 - Рабочее место свободно
3 - Рабочее место работает
4 - Ошибка на рабочем месте
ЗвуковойСигнал (SoundSignal)

LONG [IN]

Звуковой сигнал:
0 -
Звуковой сигнал не подается
1 - Звуковой сигнал подается
ПолучитьПараметрыДисплеяПокупателя (GetCustomerDisplayOptions) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Получить параметры работы дисплея покупателя
ПараметрыДисплеяПокупателя
(CustomerDisplayOptions)
XML таблица

STRING [OUT]

Параметры работы  дисплея покупателя

ПараметрыДисплеяПокупателя (CustomerDisplayOptions)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Columns Да long Количество столбцов на дисплее (символов в строке)
Rows Да long Количество строк на дисплее
DisplayText Да bool Дисплей покупателя может отображать текст
DisplayGraphics Да bool Дисплей покупателя может отображать графику
DisplayQRCode Да bool Дисплей покупателя может отображать QR код
DisplayHTML Нет bool Дисплей покупателя может отображать HTML
DisplayStatus Нет bool Дисплей покупателя может отображать индикатор статуса
DisplayWorkplaceStatus Нет bool Дисплей может отобразить статус состояния рабочего места
DisplayInteractiveMode Нет bool Дисплей покупателя обрабатывает нажатия на экран

Пример XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<CustomerDisplayOptions
      Columns="20"
      Rows="2"
      DisplayText="true"
      DisplayQRCode="true"
      DisplayHTML="true"/>

Дисплей покупателя подключенный как второй монитор TouchScreen может сообщать о нажатия на экран.

Работа с драйвером строится следующим образом:

  1. При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия", с помощью которого можно вызывать метод:
    HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
  2. При каждом нажатии драйвер должен вызывать метод HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData).
  3. Переданные данные размещаются в очереди сообщений. Сообщения из очереди обрабатываются только после обработки всех системных сообщений "1С:Предприятия". При переполнении очереди полученные сообщения игнорируются.

Описание методов, доступных для асинхронного вызова из драйвера*

Описание методов
Название (alias) Параметрыры Тип возвращаемого значения Описание метода
Имя Тип Описание
ExternalEvent bstrWho BSTR [IN] Уникальный идентификатор подключенного устройства **

HRESULT

Помещает данные, полученные от устройства в очередь сообщений
bstrWhat BSTR [IN] Тип сообщения/тип данных ***
bstrData BSTR [IN] Считанные устройством данные
SetEventBufferDepth lDepth BSTR [IN] Максимальное число сообщений в очереди

HRESULT

Устанавливает длину очереди сообщений

* - Описание остальных функций, доступных для вызова из драйвера, см. в документе «Технология создания внешних компонент»
** - В параметре bstrWho драйвер передает уникальный идентификатор подключенного устройства.
*** - Параметр bstrWhat используется для поддержки событий различных типов. Допустимо как EN так RU написание.
Список возможных значение bstrWhat приведены в таблице:

Значение bstrWhat Описание
OnClick В bstrWhat передаются имя элемента на который нажали.
ОшибкаДрайвера В случае ошибки устройства. В этом случае параметр bstrData должен содержать описание ошибки.
DriverError

3.4. Требования к разработке драйверов для терминалов сбора данных

Поддержка: тонкий клиент, web-клиент, толстый клиент.

Работа с терминалами сбора данных (ТСД) заключается в выгрузке таблицы товаров из конфигурации и загрузке данных об отобранных товарах.
Таблица для выгрузки в ТСД формируется на основе базы данных средствами конфигурации. Обработка выгрузки таблицы товаров в ТСД должна предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьТаблицу (UploadTable)» с пакетами данных определенного размера (например, по 100 записей) с дополнительным параметром, определяющим статус пакета ("first" - первый пакет,  "regular" - очередной, "last" - последний пакет).

В терминал загружается таблица товаров, и по ней отбираются товары. Предусматривается как частичная, так и полная выгрузка. Из терминала загружается таблица отобранных товаров.
Загрузка таблицы товаров производится однократно методом «ЗагрузитьТаблицу (DownloadTable)».

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ВыгрузитьТаблицу (UploadTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Выгружает таблицу товаров в ТСД
ТаблицаТоваров
(GoodsTable)
XML таблица
STRING [IN] Выгружаемая таблица
СтатусПакета (PackageStatus) STRING [IN] Статус пакета *
ЗагрузитьТаблицу (DownloadTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Загружает таблицу из ТСД
ТаблицаЗагрузки
(DownloadTable)
XML таблица
STRING [OUT] Загружаемая таблица
ОчиститьТаблицу (ClearTable) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Очищает загруженную ранее таблицу товаров в ТСД

* - Строка, определяющая статус пакета, имеет одно из значений: "first", "regular", "last".  Если пакет один, то статусу пакета присваивается "last".

ТаблицаТоваров (GoodsTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута

Table

FullLoad Да boolean Признак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в терминале сбора данных.

Record

BarCodeBase64 Да string Штрихкод номенклатуры.
Штрихкод кодируется текстом в кодировке Base64.
Name Нет string Наименование товара
Article Нет string Артикул товара
UnitOfMeasurement Нет string Единица измерения номенклатуры
CharacteristicOfNomenclature Нет string Характеристика номенклатуры
SeriesOfNomenclature Нет string Серия номенклатуры
Quality Нет string Качество товара
Price Нет decimal Цена товара
Quantity Нет decimal Количество товара
ContainerBarCodeBase64 Нет string Штрихкод упаковки.
Штрихкод кодируется текстом в кодировке Base64.
MarkedGoodTypeCode Нет int Код типа маркированной продукции.
См. таблицу: Код типа маркированной продукции
Alcohol Нет boolean Признак того, что товар является алкогольной или спиртосодержащей продукцией
AlcoholExcisable <Определяется> boolean Признак того, что товар (алкоголь) маркируется акцизной или специальной алкогольной маркой. Выгружается при положительном значении атрибута "Alcohol".
AlcoholKindCode <Определяется> string Код вида алкогольной продукции. Выгружается при положительном значении атрибута "Alcohol".
AlcoholCode <Определяется> string Код алкогольной продукции. Выгружается при положительном значении атрибута "Alcohol".
AlcoholContainerSize <Определяется> decimal Ёмкость тары в литрах. Выгружается при положительном значении атрибута "Alcohol".
AlcoholStrength <Определяется> decimal Процентное содержание спирта. Выгружается при положительном значении атрибута "Alcohol".
VendorINNCode <Определяется> string ИНН производителя. Выгружается при положительном значении атрибута "Alcohol".
VendorKPPCode <Определяется> string КПП производителя. Выгружается при положительном значении атрибута "Alcohol".
AlcoholExciseStampBase64 <Определяется> string Штрихкод PDF417 акцизной или спец. марки алкогольной продукции.
Штрихкод кодируется текстом в кодировке Base64.

Пример текстового XML, содержащий данные: 

Копировать в буфер обмена
 
<?xml version="1.0" encoding="UTF-8"?>
<Table FullLoad="true">
    <Record BarCodeBase64="MjAwMDAwMDAwMDA1Mw==" Name="Блокнот для заметок" UnitOfMeasurement="Штуки" CharacteristicOfNomenclature="" 
SeriesOfNomenclature="" Quality="" Price="25,30" Quantity="7"/> <Record BarCodeBase64="MjAwMDAwMDAwMDA1Mw==" Name="Финики в банке" UnitOfMeasurement="Штуки" CharacteristicOfNomenclature="" SeriesOfNomenclature="" Quality="Зеленые" Price="95,50" Quantity="7"/> </Table>

ТаблицаЗагрузки (DownloadTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута

Table

Record

BarCodeBase64 Да string Штрихкод номенклатуры.
Штрихкод кодируется текстом в кодировке Base64.
Quantity Да decimal Количество товара
ContainerBarCodeBase64 Нет string Штрихкод упаковки.
Штрихкод кодируется текстом в кодировке Base64.
AlcoholExciseStampBase64 Нет string Штрихкод PDF417 акцизной или спец. марки алкогольной продукции.
Штрихкод кодируется текстом в кодировке Base64.
AlcoholSerialNumber Нет string Серийный номер алкогольной продукции
AlcoholName Нет string Наименование алкогольной продукции
AlcoholKindCode Нет string Код вида алкогольной продукции
AlcoholCode Нет string Код алкогольной продукции
AlcoholContainerSize Нет string Ёмкость тары в литрах
AlcoholStrength Нет string Процентное содержание спирта
VendorINNCode Нет string ИНН производителя
VendorKPPCode Нет string КПП производителя

Пример текстового XML, содержащий данные: 

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<Table>
    <Record BarCodeBase64="MjAwMDAwMDAwMDA1Mw==" Quantity="1" AlcoholExciseStamp="20N00001CKO68OY4QYX3T1731224004002671B1IEHLWKNFXFO8FPMERND09WMB8FYV7"/>
    <Record BarCodeBase64="MjAwMDAwMDAwMDA1Mw==" Quantity="2"/>
</Table>

3.5. Требования к разработке драйверов для ККТ с функцией передачи в ОФД

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

ВНИМАНИЕ: Данный стандарт определяет требования к ККТ на основании формата фискальных документов версии по
приказа ФНС России от 12.04.2023 N ЕД-7-20/239@.

Проверка маркированного товара на ККТ реализована по следующему сценарию:

  1. Проверка КМ осуществляется в рамках сессий.
    • Открытие новой сессии проверки марок на ККТ в явном виде осуществляется методом ОткрытьСессиюРегистрацииКМ().
    • Закрытие сессии проверки марок в явном виде осуществляется методом ЗакрытьСессиюРегистрацииКМ().
    • При фискализации чека методом СформироватьЧек() открытая ранее сессия проверки марок будет автоматически закрыта.
  2. Запрос на проверку КМ на ККТ.
    • Формирование запроса на проверку КМ осуществляется методом ЗапросКМ().
    • Поле «MarkingCode» заполняется значением полной КМ в BASE64. Передача в BASE64 обусловлена тем, что в составе КМ могут присутствовать спецсимволы-разделители GS1.
    • Метод сразу же возвращает результаты локальной проверки КМ, формирует запрос в ОИСМ и переводит ККТ в режим ожидание получения ответа от ОИСМ.
    • Если нет необходимости ждать ответа от ОИСМ – в атрибутах метода ЗапросКМ() можно указать «WaitForResult=False», тогда статусы проверки КМ можно получить без ожидания ответа от ОИСМ.
    • Если необходимо формировать запрос КМ локально, и не отправляется на сервер ОИСМ необходимо указать параметр «NotSendToServer= False».
  3. Получение результата проверки КМ в случае если запрос отправляется на сервер ОИСМ
    • После формирования запроса на проверку КМ на ККТ нужно в обязательном порядке получить статут КМ методом ПолучитьРезультатыЗапросаКМ(). Даже есть запрос ЗапросКМ() выполнялся с атрибутом «WaitForResult= False».
    • Получение результата проверки происходит циклическим вызовом метода ПолучитьРезультатыЗапросаКМ(), пока он не вернет статус что результат получен или не может быть получен. Вызов метода должен осуществляться через временной интервал.
    • Пока метод в параметре «СтатусЗапроса» не вернет статус «0–результат получен» или «2–результат не может быть получен», другие операции невозможны.
  4. Подтверждение КМ для последующего включения в чек  в случае если запрос отправляется на сервер ОИСМ
    • После получения результата проверки КМ можно отобразить на экране статус проверки.
    • Если пользователь соглашается купить товар, маркированный проверяемой КМ – необходимо подтвердить методом ПодтвердитьКМ() с параметром «ТипПодтверждения=0».
    • Если пользователь отказывается от покупки товара, маркированного проверяемой КМ – необходимо отклонить методом ПодтвердитьКМ() с параметром «ТипПодтверждения=1».
  5. Фискализация чека
    • Если КМ была проверена методом ЗапросКМ() и запрос отправлялся на сервер ОИСМ и получен результат методом ПолучитьРезультатыЗапросаКМ(), и подтверждена к выбытию методом ПодтвердитьКМ() – такую КМ можно включать в фискальный чек.
    • Необходимо заполнить для фискальной строки атрибут «MarkingCode» - полной КМ в BASE64.
    • ККТ после фискализации чека формирует документ «Уведомление о реализации МТ» и отправляет его в ОФД.
  6. Отмена чека
    • При отмене чека вызывается метод ЗакрытьСессиюРегистрацииКМ().  
Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ПолучитьПараметрыККТ (GetDataKKT) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получение данных из ККТ для регистрации фискального накопителя и последующей работы
ТаблицаПараметровККТ
(TableParametersKKT)
XML таблица
STRING [OUT] Регистрационные данные фискального накопителя
ОперацияФН (OperationFN) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Операция с фискальным накопителем. После проведения операции происходит печать отчета о проведении соответствующей операции.
ТипОперации (OperationType) LONG [IN] Тип операции:
1 - Регистрация
2 - Изменение параметров регистрации
3 - Закрытие ФН
ПараметрыФискализации
(ParametersFiscal)
XML таблица
STRING [IN] Данные для фискализации фискального накопителя
ОткрытьСмену (OpenShift) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Открывает новую смену и печатает на ККТ отчет об открытии смены.
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
ВыходныеПараметры
(OutputParameters)

XML таблица
STRING [OUT] Выходные параметры операции
ЗакрытьСмену (CloseShift) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Закрывает открытую ранее смену и печатает на ККТ отчет о закрытии смены.
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
ВыходныеПараметры
(OutputParameters)

XML таблица
STRING [OUT] Выходные параметры операции
СформироватьЧек (ProcessCheck) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Формирование чека в пакетном режиме. Передается структура, описывающая тип открываемого чека, фискальные и текстовые строки, штрихкоды, которые будут напечатаны. Также передаются суммы оплат для закрытия чека.

В случае наличия КМ в передаваемых данных ККТ также формирует уведомление о реализации маркированного товара. Такие КМ должны быть проверены ранее.

Метод считается выполненным успешно если чек был фискализирован. Если при  печати бумажной формы чека произошла ошибка - метод возвращает True, а в атрибуте выходных параметров возвращается флаг ошибки печати PrintError = True.

Электронно (Electronically) BOOL (IN) Формирование чека только в электронном виде. Печать чека не осуществляется.
ДанныеЧека
(CheckPackage)
XML таблица
STRING [IN] XML структура - описание чека.
ВыходныеПараметрыДокумента
(DocumentOutputParameters
XML таблица
STRING [OUT] Выходные параметры операции

СформироватьЧекКоррекции (ProcessCorrectionCheck)
ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Формирование чека коррекции в пакетном режиме. Передается структура, описывающая тип открываемого чека и атрибуты чека.

Метод считается выполненным успешно если чек был фискализирован. Если при  печати бумажной формы чека произошла ошибка - метод возвращает True, а в атрибуте выходных параметров возвращается флаг ошибки печати PrintError = True.

ДанныеЧека
(CheckPackage)
XML таблица
STRING [IN] XML структура - описание чека коррекции.
ВыходныеПараметрыДокумента
(DocumentOutputParameters
XML таблица
STRING [OUT] Выходные параметры операции
НапечататьТекстовыйДокумент (PrintTextDocument) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Печать текстового документа (текстовый слип-чек, информационная квитанция)
ДанныеДокумента
(DocumentPackage)
XML таблица
STRING [IN] XML структура - описание текстового документа.
НапечататьЧекВнесенияВыемки (CashInOutcome) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Печатает чек внесения/выемки (зависит от переданной суммы). Сумма >= 0 - внесение, Сумма < 0 - выемка.
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
Сумма (Amount) DOUBLE [IN] Сумма внесения /выемки
НапечататьОтчетБезГашения (PrintXReport) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Печатает отчет за смену без закрытия кассовой смены
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
НапечататьКопиюЧека (PrintCheckCopy) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Печатает печатный дубликат ранее фискализированного чека
НомерЧека (CheckNumber) STRING [IN] Номер фискального чека
ПолучитьТекущееСостояние (GetCurrentStatus) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получение текущего состояния ККТ.
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
ВыходныеПараметры
(OutputParameters)

XML таблица

STRING [OUT]

XML структура - описание параметров состояния.
ОтчетОТекущемСостоянииРасчетов
(ReportCurrentStatusOfSettlements)
ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Формирует отчет о текущем состоянии расчетов
ВходныеПараметры (InputParameters)
XML таблица
STRING [IN] Входные параметры операции
ВыходныеПараметры
(OutputParameters)

XML таблица
STRING [OUT] Выходные параметры операции
ОткрытьДенежныйЯщик (OpenCashDrawer) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Производит открытие денежного ящика, подключенного к фискальному регистратору.
ПолучитьШиринуСтроки (GetLineLength) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получает ширину строки чека в символах.
ШиринаСтроки (LineLength) LONG [OUT] Ширина строки в символахах
ОткрытьСессиюРегистрацииКМ(OpenSessionRegistrationKM) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Открывает сессию регистрации контрольных марок
ЗакрытьСессиюРегистрацииКМ(CloseSessionRegistrationKM) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Закрывает сессию регистрации контрольных марок
ЗапросКМ
(RequestKM)
ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод производит локальную проверку КМ фискальным накопителем и формирование запроса о коде маркировки в ОИСМ.
Метод возвращает результаты локальной проверки КМ фискальным накопителем.
ЗапросКМ(RequestKM)
XML таблица
STRING [IN] Входные параметры запроса
РезультатЗапросаКМ(RequestKMResult)
XML таблица
STRING [OUT] Результат запроса
ПолучитьРезультатыЗапросаКМ
(GetProcessingKMResult)
ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод запрашивает результаты проверки кода маркировки в ОИСМ.
РезультатЗапросаКМ(ProcessingKMResult)
XML таблица
STRING [OUT] Результат запроса
СтатусЗапроса (RequestStatus) LONG [OUT] Статус запроса:
0 – результат получен
1 – результат еще не получен
2 – результата не может быть получен 
ПодтвердитьКМ (ConfirmKM) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Подтверждает или отменяет к выбытию проверенную ранее КМ в составе документа о реализации маркированного товара. КМ должна быть ранее проверена методом ЗапросКМ (RequestKM)
ИдентификаторЗапроса (GUID) STRING [IN] Уникальный идентификатор запроса КМ, который ранее был произведен методом ЗапросКМ (RequestKM)
ТипПодтверждения (ConfirmationType) LONG [IN] 0 - КМ будет реализована в составе документа о реализации маркированного товара.
1 - КМ не будет реализована.
НЕ войдет в документ о реализации маркированного товара.
Описание структуры TableParametersKKT

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
KKTNumber Нет* string Регистрационный номер ККТ
KKTSerialNumber Да string  Заводской номер ККТ
FirmwareVersion Нет string Версия прошивки
Fiscal Да boolean Признак регистрации фискального накопителя
FFDVersionFN Нет* string Версия ФФД ФН (одно из следующих значений "1.0","1.1", "1.2")
FFDVersionKKT Нет* string Версия ФФД ККТ (одно из следующих значений "1.0","1.0.5","1.1", "1.2")
FNSerialNumber Да string Заводской номер ФН
PermissiveMarking Нет* boolean Готовность ККТ для работы с разрешительной системой маркировки.
DocumentNumber Нет* string Номер документа регистрации фискального накопителя
DateTime Нет* datetime Дата и время операции регистрации фискального накопителя
CompanyName Нет* string Название организации
INN Нет* string ИНН организация
SaleAddress Нет* string Адрес проведения расчетов
SaleLocation Нет* string Место проведения расчетов
TaxationSystems Нет* string Коды системы налогообложения через разделитель ",".
Коды системы налогообложения приведены в таблице "Системы налогообложения"
IsOffline Нет* boolean Признак автономного режима
IsEncrypted Нет* boolean Признак шифрование данных
IsService Нет* boolean Признак расчетов за услуги
IsExcisable Нет* boolean Признак продажи подакцизного товара
IsGambling Нет* boolean Признак проведения азартных игр
IsLottery Нет* boolean Признак проведения лотереи
BSOSing Нет* boolean Признак формирования АС БСО
IsOnline Нет* boolean Признак ККТ для расчетов в Интернет
IsAutomaticPrinter Нет* boolean Признак установки принтера в автомате
IsAutomatic Да boolean Признак автоматического режима
IsMarking Нет* boolean Признак применения при осуществлении торговли товарами, подлежащими обязательной маркировке средствами идентификации
IsPawnshop Нет* boolean Признак применения при осуществлении ломбардами кредитования граждан
IsAssurance Нет* boolean Признак применения при осуществлении деятельности по страхованию
IsVendingMachine Нет* boolean Признак применения в автоматическом торговом автомате
IsCateringServices Нет* boolean Признак применения при оказании услуг общественного питания
IsWholesaleTrade Нет* boolean Признак применения о оптовой торговле с организациями и ИП
AgentTypes Нет* string Коды признаков агента через разделитель ",".
Коды приведены в таблице №10 документа ФФД.
AutomaticNumber Нет* string Номер автомата для автоматического режима
OFDCompany Нет* string Название организации ОФД
OFDCompanyINN Нет* string ИНН организации ОФД
FNSURL Нет string Адрес сайта уполномоченного органа (ФНС) в сети «Интернет»
SenderEmail Нет string Адрес электронной почты отправителя чека

* Данные поля обязательны для фискализированных ФН.

Описание структуры ParametersFiscal

Текст в формате XML, передаваемый с помощью параметра типа STRING.
Данная таблица расширяет таблицу ТаблицаПараметровККТ (TableParametersKKT) следующими атрибутами:

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
CashierName Да string ФИО и должность уполномоченного лица для проведения операции
CashierINN Да string ИНН уполномоченного лица для проведения операции
FFDVersion Да string Версия ФФД на который регистрируется ФН (одно из следующих значений "1.0","1.0.5","1.1", "1.2")
RegistrationLabelCodes Нет* string Коды причин изменения сведений о ККТ через разделитель ".
(Коды приведены в таблице 93 форматов фискальных данных)

* Данное поле обязательно при процедуре изменение параметров регистрации.

Описание структуры InputParameters

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
InputParameters
Parameters CashierName Да string ФИО и должность уполномоченного лица для проведения операции
CashierINN Нет string ИНН уполномоченного лица для проведения операции
SaleAddress Нет string Адрес проведения расчетов
SaleLocation Нет string Место проведения расчетов
PrintRequired Нет bool Необходима печать требуемого документа

Пример текстового XML:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8"?>
 <InputParameters>
	<Parameters CashierName="Иванов И.П." CashierINN="32456234523452"/>
 </InputParameters>

Описание структуры OutputParameters

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Открытие смены Закрытие смены Получить текущее состояние Отчет о текущем состоянии расчетов
OutputParameters
Parameters ShiftNumber Да Да Да   int Номер открытой смены/Номер закрытой смены
CheckNumber     Да   int Номер последнего фискального документа
ShiftClosingCheckNumber     Да   int Номер последнего чека за смену
DateTime Да Да     datetime Дата и время формирования фискального документа
ShiftState Да Да Да Да int Состояние смены
1 - Закрыта
2 - Открыта
3 - Истекла
CountersOperationType1   Да     OperationCounters Счетчики операций по типу "приход"
CountersOperationType2   Да     OperationCounters Счетчики операций по типу "возврат прихода"
CountersOperationType3   Да     OperationCounters Счетчики операций по типу "расход"
CountersOperationType4   Да     OperationCounters Счетчики операций по типу "возврат расхода"
CashBalance   Да Да Да double Остаток наличных денежных средств в кассе
BacklogDocumentsCounter   Да Да Да int Количество непереданных документов
BacklogDocumentFirstNumber   Да Да Да int Номер первого непереданного документа
BacklogDocumentFirstDateTime   Да Да Да datetime Дата и время первого из непереданных документов
FNError Да Да     bool Признак необходимости срочной замены ФН
FNOverflow Да Да     bool Признак переполнения памяти ФН
FNFail Да Да     bool Признак исчерпания ресурса ФН
FNValidityDate Да Да     datetime Срок действия ФН

Описание структуры OperationCounters

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
OperationCounters
Parameters CheckCount Да int Количество чеков по операции данного типа
TotalChecksAmount Да double Итоговая сумма чеков по операциям данного типа
CorrectionCheckCount Да int Количество чеков коррекции по операции данного типа
TotalCorrectionChecksAmount Да double Итоговая сумма чеков коррекции по операциям данного типа

Описание структуры DocumentOutputParameters

-
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
DocumentOutputParameters
Parameters ShiftNumber Да int Номер открытой смены/Номер закрытой смены
CheckNumber Да int Номер фискального документа
ShiftClosingCheckNumber Да int Номер чека за смену
AddressSiteInspections Да string Адрес сайта проверки
FiscalSign Да string Фискальный признак
DateTime Да datetime Дата и время формирования документа
MTNumber Нет int Номер документа "Уведомление о реализации МТ" в который включается данные чека.
PrintError Нет bool Ошибка при печати бумажной формы чека

Пример текстового XML:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8"?>
 <DocumentOutputParameters>
    <Parameters CheckNumber="5" ShiftClosingCheckNumber="1" ShiftNumber="2" AddressSiteInspections="www.nalog.ru" DateTime="2021-09-02T12:59:00" FiscalSign="2721313672"/>
 </DocumentOutputParameters>

Описание структуры CheckPackage

Текст в формате XML содержит описание передаваемого для формирования чека. Структура описывает параметры и последовательность формирования фискального чека.

Секцияя Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута Описание
CheckPackage

Parameters

CashierName Да string ФИО и должность уполномоченного лица для проведения операции Формирование нового чека с заданными атрибутами. При формировании чека ККТ должна проверять, что передаваемый код системы налогообложения доступен для данного фискализированного ФН.
CashierINN Нет string ИНН уполномоченного лица для проведения операции
OperationType Да int Тип операции (Таблица 25 документа ФФД):
1 - приход денежных средств
2 - возврат прихода денежных средств
3 - расход денежных средств
4 - возврат расхода денежных средств
CorrectionData Да* Вложенная структура Данные по операции коррекции.
Данное поле обязательно только для чека коррекции.
TaxationSystem Да int Код системы налогообложения. Коды системы налогообложения приведены в таблице "Системы налогообложения".
CustomerDetail Нет Вложенная структура Cведения о покупателе (клиенте)
CustomerEmail Нет string Email покупателя (клиента)
CustomerPhone Нет string Телефонный номер покупателя (клиента)
SenderEmail Нет string Адрес электронной почты отправителя чека
SaleAddress Нет string Адрес проведения расчетов
SaleLocation Нет string Место проведения расчетов
AutomatNumber Нет string Номер автомата
AgentType Нет int Признак агента.
См. таблицу "Признаки агента"
AgentData Нет Вложенная структура Данные агента
VendorData Нет Вложенная структура Данные поставщика
UserAttribute Нет Вложенная структура Дополнительный реквизит пользователя
AdditionalAttribute Нет string Дополнительный реквизит чека
OperationalAttribute Нет Вложенная структура Операционный реквизит чека
IndustryAttribute Нет Вложенная структура Отраслевой реквизит чека
GroupingPositionsWhenPrinting Нет bool Признак сворачивание одинаковых строк на печатной форме документа

Positions

FiscalString Name Да string Наименование товара Регистрирует фискальную строку с переданными реквизитами.
При печати длинных фискальных строк необходимо делать перенос на следующую строку.
Quantity Да double Количество товара
PriceWithDiscount Да double Цена единицы товара с учетом скидок/наценок
AmountWithDiscount Да double Конечная сумма по предмету расчета с учетом всех скидок/наценок
DiscountAmount Нет double Сумма скидок и наценок (если значение > 0 то в чеке выводиться скидка, если значение < 0 то наценка
Department Нет int Отдел, по которому ведется продажа
VATRate Да string Ставка НДС:
"none" - БЕЗ НДС
"20" - НДС 20
"18" - НДС 18
"10" - НДС 10
"0" - НДС 0
"20/120" - расчетная ставка 20/120
"18/118" - расчетная ставка 18/118
"10/110" - расчетная ставка 10/110
VATAmount Да** double Сумма НДС за предмет расчета.
В ККТ должен быть отключен расчет налогов, и в чеке выводиться сумма НДС рассчитанная в 1С.
Итоговые суммы НДС по чеку должны рассчитывать по строкам.
В случае когда ставка = "БЕЗ НДС" сумма позиций без НДС для чека должна рассчитываться по значением атрибута "AmountWithDiscount" позиций со ставкой "БЕЗ НДС".
PaymentMethod Нет int Признак способа расчета.
См. таблицу "Признаки способа расчета"
CalculationSubject Нет int Признак предмета расчета.
См. таблицу "Признаки предмета расчета"
CalculationAgent Нет int Признак агента по предмету расчета
См. таблицу "Признаки агента по предмету расчета"
AgentData Нет Вложенная структура Данные агента
VendorData Нет Вложенная структура Данные поставщика
MeasureOfQuantity Нет int Мера количества предмета расчета.
Значение из таблицы 114 (ФФД)
FractionalQuantity Numerator Нет int Дробное количество маркированного товара
Denominator Нет int
GoodCodeData Нет Вложенная структура Код товара
MarkingCode Нет string Код контрольной марки.
Кодируется текстом в кодировке Base64.
CountryOfOrigin Нет string Цифровой код страны происхождения товара в соответствии с Общероссийским классификатором стран мира
CustomsDeclaration Нет string Регистрационный номер таможенной декларации
AdditionalAttribute Нет string Дополнительный реквизит предмета расчета
ExciseAmount Нет double Сумма акциза с учетом копеек, включенная в стоимость предмета расчета
IndustryAttribute Нет Вложенная структура Отраслевой реквизит предмета расчета для предмета расчета.
Данные реквизиты так же включаются в документ "Уведомление о реализации МТ"
TextString Text Нет string Строка с произвольным текстом Печать текстовой строки.
Barcode Type Нет string Строка, определяющая тип штрихкода Печать штрихкода. Осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из следующих значений: EAN8, EAN13, CODE39, QR. В случае, если модель устройства не поддерживает печать штрихкода вышеуказанных типов, драйвер должен вернуть ошибку. 
ValueBase64 Нет string Значение штрихкода.
Штрихкод кодируется текстом в кодировке Base64.

Payments

Cash Нет decimal Сумма оплаты наличными денежными средствами Параметры закрытия чека. Сумма всех видов оплат должна быть больше суммы открытого чека. 
ElectronicPayment Нет decimal Сумма оплаты безналичными средствами платежа
PrePayment Нет decimal Сумма зачтенной предоплаты или аванса
PostPayment Нет decimal Сумма оплаты в кредит (постоплаты)
Barter Нет decimal Сумма оплаты встречным предоставлением

* Данное поле обязательно только для чека коррекции. Передается только при вызове метода СформироватьЧекКоррекции (ProcessCorrectionCheck).
** В случае когда ставка "БЕЗ НДС", сумма НДС не заполняется. Сумма позиций без НДС рассчитывается по значениям атрибута "AmountWithDiscount" позиций со ставкой "БЕЗ НДС".

Пример текстового XML:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8"?>
 <CheckPackage>
  <Parameters CashierName="Администратор" OperationType="1" TaxationSystem="0" SaleAddress="г.Москва, Дмитровское ш. д.9" SaleLocation="г.Москва, Дмитровское ш. д.9" CustomerEmail="" CustomerPhone="">
  <AgentData/>
  <VendorData/>
  <CustomerDetail/>
  <OperationalAttribute/>
  <IndustryAttribute/>
  </Parameters>
  <Positions>
   <FiscalString Name="Товарная позиция" Quantity="1" PriceWithDiscount="200" AmountWithDiscount="200" Department="0" VATRate="none" VATAmount="" PaymentMethod="4" CalculationSubject="1">
   <IndustryAttribute/>
   <AgentData/>
   <VendorData/>
   </FiscalString>
  </Positions>
 <Payments Cash="0" ElectronicPayment="200" PrePayment="0" PostPayment="0" Barter="0"/>
 </CheckPackage>

CorrectionData - Данные коррекции. XML Структура.

Наименование атрибута Типы данных Описание атрибута
CorrectionData
Type int Тип коррекции
0 - самостоятельно
1 - по предписанию
Description string Описание коррекции
Datе datetime Дата совершения корректируемого расчета
Number string Номер предписания налогового органа

CustomerDetail - Cведения о покупателе (клиенте). XML Структура.

Наименование атрибутаа Типы данных Описание атрибута
CustomerDetail
Info string Наименование организации или фамилия, имя, отчество (при наличии)
INN string ИНН организации или покупателя (клиента)
DateOfBirth string Дата рождения покупателя (клиента) в формате "DD.MM.YYYY"
Citizenship string Числовой код страны, гражданином которой является покупатель (клиент).
Код страны указывается в соответствии с Общероссийским классификатором стран мира ОКСМ.
DocumentTypeCode int Числовой код вида документа, удостоверяющего личность (ФФД, Таблица 116)
DocumentData string Данные документа, удостоверяющего личность
Address string Адрес покупателя (клиента)

AgentData - Данные агента. XML Структура.

Наименование атрибута Типы данных Описание атрибута
AgentData
AgentOperation string Операция платежного агента
AgentPhone string Телефон платежного агента.
Допустимо несколько значений через разделитель ",".
PaymentProcessorPhone string Телефон оператора по приему платежей.
Допустимо несколько значений через разделитель ",". 
AcquirerOperatorPhone string Телефон оператора перевода.
Допустимо несколько значений через разделитель ",". 
AcquirerOperatorName string Наименование оператора перевода
AcquirerOperatorAddress string Адрес оператора перевода
AcquirerOperatorINN string ИНН оператора перевода

VendorData - Данные поставщика. XML Структура.

Наименование атрибутаа Типы данных Описание атрибута
VendorData
VendorPhone string Телефон поставщика.
Допустимо несколько значений через разделитель ",". 
VendorName string Наименование поставщика
VendorINN string ИНН поставщика

OperationalAttribute - Операционный реквизит. XML Структура.

Наименование атрибутаа Типы данных Описание атрибута
OperationalAttribute
DateTime datetime Дата, время операции
OperationID int Идентификатор операции
OperationData string Данные операции

IndustryAttribute - Отраслевой реквизит. XML Структура.

Наименование атрибутаа Типы данных Описание атрибута
IndustryAttribute
IdentifierFOIV string Идентификатор ФОИВ
DocumentDate string Дата документа основания в формате "DD.MM.YYYY"
DocumentNumber string Номер документа основания
AttributeValue string Значение отраслевого реквизита

GoodCodeData - Код товарной номенклатуры. XML Структура. Значение всех элементов передаются в Base64.

Наименование атрибута Обязательное наличие в
структуре
Типы данных Описание атрибута
GoodCodeData
NotIdentified Нет string Код товара, формат которого не
идентифицирован в Base64
EAN8 Нет string Код товара в формате EAN-8 в Base64
EAN13 Нет string Код товара в формате EAN-13 в Base64
ITF14 Нет string Код товара в формате ITF-14 в Base64
GS1.0 Нет string Код товара в формате GS1, нанесенный на товар, не подлежащий маркировке средствами идентификации в Base64
GS1.M Нет string Код товара в формате GS1, нанесенный на товар, подлежащий маркировке средствами идентификации в Base64
KMK Нет string Код товара в формате короткого кода маркировки, нанесенный на товар, подлежащий маркировке средствами идентификации в Base64
MI Нет string Контрольно-идентификационный знак мехового изделия
EGAIS20 Нет string Код товара в формате ЕГАИС-2.0 в Base64
EGAIS30 Нет string Код товара в формате ЕГАИС-3.0 в Base64
F1 Нет string Код товара в формате Ф.1 в Base64
F2 Нет string Код товара в формате Ф.2 в Base64
F3 Нет string Код товара в формате Ф.3 в Base64
F4 Нет string Код товара в формате Ф.4 в Base64
F5 Нет string Код товара в формате Ф.5 в Base64
F6 Нет string Код товара в формате Ф.6 в Base64

RequestKM - Запрос КМ. XML Структура.

Наименование атрибута Обязательное наличие в
структуре
Типы данных Описание атрибута
RequestKM
GUID Да string Уникальный идентификатор запроса. Формирует 1С.
NotSendToServer Нет bool В случае передачи значения True-запрос КМ формируется локально и не отправляется на сервер ОИСМ.
WaitForResult Нет   bool Будет ли ожидаться получение ответа от ОИСМ.
True-ждать, False-не дожидаться ответа
MarkingCode Да string Код контрольной марки
Кодируется текстом в кодировке Base64.
PlannedStatus Да int Планируемый статус товара.
Значение от 1 до 5 из таблицы 105 (ФФД)
Quantity Нет double Количество
MeasureOfQuantity Нет string Мера количества предмета расчета.
Значение из таблицы 114 (ФФД)
FractionalQuantity Numerator Нет int Дробное количество маркированного товара
Denominator Нет int

RequestKMResult - Результат запроса КМ. XML Структура.

Наименование атрибута Обязательное наличие в
структуре
Типы данных Описание атрибута
RequestKMResult
Checking Да bool True - Код маркировки проверен фискальным накопителем с
использованием ключа проверки КП.
False - Код маркировки не может быть проверен фискальным
накопителем с использованием ключа проверки КП.
CheckingResult Да bool True - Результат проверки КП КМ фискальным накопителем с использованием ключа проверки КП положительный
False - Результат проверки КП КМ фискальным накопителем с использованием ключа проверки КП отрицательный.

Пример текстового XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<RequestKMResult Checking="True" CheckingResult="True"/>

ProcessingKMResult - Результат запроса о КМ в ОИСМ. XML Структура.

Наименование атрибута Обязательное наличие в
структуре
Типы данных Описание атрибута
ProcessingKMResult
GUID Да string Уникальный идентификатор запроса.
Result Да bool True - Результат проверки КП КМ положительный
False- Результат проверки КП КМ отрицательный
ResultCode Да int Результат проверки сведений о товаре, тэг 2106, Таблица 110
StatusInfo Нет int Значение от 1 до 3 из таблицы 106 (ФФД)
Статус товара корректен если атрибут имеет значение 1.
HandleCode Да int Код обработки запроса.
Значение от 0 до 2 из таблицы 132 (ФФД)

Пример текстового XML:

Копировать в буфер обмена
 
<?xml version="1.0" encoding="UTF-8"?>
<ProcessingKMResult GUID="193DDFC8-15DF-4B14-AE84-1D5B741BC0AC" Result="True" StatusInfo="1" HandleCode="0"/>

UserAttribute - Дополнительный реквизит пользователя, XML Структура.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута

UserAttribute

Name Да string Имя реквизита
Value Да string Значение реквизита

Описание структуры DocumentPackage

Текст в формате XML содержит описание текстового документа. Структура описывает последовательность формирования текстового документа.
Все строки в данной секции нефискальные,  и формируются как тестовые.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута Описание
Document Да   Описание чека

Positions

TextString Text Да string Строка с произвольным текстом Печать текстовой строки.
Barcode Type Да string Строка, определяющая тип штрихкода Печать штрихкода. Осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из следующих значений: EAN8, EAN13, CODE39, QR. В случае, если модель устройства не поддерживает печать штрихкода вышеуказанных типов, драйвер должен вернуть ошибку.  
ValueBase64 Да string Значение штрихкода.
Штрихкод кодируется текстом в кодировке Base64.

Справочные таблицы

Системы налогообложения
Код Описание
0 Общая
1 Упрощенная (Доход)
2 Упрощенная (Доход минус Расход)
3 Единый налог на вмененный доход
4 Единый сельскохозяйственный налог
5 Патентная система налогообложения
Признаки способа расчета
Код Описание
1 Предоплата полная
2 Предоплата частичная
3 Аванс
4 Полный расчет
5 Частичный расчет и кредит
6 Передача в кредит
7 Оплата кредита
Признаки предмета расчета
Код Описание
1 Товар
2 Подакцизный товар
3 Работа
4 Услуга
5 Ставка азартной игры
6 Выигрыш азартной игры
7 Лотерейный билет
8 Выигрыш лотереи
9 Предоставление результатов интеллектуальной деятельности
10 Платеж
11 Агентское вознаграждение
12 Выплата
13 Иной предмет расчета
14 Имущественное право
15 Внереализационный доход
16 Страховые взносы
17 Торговый сбор
18 Курортный сбор
19 Залог
20 Расход
21 Взносы на обязательное пенсионное страхование ИП
22 Взносы на обязательное пенсионное страхование
23 Взносы на обязательное медицинское страхование ИП
24 Взносы на обязательное медицинское страхование
25 Взносы на обязательное социальное страхование
26 Платеж казино
27 Выдача денежных средств банковским платежным агентом
30 Подакцизный товар, подлежащий маркировке средством идентификации, не имеющем кода маркировки
31 Подакцизный товар, подлежащий маркировке средством идентификации, имеющем код маркировки
32 Товар подлежащей маркировке средством идентификации, не имеющем кода маркировки, за исключением подакцизного товара
33 Товар подлежащей маркировке средством идентификации, имеющем код маркировки, за исключением подакцизного товара
Признак агента
Код Описание
0 Банковский платежный агент
1 Банковский платежный субагент
2 Платежный агент
3 Платежный субагент
4 Поверенный
5 Комиссионер
6 Агент
Признаки агента по предмету расчета
Код Описание
0 Банковский платежный агент
1 Банковский платежный субагент
2 Платежный агент
3 Платежный субагент
4 Поверенный
5 Комиссионер
6 Агент
Код типа маркированной продукции
Код Описание
1 Изделия из меха
2 Табачная продукция
3 Обувные товары
4 Товары легкой промышленности и одежды
5 Шины и автопокрышки
6 Молоко и молочная продукция
7 Фотокамеры и лампы-вспышки
8 Велосипеды
9 Кресла-коляски
10 Духи и туалетная вода
11 Альтернативный табак
12 Упакованная вода
13 Антисептики
14 БАД
15 Никотиносодержащая продукция
16 Пиво

3.6. Требования к разработке драйверов для принтеров чеков

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

При работе с принтерами чеков поддерживаются следующие операции:

Алгоритм печати чека.

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

Описание методов
Название (alias) Параметрыры Тип возвращаемого значения Описание метода
Имя Тип Описание
НапечататьТекстовыйДокумент (PrintTextDocument) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Печать текстового документа (текстовый слип-чек, информационная квитанция). Драйвер может проверить доступность устройства, наличие бумаги и вернуть False в случае невозможности печати. После завершения печати в случае необходимости посылается команда отрезчику.
ДанныеДокумента
(DocumentPackage)
XML таблица
STRING [IN] XML структура - описание текстового документа.
ОткрытьДенежныйЯщик (OpenCashDrawer) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Посылает команду на открытие денежного ящика, подключенного к принтеру чеков
ПолучитьШиринуСтроки (GetLineLength) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получить ширину строки в символах
ШиринаСтроки (LineLength) LONG [OUT] Ширина строки в символах

Описание структуры DocumentPackage

Текст в формате XML содержит описание текстового документа. Структура описывает последовательность формирования текстового документа.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута Описание
Document Да   Описание чека

Positions

TextString Text Да string Строка с произвольным текстом Печать текстовой строки.
Barcode Type Да string Строка, определяющая тип штрихкода

Печать штрихкода. Осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из значений:  "EAN8","EAN13", "EAN128", "CODE39", "Code128","Code16k","Code93","PDF417","DataMatrix" ,"QR", "ITF14","EAN13Addon2","EAN13Addon5","GS1DataBarExpandedStacked".
В случае, если модель устройства не поддерживает печать штрихкода вышеуказанных типов, драйвер должен вернуть ошибку.  

ValueBase64 Да string Значение штрихкода.
Штрихкод кодируется текстом в кодировке Base64.

Пример текстового XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<Document>
	<Positions>
		<TextString Text="Участие в дисконтной системе"/>
		<TextString Text="Дисконтная карта: 00002345"/>
		<Barcode BarcodeType="EAN13" Barcode="2000021262157"/>
	</Positions>
</Document>

3.7. Требования к разработке драйверов для принтеров этикеток

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент.

Работа с принтером печати этикеток заключается в выгрузке в драйвер сформированного пакета данных об этикетах. Пакет формируется средствами конфигурации и содержит описание форматирования шаблона этикетки и набора данных для формирования этикеток. Драйвер печати этикеток должен предусматривать обработку сформированного массива этикеток несколькими итерациями, путем последовательных вызовов метода «ПечатьЭтикеток (PrintLabels)» с пакетами данных определенного размера (например, по 100 этикеток) и с дополнительным параметром, определяющим статус пакета ("first" - первый пакет,  "regular" - очередной, "last" - последний пакет).

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ИнициализацияПринтера (InitializePrinter) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Первичная инициализация принтера этикеток (загрузка шрифтов, установка параметров печати, установка нужной кодовой страницы)
ПечатьЭтикеток (PrintLabels) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Печать набора этикеток на принтере этикеток
ТаблицаЭтикеток
(LabelsTable)
XML таблица

STRING [IN]

Таблица этикеток
СтатусПакета (PackageStatus)

STRING [IN]

Статус пакета * *

* - Строка, определяющая статус пакета, имеет одно из значений: "first", "regular", "last".

ТаблицаЭтикеток (LabelsTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Структуру передаваемого пакета можно разделить на две составляющие секции:

Секция   Наименование
атрибута
Обязательное наличие в структуре Типы данных Описание атрибута

Formatting

Formatting

Width

Да decimal Ширина шаблона этикетки в миллиметрах.

Height

Да decimal Высота шаблона этикетки в миллиметрах.

Text

FieldName Да string Уникальное имя поля в шаблоне этикетки.
Left Да decimal Позиция левой границы поля по оси X (в миллиметрах).
Top Да decimal Позиция верхней границы поля по оси Y (в миллиметрах).
Width Да decimal Ширина поля в миллиметрах.
Height Да decimal Высота поля в миллиметрах.
Orientation Нет long

Ориентация содержимого поля.
Имеет одно из следующих значений: 0, 90, 180, 270.
По умолчанию 0.

FontName Нет string Имя шрифта (не имя файла-шрифта). По умолчанию предустановленный на принтере шрифт.
FontSize Да long Размер шрифта в кеглях.
FontStyle Нет string Стиль шрифта. Имеет одно или несколько значений через разделитель -пробел: "Bold", "Italic", "Underline" и "StrikeOut". По умолчанию "".
Border Нет string Строка, определяющая рамки поля. Имеет одно или несколько значений через разделитель - пробел: "Left", "Top", "Right" и "Bottom". По умолчанию "".
BorderWidth Нет long Толщина рамки в пикселах, по умолчанию 1.
BorderStyle Нет string Стиль рамки. Имеет одно из значений: "Dotted", "Dashed", "Solid" или "Double". По умолчанию "Solid".
Align Нет string Горизонтальное выравнивание текста. Имеет одно из значений: "Left", "Center" или "Right". По умолчанию = "Left".
VAlign Нет string Вертикальное выравнивание текста. Имеет одно из значений: "Top", "Center" или "Bottom". По умолчанию = "Top".
Multiline Нет boolean Многострочность. По умолчанию "false".
Static Нет boolean Статичность (одинаковое значение для всех экземпляров этикетки). По умолчанию "false".
Value При Static = "true" string В случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение.

Barcode

FieldName Да string Уникальное имя поля в шаблоне этикетки
Type Да string Тип штрихкода. Имеет одно из значений:  "EAN8","EAN13", "EAN128", "Code39", "Code128","Code16k","Code93","PDF417","DataMatrix" ,"QRCode", "ITF14","EAN13Addon2","EAN13Addon5","GS1DataBarExpandedStacked".
Left Да decimal Позиция левой границы поля по оси X (в миллиметрах).
Top Да decimal Позиция верхней границы поля по оси Y (в миллиметрах).
Width Нет decimal Ширина поля в миллиметрах.
Height Да decimal Высота поля в миллиметрах.
Orientation Нет long Ориентация содержимого поля.
Имеет одно из следующих значений: 0, 90, 180, 270. По умолчанию 0.
PrintHRI Нет boolean Флаг наличия подписи в штрихкоде. По умолчанию "true".
FontSize При PrintHRI = "true" long Размер шрифта в кеглях.
CheckSymbol Нет boolean Наличие контрольного символа для тех типов штрихкодов, для которых возможно управление его наличием. По умолчанию "true".
Static Нет boolean Статичность. По умолчанию "false".
ValueBase64 При static = "true" string Значение штрихкода.
Штрихкод кодируется текстом в кодировке Base64.
В случае когда Static = "true", значение кода является общим для всех этикеток. 
Image FieldName Да string Уникальное имя поля в шаблоне этикетки.
Left Да decimal Позиция левой границы поля по оси X (в миллиметрах).
Top Да decimal Позиция верхней границы поля по оси Y (в миллиметрах).
Width Нет decimal Ширина поля в миллиметрах.
Height Нет decimal Высота поля в миллиметрах.
Orientation Нет long Ориентация содержимого поля.
Имеет одно из следующих значений: 0, 90, 180, 270. По умолчанию 0.
Border Нет string Строка, определяющая рамки поля. Имеет одно или несколько значений через разделитель - пробел: "Left", "Top", "Right" или "Bottom". По умолчанию "".
BorderWidth Нет long Толщина рамки в пикселах, по умолчанию 1.
BorderStyle Нет string Стиль рамки. Имеет одно из значений: "Dotted", "Dashed", "Solid", "Double". По умолчанию "Solid".
Static Нет boolean Статичность. По умолчанию "false".
Value При Static = "true" string В случае когда Static = "true", выступает в роли общего значения.  Кодируется текстом в кодировке Base64.

UserData

FieldName Да string Уникальное имя поля в шаблоне этикетки.
Static Нет boolean Статичность. По умолчанию "false".
Value При Static = "true" string В случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение.

Labels

Label Quantity Нет long Указывает необходимое для этикетки количество копий для печати. По умолчанию 1.
Record FieldName Да string Уникальное имя поля в шаблоне этикетки.
Value При Formatting.Static = "false" string Значение поля в шаблоне этикетки. Для элемента "Image" картинка кодируется текстом в кодировке Base64.

Пример текстового XML, содержащий данные:  

Копировать в буфер обмена
 
<?xml version="1.0"?>
 <Data>
    <Formatting Width = "60" Height="40">
	<Text FieldName="Наименование" Left="1" Top="1" Width="55" Height="10" FontName="Tahoma" FontSize="8" FontStyle="Italic"/>
	<Text FieldName="Цена" Left="1" Top="11" Width="55" Height="10" FontName="Tahoma" FontSize="8" FontStyle="Bold Italic" Border="Left Top Right Bottom"/>
	<Barcode FieldName="Штрихкод" Type="EAN13" Left="1" Top="22" Height="10" PrintHRI="true" FontSize="8"/>
   </Formatting>
   <Labels>
        <Label Quantity="2">
	    <Record FieldName="Наименование" Value="Блокнот для заметок"/>
	    <Record FieldName="Цена" Value="43,5"/>
	    <Record FieldName="Штрихкод" Value="4008110271538"/>
        </Label>
        <Label Quantity="3">
	    <Record FieldName="Наименование" Value="Яблоки антоновка в банке"/>
            <Record FieldName="Цена" Value="78,5"/>
	    <Record FieldName="Штрихкод" Value="2900001355679"/>
        </Label>
   </Labels>
</Data> 

3.8. Требования к разработке драйверов устройств ввода (сканеры штрихкода, считыватели магнитных карт и т.д.)

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

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

Работа с драйвером строится следующим образом:

  1. При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия", с помощью которого можно вызывать метод:
    HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
  2. При каждом успешном считывании кода сканером или считывателем драйвер должен вызывать метод HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData).
  3. Переданные данные размещаются в очереди сообщений. Сообщения из очереди обрабатываются только после обработки всех системных сообщений "1С:Предприятия". При переполнении очереди полученные сообщения игнорируются.

Описание методов, доступных для асинхронного вызова из драйвера*

Описание методов
Название (alias) Параметрыры Тип возвращаемого значения Описание метода
Имя Тип Описание
ExternalEvent bstrWho BSTR [IN] Уникальный идентификатор подключенного устройства **

HRESULT

Помещает данные, полученные от сканера/считывателя в очередь сообщений
bstrWhat BSTR [IN] Тип сообщения/тип данных ***
bstrData BSTR [IN] Считанные устройством данные
SetEventBufferDepth lDepth BSTR [IN] Максимальное число сообщений в очереди

HRESULT

Устанавливает длину очереди сообщений

* - Описание остальных функций, доступных для вызова из драйвера, см. в документе «Технология создания внешних компонент»
** - В параметре bstrWho драйвер передает уникальный идентификатор подключенного устройства.
*** - Параметр bstrWhat используется для поддержки событий различных типов. Допустимо как EN так RU написание.
Список возможных строковых значений bstrWhat приведены в таблице:

Значение bstrWhat Описание
Штрихкод Данные получаемые со сканеров в виде простой стоки
Barcode
ШтрихкодBase64 Данные получаемые со сканеров в виде текста в кодировке Base64
BarcodeBase64
ДанныеКарты Данные получаемые от считывателей магнитных карт в виде простой стоки
TracksData
ДанныеКартыBase64 Данные получаемые от считывателей магнитных карт в виде текста в кодировке Base64
TracksDataBase64
НажатиеКлавиши Данные получаемые от встроенной клавиатура терминала сбора данных.
В этом случае параметр bstrData должен содержать текстовое представление нажатой клавиши.
KeyPress
ОшибкаДрайвера В случае ошибки устройства. В этом случае параметр bstrData должен содержать описание ошибки.
DriverError

3.9. Требования к разработке драйверов для эквайринговых терминалов

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

При работе с эквайринговыми системами поддерживаются следующие операции:

ВНИМАНИЕ: По требованиям банка эквайринговый терминал полный номер карты может не предоставлять, в таком случае часть цифр номера карты заменяется звездочками.

Оплата картой

При необходимости оплатить покупку платежной картой Система вызывает метод "ОплатитьПлатежнойКартой", передавая во входном параметре сумму к оплате для списания с карты и номер считанной карты. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Отмена платежа по карте

Если происходит отмена платежа, то Система вызывает метод "ОтменитьПлатежПоПлатежнойКарте", передавая во входных параметрах сумму, которая была указана для списания с карты, номер считанной карты, код RRN операции, по которой совершается отмена, и код авторизации. Драйвер в ответ возвращает результат выполнения функции. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Возврат платежа по карте

При возврате платежа Система вызывает метод "ВернутьПлатежПоПлатежнойКарте", передавая во входном параметре сумму к возврату на карту, номер считанной карты, код RRN операции, по которой совершается возврат, и код авторизации. Драйвер в ответ возвращает результат выполнения функции, а в выходные параметры записывает код RRN, код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Блокирование суммы на счете карты

При необходимости заблокировать сумму на счете платежной карты Система вызывает метод "ПреавторизацияПоПлатежнойКарте", передавая во входном параметре сумму для блокировки и номер считанной карты. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Списание заблокированной суммы со счета карты

При необходимости списания заблокированной суммы со счета платежной карты Система вызывает метод "ЗавершитьПреавторизациюПоПлатежнойКарте", передавая во входном параметре сумму для списания с карты, номер считанной карты, код RRN операции блокировки и код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПараметрыТерминала). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Отмена блокировки суммы на счете карты

Для отмены блокирования суммы на счете платежной карты Система вызывает метод "ОтменитьПреавторизациюПоПлатежнойКарте", передавая во входном параметре сумму для списания с карты, номер считанной карты, код RRN операции блокировки и код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПараметрыТерминала). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.

Оплата c электронным сертификатом

Метод "ОплатитьЭлектроннымСертификатом" осуществляет оплату с применением электронного сертификата ФЭС НСПК.

Возврат c электронным сертификатом

Метод "ВернутьЭлектроннымСертификатом" осуществляет возврат оплаты с применением электронного сертификата ФЭС НСПК.

Оплата по карте с выдачей наличных

Метод "ОплатитьПлатежнойКартойCВыдачейНаличных" осуществляет операцию оплату по карте с выдачей наличных денежных средств.
Операция выдачи наличных не является самостоятельной операцией и сопровождается обязательной оплатой покупки по карте. 

Аварийная отмена операции

Если операция по платежной карте прошла успешно и слип-чек должен быть распечатан на ФР (определяется методом ПараметрыТерминала), но возникла ошибка печати, то операция по карте должна быть аварийно отменена.

Получение итогов дня по картам

Для получения текста отчета Система вызывает метод "ИтогиДняПоКартам". Драйвер возвращает результат выполнения функции и текст отчета. 

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ПараметрыТерминала (TerminalParamters) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Возвращает параметры работы терминала

ПараметрыТерминала
(TerminalParamters)
XML таблица

STRING [OUT]

Параметры работы терминала

Оплатить (Pay) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет оплату
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
ВернутьПлатеж (ReturnPayment) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет возврат платежа
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
ОтменитьПлатеж (CancelPayment) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет отмену. Допускается частичная отмена, на сумму меньшую оригинальной операции, если терминал поддерживает данную операцию.
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
Преавторизация (Authorisation) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет преавторизацию – блокирование суммы на счете
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
ЗавершитьПреавторизацию (AuthConfirmation) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод завершает преавторизацию – списывает сумму со счета
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
ОтменитьПреавторизацию (CancelAuthorisation) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод отменяет преавторизацию – разблокирует сумму на счете
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **. В случае отказа по операции возвращается текст квитанции отказа.
ОплатаCВыдачейНаличных (PayWithCashWithdrawal) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет операцию оплаты с выдачей наличных денежных средств.
Операция выдачи наличных не является самостоятельной операцией и сопровождается обязательной оплатой по карте.
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **.
В случае отказа по операции возвращается текст квитанции отказа.
ПокупкаСЗачислением (PurchaseWithEnrollment) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет покупки с зачислением денежных средств на карту клиента.
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **.
В случае отказа по операции возвращается текст квитанции отказа.
ПолучитьПараметрыКарты (GetCardParametrs) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Получает параметры карты.
РеквизитыКартыQR (ConsumerPresentedQR) STRING [IN] Отсканированный QR-код с мобильном устройства держателя карты, в котором содержатся EMV-реквизиты карты или токена.
ОтПоследнейОперации (FromLastOperation) BOOLEAN [IN] Определяет метод получения параметров карты. Если передается значение False эквайринговый терминал запрашивает чтение карты, иначе возвращаются параметры последней произведенной операции.
НомерКарты (CardNumber) STRING [OUT] Номер Карты / Данные карты.
ХешНомерКарты (CardNumberHash) STRING [OUT] Возвращает PAN карты хешированном по алгоритму SHA256 виде.
СсылкаНаПлатежныйСчет (PaymentAccountReference) STRING [OUT] Возвращает PAR (Payment Account Reference)
ТипКарты (CardType) STRING [OUT] Название платежной системы карты (например Visa)

СвояКарта (IsOwnCard)

LONG [OUT] Карта банка эквайрера
0 - Неопределенно
1 - Карта принадлежит банку эквайрера
2 - Карта НЕ принадлежит банку эквайрера
ОплатитьСертификатом (PayCertificate)
 
ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет оплату с применением электронного сертификата ФЭС НСПК
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **.
В случае отказа по операции возвращается текст квитанции отказа.
ВернутьСертификатом (ReturnCertificate) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод осуществляет возврат оплаты с применением электронного сертификата ФЭС НСПК
ВходяшиеПараметры (OperationParameters)
XML таблица
STRING [IN] Входящие параметры операции
ИсходящиеПараметры (OperationParameters)
XML таблица
STRING [OUT] Исходящие параметры операции
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции по операции сформированный эквайринговым ПО **.
В случае отказа по операции возвращается текст квитанции отказа.
АварийнаяОтменаОперации (EmergencyReversal) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Метод отменяет последнюю транзакцию
ПолучитьОперацииПоКартам (GetOperationByCards) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получения отчета содержащий операции по картам за день
ТаблицаОпераций
(TableOperations)
XML таблица
STRING [OUT] Список операций
ИтогиДняПоКартам (Settlement) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Производится сверка итогов дня
ТекстКвитанции (Slip) STRING [OUT] Текст квитанции, сформированный Эквайринговым ПО **

* - Если информация, считанная с карты, передается в эквайринговую систему из конфигурации "1С:Предприятия", содержание этого поля должно отвечать требованиям конкретной эквайринговой системы.
** - Если при печати необходимо формировать несколько отдельных документов, в тексте для их разделения должна присутствовать строка "[отрезка]" или "[cut]". 
          Текст не должен содержать управляющие символы с кодами 1-8, 11-12, 14-31.

ПараметрыТерминала (TerminalParameters)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Обязательное
наличие в структуре
Типы данных Описание атрибута
TerminalID Нет string Идентификатор терминала или другого технического средства, предназначенного для совершения операций с использованием платежных карт.
PrintSlipOnTerminal Да bool Будет ли терминал самостоятельно печатать квитанции на своем принтере для операций.
ShortSlip Да bool Терминал возвращает короткие слип-чеки, которые будут выводиться в теле фискального чека.
CashWithdrawal Да bool Терминал поддерживает функцию выдачи наличных денежных средств.
ElectronicCertificates Да bool Терминал поддерживает оплату электронными сертификатами ФЭС НСПК.
PartialCancellation Да bool Терминал поддерживает частичную отмену.
ConsumerPresentedQR Да bool Терминал поддерживает Consumer-Presented QR-операций на стороне Эквайреров.
ListCardTransactions Да bool Терминал поддерживает получение список операций по картам.
ReturnElectronicCertificateByBasketID Нет bool Терминал поддерживает операцию возврата ЭС без карты по BasketID оригинальной операции оплаты
PurchaseWithEnrollment Нет bool Терминал поддерживает операцию покупки с зачисление на карту физ-лица

Пример XML:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<TerminalParameters
      PrintSlipOnTerminal="true"
      ShortSlip="true"
      CashWithdrawal="true"
      ElectronicCertificates="true"
      ConsumerPresentedQR="true"
      PartialCancellation="false"
      ListCardTransactions="true"/>
ПараметрыОперации (OperationParameters)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Наименование атрибута Типы данных Обязательное
наличие в структуре
Описание атрибута
Оплата Вернуть
Платеж
Отменить
Платеж
Преавторизация Завершить
Преавторизацию
Отменить
Преавторизацию
Покупка с зачислением Оплата
с выдачей наличных
Оплатить
Электронным
Сертификатом
Вернуть
Электронным
Сертификатом
MerchantNumber LONG IN IN IN IN IN IN IN IN IN IN Номер мерчанта, доступного для данного эквайрингового терминала.
ConsumerPresentedQR STRING IN IN IN IN IN IN IN IN IN IN Отсканированный QR-код с мобильном устройства держателя карты, в котором содержатся EMV-реквизиты карты или токена.
UseBiometrics LONG IN IN IN IN IN IN IN IN IN IN Признак использовании биометрии:
0 - Биометрия не используется
1 - Биометрия разрешена к использованию
Amount DOUBLE IN IN IN IN IN IN IN IN - - Сумма операции по карте. Если обязательно то всегда больше 0.
AmountOriginalTransaction DOUBLE - - IN - - - - Сумма оригинальной операции по карте. Передается в случае  частичный отмены, если терминал поддерживает данную операцию.
AmountCash DOUBLE - - - - - - - IN - - Сумма выдаваемых наличных в рамках операции.
BasketID STRING - - - - - - - - IN IN Передается BasketID – Уникальный идентификатор операции в ФЭС НСПК
ElectronicCertificateAmount DOUBLE - - - - - - - - IN IN Сумма операции за счет электронных сертификатов
OwnFundsAmount DOUBLE - - - - - - - - IN IN Сумма операции за счет собственных средств по карте
OperationStatus LONG - - - - - - - - OUT OUT Статус операции
0 - Операция выполнена полностью
1 - Возврат личных средств по карте не выполнен
AuthorizationType LONG OUT OUT OUT OUT OUT OUT OUT - - - Вид оплаты который был использован на терминале:
0 - Карта
1 - СБП QR
2 - Плати QR
CardNumber STRING IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT Номер Карты / Данные карты / Маскированный номер карты*
ReceiptNumber STRING IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT Номер чека
RRNCode STRING OUT IN/OUT IN OUT IN IN OUT OUT OUT OUT Уникальный код транзакции RRN
AuthorizationCode STRING OUT IN IN OUT IN IN OUT OUT OUT OUT Код авторизации транзакции

Пример текстового XML:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8"?>
 <OperationParameters 
    MerchantNumber="0" 
    UseBiometrics="1" 
    AuthorizationType="0" 
    Amount="1" 
    AmountCash="0" 
    AmountOriginalTransaction="0" 
    ElectronicCertificateAmount="0" 
    OwnFundsAmount="0"/>
ТаблицаОпераций (TableOperations)

Текст в формате XML, передаваемый с помощью параметра типа STRING. Содержит список всех операции по картам за день.

Наименование атрибута Обязательное
наличие в структуре
Типы данных Описание атрибута
MerchantNumber Да LONG Номер мерчанта доступного для данного эквайрингового терминала
CardNumber Да STRING Маскированный номер карты*
CardNumberHash Нет STRING Хеш номера карты.
Возвращает PAN карты хешированном по алгоритму SHA256 виде.
Amount Да DOUBLE Сумма операции по карте
AmountCash Нет DOUBLE Сумма выдаваемых наличных в рамках операции.
Обязательное для операции "PayWithCashWithdrawal".
ElectronicCertificateAmount Нет DOUBLE Сумма операции за счет электронных сертификатов.
Обязательное для операции "PayElectronicCertificate" и "ReturnElectronicCertificate".
ReturnElectronicCertificate Нет DOUBLE Сумма операции за счет собственных средств по карте.
Обязательное для операции "PayElectronicCertificate" и "ReturnElectronicCertificate".
TypeOperation Да STRING Тип операции. Одно из следующих значений:
"Pay", "ReturnPayment", "CancelPayment", "Authorisation", "AuthConfirmation", "CancelAuthorisation", "PayWithCashWithdrawal", "PayElectronicCertificate", "ReturnElectronicCertificate"
AuthorizationCode Нет STRING Код авторизации транзакции
RRNCode Нет STRING Уникальный код транзакции RRN
DateTime Да STRING Дата и время проведения операции

Пример текстового XML возвращающий список операций по картам за день:

Копировать в буфер обмена
 <?xml version="1.0" encoding="UTF-8" ?>
 <Table>
 <Record MerchantNumber="1" CardNumber="353445ХХХХХХ2345" Amount="195,50" TypeOperation="Pay" AuthorizationCode="2357" RRNCode="54632455" OperationDate=""/>
 <Record MerchantNumber="1" CardNumber="353445ХХХХХХ2345" Amount="293,30" TypeOperation="Pay" AuthorizationCode="2357" RRNCode="45634533" OperationDate=""/>
 </Table>

* - Если информация, считанная с карты, передается в эквайринговую систему из конфигурации "1С:Предприятия", содержание этого поля должно отвечать требованиям конкретной эквайринговой системы.

3.10. Требования к разработке драйверов для RFID считывателей

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

Работа с RFID считывателями в "1С:Предприятие" осуществляется в асинхронном режиме. Открытие новой сессии считывания меток осуществляется командой «ОткрытьСессиюRFID». О всех новых метках попадающих в зону действия антенны считывателя передаются уведомление в "1С:Предприятие" внешним событием. Внешним событием передается идентификатор пакета, содержащий данные меток. После обработки внешнего события "1С:Предприятие" получает данные меток вызовом метода «ПолучитьДанныеМетокRFID» по идентификатору пакета (вызов данного метода служит подтверждением, что данные были доставлены).
Закрытие сессии считывания меток осуществляется командой «ЗакрытьСессиюRFID». Запись данных в метку осуществляется в рамках открытой сессии методом «ЗаписатьДанныеВМеткуRFID». Метка идентифицируется по TID и EPC. В метод передаются данные для записи и необходимый банк памяти (EPC или USERMEMORY), куда будут записываться данные.

Описание методовв
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ОткрытьСессиюRFID (OpenSessionRFID) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Открывает новую сессию для чтения данных из меток, попадающих в зону действия антенны считывателя
ЗакрытьСессиюRFID (CloseSessionRFID) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Закрывает открытую ранее сессию
ПолучитьДанныеМетокRFID (GetDataTagsRFID) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства BOOL Получение пакета c данными считанных меток
ИДПакета (PackageID) STRING [IN] Идентификатор пакета данных
ТаблицаМеток (TagsTable)
XML таблица
STRING [OUT] Пакет с данными меток
ЗаписатьДанныеВМеткуRFID (SaveDataTagRFID) ИДУстройства (DeviceID) STRING [IN] Идентификатор устройства

BOOL

Записывает данные в RFID метку, находящуюся в зоне действия антенны считывателя.
TID (TID) STRING [IN/OUT] TID метки для записи
EPC (EPC) STRING [IN/OUT] EPC метки для записи
Данные (Data) STRING [IN] Данные для записи в банк памяти
БанкПамяти (MemoryBank) LONG [IN] Банк памяти для записи.
Одно из следующих значений:
1 - EPC
2 – USER MEMORY
Таймаут (Timeout) LONG [IN] Таймаут, по которому операция прерывается
ТаблицаМеток (TagsTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Table Да   Таблица меток

Tag

TID Да string Значение банка TID. Данные в шестнадцатеричном представлении.
EPC Да string Значение банка EPC. Данные в шестнадцатеричном представлении.
USER Нет string Значение банка USER. Данные в шестнадцатеричном представлении.

Пример текстового XML, содержащий данные:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
 <Table>
    <Tag TID="E28011002000589616B408A1" EPC="3074367C34001E880A6D6168" USER=""/>
    <Tag TID="E28011002000589216B308A1" EPC="30751BD15C35BC0508B59F22" USER=""/>
 </Table>

Работа с драйвером строится следующим образом:
  1. При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия", с помощью которого можно вызывать метод:
    HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
  2. При попадании новых меток в зону действия антенны считывателя - драйвер формирует пакет с данными меток и передает уведомление в "1С:Предприятие" внешним событием. Во внешнем событии передается идентификатор пакета, содержащего данные. Внешнее событие формируется посредством вызова метода HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData).
  3. Переданные данные размещаются в очереди сообщений. Сообщения из очереди обрабатываются только после обработки всех системных сообщений "1С:Предприятия". При переполнении очереди полученные сообщения игнорируются.

Описание методов, доступных для асинхронного вызова из драйвера*

Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
ExternalEvent bstrWho BSTR [IN] Уникальный идентификатор подключенного устройства **

HRESULT

Помещает идентификатор пакета данных, полученных от RFID считывателя, в очередь сообщений.
bstrWhat BSTR [IN] Тип сообщения/тип данных.
bstrData BSTR [IN] Идентификатор пакета, сформированный драйвером и содержащий данные меток
SetEventBufferDepth lDepth LONG [IN] Максимальное число сообщений в очереди

HRESULT

Устанавливает длину очереди сообщений

* - Описание остальных функций, доступных для вызова из драйвера, см. в документе «Технология создания внешних компонент»
** - В параметре bstrWho драйвер передает уникальный идентификатор подключенного устройства.
*** - Параметр bstrWhat используется для поддержки событий различных типов. Для RFID считывателей должен содержать строку «RFID».
 В случае ошибки этот параметр должен содержать значение "ОшибкаДрайвера" («DriverError»). В этом случае параметр bstrData должен содержать описание ошибки.

3.11. Требования к разработке устройств распознавания

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент, мобильное приложение.

Конфигурациями поддерживаются следующие возможности:

  1. Распознавание товаров на весах.
  2. Подтверждение распознавания товара.
Описание методов
Название (alias) Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
Распознать (Recognize) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Выполняет распознавание и возвращает таблицу распознанных товаров в виде XML
Обучение (Training)

BOOL [IN]

False - не ожидать подтверждение от пользователя
True - ждать с последующим дообучением
Варианты (Variants)

LONG [IN]

Количество вариантов распознанного товара
ТаблицаРаспознанныхТоваров
(GoodsRecognizeTable)
XML таблица

STRINT [OUT]

Таблица распознанных товаров
ПодтвердитьРаспознавание (ConfirmRecognize) ИДУстройства (DeviceID)

STRING [IN]

Идентификатор устройства

BOOL

Передает весам правильный код товара, если при распознавании используется подтверждение
Код (Code)

LONG [IN]

Код товара
ТаблицаРаспознанныхТоваров (GoodsRecognizeTable)

Текст в формате XML, передаваемый с помощью параметра типа STRING.

Секция Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Table Да   Таблица товаров

Record

Code Да long Код товара
RecognizePercent Да decimal Вероятность распознавания (1 = 100% вероятность)

Пример текстового XML, содержащий данные:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
 <Table>
    <Record Code="1003" RecognizePercent="0.95"/>
    <Record Code="1023" RecognizePercent="0.15"/>
 </Table>

4. Подключение драйверов, разработанных по стандарту "1С: Совместимо» к конфигурации БПО"

Поддержка: тонкий клиент, толстый клиент.

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

Предоставляется возможность:

* -Только для драйверов, разработанных по COM технологии. В данном режиме не поддерживается работа в web-клиенте и Linux клиенте.

4.1. Подготовка драйвера к загрузке в конфигурацию БПО

Подготовка однокомпонентного драйвера или интеграционной библиотеки, поставляемых в виде архива внешней компоненты

Подготовка драйвера, поставляемого в виде архива внешней компоненты для загрузки в конфигурацию БПО, осуществляется согласно разделу "Подготовка внешних компонент для загрузки в конфигурацию" документа "Технология создания внешних компонент". Кроме того, в архиве должен присутствовать XML файл c именем "INFO.XML", содержащий информацию для загрузки драйвера.

XML файл должен иметь следующую структуру:

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
progid Да string Идентификатор объекта драйвера.
type Да string Строка определяющая тип оборудования. Имеет одно из значений и таблицы "Тип оборудования".
Допустимо одно как RU там и EN, рекомендуется использовать EN написание.
Может иметь несколько значений разделенных ","
name Да string Наименование драйвера, отображаемое пользователю.
version Да string Поставляемая версия драйвера.

Пример файла "INFO.XML", описывающего информацию о драйвере:

Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?>
<drivers>
	<component progid="AddIn.EmulatorFP1C" type="KKT" name="1C: Эмулятор фискального регистратора" version="1.0.21.1"/>
</drivers>

4.2. Загрузка подготовленного драйвера в конфигурацию БПО

Поддержка: тонкий клиент, толстый клиент.

Для загрузки подготовленного драйвера необходимо перейти в раздел "Подключаемое оборудование\Драйверы оборудования".
В форме списка драйверов нажать "Подключить новый\Загрузить в информационную базу" и в отрывшемся диалоге выбора файла выбрать подготовленный для загрузки файл драйвера.
После открытия формы загружаемого драйвера необходимо проверить корректность заполнения информации о драйвере (поля: Тип оборудования, Наименование, Идентификатор объекта) и нажать кнопку "Записать и закрыть".

4.3. Использование драйвера, предварительно установленного на локальном компьютере

Для подключения драйвера, предварительного установленного на локальном компьютере, необходимо перейти в раздел "Подключаемое оборудование\Драйверы оборудования".
В форме списка драйверов нажать "Подключить новый\Установленный на локальный компьютере, и в открывшейся форме создаваемого драйвера ввести необходимые параметры драйвера в поля: Тип оборудования, Наименование, Идентификатор объекта.
После заполнения необходимых данных нажать кнопку "Записать и закрыть". Данная возможность предусмотрена только для драйверов разработанных по COM технологии.
В данном режиме не поддерживается работа в web клиенте и Linux клиенте.


Подключение программно-аппаратных комплексов с помощью файлового обмена

Поддержка: тонкий клиент, web-клиент, мобильный клиент, толстый клиент.

Тип офлайн оборудования: ККМ

Работа с программно-аппаратными POS-системами (активными системными контрольно-кассовыми машинами) в режиме "Офлайн" заключается в файловом обмене информацией. В POS-систему из конфигурации выгружаются данные (настройки, прайс-лист, заказы), в конце рабочего дня в конфигурацию загружаются данные о продажах (формируются в разрезе кассовых смен с детализацией по чекам), зарегистрированных POS-системой в течение смены.

Выгружаемые на ККМ данные формируются на основе данных информационной базы средствами конфигурации (драйвер "1С:Офлайн оборудование"). Имена файлов и пути размещения задаются пользовательскими настройками.

Список команд, поддерживаемых драйвером "1С:Офлайн оборудование" библиотеки подключаемого оборудования
Операция Данные Описание операции
Выгрузить данные Данные выгрузки (ExportData) Выгружает данные на ККМ
Загрузить данные Данные загрузки (ImportData) Загружает данные из ККМ

После успешной обработки данных файла принимающая сторона устанавливает признак обработки "Processed" со значением времени обработки.

Примеры файлов расположены в каталоге EXE\BPOCEL:

ExportData.xml

ImportData.xml

Данные выгрузки (ExportData)

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
ExportData
FormatVersion Да int Версия формата обмена
Processed Нет datetime Признак обработки файла
Settings Нет Settings Секция настроек
PriceList Нет PriceList Секция прайс-листа
Orders Нет Orders Секция заказов

Секция настроек (Settings)

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
CompanyName Нет string Наименование организации
StoreName Нет string Наименование магазина
<TaxationSystems> Нет список элементов TaxationSystem Системы налогообложения
  TaxationSystem Да int Система налогообложения
См. таблицу: Системы налогообложения
SenderEmail Нет string Адрес электронной почты отправителя чека
INN Нет string ИНН организации
KPP Нет string КПП организации
SaleAddress Нет string Адрес проведения расчетов
SaleLocation Нет string Место проведения расчетов
AllowDiscounts Нет boolean Использование скидок
AllowPaymentCards Нет boolean Использование платежных карт при оплате
<ElectronicPaymentOptions> Нет список элементов ElectronicPaymentOption Виды электронной оплаты
Секция видов электронной оплаты (ElectronicPaymentOptions)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
ElectronicPaymentOption Code Да string Код, идентификатор вида оплаты
ElectronicPaymentType Да int 1 - Платежная карта
2 - Банковский кредит
3 - Подарочный сертификат
4 - Бонусы
Name Да string Наименование вида оплаты
UUID Нет string Уникальный идентификатор UUID вида оплаты
Секция прайс-листа (PriceList)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
FullExport Да boolean Признак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в смежной POS-системе
<Groups> Нет список элементов Group Группы товаров
Group Code Да string Код, идентификатор группы
Name Да string Наименование группы
UUID Да string Уникальный идентификатор UUID группы
ParentGroupCode Нет string Код группы товаров, в которую вложена текущая группа
ParentGroupUUID Нет string Уникальный идентификатор группы товаров, в которую вложена текущая группа
<Extension> Нет список элементов Extension Таблица дополнительных реквизитов
<AgentsData> Нет список элементов
AgentsData
Данные агентов
<VendorsData> Нет список элементов
VendorsData
Данные поставщиков
<Units> Нет список элементов
Unit
Единицы измерения
<Goods> Нет список элементов Good Таблица товаров
Good Code По условию string Код, идентификатор товарной позиции
Barcodes По условию список элементов Barcode Список штрихкодов
Price По условию decimal Цена товара
Balance По условию decimal Товарный остаток
UUID Да string Уникальный идентификатор UUID товара
Name Да string Наименование
TaxRate Да string Значение ставки НДС:
"none" - БЕЗ НДС
"20" - НДС 20
"18" - НДС 18
"10" - НДС 10
"0" - НДС 0
CalculationSubject Да int Признак предмета расчета
См.таблицу Признаки предмета расчета
UnitCode Нет string Код базовой единицы измерения
см.секцию Units
UnitUUID Нет string Уникальный идентификатор UUID базовой единицы измерения
см.секцию Units
GroupCode Нет string Код группы товаров
GroupUUID Нет string Уникальный идентификатор UUID группы товаров
Article Нет string Артикул товара
Description Нет string Описание товара
IsWeight Нет boolean Весовой товар
Department Нет int  Отдел (секция), по которому ведется продажа
HasCharacteristics По условию boolean  Признак наличия характеристик у товара
<Characteristics> По условию список элементов Characteristic Список характеристик
HasPacks По условию boolean  Признак наличия упаковок у товара
<Packs> По условию список элементов Pack Список упаковок
AgentDataCode Нет string Код данных агента
см. секцию AgentsData
AgentDataUUID Нет string Уникальный идентификатор UUID данных агента
см. секцию AgentsData
VendorDataCode Нет string Код данных поставщика
см. секцию VendorsData
VendorDataUUID Нет string Уникальный идентификатор UUID данных поставщика
см. секцию VendorsData
IsAlcohol Нет boolean Признак алкогольной продукции
<Alcohol>  Нет список алкогольных атрибутов Секция алкогольных реквизитов
IsMarked Нет boolean Признак маркированной продукции
MarkedGoodTypeCode Да* int Код типа маркированной продукции.
См. таблицу: Код типа маркированной продукции
Данное поле обязательно только если IsMarked - Истина.
<Extensions>  Нет  список элементов Extension  Таблица дополнительных реквизитов
Список алкогольных реквизитов (Alcohol)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
IsExcisable Да boolean Маркируемый акцизной или специальной маркой
AlcoholKindCode Да string Код вида алкогольной продукции
AlcoholContainerSize Да decimal Ёмкость тары в литрах
AlcoholStrength Да decimal Крепость алкоголя
VendorINN Да string ИНН производителя
VendorKPP Да string КПП производителя
IsDraught Да boolean Продажа в розлив
Секция характеристик товаров (Characteristics)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Characteristic Code По условию string Код, идентификатор товарной позиции
Barcodes По условию список элементов Barcode Список штрихкодов
Price По условию decimal Цена характеристики
Balance По условию decimal Товарный остаток
UUID Да string Уникальный идентификатор UUID характеристики
Name Да string Наименование
HasPacks По условию boolean Наличие упаковок у характеристики
<Packs> По условию список элементов Pack Список упаковок
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Секция упаковок товара (Packs)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Pack Code Да string Код, идентификатор товарной позиции
Name Да string Наименование
UnitsPerPack Да decimal Количество товара (в базовых единицах) в упаковке
UUID Да string Уникальный идентификатор UUID упаковки
Barcodes Нет список элементов Barcode Список штрихкодов
Price Нет decimal Цена за упаковку
Balance Нет decimal Товарный остаток
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Условие наличия атрибутов "Code", "Barcodes", "Price", "Balance"

Таблица товаров имеет древовидную структуру. Товар может иметь иметь набор характеристик и набор упаковок.
Упаковки могут быть описаны как в секции товаров, так и в секции характеристик в случае, если учет товаров ведется в разрезе характеристик.
Атрибуты "Code", "Barcodes", "Price", "Balance" указываются для последнего (нижнего) уровня иерархии.

Например, для товара "Майка дет." вида "Одежда" необходимо вводить характеристику "Размер". Товар может продаваться как упаковкой по 3 шт., так и поштучно.
В этом случае формируются записи во всех трех секциях, код присваивается записям: "Майка дет."+"р-р. 22" в секции "Характеристики"
и для "Майка дет."+"р-р. 22"+"Уп." в секции "Упаковки".

Товар Секция товар (Good) Секция характеристика
(Characteristic)
Секция упаковка (Pack)
HasCharacteristics HasPacks Code Barcodes
Price
Balance
HasPacks Code Barcodes
Price
Balance
без характеристик
без упаковок
**
false
**
false
* ** - -
без характеристик
с упаковками
**
false
*
true
**
для базовой ЕИ (unit)
**
для базовой ЕИ (unit)
- *
с характеристиками
с упаковками
*
true
**
false
- - *
true
**
для базовой ЕИ (unit)
**
для базовой ЕИ (unit)
*
с характеристиками
без упаковок
*
true
**
false
**
false
* ** -

* обязательный атрибут/секция
** может присутствовать, но не обязательно
- атрибут/секция должны отсутствовать

для базовой ЕИ (unit) - значения указываются только для базовой единицы измерения, значения для упаковок должны указываться в секции упаковок

Секция единиц измерения (Units)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Unit
Code Да string Код
Name Да string Наименование
UUID Нет string Уникальный идентификатор UUID единицы измерения
OKEICode Нет int Код ОКЕИ
Секция штрихкодов (Barcodes)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Barcode
Value Да string Штрихкод
Type Нет string Тип штрихкода: CODE128, CODE39, EAN128, EAN13, EAN8, ITF14, QR
Секция данных агентов (AgentsData)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
AgentData
Code Да string Код
UUID Нет string Уникальный идентификатор UUID сущности
AgentType Нет int Признака агента по предмету расчета
См.таблицу Признаки агента по предмету расчета
AgentOperation Нет string Операция платежного агента
AgentPhone Нет string Телефон платежного агента
PaymentProcessorPhone Нет string Телефон оператора по приему платежей
AcquirerOperatorPhone Нет string Телефон оператора перевода
AcquirerOperatorName Нет string Наименование оператора перевода
AcquirerOperatorAddress Нет string Адрес оператора перевода
AcquirerOperatorINN Нет string ИНН оператора перевода
Секция данных поставщиков (VendorsData)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
VendorData
Code Да string Код
UUID Нет string Уникальный идентификатор UUID сущности
VendorPhone Нет string Телефон поставщика
VendorName Нет string Наименование поставщика
VendorINN Нет string ИНН поставщика
Секция заказов (Orders)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
<Orders> Нет Список элементов Order Заказы
Order Date Да string Дата заказа
Number Да datetime Номер заказа
UUID Да string Уникальный идентификатор UUID заказа
AddressCity Нет string Город доставки
AddressStreet Нет string Улица доставки
AddressBuilding Нет string Номер дома доставки
AddressApartment Нет string Номер квартиры/офиса доставки
AddressEntrance Нет string Номер подъезда доставки
AddressFloor Нет string Номер этажа доставки
Phone Нет string Номер телефона клиента
DeliveryDate Нет datetime Адрес Email клиента
Status Нет string Статус заказа "НеСогласован", "Согласован", "Отменен"
Comment Нет string Комментарий
FirstName Нет string Имя клиента
LastName Нет string Фамилия клиента
<Goods> Нет список элементов Good Список заказанных товаров
<Payments> Нет список элементов Payment Список оплат
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Секция товаров заказа (Goods)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Good
Code Да string Код
Quantity Да decimal Количество заказанного товара
Price Да decimal Цена, по которой продан товар
(без учета скидки/наценки)
Sum Да decimal Сумма (с учетом скидки/наценки)
GoodUUID Нет string Уникальный идентификатор UUID товара
CharacteristicUUID Нет string Уникальный идентификатор UUID характеристики
PackUUID Нет string Уникальный идентификатор UUID упаковки
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Данные для загрузки (ImportData)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
ImportData
FormatVersion Да int Версия формата обмена
Processed Нет datetime Признак обработки файла
<SaleReports> Нет Список элементов
SaleReport
Секция отчетов о продажах
<AlcoholTareOpenings> Нет Список элементов
AlcoholTareOpening
Секция документов вскрытия алкогольной тары
Секция отчетов о продажах (SaleReports) Элемент SaleReport
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
ShiftNumber Нет string Номер кассовой смены
ShiftState Да int Состояние смены
1 - Закрыта
2 - Открыта
OpeningDate Да datetime  Дата открытия кассовой смены
ClosingDate Нет datetime Дата и время закрытия кассовой смены 
UUID Нет string  Уникальный идентификатор UUID отчета/кассовой смены 
<Checks> Нет список элементов Check Список чеков
Check Date Да datetime  Дата чека
Number Да string  Номер чека
TaxationSystem Да int  Система налогообложения
См. таблицу Системы налогообложения
OperationType Да int Тип операции:
1 - приход денежных средств
2 - возврат прихода денежных средств
3 - расход денежных средств
4 - возврат расхода денежных средств

UUID

Нет

string 

Уникальный идентификатор UUID чека

RefDocumentUUID

Нет

string 

Уникальный идентификатор UUID  документа, связанного с текущим чеком

RefDocumentType

Нет

string 

Тип документа, связанного с текущим чеком: "Check", "Order"

<Goods>

Нет

список элементов Good 

Список товаров

<Payments>

Да

список элементов Payment 

Список оплат

<Extensions>

Нет

список элементов Extension 

Таблица дополнительных реквизитов

<IncomeOutcomeChecks>

Нет

список элементов IncomeOutcomeCheck

Чеки внесения и выемки наличных из денежного ящика кассы

IncomeOutcomeCheck

Date

Да

datetime 

Дата документа

Number

Да

string

Номер документа

Sum

Да

decimal

Сумма

Type

Да

string

Тип движения:
"Income" - внесение
"Outcome" - выемка

UUID

Нет

string

Уникальный идентификатор UUID чека внесения и выемки денежных средств

<Extensions>

Нет

список элементов Extension

Таблица дополнительных реквизитов


Секция списка товаров чека (Goods)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Good
Code Да string Код, идентификатор товарной позиции
Quantity Да decimal Количество проданного товара
Price Да decimal Цена, по которой продан товар (без учета скидок и наценок)
Sum Да decimal Сумма (с учетом скидки)
TaxRate Да string Ставка НДС:
"none" - БЕЗ НДС
"20" - НДС 20
"18" - НДС 18
"10" - НДС 10
"0" - НДС 0
"20/120" - расчетная ставка 20/120
"18/118" - расчетная ставка 18/118
"10/110" - расчетная ставка 10/110
PaymentMethod Да int Признак способа расчета
См. таблицу  Признаки способа расчета
<ExciseStamps> Нет список элементов ExciseStamp Список контрольных идентификационных знаков (КM)
  ExciseStamp Да string Контрольный идентификационный знак (КM)
GoodUUID Нет string Уникальный идентификатор товара
CharacteristicUUID Нет string Уникальный идентификатор характеристики
PackUUID Нет string Уникальный идентификатор упаковки
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Секция документов вскрытия алкогольной тары (AlcoholTareOpenings)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
AlcoholTareOpening
Date Да string Дата документа
Number Да string Номер документа
UUID Нет string Уникальный идентификатор UUID документа
<Goods> Да Список элементов Good Список алкогольной продукции
Good Code Да string Код, идентификатор товара
Quantity Да decimal Количество вскрытых тар
AlcoholExciseStamp Нет string Строка, закодированная в штрихкоде PDF417 акцизной или спец. марки алкогольной продукции
GoodUUID Нет string Уникальный идентификатор товара
CharacteristicUUID Нет string Уникальный идентификатор характеристики
PackUUID Нет string Уникальный идентификатор упаковки

Общие таблицы

Секция оплат (Payments)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Payment
Cash Да decimal Сумма оплаты наличными денежными средствами
ElectronicPayment Да decimal Сумма оплаты электронными средствами платежа
PrePayment Да decimal Сумма зачтенной предоплаты или аванса
PostPayment Да decimal Сумма оплаты в кредит (постоплаты)
Barter Да decimal Сумма оплаты встречным предоставлением
ElectronicPaymentOptionCode Нет string Код вида электронной оплаты
См. секцию видов электронной оплаты
ElectronicPaymentOptionUUID Нет string Уникальный идентификатор вида электронной оплаты
См. секцию видов электронной оплаты
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов
Секция дополнительных реквизитов (Extensions)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Extension
Name Да string Наименование реквизита
Value Да string Значение реквизита
ValueType Да string Тип значения:
“String“, “Number“, “Boolean”
UUID Нет string Уникальный идентификатор UUID дополнительного реквизита

Подключение программно-аппаратных комплексов с помощью web-сервиса "EquipmentService"

Поддержка: тонкий клиент, web-клиент, толстый клиент.

Библиотека поддерживает обмен со сторонними программно-аппаратными комплексами различного назначения с помощью web-сервиса.
Для осуществления обмена необходимо опубликовать web-сервис "EquipmentService", входящий в состав библиотеки. 

Тип офлайн оборудования: ККМ

Требования поддержки методов:

Имя метода Обязательно Примечание
Connect Да  
GetVersion Да  
GetSettings Нет  
GetPriceList или
PreparePriceList
GetPriceListPackage
Да Рекомендуется использовать метод PreparePriceList и GetPriceListPackage
GetDocs Нет Если на ККМ поддерживаются заказы клиентов (Order)
PostDocs Да Тип документа SaleReport - обязательно
Тип офлайн оборудования: Прайс-чекер

Требования поддержки методов:

Имя метода Обязательно Примечание
Connect Да  
GetVersion Да  
GetPriceList или PreparePriceList
GetPriceListPackage или GetGood
Да Рекомендуется использовать метод PreparePriceList и GetPriceListPackage или GetGood
PostDocs Нет Тип документа PriceCheckerReport

Методы web-сервиса EquipmentService

Имя метода Параметры Тип возвращаемого значения Описание метода
Имя Тип Описание
Connect DeviceID string Идентификатор устройства boolean Проверка регистрации оборудования в ИБ по уникальному идентификатору оборудования
GetVersion DeviceID string Идентификатор устройства int Получение версии формата обмена. В формате возвращенной версии должен производиться обмен данными
GetSettings DeviceID string Идентификатор устройства Settings Получение настроек для оборудования. 
Возвращается структура в XML, в соответствии с описанием секции Settings
GetPriceList DeviceID string Идентификатор устройства PriceList Получение списка товаров и цен для оборудования. 
Возвращается структура в XML, в соответствии с описанием секции PriceList
PreparePriceList DeviceID string Идентификатор устройства UUID Возвращается идентификатор передачи (TransferID), который в последующем должен использоваться при вызове метода GetPriceListPackage
GetPriceListPackage DeviceID string Идентификатор устройства PriceListPackage Возвращает пакет прайс-листа. Если в пакете ответа элемент IsFormed = Ложь, значит подготовка пакетов на стороне сервера еще не завершилась.
Если признак перезапуска Restart = Истина, то очередь пакетов по переданному TransferID сбросится и выгрузка начнется с первого пакета прайс-листа.
TransferID string Идентификатор передачи
Restart boolean Признак перезапуска выгрузки
PostDocs DeviceID string Идентификатор устройства PostDocsResponse Передача от устройства документа в конфигурацию 1С.
См. описание PostDocs
DocType string Тип документа
Document string Данные документа в XML
GetDocs DeviceID string Идентификатор устройства См. описание GetDocs Получение из конфигурации 1С документов определенного типа (DocType).
Тип возвращаемого значения зависит от переданного типа документа.
DocType string Тип документа
GetGood DeviceID string Идентификатор устройства PriceList Прайс-лист с отбором по штрихкоду
Barсode string Штрихкод

Идентификатор устройства (DeviceID) указывается при настройке оборудования в конфигурации 1С.
Метод PostDocs
DocType Document Примечание
SaleReport SaleReports Передача отчетов о розничных продажах
AlcoholTareOpening AlcoholTareOpenings Передача данных о вскрытиях алкогольной тары
PriceCheckerReport PriceCheckerReports Передача отчетов прайс-чекера
Метод GetDocs
DocType Возвращаемый тип Примечание
Order

Orders

Получение заказов
Пакет прайс-листа (PriceListPackage)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
IsFormed Да boolean Признак формирования пакета
PackageNumber Нет int Номер пакета
PackageTotal Нет int Количество пакетов всего
PriceList Нет PriceList Данные прайс-листа

Пример текстового XML:

Копировать в буфер обмена

<?xml version="1.0" encoding="UTF-8"?>
<PriceListPackage xmlns="http://www.1c.ru/EquipmentService/2.0.0.3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" PackageTotal="2" PackageNumber="1">
    <IsFormed>true</IsFormed>
    <PriceList>
        ...
    </PriceList>
</PriceListPackage>

Секция отчетов прайс-чекера (PriceCheckerReports)

Элемент PriceCheckerReport:

Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
Number Нет string Номер отчета
Date Нет datetime Дата отчета
UUID Нет string Уникальный идентификатор UUID отчета
<Goods> Да список элементов
Good
Список товаров
Good Code Да string Код, идентификатор товарной позиции
Barcode Нет string Штрихкод товара
GoodUUID Нет string Уникальный идентификатор товара
CharacteristicUUID Нет string Уникальный идентификатор характеристики
PackUUID Нет string Уникальный идентификатор упаковки
<Extensions> Нет список элементов Extension Таблица дополнительных реквизитов

Пример текстового XML:

Копировать в буфер обмена

<?xml version="1.0" encoding="UTF-8"?>
<PriceCheckerReports xmlns="http://www.1c.ru/EquipmentService/2.0.0.3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <PriceCheckerReport Date="2017-09-11T12:00:00" Number="505" UUID="986cb877-1272-4d15-ada7-692473a40717">
        <Goods>
            <Good Code="100" Barcode="2100020307795" GoodUUID="1918351e-9327-445e-a648-893700731916"/>
        </Goods>
    </PriceCheckerReport>
</PriceCheckerReports>

Ответ отправки документа (PostDocsResponse)
Наименование атрибута Обязательное наличие в структуре Типы данных Описание атрибута
IsSuccess Да boolean Признак успешного получения данных
Description Нет string Описание от принимающей стороны

Пример текстового XML:

Копировать в буфер обмена

<?xml version="1.0" encoding="UTF-8"?>
<PostDocsResponse xmlns="http://www.1c.ru/EquipmentService/2.0.0.3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <IsSuccess>true</IsSuccess>
    <Description>Данные успешно загружены</Description>
</PostDocsResponse>