1С:Предприятие 8.2 /
Работа с торговым оборудованием /
Общее
Внедрение торгового оборудования в объекты конфигурации.
1. Общие методы, обязательные для всех объектов
2.1. Общий метод получения оповещения о событии.
2.3. Считыватель магнитных карт
3. Специфичные методы управления оборудованием
Обновлено: 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() - функция закрывает открытую ранее сессию.
Другие материалы по теме:
весы, терминал, штрихкод, характеристика, экспорт, истина, ошибка, торговое оборудование, событие, чек, 95, оборудование, цена, дополнительно, возврат, номенклатура, результат, количество, управление производственным предприятием, товар, данные, сумма, вид, документ
Материалы из раздела: 1С:Предприятие 8.2 / Работа с торговым оборудованием / Общее
Другие материалы по теме:
Общие механизмы товарных документов
Источники данных для расчетов бюджетирования
Внешняя компонента "1C:Фискальный регистратор OPOS"
Учет безналичных денежных средств. Поступление денежных средств
Нас находят: метод ВернутьПлатежПоПлатежнойКарте, какое значение возвращает метод вернутьплатежпоплатежнойкарте в 1с, СШКНоменклатура, ПолучитьСерверТО() ВыгрузитьТоварыККМ, Поддерживаетсявидто весы, ВыгрузитьТаблицуТСД(), эквайринговая бухгалтерия, что такое преавторизация в 1с, Функция СШКСерийныйНомер(Номер СШК), Функция СШКСерийныйНомер
Мы на Facebook