24.03.2025

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

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

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

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

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

Версия Раздел Изменения
4.5 Требования к разработке драйверов для эквайринговых терминалов 1. В таблицу "ПараметрыТерминала" добавлен новый реквизит "AcquiringBankIdentifier".
2. В таблицу "OperationParameters" добавлены новые реквизиты "CardNumberHash", "Date", "PaymentSystemIdentifier", "UUID", "ResultCode".
4.4 Требования к разработке драйверов для ККТ с функцией передачи в ОФД 1. Добавлены новые ставки НДС 5%, 7%, 5/105, 7/107.
2. Добавлен признак формирование чека коррекции только в электронном виде.
3. Добавлен признак чека "OperationOnline" применения ККТ при осуществлении расчета в безналичном порядке в сети «Интернет».
4. В таблице "Признаки предмета расчета" значение 18 изменилось на "Туристический налог".
5. В таблице OutputParameters добавлен новый атрибут "DocumentsCounter" - количество чеков и чеков коррекции со всеми признаками расчетов.
6. Для чека добавлена секция "ElectronicPaymentInfo" содержащая сведения об оплате безналичными. На данный момент секция необязательная.
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. Получение доступных параметров для настройки драйвера методом «ПараметрыОборудования(EquipmentParameters)».
  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]

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

BOOL

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

STRING [IN]

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


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

ОписаниеДрайвера (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)ПараметрырыТип возвращаемого значенияОписание метода
ИмяТип Описание
ExternalEventbstrWhoBSTR [IN]Уникальный идентификатор подключенного устройства **

HRESULT

Помещает данные, полученные от устройства в очередь сообщений
bstrWhatBSTR [IN]Тип сообщения/тип данных ***
bstrDataBSTR [IN]Считанные устройством данные
SetEventBufferDepthlDepthBSTR [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)ПараметрырыТип возвращаемого значенияОписание метода
ИмяТип Описание
ExternalEventbstrWhoBSTR [IN]Уникальный идентификатор подключенного устройства **

HRESULT

Помещает данные, полученные от устройства в очередь сообщений
bstrWhatBSTR [IN]Тип сообщения/тип данных ***
bstrDataBSTR [IN]Считанные устройством данные
SetEventBufferDepthlDepthBSTR [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-клиент, мобильный клиент, толстый клиент, мобильное приложение.

ВНИМАНИЕ: Данный стандарт определяет требования к ККТ по приказу ФНС России от 15.11.2024 N ЕД-7-20/1038@ "О внесении изменений в приложение N 2 к приказу Федеральной налоговой службы от 14.09.2020 N ЕД-7-20/662@"

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

  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.

Электронно (Electronically) BOOL (IN) Формирование чека коррекции только в электронном виде. Печать чека не осуществляется.
ДанныеЧека
(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Заводской номер ФН
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
ParametersCashierNameДа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
ParametersShiftNumberДаДаДа intНомер открытой смены/Номер закрытой смены
CheckNumber  Да intНомер последнего фискального документа
ShiftClosingCheckNumber  Да intНомер последнего чека за смену
DateTimeДаДа  datetimeДата и время формирования фискального документа
ShiftStateДаДаДаДаintСостояние смены
1 - Закрыта
2 - Открыта
3 - Истекла
DocumentsCounter  Да     int Количество чеков и чеков коррекции со всеми признаками расчетов
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
ParametersCheckCountДаintКоличество чеков по операции данного типа
TotalChecksAmountДаdoubleИтоговая сумма чеков по операциям данного типа
CorrectionCheckCountДаintКоличество чеков коррекции по операции данного типа
TotalCorrectionChecksAmountДаdoubleИтоговая сумма чеков коррекции по операциям данного типа

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

-
Наименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
DocumentOutputParameters
ParametersShiftNumberДа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НетstringEmail покупателя (клиента)
CustomerPhoneНетstringТелефонный номер покупателя (клиента)
SenderEmailНетstringАдрес электронной почты отправителя чека
SaleAddressНетstringАдрес проведения расчетов
SaleLocationНетstringМесто проведения расчетов
AutomatNumberНетstringНомер автомата
AgentTypeНетintПризнак агента.
См. таблицу "Признаки агента"
AgentDataНетВложенная структураДанные агента
VendorDataНетВложенная структураДанные поставщика
UserAttributeНетВложенная структураДополнительный реквизит пользователя
AdditionalAttributeНетstringДополнительный реквизит чека
OperationalAttributeНетВложенная структураОперационный реквизит чека
IndustryAttributeНетВложенная структураОтраслевой реквизит чека
OperationOnline Нет bool Признак применения ККТ при осуществлении расчета в безналичном порядке в сети «Интернет»
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
"5" - НДС 5
"7" - НДС 7
"5/105" - расчетная ставка 5/105
"7/107" - расчетная ставка 7/107
VATAmountДа**doubleСумма НДС за предмет расчета.
В ККТ должен быть отключен расчет налогов, и в чеке выводиться сумма НДС рассчитанная в 1С.
Итоговые суммы НДС по чеку должны рассчитывать по строкам.
В случае когда ставка = "БЕЗ НДС" сумма позиций без НДС для чека должна рассчитываться по значением атрибута "AmountWithDiscount" позиций со ставкой "БЕЗ НДС".
PaymentMethodНетintПризнак способа расчета.
См. таблицу "Признаки способа расчета"
CalculationSubjectНетintПризнак предмета расчета.
См. таблицу "Признаки предмета расчета"
CalculationAgentНетintПризнак агента по предмету расчета
См. таблицу "Признаки агента по предмету расчета"
AgentDataНетВложенная структураДанные агента
VendorDataНетВложенная структураДанные поставщика
MeasureOfQuantityНетintМера количества предмета расчета.
Значение из таблицы 114 (ФФД)
FractionalQuantityNumeratorНетintДробное количество маркированного товара
DenominatorНетint
GoodCodeDataНетВложенная структураКод товара
MarkingCodeНетstringКод контрольной марки.
Кодируется текстом в кодировке Base64.
CountryOfOriginНетstringЦифровой код страны происхождения товара в соответствии с Общероссийским классификатором стран мира
CustomsDeclarationНетstringРегистрационный номер таможенной декларации
AdditionalAttributeНетstringДополнительный реквизит предмета расчета
ExciseAmountНетdoubleСумма акциза с учетом копеек, включенная в стоимость предмета расчета
IndustryAttributeНетВложенная структура Отраслевой реквизит для предмета расчета.
Данные реквизиты так же включаются в документ "Уведомление о реализации МТ"
TextStringTextНет stringСтрока с произвольным текстомПечать текстовой строки.
BarcodeTypeНетstringСтрока, определяющая тип штрихкодаПечать штрихкода. Осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из следующих значений: EAN8, EAN13, CODE39, QR. В случае, если модель устройства не поддерживает печать штрихкода вышеуказанных типов, драйвер должен вернуть ошибку. 
ValueBase64Нетstring Значение штрихкода.
Штрихкод кодируется текстом в кодировке Base64.

Payments

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

ElectronicPaymentInfo ***

ElectronicPaymentAmountНетdecimal Сумма оплаты безналичными Сведения об оплате безналичными.

PaymentMethodНетint Признак способа оплаты безналичными
IdentifiersНетstring Идентификаторы безналичной оплаты
AdditionalInformation Нет stringДополнительные сведения о безналичной оплате

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

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

<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
   <Parameters CashierName="Иванов И.И" OperationType="1" TaxationSystem="0" SaleAddress="г.Москва, Дмитровское ш. д.9" SaleLocation="Торговый островок на 1 этаже" GroupingPositionsWhenPrinting="false" CustomerEmail="" CustomerPhone="">
      <AgentData/>
      <VendorData/>
      <CustomerDetail/>
      <OperationalAttribute DateTime="2024-10-31T13:24:24" OperationID="0" OperationData="DATA"/>
      <IndustryAttribute IdentifierFOIV="001" DocumentDate="31.10.2024" DocumentNumber="2343243" AttributeValue="Ид1=Знач1&amp;Ид2=Знач2&amp;Ид3=Знач3"/>
      </Parameters>
   <Positions>
      <FiscalString Name="Маркированный товар" Quantity="1" PriceWithDiscount="100" AmountWithDiscount="100" DiscountAmount="0" Department="3" VATRate="none" PaymentMethod="4" CalculationSubject="33" MeasureOfQuantity="0">
         <AgentData/>
         <VendorData/>
         <IndustryAttribute IdentifierFOIV="030" DocumentDate="21.11.2023" DocumentNumber="1944" AttributeValue="UUID=2ce10bdb-6510-4d37-be04-dd473b98c728&amp;Time=1692691702065"/>
      </FiscalString>
      <FiscalString Name="Товар 3 Меховая шуба для проверки меха по сценарию ЦРПТ" Quantity="1" PriceWithDiscount="100" AmountWithDiscount="100" DiscountAmount="0" Department="1" VATRate="20" VATAmount="16.67" PaymentMethod="4" CalculationSubject="1" MeasureOfQuantity="0">
         <GoodCodeData MI="RU-430301-AAA0020659"/>
         <AgentData/>
         <VendorData/>
         <IndustryAttribute IdentifierFOIV="030" DocumentDate="11.08.2016" DocumentNumber="787" AttributeValue="crpt=mrk"/>
      </FiscalString>
      <FiscalString Name="Товар 4 Простой обычный товар весовой" Quantity="1" PriceWithDiscount="100" AmountWithDiscount="100" DiscountAmount="0" Department="3" VATRate="20" VATAmount="16.67" PaymentMethod="4" CalculationSubject="1" MeasureOfQuantity="11">
         <AgentData/>
         <VendorData/>
         <IndustryAttribute/>
      </FiscalString>
   </Positions>
   <Payments Cash="1000" ElectronicPayment="200" PrePayment="0" PostPayment="0" Barter="0"/>
   <ElectronicPaymentInfo>
      <ElectronicPayment Amount="200" PaymentMethod="1" Identifiers="date=1626454200&amp;rrn=YJJJHHNNNNNN&amp;tid=12345678&amp;ps=22&amp;acq=12345678912&amp;auth=Z2Y22D" AdditionalInformation="uuid=1876876087657655"/>
   </ElectronicPaymentInfo>
</CheckPackage>

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

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

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

Наименование атрибутааТипы данныхОписание атрибута
CustomerDetail
InfostringНаименование организации или фамилия, имя, отчество (при наличии)
INNstringИНН организации или покупателя (клиента)
DateOfBirthstringДата рождения покупателя (клиента) в формате "DD.MM.YYYY"
CitizenshipstringЧисловой код страны, гражданином которой является покупатель (клиент).
Код страны указывается в соответствии с Общероссийским классификатором стран мира ОКСМ.
DocumentTypeCodeintЧисловой код вида документа, удостоверяющего личность (ФФД, Таблица 116)
DocumentDatastringДанные документа, удостоверяющего личность
Addressstring Адрес покупателя (клиента)

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

Наименование атрибутаТипы данныхОписание атрибута
AgentData
AgentOperationstring Операция платежного агента
AgentPhonestring Телефон платежного агента.
Допустимо несколько значений через разделитель ",".
PaymentProcessorPhonestring Телефон оператора по приему платежей.
Допустимо несколько значений через разделитель ",". 
AcquirerOperatorPhonestring Телефон оператора перевода.
Допустимо несколько значений через разделитель ",". 
AcquirerOperatorNamestring Наименование оператора перевода
AcquirerOperatorAddressstring Адрес оператора перевода
AcquirerOperatorINNstring ИНН оператора перевода

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

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

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

Наименование атрибутааТипы данныхОписание атрибута
OperationalAttribute
DateTimedatetimeДата, время операции
OperationIDintИдентификатор операции
OperationDatastring Данные операции

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

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

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 (ФФД)
FractionalQuantityNumeratorНетint Дробное количество маркированного товара
DenominatorНетint

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<RequestKMResult Checking="True" CheckingResult="True"/>

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

Наименование атрибутаОбязательное наличие в
структуре
Типы данныхОписание атрибута
ProcessingKMResult
GUIDДаstringУникальный идентификатор запроса.
ResultДа boolTrue - Результат проверки КП КМ положительный
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

TextStringTextДаstringСтрока с произвольным текстомПечать текстовой строки.
BarcodeTypeДа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

TextStringTextДаstringСтрока с произвольным текстомПечать текстовой строки.
BarcodeTypeДа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", значение кода является общим для всех этикеток. 
ImageFieldNameДа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

LabelQuantityНетlongУказывает необходимое для этикетки количество копий для печати. По умолчанию 1.
RecordFieldNameДа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)ПараметрырыТип возвращаемого значенияОписание метода
ИмяТипОписание
ExternalEventbstrWhoBSTR [IN]Уникальный идентификатор подключенного устройства **

HRESULT

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

HRESULT

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

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

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

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

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

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

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

При необходимости оплатить покупку платежной картой Система вызывает метод "Оплатить", передавая во входящих параметрах сумму к оплате для списания с карты.
Драйвер в ответ возвращает результат выполнения функции, а в исходящих параметрах код RRN, маскированный номер карты*, код авторизации и текст слип-чека и другие параметры..
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).
Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала).

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

Если происходит отмена платежа, то Система вызывает метод "ОтменитьПлатеж",  передавая во входящих параметрах сумму, которая была указана для списания с карты, код RRN операции, по которой совершается отмена, и код авторизации.
Драйвер в ответ возвращает результат выполнения функции, а в исходящих параметрах код RRN, маскированный номер карты*, код авторизации и текст слип-чека и другие параметры.
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).
Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала).

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

При возврате платежа Система вызывает метод "ВернутьПлатеж", передавая во входящих параметрах сумму к возврату на карту, код RRN операции, по которой совершается возврат, и код авторизации.
Драйвер в ответ возвращает результат выполнения функции, а в исходящих параметрах код RRN, маскированный номер карты*, код авторизации и текст слип-чека и другие параметры.
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).
Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала).

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

При необходимости заблокировать сумму на счете платежной карты Система вызывает метод "Преавторизация", передавая во входящих параметрах сумму для блокировки.
Драйвер в ответ возвращает результат выполнения функции, а в исходящих параметрах код RRN, маскированный номер карты*, код авторизации и текст слип-чека и другие параметры.
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).
Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала).

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

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

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

Для отмены блокирования суммы на счете платежной карты Система вызывает метод "ОтменитьПреавторизацию", передавая во входящих параметрах  сумму для списания с карты, код RRN операции блокировки и код авторизации.
Драйвер в ответ возвращает результат выполнения функции, а в исходящих параметрах код RRN, маскированный номер карты*, код авторизации и текст слип-чека и другие параметры.
Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ККТ (определяется методом ПараметрыТерминала).
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).

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

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

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

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

Покупка с зачислением денежных средств на карту
Метод "ПокупкаСЗачислением" осуществляет операцию покупки с зачислением денежных средств на карту.  
Входящие и исходящие параметры передаются XML и описаны в ПараметрыОперации (OperationParameters).

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

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

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

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

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

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

Описание методов
Название (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 Идентификатор терминала или другого технического средства, предназначенного для совершения операций с использованием платежных карт.
AcquiringBankIdentifier Нет 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 DOUBLEIN 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 STRINGOUT OUT OUT OUT OUT OUT OUT OUT OUT OUTНомер Карты / Данные карты / Маскированный номер карты*
CardNumberHash STRINGIN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUTPAN карты хешированном по алгоритму SHA256 виде.
Необязательный атрибут.
ReceiptNumber STRINGIN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUTНомер чека
RRNCode STRINGOUT IN/OUT IN OUT IN IN OUT OUT OUT OUTУникальный код транзакции RRN
AuthorizationCode STRING OUT IN IN OUT IN IN OUT OUT OUT OUTКод авторизации транзакции
Date DATETIME OUT OUT OUT OUT OUT OUT OUT OUT OUT OUTДата и время инициализации транзакции, содержит локальную дату и время инициализации транзакции
Необязательный атрибут.
PaymentSystemIdentifier STRING OUT OUT OUT OUT OUT OUT OUT OUT OUT OUTУникальный идентификатор платежной системы, через которую проводилась операция.
Необязательный атрибут.
UUID STRING OUT OUT OUT OUT OUT OUT OUT OUT OUT OUTУникальный идентификатор банковской транзакции, формируемый на стороне банка-эмитента.
Необязательный атрибут.
ResultCode LONG IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUTДополнительный код завершения операции.
Необязательный атрибут.

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

 <?xml version="1.0" encoding="UTF-8"?>
 <OperationParameters 
    MerchantNumber="0" 
    UseBiometrics="1" 
    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", "PurchaseWithEnrollment", "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)ПараметрыТип возвращаемого значенияОписание метода
ИмяТипОписание
ExternalEventbstrWhoBSTR [IN]Уникальный идентификатор подключенного устройства **

HRESULT

Помещает идентификатор пакета данных, полученных от RFID считывателя, в очередь сообщений.
bstrWhatBSTR [IN]Тип сообщения/тип данных.
bstrDataBSTR [IN]Идентификатор пакета, сформированный драйвером и содержащий данные меток
SetEventBufferDepthlDepthLONG [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)
Наименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
ElectronicPaymentOptionCodeДаstringКод, идентификатор вида оплаты
ElectronicPaymentTypeДаint1 - Платежная карта
2 - Банковский кредит
3 - Подарочный сертификат
4 - Бонусы
NameДаstringНаименование вида оплаты
UUIDНетstringУникальный идентификатор UUID вида оплаты
Секция прайс-листа (PriceList)
Наименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
FullExportДаbooleanПризнак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в смежной POS-системе
<Groups>Нетсписок элементов GroupГруппы товаров
GroupCodeДаstringКод, идентификатор группы
NameДаstringНаименование группы
UUIDДаstringУникальный идентификатор UUID группы
ParentGroupCodeНетstringКод группы товаров, в которую вложена текущая группа
ParentGroupUUIDНетstringУникальный идентификатор группы товаров, в которую вложена текущая группа
<Extension>Нетсписок элементов ExtensionТаблица дополнительных реквизитов
<AgentsData>Нетсписок элементов
AgentsData
Данные агентов
<VendorsData>Нетсписок элементов
VendorsData
Данные поставщиков
<Units>Нетсписок элементов
Unit
Единицы измерения
<Goods>Нетсписок элементов GoodТаблица товаров
GoodCodeПо условиюstringКод, идентификатор товарной позиции
BarcodesПо условиюсписок элементов BarcodeСписок штрихкодов
PriceПо условиюdecimalЦена товара
BalanceПо условиюdecimalТоварный остаток
UUIDДаstringУникальный идентификатор UUID товара
NameДаstringНаименование
TaxRateДаstringЗначение ставки НДС:
"none" - БЕЗ НДС
"20" - НДС 20
"18" - НДС 18
"10" - НДС 10
"7" - НДС 10
"5" - НДС 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)
Наименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
CharacteristicCodeПо условиюstringКод, идентификатор товарной позиции
BarcodesПо условиюсписок элементов BarcodeСписок штрихкодов
PriceПо условиюdecimalЦена характеристики
BalanceПо условиюdecimalТоварный остаток
UUIDДаstringУникальный идентификатор UUID характеристики
NameДаstringНаименование
HasPacksПо условиюbooleanНаличие упаковок у характеристики
<Packs>По условиюсписок элементов Pack Список упаковок
<Extensions>Нетсписок элементов ExtensionТаблица дополнительных реквизитов
Секция упаковок товара (Packs)
Наименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
PackCodeДа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)
HasCharacteristicsHasPacksCode Barcodes
Price
Balance
HasPacksCode 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Заказы
OrderDateДа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
"7" - НДС 7
"5" - НДС 5
"0" - НДС 0
"20/120" - расчетная ставка 20/120
"18/118" - расчетная ставка 18/118
"10/110" - расчетная ставка 10/110
"5/105" - расчетная ставка 5/105
"7/107" - расчетная ставка 7/107
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Список алкогольной продукции
GoodCodeДа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

Имя метода ПараметрыТип возвращаемого значенияОписание метода
ИмяТипОписание
ConnectDeviceIDstringИдентификатор устройстваboolean Проверка регистрации оборудования в ИБ по уникальному идентификатору оборудования
GetVersionDeviceIDstringИдентификатор устройстваint Получение версии формата обмена. В формате возвращенной версии должен производиться обмен данными
GetSettingsDeviceID stringИдентификатор устройства Settings Получение настроек для оборудования. 
Возвращается структура в XML, в соответствии с описанием секции Settings
GetPriceListDeviceIDstringИдентификатор устройстваPriceList Получение списка товаров и цен для оборудования. 
Возвращается структура в XML, в соответствии с описанием секции PriceList
PreparePriceListDeviceIDstringИдентификатор устройстваUUIDВозвращается идентификатор передачи (TransferID), который в последующем должен использоваться при вызове метода GetPriceListPackage
GetPriceListPackageDeviceIDstringИдентификатор устройстваPriceListPackageВозвращает пакет прайс-листа. Если в пакете ответа элемент IsFormed = Ложь, значит подготовка пакетов на стороне сервера еще не завершилась.
Если признак перезапуска Restart = Истина, то очередь пакетов по переданному TransferID сбросится и выгрузка начнется с первого пакета прайс-листа.
TransferIDstringИдентификатор передачи
RestartbooleanПризнак перезапуска выгрузки
PostDocsDeviceIDstringИдентификатор устройстваPostDocsResponse Передача от устройства документа в конфигурацию 1С.
См. описание PostDocs
DocTypestringТип документа
Documentstring Данные документа в XML
GetDocsDeviceIDstringИдентификатор устройстваСм. описание GetDocs Получение из конфигурации 1С документов определенного типа (DocType).
Тип возвращаемого значения зависит от переданного типа документа.
DocTypestringТип документа
GetGoodDeviceIDstringИдентификатор устройстваPriceList Прайс-лист с отбором по штрихкоду
BarсodestringШтрихкод

Идентификатор устройства (DeviceID) указывается при настройке оборудования в конфигурации 1С.
Метод PostDocs
DocTypeDocumentПримечание
SaleReport SaleReportsПередача отчетов о розничных продажах
AlcoholTareOpening AlcoholTareOpeningsПередача данных о вскрытиях алкогольной тары
PriceCheckerReportPriceCheckerReportsПередача отчетов прайс-чекера
Метод 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
Список товаров
GoodCodeДа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>