1С:Предприятие 8.2 /
Разработчикам /
Дополнительные средства разработки
Требования к разработке драйверов подключаемого оборудования (версия 1.5)
4.3. Использование драйвера, предварительно установленного на локальном компьютере
Подключение программно-аппаратных POS-систем в режиме "OFFLINE" с помощью файлового обмена
Подключение программно-аппаратных комплексов с помощью Веб-сервиса оборудования
- Изменения в стандарте
- Введение
- Разработка драйвера для подключенияоборудования к локальному рабочему месту
- Общие требования к разрабатываемому драйверу и его архитектуре
- Обязательные функции и методы, связанные с использованием драйвера подключаемого оборудования в системе
- Описание методов, специфичных для типов подключаемого оборудования
- Требования к разработке драйверов для электронных весов
- Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE"
- Требования к разработке драйверов для дисплеев покупателя
- Требования к разработке драйверов для терминалов сбора данных
- Требования к разработке драйверов для фискальных регистраторов
- Требования к разработке драйверов для принтеров чеков
- Требования к разработке драйверов для принтеров этикеток
- Требования к разработке драйверов устройств ввода (сканеры штрихкода, считыватели магнитных карт и т.д.)
- Требования к разработке драйверов для эквайринговых терминалов
- Подключение драйверов разработанных по стандарту «1С: Совместимо» к конфигурации БПО
- Подготовка драйвера к загрузке в конфигурацию БПО
- Загрузка подготовленного драйвера в конфигурацию БПО
- Использование драйвера предварительно установленного на локальных компьютерах
- Подключение программно-аппаратных POS систем в режиме "OFFLINE" с помощью файлового обмена
- Подключение программно-аппаратных комплексов с помощью Веб-сервиса оборудования
Изменения в стандарте
Данный стандарт поддерживается в "1С:Библиотека подключаемого оборудования" начиная с версии 1.2.3.
Версия | Раздел | Изменения |
---|---|---|
1.5 | Требования к разработке драйверов для фискальных регистраторов | Добавлена возможность печати штрихкода типа "QR". |
1.5 | Требования к разработке драйверов для принтеров чеков | Добавлена возможность печати штрихкода типа "QR". |
1.5 | Подключение программно-аппаратных POS систем в режиме "OFFLINE" с помощью файлового обмена | В структуру выгружаемой таблице товаров ТаблицаТоваров (GoodsTable) добавлен флаг "FullLoad". |
1.4 | Требования к разработке драйверов для принтеров этикеток | Новый раздел. |
1.4 | Подключение программно-аппаратных комплексов с помощью Веб-сервиса оборудования | Новый раздел. |
1.4 | Подключение программно-аппаратных POS систем в режиме "OFFLINE" с помощью файлового обмена | Новый раздел. |
1.3 | Требования к разработке драйверов для принтеров чеков | Новый раздел. |
1.3 | Подключение драйверов разработанных по стандарту «1С: Совместимо» к конфигурации БПО | Новый раздел. |
1.3 | Требования к разработке драйверов для фискальных регистраторов | Добавлен новый метод "ОткрытьСмену". |
1.2 | Общие требования к разрабатываемому драйверу и его архитектуре | - Добавлены рекомендации по разработке архитектуры драйвера. - Дополнен пункт 4. - Добавлен пункт 10. |
1.2 | Обязательные функции и методы, связанные с использованием драйвера подключаемого оборудования в системе | Добавлены новые атрибуты для таблицы параметров: "ТолькоПросмотр", "Описание". |
1.2 | Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE" | В метод ВыгрузитьТовары (UploadGoods) добавлен параметр "СтатусПакета" |
1.2 | Требования к разработке драйверов для терминалов сбора данных | В метод ВыгрузитьТаблицу (UploadTable) добавлен параметр "СтатусПакета" |
1.2 | Требования к разработке драйверов для эквайринговых терминалов | Добавлены рекомендации по реализации печати нескольких слип-чеков. |
1.1 | Обязательные функции и методы, связанные с использованием драйвера подключаемого оборудования в системе | - Для метода "ПолучитьОписание" добавлены дополнительные параметры "ИнтеграционнаяБиблиотека", "ОсновнойДрайверУстановлен" - Добавлены методы "ПолучитьДополнительныеДействия", "ВыполнитьДополнительноеДействие" |
1.1 | Требования к разработке драйверов для эквайринговых терминалов | - Для методов, отвечающих за работу с экваринговыми операциями, добавлен параметр "НомерЧека" - Добавлена функция "ПечатьКвитанцийНаТерминале" |
Введение
Для подключение оборудования к автоматизированным системам на платформе « 1С:Предприятие » используется "1С:Библиотека подключаемого оборудования". Библиотека предоставляет набор высокоуровневых механизмов для унифицированной работы с подключаемым оборудованием. Применение данной библиотеки позволяет ускорить реализацию поддержки широкого спектра моделей подключаемого оборудования в разрабатываемых конфигурациях, а также добавить готовые функциональные блоки в уже работающие прикладные решения.
Подключение оборудования к локальному рабочему месту осуществляется с помощь специально разработанного драйвера. Требования к таким драйверам подключаемого оборудования описывают единые методы используемые как конфигурацией "1С:Библиотека подключаемого оборудования", так и драйвером оборудования. Конфигурация "1С:Библиотека подключаемого оборудования" непосредственно взаимодействует с драйверами оборудования используя стандартные команды, за счет чего достигается стандартный результат.
Поддерживается взаимодействие с программно-аппаратными POS-системами (от англ. "Point of Sale" - "Точка продаж") обеспечивающих розничные продажи . Взаимодействие обеспечивается с помощью файлового обмена с помощью встроенного в библиотеку модуля "1С: ККМ-Offline".
Библиотека поддерживает работу сторонних программно-аппаратных комплексов различного назначения с помощью Веб-сервиса оборудования. Для осуществления обмена необходимо опубликовать Веб-сервис "EquipmentService" входящий в состав библиотеки. Веб-сервис обрабатывает запросы на получение и обработку данных от программно-аппаратных комплексов и возвращает стандартный результат во внешний программно-аппаратный комплекс.
Рис. 1. Схемы взаимодействия конфигураций системы программ «1С:Предприятие» с подключаемым оборудованием
Общую структуру документа можно разделить на две части: требования к разработке драйвера для подключения оборудования к локальному рабочему месту и подключение аппаратно-программных систем с помощью веб-сервиса оборудования.
Разработка драйвера для подключения оборудования к локальному рабочему месту
Оборудование подключается к системе с помощью драйвера, разработанного по технологии создания внешних компонент . Технология определяет интерфейс взаимодействия между платформой и драйвером. Реализация драйвера возможна по технологии создания внешних компонент с использованием стандартных компонентных объектов для Windows (COM-интерфейс) и собственной технологии фирмы 1С – NativeAPI (динамическая библиотека для Windows или Linux). С помощью технологии NativeAPI можно создавать внешние компоненты, которые могут подключаться как в клиентском приложении , так и на сервере " 1С:Предприятия ", в том числе и в версиях для Linux.
Интерфейс внешней компоненты можно условно разделить на несколько частей:
- Первая часть - общие требования к разрабатываемому драйверу и его архитектуре.
- Вторая часть - системная, определяет набор служебных функций и методов, связанных с использованием драйвера подключаемого оборудования в системе – подключение и настройка драйвера, получение его описания, тестирование и обслуживание ошибок.
- Третья часть - функциональная, определяет обязательный набор функций и методов, специфичный для данного типа подключаемого оборудования.
- Четвертая часть - действия по подключению драйверов, разработанных по стандарту «1С: Совместимо» к конфигурации БПО.
1. Общие требования к разрабатываемому драйверу и его архитектуре
Разрабатываемый драйвер должен:
- Быть разработан в виде внешней компоненты по технологии создания внешних компонент, приведенной в статье "Технология создания внешних компонент".
- Внешняя компонента для работы с подключаемым оборудованием должна содержать только один объект, реализующий расширение встроенного языка, и возвращать методом «RegisterExtensionAs» имя расширения, совпадающее с второй частью ProgID компоненты. Пример: для компоненты с ProgID «AddIn.Scanner» функция должна возвращать «Scanner». Имя расширения не должно содержать пробелов и недопустимых символов (в соответствии с правилами формирования имен объектов "1С: Предприятия ").
- При создании компонент с использованием технологии COM - объект должен являться неуправляемым (Unmanaged Component), то есть написанным на неуправляемом коде.
- Обеспечить возможность реализации функционала в полном объеме (должны быть реализованы и работать все методы) для подключаемого типа оборудования. Если оборудованием данная функция не поддерживается, должно возвращаться "False", а в описании ошибки, возвращаемом методом ПолучитьОшибку (GetLastError), содержится текст, что данная функция оборудованием не поддерживается.
- Предоставлять русскоязычные и англоязычные названия методов (например ПолучитьВес() - GetWeight() и др.).
- Поддерживать работу с несколькими экземплярами устройств, в рамках процедур в которых используется данное оборудование.
- При возникновении ошибки в работе предоставлять подробное описание произошедшей ошибки, позволяющее пользователю понять причину ее возникновения и возможный способ устранения.
- При возникновении внештатных ситуаций (некорректные действия пользователя , отсутствие запрашиваемого метода или функции, передача некорректных значений и др.) корректно обрабатывать их. Не должно быть аварийных завершений работы драйвера и прочих действий драйвера, которые могут привести к нарушению нормальной работы пользователя .
- Принимать/возвращать и обрабатывать таблицы значений в виде XML документа (текст в формате XML с кодировкой UTF-8, передаваемый с помощью параметра типа STRING). Данный способ передачи сложных массивов данных выбран для обеспечения независимости от технологии, на которой реализуется внешняя компонента-драйвер (Windows COM или NativeAPI). Для упрощения обработки структур данных используются наименования атрибутов только на английском языке.
- Обрабатывать метод SetLocale для локализации драйвера в соответствии с полученным кодом локализации и настраивать свое окружение (текстовые надписи, сообщения об ошибках и т.д.). Драйвер должен поддерживать локализированное окружение для локального кода региона и локализацию окружения на английском языке. Если полученный код локализации отличается от предусмотренного в драйвере, то драйвер должен настроить свое окружение на использование английского языка. Более подробно использование метода SetLocale описано в документе "Технология создания внешних компонент".
При разработке драйвера можно использовать несколько архитектурных решений:
- Однокомпонентный драйвер - Драйвер, представляющий из себя один файл, и предназначенный для использования только с системой программ «1С:Предприятие». При разработке драйвера в виде одного файла все используемые run-time библиотеки и другие необходимые файлы должны статически включаться в драйвер, так как на компьютере пользователя их может не оказаться или они могут быть другой версии. Рекомендуемая технология для разработки данного драйвера - NativeAPI.
- Многокомпонентный драйвер - Драйвер представляющий из себя сложный программно-аппаратный комплекс, предназначенный для использования как с системой программ «1С:Предприятие» , так с программными решениями сторонних производителей. Разрабатываемый драйвер состоит из двух частей:
- Интеграционная библиотека - промежуточная компонента для связи "1С Предприятия" с основной поставкой драйвера. Имеет интерфейс, разработанный в соответствии общими требованиями к драйверу и технологией разработки внешних компонент, но не реализует функционала драйвера подключаемого оборудования. Интеграционная библиотека реализует функционал поиска установленной основной поставки драйвера, его инициализацию и переадресацию вызовов. Все используемые run-time библиотеки и другие необходимые файлы должны быть статически включены в компоненту.
- Основная поставка драйвера - драйвер поставщика , реализованный по произвольной технологии и состоящий из произвольного набора файлов. Протокол взаимодействия драйвера с интеграционной библиотекой не регламентируется данными требованиями. Поставка драйвера осуществляется посредством инсталляции из дистрибутива поставщика .
2. Обязательные функции и методы, связанные с использованием драйвера подключаемого оборудования в системе
Данный раздел содержит список обязательных функций и методов, связанных с использованием драйвера подключаемого оборудования в системе – его подключение и настройка, получение описания, тестирование и обслуживание ошибок.
Драйвер поддерживает два основных этапа работы с оборудованием в конфигурации:
- Регистрация и настройка оборудования
- Использование оборудования пользователем в процессе работы
Регистрация и настройка оборудования
- Получение описания драйвера вызовом метода «ПолучитьОписание(GetDescription)».
- Получения доступных параметров для настройки драйвера методом «ПолучитьПараметры(GetParameters)».
- Построение формы настройки драйвера на основании списка доступных параметров.
- Сохранение параметров настройки драйвера в базе данных конфигурации.
Использование оборудования пользователем в процессе работы
- Инициализация устройства сохраненными в базе параметрами методом «УстановитьПараметр(SetParameter)».
- Подключение оборудования с помощью метода «Подключить(Open)» с текущими значениями параметров, установленными вызовами метода «УстановитьПараметр(SetParameter)». Метод «Подключить(Open)» возвращает идентификатор подключенного экземпляра устройства.
- Вызов обязательных функций и методов, специфичных для данного типа подключаемого оборудования, с использованием идентификатора подключенного экземпляра устройства.
- Получение кода ошибки и описания ошибки методом «ПолучитьОшибку(GetLastError)» в случае ее возникновения.
- Отключение устройства методом «Отключить(Close)» по идентификатору подключенного экземпляра устройства.
ВНИМАНИЕ: Все значения интерфейсных элементов (наименование, описание, заголовки, сообщения) должны быть реализованы на языке, установленном кодом локализации. (см. п.10 раздела Общие требования к разрабатываемому драйверу и его архитектуре.)
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ПолучитьНомерВерсии (GetVersion) | - | - | - | STRING | Возвращает номер версии драйвера. |
ПолучитьОписание (GetDescription) | Наименование (Name) | STRING [OUT] | Наименование драйвера | BOOL | Возвращает информацию о драйвере, такую как название и описание, поддерживаемый тип оборудования. |
Описание (Description) | STRING [OUT] | Описание драйвера | |||
ТипОборудования (EquipmentType) | STRING [OUT] | Строка, определяющая тип оборудования* | |||
РевизияИнтерфейса (InterfaceRevision) | LONG [OUT] | Поддерживаемая версия требований** для данного типа оборудования | |||
ИнтеграционнаяБиблиотека (IntegrationLibrary) | BOOL [OUT] | Флаг возвращает, является ли компонент интеграционной библиотекой драйвера или самостоятельным драйвером | |||
ОсновнойДрайверУстановлен (MainDriverInstalled) | BOOL [OUT] | Для интеграционной библиотеки возвращает флаг установки основной поставки драйвера | |||
URLCкачивания (DownloadURL) | STRING [OUT] | Возвращает пустую строку или адрес страницы сайта производителя , по которому доступна ссылка для скачивания основной поставки драйвера или иная информация о драйвере. При возвращении пустой строки функционал установки основной поставки драйвера не активизируется. | |||
ПолучитьОшибку (GetLastError) | ОписаниеОшибки (ErrorDescription) | STRING [OUT] | Описание ошибки | LONG | Возвращает код и описание последней произошедшей ошибки. |
ПолучитьПараметры (GetParameters) | ТаблицаПараметров (TableParameters) XML таблица | STRING [OUT] | Список параметров | BOOL | Возвращает список параметров настройки драйвера и их типы, значения по умолчанию и возможные значения. |
УстановитьПараметр (SetParameter) | Имя (Name) | STRING [IN] | Имя параметра | BOOL | Установка значения параметра по имени |
Значение (Value) | VARIANT [IN] | Значение параметра | |||
Подключить (Open) | ИДУстройства (DeviceID) | STRING [OUT] | Идентификатор устройства | BOOL | Подключает оборудование с текущими значениями параметров, установленных функцией «УстановитьПараметр». Возвращает идентификатор подключенного экземпляра устройства |
Отключить (Close) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Отключает оборудование |
ТестУстройства (DeviceTest) | Описание (Description) | STRING [OUT] | Описание результата выполнения теста | BOOL | Выполняет пробное подключение и опрос устройства с текущими значениями параметров, установленными функцией «УстановитьПараметр». При успешном выполнении подключения в описании возвращается информация об устройстве |
АктивированДемоРежим (DemoModeIsActivated) | STRING [OUT] | Возвращает описание ограничений демонстрационного режима при его наличии и пустой результат при его отсутствии. Пример: драйвер является платным, и для полноценной работы нужен ключ защиты. | |||
ПолучитьДополнительныеДействия (GetAdditionalActions) | ТаблицаДействий (TableActions) XML таблица | STRING [OUT] | Список дополнительных действий | BOOL | Получает список действий, которые будут отображаться как дополнительные пункты меню в форме настройки оборудования, доступной администратору . Если действий не предусмотрено, возвращает пустую строку. |
ВыполнитьДополнительноеДействие (DoAdditionalAction) | ИмяДействия (ActionName) | STRING [IN] | Имя действия | BOOL | Команда на выполнение дополнительного действия с определенными именем |
ТаблицаПараметров (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 | Наименование группы, по которому будут группироваться поля ввода |
MasterParameterName | Нет | string | Имя параметра, управляющего активностью данного поля |
MasterParameterOperation | Нет | string | Операция сравнения с MasterParameterName: Equal, NotEqual |
MasterParameterValue | Нет | string | Значение мастер параметра, при котором выполняется условие операции MasterParameterOperation. При выполнении условия поле ввода становится доступным. Если MasterParameterName и MasterParameterValue не определены, поле всегда активно |
Пример текстового 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" MasterParameterName="" MasterParameterOperation="" MasterParameterValue=""/> </Group> </Page> </Settings>
В результате будет сформирована следующая форма для ввода параметров:
ТаблицаДействий (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. Требования к разработке драйверов для электронных весов
Конфигурациями поддерживаются следующие возможности работы с весами on-line:
- Ввод значения веса тары, используемой для упаковки взвешиваемого товара.
- Получение значения веса товара за вычетом веса тары.
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
УстановитьВесТары (Calibrate) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Производит установку веса тары на весах. Если значение «ВесТары» имеет значение 0 – в качестве значения принимается текущее значение веса на весах. |
ВесТары (TareWeight) | DOUBLE [IN] | Вес тары | |||
ПолучитьВес (GetWeight) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Получает текущий вес товара на весах. |
ТекущийВес (Weight) | DOUBLE [OUT] | Текущий вес товара на весах |
3.2. Требования к разработке драйверов для электронных весов с печатью этикеток в режиме "OFFLINE"
Работа с электронными весами с печатью этикеток заключается в выгрузке таблицы товаров. Таблица формируется на основе базы данных средствами конфигурации. Обработка выгрузки таблицы товаров в электронные весы должна предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьТовары (UploadGoods)» с пакетами данных определенного размера (например, по 100 записей) с дополнительным параметром, определяющим статус пакета ("first" - первый пакет, "regular" - очередной, "last" - последний пакет).
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ВыгрузитьТовары (UploadGoods) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Выгружает товары в весы |
ТаблицаТоваров (GoodsTable) XML таблица | STRING [IN] | Таблица товаров | |||
СтатусПакета (PackageStatus) | STRING [IN] | Статус пакета * | |||
ОчиститьТовары (ClearGoods) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Удаляет ранее загруженные товары в весах |
ТаблицаТоваров (GoodsTable)
Текст в формате XML, передаваемый с помощью параметра типа STRING.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|---|
Table | Да | Таблица товаров | ||
Record | PLU | Да | long | PLU товара (Индекс товара в весах) |
Code | Да | long | Код весового товара | |
IsWeightGoods | Да | boolean | Флаг весового товара. По умолчанию true. Если false – то это штучный товар фасуемый на весах. | |
Name | Да | string | Наименование товара | |
Price | Да | decimal | Цена за килограмм | |
Description | Нет | string | Текстовое описание товара (состав товара, список ингредиентов и пр.) | |
ShelfLife | Нет | long | Длительность хранения/срок годности товара, в днях |
Пример текстового XML, содержащий данные:
<?xml version="1.0" encoding="UTF-8"?> <Table> <Record PLU="1" Code="1003" Name="Яблоки Антоновка" Price="95,50" ShelfLife="7" IsWeightGoods="true"/> <Record PLU="2" Code="1023" Name="Салат Болгарский" Price="500,00" IsWeightGoods="true" Description="Состав: свекла, морковь, ветчина, мясо, сыр, яйцо, лук репчатый, майонез" ShelfLife="5"/> </Table>
3.3. Требования к разработке драйверов для дисплеев покупателя
При оформлении документов продажи необходимая информация может отображаться на дисплее покупателя . Состав информации определяется в конфигурации. Поддерживаются многострочные дисплеи и разбиение строк на области.
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ВывестиСтрокуНаДисплейПокупателя (StringOutputOnCustomerDisplay) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Выводит переданные строки на дисплей покупателя . Одна строка соответствует одной строке дисплея. Если строка пуста, то информация в данной строке на дисплее не меняется |
Строки (Strings) | STRING [IN] | Cтроки, содержащие информацию для отображения на дисплее | |||
ОчиститьДисплейПокупателя (ClearCustomerDisplay) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Очищает дисплей покупателя |
ПолучитьПараметрыВывода (GetOutputOptions) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Получить размерность дисплея покупателя |
СтолбцовНаДисплее (DeviceColumns) | LONG [OUT] | Возвращает количество столбцов на дисплее (символов в строке) | |||
СтрокНаДисплее (DeviceRows) | LONG [OUT] | Возвращает количество строк на дисплее |
3.4. Требования к разработке драйверов для терминалов сбора данных
Работа с терминалами сбора данных заключается в выгрузке таблицы товаров из конфигурации и загрузке таблицы данных об отобранных товарах. Таблица формируется на основе базы данных средствами конфигурации. Обработка выгрузки таблицы товаров должна предусматривать выгрузку несколькими итерациями путем последовательных вызовов метода «ВыгрузитьТаблицу (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 | Очищает загруженную ранее таблицу товаров в ТСД |
ТаблицаТоваров (GoodsTable)
Текст в формате XML, передаваемый с помощью параметра типа STRING.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|---|
Table | Да | Таблица товаров | ||
Record | BarCode | Да | string | Штрихкод номенклатуры |
Name | Нет | string | Наименование товара | |
UnitOfMeasurement | Нет | string | Единица измерения номенклатуры | |
CharacteristicOfNomenclature | Нет | string | Характеристика номенклатуры | |
SeriesOfNomenclature | Нет | string | Серия номенклатуры | |
Quality | Нет | string | Качество товара | |
Price | Нет | decimal | Цена товара | |
Quantity | Нет | decimal | Количество товара |
Пример текстового XML, содержащий данные:
<?xml version="1.0" encoding="UTF-8"?> <Table> <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>
ТаблицаЗагрузки (DownloadTable)
Текст в формате XML, передаваемый с помощью параметра типа STRING.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|---|
Table | Да | Таблица загрузки | ||
Record | BarCode | Да | string | Штрихкод номенклатуры |
Quantity | Да | decimal | Количество товара |
Пример текстового XML, содержащий данные:
<?xml version="1.0" encoding="UTF-8"?> <Table> <Record BarCode="4008110271538" Quantity="4"/> <Record BarCode="2900001355643" Quantity="2"/> </Table>
3.5. Требования к разработке драйверов для фискальных регистраторов
При работе с фискальными регистраторами (АСПД, принтерами чеков для ЕНВД) поддерживаются основные операции:
- Печать чеков внесения/выемки денежных средств;
- Печать чека ККМ;
- Печать отчетов за смену с гашением (Z-отчет) и без гашения (X-отчет).
Алгоритм печати чека ККМ.
При формировании чеков ККМ конфигурация посылает команду на открытие нового чека. В зависимости от переданного параметра чек открывается в фискальном или нефискальном режиме.
В режиме открытого чека производится печать фискальной или нефискальной строки. При печати фискальной строки рассчитываются скидки. Если рассчитанное по формуле "Ценана*Количество – Сумма по строке" значение отлично от 0, то в чеке печатается абсолютное значение скидки в денежном выражении. Если значение скидки меньше нуля, вместо слова "Скидка" выводится слово «Наценка».
Поддерживается аннулирование ранее открытого чека при помощи параметра "АннулироватьОткрытыйЧек" метода "ОткрытьЧек".
Поддерживается печать штрихкода в открытом чеке, если это позволяет сделать модель устройства.
По окончании печати строк чека производится расчет по чеку. Расчет по чеку может производиться несколькими видами оплат. При открытом фискальном чеке происходит печать итогов и сумм оплаты.
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ОткрытьСмену (OpenShift) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Открывает новую смену. |
ОткрытьЧек (OpenCheck) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Открывает новый чек. |
ФискальныйЧек (IsFiscalCheck) | BOOL [IN] | Признак фискального чека | |||
ЧекВозврата (IsReturnCheck) | BOOL [IN] | Признак чека возврата | |||
АннулироватьОткрытыйЧек (CancelOpenedCheck) | BOOL [IN] | Признак автоматического аннулирования ранее открытого чека | |||
НомерЧека (CheckNumber) | LONG [OUT] | Номер нового чека | |||
НомерСмены (SessionNumber) | LONG [OUT] | Номер открытой смены | |||
НапечататьФискСтроку (PrintFiscalString) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печатает строку товарной позиции с переданными реквизитами. |
Наименование (Name) | STRING [IN] | Наименование товара | |||
Количество (Quantity) | DOUBLE [IN] | Количество товара | |||
Цена (Price) | DOUBLE [IN] | Цена единицы товара (в формате <Рубли,Копейки>) | |||
Сумма (Amount) | DOUBLE [IN] | Конечная сумма по позиции чека (с учетом всех скидок/наценок; в формате <Рубли,Копейки>) | |||
Отдел (Department) | LONG [IN] | Отдел, по которому ведется продажа | |||
НДС (Tax) | DOUBLE [IN] | НДС в процентах (от 0 до 99,99) | |||
НапечататьНефискСтроку (PrintNonFiscalString) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Выводит произвольную текстовую строку на чековую ленту. |
СтрокаТекста (TextString) | STRING [IN] | Строка с произвольным текстом | |||
НапечататьШтрихКод (PrintBarCode) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печать штрихкода осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из следующих значений: EAN8, EAN13, CODE39, QR. В случае, если модель устройства не поддерживает печать штрихкода, выдается ошибка. |
ТипШтрихкода (BarcodeType) | STRING [IN] | Строка, определяющая тип штрихкода | |||
Штрихкод (Barcode) | STRING [IN] | Значение штрихкода | |||
ЗакрытьЧек (CloseCheck) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Закрывает чек. Сумма всех видов оплат должна быть больше суммы открытого чека. |
НаличнаяОплата (Cash) | DOUBLE [IN] | Сумма наличной оплаты | |||
ОплатаКартой (PayByCard) | DOUBLE [IN] | Сумма оплаты картой | |||
ОплатаКредитом (PayByCredit) | DOUBLE [IN] | Сумма оплаты кредитом | |||
ОплатаСертификатом (PayByCertificate) | DOUBLE [IN] | Сумма оплаты сертификатом | |||
ОтменитьЧек (CancelCheck) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Отменяет ранее открытый чек (требует административные привилегии). |
НапечататьЧекВнесенияВыемки (CashInOutcome) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печатает на ФР чек внесения/ выемки (зависит от переданной суммы). Сумма >= 0 - внесение, Сумма < 0 - выемка. |
Сумма (Amount) | DOUBLE [IN] | Сумма внесения /выемки в формате <Рубли,Копейки> | |||
НапечататьОтчетБезГашения (PrintXReport) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печатает на ФР отчет за смену без гашения (не закрывает кассовую смену) |
НапечататьОтчетСГашением (PrintZReport) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печатает на ФР отчет за смену с гашением (закрывает кассовую смену, требует административные привилегии). |
ОткрытьДенежныйЯщик (OpenCashDrawer) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Производит открытие денежного ящика, подключенного к фискальному регистратору . |
ПолучитьШиринуСтроки (GetLineLength) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Получить ширину строки чека в символах. |
ШиринаСтроки (LineLength) | LONG [OUT] | Ширина строки в символахах |
3.6. Требования к разработке драйверов для принтеров чеков
При работе с принтерами чеков поддерживаются следующие операции:
- Печать текстовых чеков;
- Печать штрихкодов;
- Открытие денежного ящика.а.
Алгоритм печати чека.
При подключении устройства командой "Подключить" драйвер инициализирует устройство печати, в том числе определяет кодировку для печати чеков.
При формировании чека конфигурация посылает команду "ОткрытьДокумент" для открытия нового документа на принтере чеков, и в цикле вызывается команда печати текстовой строки "НапечататьСтроку" для построчной печати документа. Поддерживается печать штрихкода в открытом чеке командой "НапечататьШтрихКод", если это поддерживается моделью устройства.
Закрытие документа осуществляется командой "ЗакрытьДокумент". В случае необходимости и если это предусмотрено моделью устройства, посылается команда отрезчику.
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметрыры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ОткрытьДокумент (OpenDocument) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Открывает новый документ. Драйвер может проверить доступность устройства, наличие бумаги и вернуть False в случае невозможности печати. |
НапечататьСтроку (PrintString) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Выводит текстовую строку. |
СтрокаТекста (TextString) | STRING [IN] | Строка с произвольным текстом | |||
НапечататьШтрихКод (PrintBarCode) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печать штрихкода осуществляется с автоматическим размером с выравниванием по центру чека. Тип штрихкода может иметь одно из следующих значений: EAN8, EAN13, CODE39, QR. В случае, если модель устройства не поддерживает печать штрихкода, выдается ошибка. |
ТипШтрихкода (BarcodeType) | STRING [IN] | Строка, определяющая тип штрихкода | |||
Штрихкод (Barcode) | STRING [IN] | Значение штрихкода | |||
ЗакрытьДокумент (CloseDocument) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Закрывает открытый ранее документ. В случае необходимости посылается команда отрезчику. |
ОткрытьДенежныйЯщик (OpenCashDrawer) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Посылает команду на открытие денежного ящика, подключенного к принтеру чеков |
ПолучитьШиринуСтроки (GetLineLength) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Получить ширину строки в символах |
ШиринаСтроки (LineLength) | LONG [OUT] | Ширина строки в символах |
3.7. Требования к разработке драйверов для принтеров этикеток
Работа с принтером печати этикеток заключается в выгрузке в драйвер сформированного пакета данных об этикетах. Пакет формируется средствами конфигурации и содержит описание форматирования шаблона этикетки и набора данных для формирования этикеток. Драйвер печати этикеток должен предусматривать обработку сформированного массива этикеток несколькими итерациями, путем последовательных вызовов метода «ПечатьЭтикеток (PrintLabels)» с пакетами данных определенного размера (например, по 100 этикеток) и с дополнительным параметром, определяющим статус пакета ("first" - первый пакет, "regular" - очередной, "last" - последний пакет).
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ИнициализацияПринтера (InitializePrinter) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Первичная инициализация принтера этикеток (загрузка шрифтов, установка параметров печати, установка нужной кодовой страницы) |
ПечатьЭтикеток (PrintLabels) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Печать набора этикеток на принтере этикеток |
ТаблицаЭтикеток (LabelsTable) XML таблица | STRING [IN] | Таблица этикеток | |||
СтатусПакета (PackageStatus) | STRING [IN] | Статус пакета * * |
ТаблицаЭтикеток (LabelsTable)
Текст в формате XML, передаваемый с помощью параметра типа STRING.
Структуру передаваемого пакета можно разделить на две составляющие секции:
- Formatting - Секция описания форматирования шаблона этикетки. Присутствует однократно и только в первом пакете и описывает поля (элементы "Text", "Barcode", "Image" и "UserData"), входящие в шаблон этикетки, и их форматирование.
- Labels - Секция набора данных для формирования этикеток. Секция присутствует в каждом пакете только один раз, и содержит данные для заполнения каждой их этикеток которые необходимо распечатать.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута | |
---|---|---|---|---|---|
Formatting | Formatting | Width | Да | decimal | Ширина шаблона этикетки в миллиметрах. |
Height | Да | decimal | Высота шаблона этикетки в миллиметрах. | ||
Text | FieldName | Да | string | Уникальное имя поля в шаблоне этикетки. | |
Left | Да | decimal | Позиция левой границы поля по оси X (в миллиметрах). | ||
Top | Да | decimal | Позиция верхней границы поля по оси Y (в миллиметрах). | ||
Width | Да | decimal | Ширина поля в миллиметрах. | ||
Height | Да | decimal | Высота поля в миллиметрах. | ||
Orientation | Нет | long | Ориентация содержимого поля. | ||
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". | ||
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". | ||
Value | При static = "true" | string | В случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение. | ||
Image | FieldName | Да | string | Уникальное имя поля в шаблоне этикетки. | |
Left | Да | decimal | Позиция левой границы поля по оси X (в миллиметрах). | ||
Top | Да | decimal | Позиция верхней границы поля по оси Y (в миллиметрах). | ||
Width | Нет | decimal | Ширина поля в миллиметрах. | ||
Height | Нет | decimal | Высота поля в миллиметрах. | ||
Orientation | Нет | long | Ориентация содержимого поля. Имеет одно из следующих значений: 0, 90, 180, 270. По умолчанию 0. | ||
Border | Нет | string | Строка, определяющая рамки поля. Имеет одно или несколько значений через разделитель - пробел: "Left", "Top", "Right" или "Bottom". По умолчанию "". | ||
BorderWidth | Нет | long | Толщина рамки в пикселах, по умолчанию 1. | ||
BorderStyle | Нет | string | Стиль рамки. Имеет одно из значений: "Dotted", "Dashed", "Solid", "Double". По умолчанию "Solid". | ||
Static | Нет | boolean | Статичность. По умолчанию "false". | ||
Value | При Static = "true" | string | В случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение. Кодируется текстом в кодировке Base64. | ||
UserData | FieldName | Да | string | Уникальное имя поля в шаблоне этикетки. | |
Static | Нет | boolean | Статичность. По умолчанию "false". | ||
Value | При Static = "true" | string | В случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение. | ||
Labels | Label | Quantity | Нет | long | Указывает необходимое для этикетки количество копий для печати. По умолчанию 1. |
Record | FieldName | Да | string | Уникальное имя поля в шаблоне этикетки. | |
Value | При Formatting.Static = "false" | string | Значение поля в шаблоне этикетки. Для элемента "Image" картинка кодируется текстом в кодировке Base64. |
Пример текстового XML, содержащий данные:
<?xml version="1.0"?> <Data> <Formatting Width = "60" Height="40"> <Text FieldName="Наименование" Left="1" Top="1" Width="55" Height="10" FontName="Tahoma" FontSize="8" FontStyle="Italic"/> <Text FieldName="Цена" Left="1" Top="11" Width="55" Height="10" FontName="Tahoma" FontSize="8" FontStyle="Bold Italic" Border="Left Top Right Bottom"/> <Barcode FieldName="Штрихкод" Type="EAN13" Left="1" Top="22" Height="10" PrintHRI="true" FontSize="8"/> </Formatting> <Labels> <Label Quantity="2"> <Record FieldName="Наименование" Value="Блокнот для заметок"/> <Record FieldName="Цена" Value="43,5"/> <Record FieldName="Штрихкод" Value="4008110271538"/> </Label> <Label Quantity="3"> <Record FieldName="Наименование" Value="Яблоки антоновка в банке"/> <Record FieldName="Цена" Value="78,5"/> <Record FieldName="Штрихкод" Value="2900001355679"/> </Label> </Labels> </Data>
3.8. Требования к разработке драйверов устройств ввода (сканеры штрихкода, считыватели магнитных карт и т.д.)
Данные устройства реализуют функцию автоматического считывания закодированной различными способами информации и асинхронной передачи ее в конфигурацию "1С:Предприятия". Драйвера устройств такого типа не предусматривают специфических для оборудования методов, которые можно вызывать из конфигураций.
Работа с драйвером строится следующим образом:
- При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия", с помощью которого можно вызывать метод:
HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData) - При каждом успешном считывании кода сканером или считывателем драйвер должен вызывать метод HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData).
- Переданные данные размещаются в очереди сообщений. Сообщения из очереди обрабатываются только после обработки всех системных сообщений "1С:Предприятия". При переполнении очереди полученные сообщения игнорируются.
Описание методов, доступных для асинхронного вызова из драйвера*
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметрыры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ExternalEvent | bstrWho | BSTR [IN] | Уникальный идентификатор подключенного устройства ** | HRESULT | Помещает данные, полученные от сканера/считывателя в очередь сообщений |
bstrWhat | BSTR [IN] | Тип сообщения/ тип данных *** | |||
bstrData | BSTR [IN] | Считанные устройством данные | |||
SetEventBufferDepth | lDepth | BSTR [IN] | Максимальное число сообщений в очереди | HRESULT | Устанавливает длину очереди сообщений |
3.9. Требования к разработке драйверов для эквайринговых терминалов
При работе с эквайринговыми системами поддерживаются следующие операции:
- Оплата картой
- Отмена платежа по карте
- Возврат платежа по карте
- Блокирование суммы на счете карты
- Списание заблокированной суммы со счета карты
- Отмена блокировки суммы на счете карты
- Аварийная отмена операции
- Получение итогов дня по картам
ВНИМАНИЕ: По требованиям банка эквайринговый терминал полный номер карты может не предоставлять, в таком случае часть цифр номер карты заменяется звездочками.
Оплата картой
При необходимости оплатить покупку платежной картой Система вызывает метод "ОплатитьПлатежнойКартой", передавая во входном параметре сумму к оплате для списания с карты и номер считанной карты. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПечатьКвитанцийНаТерминале). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Отмена платежа по карте
Если происходит отмена платежа, то Система вызывает метод "ОтменитьПлатежПоПлатежнойКарте", передавая во входных параметрах сумму, которая была указана для списания с карты, номер считанной карты, код RRN операции, по которой совершается отмена, и код авторизации. Драйвер в ответ возвращает результат выполнения функции. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Возврат платежа по карте
При возврате платежа Система вызывает метод "ВернутьПлатежПоПлатежнойКарте", передавая во входном параметре сумму к возврату на карту, номер считанной карты, код RRN операции, по которой совершается возврат, и код авторизации. Драйвер в ответ возвращает результат выполнения функции, а в выходные параметры записывает код RRN, код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Блокирование суммы на счете карты
При необходимости заблокировать сумму на счете платежной карты Система вызывает метод "ПреавторизацияПоПлатежнойКарте", передавая во входном параметре сумму для блокировки и номер считанной карты. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПечатьКвитанцийНаТерминале). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Списание заблокированной суммы со счета карты
При необходимости списания заблокированной суммы со счета платежной карты Система вызывает метод "ЗавершитьПреавторизациюПоПлатежнойКарте", передавая во входном параметре сумму для списания с карты, номер считанной карты, код RRN операции блокировки и код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПечатьКвитанцийНаТерминале). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Отмена блокировки суммы на счете карты
Для отмены блокирования суммы на счете платежной карты Система вызывает метод "ОтменитьПреавторизациюПоПлатежнойКарте", передавая во входном параметре сумму для списания с карты, номер считанной карты, код RRN операции блокировки и код авторизации. Если считывание карты будет производиться на терминале (PIN-Pad’e) банка, то в параметре номера считанной карты передается пустая строка. Драйвер в ответ возвращает результат выполнения функции, код RRN, код авторизации и текст слип-чека. Текст слип-чека может быть самостоятельно распечатан терминалом на встроенном принтере или распечатан на ФР (определяется методом ПечатьКвитанцийНаТерминале). После выполнения функции в параметре номера считанной карты возвращается номер прочитанной на терминале (PIN-Pad’e) банка карты.
Аварийная отмена операции
Если операция по платежной карте прошла успешно и слип-чек должен быть распечатан на ФР (определяется методом ПечатьКвитанцийНаТерминале), но возникла ошибка печати, то операция по карте должна быть аварийно отменена.
Получение итогов дня по картам
Для получения текста отчета Система вызывает метод "ИтогиДняПоКартам". Драйвер возвращает результат выполнения функции и текст отчета.
Описание методов | |||||
---|---|---|---|---|---|
Название (alias) | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
ОплатитьПлатежнойКартой (PayByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод осуществляет авторизацию оплаты по карте |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [OUT] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [OUT] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ВернутьПлатежПоПлатежнойКарте (ReturnPaymentByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод осуществляет возврат платежа по карте |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [IN/OUT] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [IN/OUT] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ОтменитьПлатежПоПлатежнойКарте (CancelPaymentByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод осуществляет отмену платежа по карте |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [IN/OUT] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [IN/OUT] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ПреавторизацияПоПлатежнойКарте (AuthorisationByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод осуществляет пре-авторизацию – блокирование суммы на счете карты |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [OUT] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [OUT] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ЗавершитьПреавторизациюПоПлатежнойКарте (AuthConfirmationByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод завершает пре-авторизацию – списывает сумму со счета карты |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [IN] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [IN] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ОтменитьПреавторизациюПоПлатежнойКарте (CancelAuthorisationByPaymentCard) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод отменяет пре-авторизацию – разблокирует сумму на счете карты |
НомерКарты (CardNumber) | STRING [IN/OUT] | Номер Карты / Данные карты* | |||
Сумма (Amount) | DOUBLE [IN] | Сумма операции по карте | |||
НомерЧека (ReceiptNumber) | STRING [IN/OUT] | Номер чека | |||
КодRRN (RRNCode) | STRING [IN] | Уникальный код транзакции RRN | |||
КодАвторизации (AuthorizationCode) | STRING [IN] | Код авторизации транзакции | |||
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
АварийнаяОтменаОперации (EmergencyReversal) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Метод отменяет последнюю транзакцию |
ИтогиДняПоКартам (Settlement) | ИДУстройства (DeviceID) | STRING [IN] | Идентификатор устройства | BOOL | Производится сверка итогов дня |
ТекстКвитанции (Slip) | STRING [OUT] | Текст квитанции, сформированный Эквайринговым ПО ** | |||
ПечатьКвитанцийНаТерминале (PrintSlipOnTerminal) | - | - | - | BOOL | Возвращает будет ли терминал самостоятельно печатает квитанции на своем принтере для операций |
4. Подключение драйверов разработанных по стандарту «1С: Совместимо» к конфигурации БПО
В конфигурации БПО начиная с версия 1.1.1 добавлена возможность подключения новых драйверов, разработанных по стандарту «1С: Совместимо».
Предоставляется возможность:
- Загрузки в информационную базу файла однокомпонентного драйвера или интеграционной библиотеки, поставляемого в виде архива внешней компоненты;
- Загрузка в информационную базу файла драйвера, поставляемого в виде дистрибутива поставщика *;
- Возможность использования драйвера, предварительно установленного на локальных компьютерах *.
4.1. Подготовка драйвера к загрузке в конфигурацию БПО
Подготовка однокомпонентного драйвера или интеграционной библиотеки поставляемых в виде архива внешней компоненты
Подготовка драйвера, поставляемого в виде архива внешней компоненты, для загрузки в конфигурацию БПО осуществляется согласно разделу " Подготовка внешних компонент для загрузки в конфигурацию " документа "Технология создания внешних компонент". Кроме того, в архиве должен присутствовать XML файл c именем "INFO.XML", содержащий информацию для загрузки драйвера.
XML файл должен иметь следующую структуру:
Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|
progid | Да | string | Идентификатор объекта драйвера. |
type | Да | string | Тип драйвера. Имеет одно из значений: “СканерШтрихкода“, “СчитывательМагнитныхКарт“, “ФискальныйРегистратор“, “ПринтерЧеков“, “ПринтерЭтикеток“, “ДисплейПокупателя“, “ТерминалСбораДанных“, “ЭквайринговыйТерминал“, “ЭлектронныеВесы“, “ВесыСПечатьюЭтикеток“. |
name | Да | string | Наименование драйвера, отображаемое пользователю. |
version | Да | string | Поставляемая версия драйвера. |
Пример файла "INFO.XML", описывающего информацию о драйвере:
Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?> <drivers> <component progid="AddIn.EmulatorFP1C" type="ФискальныйРегистратор" name="1C: Эмулятор фискального регистратора" version="1.0.21.1"/> </drivers>
Подготовка драйвера поставляемого в виде дистрибутива
Для подготовки драйвера необходимо упаковать дистрибутив инсталлятора в ZIP архив. Исполняемый файл дистрибутива должен иметь имя "setup.exe". Помимо исполняемого файла допускается наличие дополнительных файлов необходимых для работы установщика дистрибутива. Так же в архиве должен присутствовать XML-файл c именем "INFO.XML" содержащий информацию необходимую для загрузки драйвера. Структура данного файла такая же, как и структура "INFO.XML" предыдущего раздела.
4.2. Загрузка подготовленного драйвера в конфигурацию БПО
Для загрузки подготовленного драйвера необходимо перейти в раздел "Подключаемое оборудование/Драйверы оборудования".
В форме списка драйверов нажать "Добавить новый драйвер из файла" и в отрывшемся диалоге выбора файла выбрать подготовленный для загрузки файл драйвера.
После открытие формы загружаемого драйвера необходимо проверить корректность заполнения информации о драйвере (поля: Тип оборудования, Наименование, Идентификатор объекта), и нажать кнопку"Записать и закрыть".
4.3. Использование драйвера, предварительно установленного на локальном компьютере
Для подключения драйвера, предварительного установленного на локальном компьютере, необходимо перейти в раздел "Подключаемое оборудование/Драйверы оборудования".
В форме списка драйверов нажать "Создать", и в отрывшемся форме создаваемого драйвера ввести необходимые параметры драйвера в поля: Тип оборудования, Наименование, Идентификатор объекта.
После заполнения необходимых данных нажать кнопку"Записать и закрыть". Данная возможность предусмотрена только для драйверов разработанных по COM технологии.
В данном режиме не поддерживается работа в WEB клиенте и Linux клиенте.
Подключение программно-аппаратных POS-систем в режиме "OFFLINE" с помощью файлового обмена
Работа с программно-аппаратными POS-системами (активными системными контрольно-кассовыми машинами) в режиме "OFFLINE" заключается в файловом обмене информацией. В POS-систему из конфигурации выгружается список товаров и цен, в конце рабочего дня в конфигурацию загружаются данные о продажах, зарегистрированных POS-системой в течение смены.
Таблица товаров формируется на основе данных информационной базы средствами конфигурации. Формирование XML файла с данными производится с помощью входящего в состав БПО модуля "1С:ККМ-Offline", имя файла и путь размещения задаются пользовательскими настройками.
При большом объеме выгружаемых данных предусмотрено разделение на пакеты данных. Каждый пакет данных размещается в отдельном файле. Имя файла формируется по маске с указанием номера файла в соответствии с состоянием специального счетчика. Например, "PriceList001.xml", "PriceList002.xml" и т.д. Маска имени файла и максимальное количество товаров в пакете задаются пользовательскими настройками. Процедуразагрузки данных в POS-систему должна предусмотреть обработку набора файлов.
Загрузка отчета о проданных товарах из файла производится однократно, без разбивки на пакеты. Форматом файла загрузки предусмотрена возможность размещения в одном файле нескольких отчетов о продажах в разрезе кассовых смен. Имя файла отчетов о продажах указывается в пользовательских настройках .
Успешно загруженные файлы помечаются специальным атрибутом - "Обработан(Processed)"
Список команд, поддерживаемых модулем "1С:ККМ-Offline" библиотеки подключаемого оборудования
Операция | Данные | Описание операции |
---|---|---|
Выгрузить настройки | Настройки (Settings) XML таблица | Выгружает таблицу настроек в ККМ |
Выгрузить таблицу товаров | ПрайсЛист (PriceList) XML таблица | Выгружает прайс-лист товаров в ККМ |
Загрузить отчет | ОтчетОПродажах (SalesReport) XML таблица | Загружает информация о проданных товарах из ККМ в виде массива отчетов о продажах, в разрезе кассовых смен. |
Отчет загружен | - | Драйверу устанавливается флаг в «Истина», если отчет был успешно обработан, и в «Ложь» в противном случае. |
Настройки (Settings)
Структура XML.
Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута | |
---|---|---|---|---|
Settings | Да | Секция настроек | ||
CompanyName | Да | string | Наименование организации | |
Taxation | Да | string | Система налогообложенияорганизации . Значение "Общая" или " Упрощенная ". | |
VATIN | Да | string | ИНН организации | |
UseDiscounts | Да | boolean | Использование скидок в ККМ | |
UseBankingCard | Да | boolean | Использование платежных карт при оплате | |
Processed | Нет | datetime | Признак обработки файла | |
RecordSorts | Нет | Виды оплаты при оплате платежными картами | ||
RecordSort | Code | Да | string | Код, идентификатор вида оплаты |
PaymentType | Да | decimal | Тип оплаты, "1"–оплата платежной картой | |
Name | Да | string | Наименование вида оплаты при оплате платежными картами |
Пример содержимого файла XML с данными:
Копировать в буфер обмена
<?xml version="1.0" encoding="UTF-8"?> <Settings> <CompanyName>Ромашка</CompanyName> <Taxation>Общая</Taxation> <UseDiscounts>true</UseDiscounts> <UseBankingCard>true</UseBankingCard> <VATIN>123456789012</VATIN> <PaymentSorts> <RecordSort Code="100001" PaymentType="1" Name="ПРО100"/> <RecordSort Code="100002" PaymentType="1" Name="UniPay"/> </PaymentSorts> </Settings>
ТаблицаТоваров (GoodsTable)
Таблица товаров имеет древовидную структуру. Товар может иметь иметь набор характеристик и набор упаковок.
Упаковки могут быть описаны как в секции товаров, так и в секции характеристик в случае, если учет товаров ведется в разрезе характеристик.
Атрибуты "Код" и "Штрихкод" указываются для последнего уровня иерархии.
Например, для товара "Майка дет." вида "Одежда" необходимо вводить характеристику "Размер". Товар может продаваться как упаковкой по 3 шт., так и поштучно.
В этом случае формируется записи во всех трех секциях, код присваивается записям: "Майка дет."+"р-р. 22" в секции " Характеристики "
и для "Майка дет."+"р-р. 22"+"Уп." в секции "Упаковки".
См. пример файла ниже.
Структура XML.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута | |
---|---|---|---|---|---|
PriceList | FullLoad | Да | boolean | Признак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в смежной POS-системе. | |
Processed | Нет | datetime | Признак обработки файла | ||
Groups | Нет | Таблица групп товаров | |||
RecordGroup | Code | Да | string | Код, идентификатор группы | |
Name | Да | string | Наименование | ||
GroupCode | Да | string | Код группы товаров , в которую вложена текущая группа | ||
Goods | Нет | Таблица товаров | |||
RecordGood | Code | <Определяется> | string | Код, идентификатор товарной позиции. Обязателен если товар не имеет характеристик и упаковок. | |
BarCode | <Определяется> | string | Штрихкоды товара, разделитель - пробел | ||
GroupCode | Нет | string | Код группы товаров | ||
Name | Да | string | Наименование | ||
Article | Нет | string | Артикул товара | ||
UnitOfMeasurement | Нет | string | Базовая единица измерения товара | ||
Tax | Нет | decimal | Ставка НДС | ||
IsWeightGoods | Нет | boolean | Весовой товар | ||
Price | Нет | decimal | Цена товара | ||
Service | Нет | boolean | Услуга | ||
Remainder | Нет | decimal | Остаток товара | ||
HavingCharacteristic | Нет | boolean | Наличие характеристик у товара | ||
Characteristic | Нет | RecordCharacteristic | Список характеристик | ||
HavingPacking | Нет | boolean | Наличие упаковок у товара. Флаг не взводиться если у товара есть характеристики. | ||
Packing | Нет | RecordPacking | Список упаковок |
Секция RecordCharacteristic – характеристики товаров.
Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|
Code | <Определяется> | string | Код, идентификатор товарной позиции. Обязателен если характеристика не имеет вложенных упаковок. Да - если HavingPacking="false" и Нет если HavingPacking="true". |
BarCode | <Определяется> | string | Штрихкоды характеристики, разделитель - пробел |
Name | Да | string | Наименование |
Price | Нет | decimal | Цена характеристики |
Remainder | Да | decimal | Остаток характеристики |
HavingPacking | Нет | boolean | Наличие упаковок у характеристики |
Packing | Нет | RecordPacking | Список упаковок |
Секция RecordPacking – упаковки товаров.
Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута |
---|---|---|---|
Code | Да | string | Код, идентификатор товарной позиции. |
Name | Да | string | Наименование |
BarCode | Нет | string | Штрихкоды упаковки, разделитель - пробел |
Price | Нет | decimal | Цена за упаковку |
Remainder | Да | decimal | Остаток упаковки |
Coefficient | Да | decimal | Количество товара в упаковке |
Пример содержимого файла XML с данными:
<?xml version="1.0" encoding="UTF-8"?>
<PriceList FullLoad="true">
<Groups>
<RecordGroup Code="1001" Name="Упаковка" GroupCode=""/>
<RecordGroup Code="1002" Name="Майки" GroupCode=""/>
</Groups>
<Goods>
<RecordGood Code="2001" GroupCode="1001" Name="Пакет" Article="тр-1" UnitOfMeasurement="шт" Tax="18" IsWeightGoods="false"
BarCode="2900001585861" Price="10.00" Service="false" Remainder="512" HavingCharacteristic="false" HavingPacking="false"/>
<RecordGood GroupCode="1002" Name="Майка дет." Article="М-2" UnitOfMeasurement="шт" Tax="10"
IsWeightGoods="false" Service="false" HavingCharacteristic="true" HavingPacking="false">
<Characteristic>
<RecordCharacteristic Code="2002" Name="р-р. 22" BarCode="2900001585862" Price="115.50" Remainder="2" HavingPacking="false"/>
<RecordCharacteristic Name="р-р. 22" HavingPacking="true">
<Packing>
<RecordPacking Code="2003" Name="Уп." Coefficient="3" BarCode="2900001585863" Price="346.50" Remainder="7"/>
</Packing>
</RecordCharacteristic>
</Characteristic>
</RecordGood>
</Goods>
</PriceList>
ОтчетОПродажах (SalesReport)
Структура XML.
Секция | Наименование атрибута | Обязательное наличие в структуре | Типы данных | Описание атрибута | |
---|---|---|---|---|---|
SalesReports | Да | Отчеты о продажах | |||
Processed | Нет | datetime | Признак обработки файла | ||
Report | SessionNumber | Да | string | Номер смены | |
DateOpen | Нет | datetime | Дата открытия смены | ||
DateClose | Нет | datetime | Дата закрытия смены | ||
Goods | Да | Список проданных товаров | |||
RecordGood | Code | Да | string | Код, идентификатор товарной позиции | |
Quantity | Да | decimal | Количество проданного товара | ||
Price | Да | decimal | Цена, по которой продан товар (без учета скидок и наценок) | ||
Amount | Да | decimal | Сумма (с учетом скидки) | ||
Payments | Да | Список оплат | |||
RecordPayment | PaymentType | Да | string | Код типа оплаты, 0 – наличные, 1 - безналичные | |
Amount | Да | decimal | Сумма | ||
CodePaymentSort | Да | string | Виды оплаты при оплате платежными картами |
Пример содержимого файла XML с данными:
<?xml version="1.0" encoding="UTF-8"?> <SalesReports Processed="2015-02-06T14:13:10"> <Report DateClose="2015-02-04T14:55:55" DateOpen="2015-02-04T14:54:56" SessionNumber="1"> <Goods> <RecordGood Code="100000" Quantity="2" Price="1000" Amount="2000"/> <RecordGood Code="100021" Quantity="2" Price="400" Amount="800"/> <RecordGood Code="100024" Quantity="2" Price="7850" Amount="15700"/> <RecordGood Code="100020" Quantity="1" Price="200" Amount="200"/> <RecordGood Code="100019" Quantity="1" Price="600" Amount="600"/> <RecordGood Code="100023" Quantity="3" Price="9850" Amount="29550"/> <RecordGood Code="100001" Quantity="1" Price="25000" Amount="25000"/> </Goods> <Payments> <RecordPayment PaymentType="0" Amount="53850" CodePaymentSort=""/> <RecordPayment PaymentType="1" Amount="20000" CodePaymentSort="10001"/> </Payments> </Report> </SalesReports>
Подключение программно-аппаратных комплексов с помощью Веб-сервиса оборудования
Библиотека поддерживает работу сторонних программно-аппаратных комплексов различного назначения с помощью "Веб-сервиса оборудования". Для осуществления обмена необходимо опубликовать Веб-сервис "EquipmentService" входящий в состав библиотеки. Веб-сервис обрабатывает запросы на получение и обработку данных от программно-аппаратных комплексов и возвращает стандартный результат во внешний программно-аппаратный комплекс.
Описание методов | |||||
---|---|---|---|---|---|
Имя метода | Параметры | Тип возвращаемого значения | Описание метода | ||
Имя | Тип | Описание | |||
Connect | DeviceID | string | Идентификатор устройства | Response | Проверка регистрации оборудования в ИБ по уникальному идентификатору оборудования |
GetDocTypes | DeviceID | string | Идентификатор устройства | Response | Получение типов документов поддерживаемых в системе |
GetSettings | - | - | - | Settings | Получение настроек для оборудования. Возвращается структура в XML, в соответствии с описанием секции settings файлового обмена с ККМ-Offline |
GetPriceList | DeviceID | string | Идентификатор устройства | PriceList | Получение списка товаров и цен для оборудования. Возвращается структура в XML, в соответствии с описанием секции PriceList файлового обмена с ККМ-Offline |
PostDocs | DeviceID | string | Идентификатор устройства | Response | Передача от устройства документа в целевую конфигурацию. Передается структура в XML, в соответствии с описанием секции SalesReports файлового обмена с ККМ-Offline |
DocType | string | Тип документа | |||
Document | SalesReport | Считанные устройством данные |
Другие материалы по теме:
атрибут, идентификатор устройства, штрихкод, подключение, чек, драйвер, требования, таблица, функции, описание, 16, 28, опис, файл, код, 23, товара, по умолчанию, значения, наименование, конфигурирование, параметры, пример, товар, значение, сумма
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Дополнительные средства разработки
Другие материалы по теме:
Технология создания внешних компонент
Обмен "Поставщик - Покупатель"
Нас находят: 33002, 18694, 38245, 71413, 1с библиотека подключаемого оборудования обработка, Требования к разработке драйверов для эквайринговых терминалов, Требования к разработке драйверов подключаемого оборудования
Мы на Facebook