Меню


Курсы Стимул Справочник Полезные материалы 1С:Предприятие 8.2 Разработчикам Дополнительные средства раз…

1С:Предприятие 8.2 /
Разработчикам /
Дополнительные средства разработки

Оглавление

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

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

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

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

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

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

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

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

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

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

  1. Инициализация устройства сохраненными в базе параметрами методом «УстановитьПараметр(SetParameter)».
  2. Подключение оборудования с помощью метода «Подключить(Open)» с текущими значениями параметров, установленными вызовами метода «УстановитьПараметр(SetParameter)». Метод «Подключить(Open)» возвращает идентификатор подключенного экземпляра устройства.
  3. Вызов обязательных функций и методов, специфичных для данного типа подключаемого оборудования, с использованием идентификатора подключенного экземпляра устройства.
  4. Получение кода ошибки и описания ошибки методом «ПолучитьОшибку(GetLastError)» в случае ее возникновения.
  5. Отключение устройства методом «Отключить(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>

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

Форма настройки драйвера Записать и закрыть Функции 2 Драйвер и версия Драйвер: Установлен Версия: 1.0.1 Параметры араметрь подключения Модель: Порт: 3 Четность: V Скорость: [_ 3

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

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

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

Action

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

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

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

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

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

Форма настройки драйвера Записать и закрыть Функции Ч 2 Драйвер и версия Тест устройства Драйвер: Установлен Параметры журналирования Параметры Установить драйвер

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

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

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

  1. Ввод значения веса тары, используемой для упаковки взвешиваемого товара.
  2. Получение значения веса товара за вычетом веса тары.
Описание методов
Название (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. Требования к разработке драйверов для фискальных регистраторов

При работе с фискальными регистраторами (АСПД, принтерами чеков для ЕНВД) поддерживаются основные операции:

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

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

В режиме открытого чека производится печать фискальной или нефискальной строки. При печати фискальной строки рассчитываются скидки. Если рассчитанное по формуле "Ценана*КоличествоСумма по строке" значение отлично от 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

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

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

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

HRESULT

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

HRESULT

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

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. Загрузка подготовленного драйвера в конфигурацию БПО

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

Драйверы оборудования Создать Добавить новый драйвер из Файла Наименование _ + а Сканеры штрихкода Поставляемый в составе конфигурации ------------------------------- Драйвер оборудования создание 1С:Предприятие ЕО ф Драйвер оборудования создание Функции ф

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 Считанные устройством данные


Нас находят: 1с библиотека подключаемого оборудования обработка, Требования к разработке драйверов для эквайринговых терминалов, Требования к разработке драйверов подключаемого оборудования


Подписка на новости RSS

Мы на Facebook