Меню


Курсы СтимулСправочникПолезные материалы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ДаlongPLU товара (Индекс товара в весах)
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 не установлено значение.
ImageFieldNameДаstringУникальное имя поля в шаблоне этикетки.
LeftДаdecimalПозиция левой границы поля по оси X (в миллиметрах).
TopДаdecimalПозиция верхней границы поля по оси Y (в миллиметрах).
WidthНетdecimalШирина поля в миллиметрах.
HeightНетdecimalВысота поля в миллиметрах.
OrientationНетlongОриентация содержимого поля.
Имеет одно из следующих значений: 0, 90, 180, 270. По умолчанию 0.
BorderНетstringСтрока, определяющая рамки поля. Имеет одно или несколько значений через разделитель - пробел: "Left", "Top", "Right" или "Bottom". По умолчанию "".
BorderWidthНетlongТолщина рамки в пикселах, по умолчанию 1.
BorderStyleНетstringСтиль рамки. Имеет одно из значений: "Dotted", "Dashed", "Solid", "Double". По умолчанию "Solid".
StaticНетbooleanСтатичность. По умолчанию "false".
ValueПри Static = "true"stringВ случае когда Static = "true", выступает в роли общего значения. Иначе как значение по умолчанию, т.е. используется когда для Labels.Label.Record.Value не установлено значение. Кодируется текстом в кодировке Base64.

UserData

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

Labels

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

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

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

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

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

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

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

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

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

HRESULT

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

HRESULT

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

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

НетВиды оплаты при оплате платежными картами
RecordSortCodeДа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.

СекцияНаименование атрибутаОбязательное наличие в структуреТипы данныхОписание атрибута
PriceListFullLoadДаbooleanПризнак выгрузки "Частичная/Полная". При полной выгрузке предполагается полная очистка товаров в смежной POS-системе.
ProcessedНетdatetimeПризнак обработки файла
GroupsНетТаблица групп товаров
RecordGroupCodeДаstringКод, идентификатор группы
NameДаstringНаименование
GroupCodeДаstringКод группы товаров , в которую вложена текущая группа
GoodsНетТаблица товаров
RecordGoodCode<Определяется>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Признак обработки файла
ReportSessionNumberДаstringНомер смены
DateOpenНетdatetimeДата открытия смены
DateCloseНетdatetimeДата закрытия смены
GoodsДаСписок проданных товаров
RecordGoodCodeДаstringКод, идентификатор товарной позиции
QuantityДаdecimalКоличество проданного товара
PriceДаdecimalЦена, по которой продан товар (без учета скидок и наценок)
AmountДаdecimalСумма (с учетом скидки)
PaymentsДаСписок оплат
RecordPaymentPaymentTypeДа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" входящий в состав библиотеки. Веб-сервис обрабатывает запросы на получение и обработку данных от программно-аппаратных комплексов и возвращает стандартный результат во внешний программно-аппаратный комплекс.

Описание методов
Имя методаПараметрыТип возвращаемого значенияОписание метода
ИмяТипОписание
ConnectDeviceIDstringИдентификатор устройства

Response

Проверка регистрации оборудования в ИБ по уникальному идентификатору оборудования
GetDocTypesDeviceIDstringИдентификатор устройства

Response

Получение типов документов поддерживаемых в системе
GetSettings---

Settings

Получение настроек для оборудования.
Возвращается структура в XML, в соответствии с описанием секции settings
файлового обмена с ККМ-Offline
GetPriceListDeviceIDstringИдентификатор устройства

PriceList

Получение списка товаров и цен для оборудования.
Возвращается структура в XML, в соответствии с описанием секции PriceList
файлового обмена с ККМ-Offline
PostDocsDeviceIDstringИдентификатор устройства

Response

Передача от устройства документа в целевую конфигурацию.
Передается структура в XML, в соответствии с описанием секции SalesReports
файлового обмена с ККМ-Offline
DocTypestringТип документа
DocumentSalesReportСчитанные устройством данные


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


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

Мы на Facebook