Довідковий матеріал

Впровадження торгового обладнання в об'єкти конфігурації.

Для спрощення взаємодії з торговим обладнанням у конфігураціях, які підтримують роботу з торговим обладнанням (<span lang="en-us">"</span>"Управління торгівлею", "Управління виробничим підприємством", "Роздрібна торгівля", "Бухгалтерія підприємства" та "Бухгалтерія для бюджетних установ"), реалізовано механізм взаємодії з торговим обладнанням (додатково можна ознайомитися з демонстраційною конфігурацією "Тестування підключення торгового обладнання", що реалізує механізм взаємодії З ТО). Для вбудовування підтримки торгового обладнання в об'єкти конфігурації необхідно забезпечити виклик і реалізацію описаних нижче методів механізму ТО. За способом сповіщення обладнання умовно можна розділити на 2 категорії: обладнання без сповіщення про події та зі сповіщенням (подійне).1. Загальні методи, обов'язкові для всіх об'єктів. 2. Подійні методи. 2.1. Загальний метод отримання сповіщення про подію.. 2.2. Сканер штрихкоду. 2.3. Зчитувач магнітних карток. 2.4. ККМ Онлайн. 2.5 Зчитувач <span lang="en-us">RFID </span>міток. 3. Специфічні методи керування обладнанням. 3.1. Фіскальний реєстратор. 3.2. Термінал збору даних. 3.3. Дисплей покупця. 3.4. Електронні ваги. 3.5. Ваги з друком етикеток. 3.6. ККМ Офлайн. 3.7. Еквайрингова система. 3.8. Зчитувач <span lang="en-us">RFID </span>міток

1. Загальні методи, обов'язкові для всіх об'єктів

2. Подійні методи

2.1. Загальний метод отримання сповіщення про подію.

2.2. Сканер штрихкоду

2.3. Зчитувач магнітних карток

2.4. ККМ Онлайн

2.5 Зчитувач RFID міток

3. Специфічні методи керування обладнанням

3.1. Фіскальний реєстратор

3.2. Термінал збору даних

3.3. Дисплей покупця

3.4. Електронні ваги

3.5. Ваги з друком етикеток

3.6. ККМ Офлайн

3.7. Еквайрингова система

3.8. Зчитувач RFID міток

 

Оновлено: 12.02.2009

Для спрощення взаємодії з торговим обладнанням у конфігураціях, які підтримують роботу з торговим обладнанням (""Управління торгівлею", "Управління виробничим підприємством", "Роздрібна торгівля", "Бухгалтерія підприємства" та "Бухгалтерія для бюджетних установ"), реалізовано механізм взаємодії з торговим обладнанням (додатково можна ознайомитися з демонстраційною конфігурацією "Тестування підключення торгового обладнання", що реалізує механізм взаємодії З ТО). Для вбудовування підтримки торгового обладнання в об'єкти конфігурації необхідно забезпечити виклик і реалізацію описаних нижче методів механізму ТО. За способом сповіщення обладнання умовно можна розділити на 2 категорії: обладнання без сповіщення про події та зі сповіщенням (подійне).

До групи обладнання без сповіщення про події від пристрою входять фіскальні реєстратори, термінали збору даних, дисплеї покупця, електронні ваги, ваги з друком етикеток, ККМ Офлайн та еквайрингові системи. Для їх підтримки достатньо скористатися загальними методами, обов'язковими для всіх об'єктів, а потім можна викликати функції, специфічні для реалізованого виду ТО.

До групи обладнання зі сповіщенням про події від пристрою (подійне обладнання) входять сканери штрихкодів, зчитувачі магнітних карток, ККМ Онлайн і зчитувачі RFID-міток. Для їх підтримки необхідно скористатися загальними методами, а також реалізувати додаткові подійні методи, специфічні для кожного виду ТО. Деякі види обладнання з цієї групи дають змогу не лише отримувати сповіщення про події, а й надсилати керувальні команди. Для цього механізм надає додаткові методи, специфічні для кожного виду ТО.

1. Загальні методи, обов'язкові для всіх об'єктів

Для використання торгового обладнання в об'єктах конфігурації необхідно викликати такі функції (зазвичай під час відкриття та закриття форми):

ПодключитьКлиента() – підключає все налаштоване торгове обладнання відповідно до видів ТО, що підтримуються цим документом (список підтримуваних видів ТО зазначається у функції "ПоддерживаетсяВидТО").

ОтключитьКлиента() – відключає раніше підключене обладнання.

Увага!
Якщо робота клієнта достроково завершується, обов'язково має бути викликана функція "ОтключитьКлиента"

Також необхідно реалізувати функцію:

ПоддерживаетсяВидТО() – перевіряє підтримку цією формою переданого виду ТО

Приклад коду:

Процедура ПриОткрытии()
    ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
КонецПроцедуры

Процедура ПриЗакрытии()
    ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
КонецПроцедуры

Функция ПоддерживаетсяВидТО(Вид) Экспорт
    Результат = Ложь;
    Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода
     Или Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор Тогда
        Результат = Истина;
    КонецЕсли;
    
    Возврат Результат; 
КонецФункции

2. Подійні методи

У розділі описано подійні методи для кожного виду ТО, що підтримує сповіщення про події від пристрою.

2.1. Загальний метод отримання сповіщення про подію.

ВнешнееСобытие() – викликається у разі настання зовнішньої події в системі.

Приклад коду:

Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Не ВводДоступен() Тогда
        Возврат; 
    КонецЕсли; 

    ПолучитьСерверТО().ОбработатьВнешнееСобытие(Событие, Данные, ЭтаФорма); 
КонецПроцедуры

2.2. Сканер штрихкоду

Для використання сканера штрихкоду в документах необхідно додатково реалізувати такі функції:

СШКНоменклатура() – виникає, якщо виявлений ШК належить номенклатурі.

СШКСерийныйНомер() – виникає, якщо виявлений ШК належить серійному номеру.

СШКИнформационнаяКарта() – виникає, якщо виявлений ШК належить інформаційній картці.

СШКНеизвестныйКод() – виникає, якщо виявлений ШК не зареєстровано в базі.

СШКОшибка() – виникає, якщо під час обробки ШК сталася помилка.

Усі перелічені функції є обов'язковими для реалізації для цього виду ТО.

Приклад коду:

Функция СШКНоменклатура(Номенклатура, Характеристика, Серия, Качество, Единица, Количество, СШК) Экспорт
    Результат = Истина;
    Возврат Результат; 
КонецФункции

Функция СШКСерийныйНомер(Номер, СШК) Экспорт
    Результат = Истина;
    Возврат Результат;
КонецФункции

Функция СШКИнформационнаяКарта(Карта, СШК) Экспорт
    Предупреждение("Підбір інформаційних карток у цій формі не передбачено!");
    Возврат Истина;
КонецФункции

Функция СШКНеизвестныйКод(Штрихкод, ТипКода, СШК) Экспорт
    Возврат Ложь;
КонецФункции
Процедура СШКОшибка(Ошибка, Штрихкод, ТипШК, СШК) Экспорт
    Текст = ПолучитьСерверТО().ПолучитьТекстОшибкиСШКТО(Ошибка, Штрихкод, ТипШК);
    Предупреждение(Текст); 
КонецПроцедуры

Подійні функції повинні містити той самий набір аргументів, що наведений у прикладі.

2.3. Зчитувач магнітних карток

Для використання зчитувача магнітних карток у документах необхідно додатково реалізувати такі функції:

СМКИнформационнаяКарта() – виникає, якщо виявлений код належить інформаційній картці.

СМКНеизвестныйКод() – виникає, якщо виявлений код не зареєстровано в базі.

СМКОшибка() – виникає, якщо під час обробки коду сталася помилка.

Усі перелічені функції є обов'язковими для реалізації для цього виду ТО.

Приклад коду:

Функция СМКИнформационнаяКарта(Карта, СМК) Экспорт
    Результат = Истина;
    Возврат Результат;
КонецФункции

Функция СМКНеизвестныйКод(Код, СМК) Экспорт
    Результат = Ложь;
    Возврат Результат;
КонецФункции

Процедура СМКОшибка(Ошибка, КодКарты, СМК) Экспорт
    Текст = ПолучитьСерверТО().ПолучитьТекстОшибкиСМКТО(Ошибка, КодКарты);
    Предупреждение(Текст); 
КонецПроцедуры
 

 

2.4. ККМ Онлайн

Особливість роботи пристроїв виду ККМ Онлайн полягає в тому, що в будь-який момент (без додаткового втручання користувача) має існувати клієнт, який обробить подію від ККМ. Тобто ККМ Онлайн зазвичай підключається під час запуску застосунку і як клієнт зазначається спеціалізована обробка (входить до складу конфігурації), яка реалізує описані нижче методи та виконує операції з БД.

Для використання зчитувача магнітних карток у документах необхідно додатково реалізувати такі функції:

ОбработатьЗапросККМ() – виникає, якщо на ККМ вводять штрихкод товару.

ЗакрытиеЧекаККМ() – виникає, якщо на ККМ завершують чек.

Усі перелічені функції є обов'язковими для реалізації для цього виду ТО.

Приклад коду:

Функция ОбработатьЗапросККМ(Номенклатура, Характеристика, Серия, Качество,
                            Единица, Количество, Цена, Скидка, НомерСекции, ККМ) Экспорт

    Результат = Истина;

    Если Не ЗначениеЗаполнено(мСклад) Тогда
        Сигнал();
        Сообщение = "Не задано склад за замовчуванням.";
        Результат = Ложь;
    ИначеЕсли Не ЗначениеЗаполнено(мТипЦен) Тогда
        Сигнал();
        Сообщение = "Не задано тип цін.";
        Результат = Ложь;
    Иначе
        Цена        = Ценообразование.ПолучитьЦенуНоменклатуры(Номенклатура, Характеристика, мТипЦен, Неопределено, Единица);
        Скидка      = Ценообразование.ПолучитьПроцентСкидкиНаценкиЦеныНоменклатуры(Номенклатура, Характеристика, мТипЦен);
        НомерСекции = мНомерСекции;
    КонецЕсли;

    Возврат Результат;

КонецФункции
Процедура ЗакрытиеЧекаККМ(Товары, ПризнакВозврата, СуммаНал, СуммаБезнал, НомерЧека, НомерСмены, ККМ) Экспорт

    ДокЧек = Документы.ЧекККМ.СоздатьДокумент();
    ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ДокЧек, глЗначениеПеременной("глТекущийПользователь"), мВалютаРеглУчета, "Продажа");

    ДокЧек.Дата           = РабочаяДата;
    ДокЧек.ВидОперации    = ?(ПризнакВозврата, мВозврат, мПродажа);
    ДокЧек.КассаККМ       = ПолучитьСерверТО().ПолучитьКассуККМ(ККМ);
    ДокЧек.НомерСменыККМ  = НомерСмены;
    ДокЧек.НомерЧекаККМ   = НомерЧека;
    ДокЧек.ЧекПробитНаККМ = Истина;

    Товар = Неопределено;
    Для Каждого Товар Из Товары Цикл
        Сумма                               = Товар.Цена * Товар.Количество;
        ПроцентСкидкиНаценки                = ?(Сумма = 0, 0, 100 * (1 - Товар.Сумма / Сумма));
        СтрокаТЧ                            = ДокЧек.Товары.Добавить();
        СтрокаТЧ.Артикул                    = Товар.Номенклатура.Артикул;
        СтрокаТЧ.ЕдиницаИзмерения           = Товар.ЕдиницаИзмерения;
        СтрокаТЧ.Количество                 = Товар.Количество;
        СтрокаТЧ.Коэффициент                = Товар.ЕдиницаИзмерения.Коэффициент;
        СтрокаТЧ.Номенклатура               = Товар.Номенклатура;
        СтрокаТЧ.ПроцентСкидкиНаценки       = ПроцентСкидкиНаценки;
        СтрокаТЧ.СерияНоменклатуры          = Товар.СерияНоменклатуры;
        СтрокаТЧ.Сумма                      = Товар.Сумма;
        СтрокаТЧ.ХарактеристикаНоменклатуры = Товар.ХарактеристикаНоменклатуры;
        СтрокаТЧ.Цена                       = Товар.Цена;
        ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТЧ, ДокЧек);
    КонецЦикла;

    Если СуммаНал <> 0 Тогда
        СтрокаТЧ           = ДокЧек.Оплата.Добавить();
        СтрокаТЧ.ВидОплаты = мНаличные;
        СтрокаТЧ.Сумма     = СуммаНал;
    КонецЕсли;

    Если СуммаБезнал <> 0 Тогда
        СтрокаТЧ           = ДокЧек.Оплата.Добавить();
        СтрокаТЧ.Сумма     = СуммаНал;
    КонецЕсли;

    Попытка
        ДокЧек.Записать(РежимЗаписиДокумента.Запись);
        Сообщить(СокрЛП(РабочаяДата) + ": Було створено чек """ + СокрЛП(ДокЧек) + """.",
                 СтатусСообщения.Информация);
    Исключение
        Сообщить(СокрЛП(ТекущаяДата()) + ": Було створено, але не записано чек """ + СокрЛП(ДокЧек) + """.");
        ДокЧек.ПолучитьФорму().Открыть();
    КонецПопытки;

КонецПроцедуры

2.5 Зчитувач RFID міток

Для використання зчитувача магнітних карток у документах необхідно додатково реалізувати такі функції:

RFIDЧтениеМеток() – виникає, якщо пристрій надсилає список виявлених міток.

RFIDМеткаВПоле() – виникає, якщо в полі зчитувача з'явилася мітка.

RFIDНетМетокВПоле() – виникає, якщо з поля зчитувача зникли всі мітки.

RFIDОшибкаВДрайвере() – виникає, якщо в процесі роботи драйвера сталася помилка.

Усі перелічені функції є обов'язковими для реалізації для цього виду ТО.

Приклад коду:

Функция RFIDЧтениеМеток(ДанныеИзМеток) Экспорт
    Для Каждого СтрокаДанных Из ДанныеИзМеток Цикл
        ПолучитьСерверТО().ОбработатьВведенныйШтрихкод(СтрокаДанных.ШК, ЭтаФорма);
    КонецЦикла;

    Возврат Истина;
КонецФункции

Функция RFIDМеткаВПоле(Событие, Данные) Экспорт
    Возврат Истина;
КонецФункции

Функция RFIDНетМетокВПоле(Событие, Данные) Экспорт
    Возврат Истина;
КонецФункции

Функция RFIDОшибкаВДрайвере(Событие, Данные) Экспорт
    Возврат Истина;
КонецФункции

3. Специфічні методи керування обладнанням

У цьому розділі наведено методи керування пристроєм, специфічні для кожного виду обладнання, з описом функціональності.

3.1. Фіскальний реєстратор

ПечатьЧекаПКО() - функція здійснює друк чека для прибуткового касового ордера.

ПечатьЧекаРКО() - функція здійснює друк чека для видаткового касового ордера.

ПечатьЧека() - функція здійснює друк чека.

ПолучитьПараметрыНаличнойОплаты() - функція здійснює отримання параметрів готівкової оплати.

ВнестиСумму() - функція здійснює внесення суми до ФР.

ОтчетБезГашения() - функція здійснює зняття звіту без гасіння.

ОтчетСГашением() - функція здійснює зняття звіту з гасінням.

ПечатьТекста() - функція здійснює друк масиву довільних рядків.

ПоддерживаетсяСмешанныйРежимПечати() - функція перевіряє можливість друку нефіскальних рядків у фіскальному чеку.

3.2. Термінал збору даних

ВыгрузитьТаблицуТСД() - функція здійснює вивантаження таблиці до термінала збору даних.

ЗагрузитьТаблицуТСД() - функція здійснює завантаження таблиці з термінала збору даних.

3.3. Дисплей покупця

ВывестиСтрокуНаДисплейПокупателя() - функція здійснює виведення рядка на дисплей покупця.

ВывестиСтрокиНаДисплейПокупателя() - функція здійснює виведення рядків на дисплей покупця.

ОчиститьДисплейПокупателя() - Функція очищує дисплей покупця.

3.4. Електронні ваги

ТарированиеЭВ() - функція задає вагу тари на електронних вагах.

ПолучитьВесЭВ() - функція здійснює отримання ваги від електронних ваг.

3.5. Ваги з друком етикеток

ВыгрузитьТоварыВесы() - функція вивантажує таблицю товарів у ваги з друком етикеток.

ОчиститьТоварыВВесах() - функція очищує таблицю товарів у вагах з друком етикеток.

3.6. ККМ Офлайн

ПолучитьПараметрыВыгрузкиOffline() - функція здійснює отримання параметрів вивантаження даних у ККМ Офлайн.

ВыгрузитьТоварыККМ() - функція здійснює вивантаження таблиці товарів у ККМ Офлайн.

ЗагрузитьОтчетОПродажах() - функція здійснює завантаження звіту про продажі з ККМ Офлайн.

ЗавершитьЗагрузкуОтчетаОПродажах() - функція сповіщає ККМ Офлайн про закінчення завантаження звіту.

ПолучитьПЛУПоШтрихкоду() - функція повертає ПЛУ товару за штрихкодом для заданого об'єкта драйвера ККМ Офлайн.

3.7. Еквайрингова система

ОплатитьПлатежнойКартой() - функція виконує оплату банківською карткою.

ОтменитьПлатежПоПлатежнойКарте() - функція виконує скасування раніше здійсненого платежу банківською карткою.

ВернутьПлатежПоПлатежнойКарте() - функція виконує операцію повернення платежу на банківську картку.

ИтогиДняПоКартам() - функція виконує звірку підсумків за банківськими картками з банком

ПоддерживаетсяСверкаИтогов() - функція перевіряє можливість виконання операції "Звірка підсумків"

ПреавторизацияПоПлатежнойКарте() - функція виконує преавторизацію банківською карткою.

ЗавершитьПреавторизацииПоПлатежнойКарте() - функція виконує завершення преавторизації банківською карткою.

ОтменитьПреавторизациюПоПлатежнойКарте() - функція виконує скасування преавторизації банківською карткою.

3.8. Зчитувач RFID міток

ПолучитьКоличествоМетокRFID() - функція здійснює виявлення міток у полі зчитувача та повертає в параметрі кількість виявлених міток.

ПрочитатьДанныеИзМетокRFID() - функція зчитує всі дані з виявлених міток і повертає в параметрі структуру, що містить ідентифікатори міток і дані.

ЗаписатьДанныеВМеткиRFID() - функція записує передані дані до міток, що перебувають у полі зчитувача.

УстановитьРежимДрайвераRFID() - функція встановлює режим роботи драйвера (активний/пасивний).

ОткрытьСессиюRFID() - функція відкриває нову сесію для читання даних із міток, що потрапляють у поле зчитувача.

ЗакрытьСессиюRFID() - функція закриває раніше відкриту сесію.

Записатися телефоном