Подключение торгового оборудования в конфигурации
Подключение торгового оборудования в данной конфигурации реализовано при помощи нескольких специализированных обработок, процедур глобального модуля и модулей форм документов «Чек», «Расходная розничная», «Отчет кассовой смены».
Настройка подключения торгового оборудования на конкретном рабочем месте пользователя целиком реализована в обработке «Настройка торгового оборудования». По результатам работы данной обработки формируется и записывается файл 1stRozn.txt в Windows каталог компьютера. Этот файл настройки считывается и обрабатывается специальной обработкой «ПодключениеТорговогоОборудования», которая производит фактическую загрузку и подключение драйверов торгового оборудования. Вызов обработки файла настройки производится при начале работы системы и после записи файла настройки в обработке «Настройка торгового оборудования».
Подключение сканера штрих-кода, дисплея покупателя и ActiveBarcode в конфигурации отличается от метода подключения ККМ.
Поскольку драйверы сканера штрих-кода, дисплея покупателя и ActiveBarcode являются относительно универсальными, поэтому алгоритм работы со сканером штрих-кода и дисплеем покупателя записан непосредственно в модулях форм документов «Чек» и «Расходная розничная».
Кроме того, алгоритм работы со сканером штрих-кода записан непосредственно в модулях форм справочника «Номенклатура» и «Единицы».
Объект ActiveBarcode использован в общей таблице «Этикетка», которая вызывается из всех мест конфигурации при печати этикетки товара.
Драйверы различных моделей ККМ имеют существенные различия в методах их использования, поэтому процедуры работы с драйверами ККМ вынесены в конфигурации в отдельные специальные обработки (для каждого вида ККМ должна существовать своя собственная обработка). Типы ККМ, доступные для подключения к конфигурации (для которых существуют драйверы и реализованы специальные обработки обслуживания) заносятся в конфигурации в перечисление «ТипыККМ». В глобальном модуле существует специальная функция ИмяОбработкиОбслуживанияККМ(), которая предназначена для определения имени обработки обслуживания для заданного типа ККМ. Текст данной функции должен содержать текст примерно следующего содержания:
Если ККМ.ТипККМ=Перечисление.ТипыККМ.Электроника92 Тогда
Возврат "ОбслуживаниеЭлектроника92";
ИначеЕсли ККМ.ТипККМ=Перечисление.ТипыККМ.Omron2810 Тогда
Возврат "Обслуживание0тгоп2810";
ИначеЕсли
ККМ.ТипККМ=Перечисление.ТипыККМ.Элвес Тогда
Возврат "ОбслуживаниеККМЭлвес";
ИначеЕсли
ККМ.ТипККМ=Перечисление.ТипыККМ.Штрих Тогда
Возврат "ОбслуживаниеККМЭлвес";
ИначеЕсли
ККМ.ТипККМ=Перечисление.ТипыККМ.Samsung Тогда
Возврат "ОбслуживаниеККМSamsung";
ИначеЕсли
ККМ.ТипККМ=Перечисление.ТипыККМ.MemoPlusII Тогда
Возврат "ОбслуживаниеMemoPlusII" ;
КонецЕсли;
Специальные обработки обслуживания ККМ должны реализовывать следующие процессы: «Подключить», «ПечататьЧек», «ЗагрузкаТоваров», «ЗакрытиеСмены». Примерный текст обработки обслуживания может быть следующим:
//——————————————
Перем ККМ;
Перем Процесс;
Перем Расшифровка;
//——————————————
Процедура ЗакрытиеСмены()
Если ККМ.РежимККМ=ПереЧисление.РежимыККМ.ФР Тогда
// закрытие смены ККМ ХХХХХХХХ в режиме ФР
// ....
ИначеЕсли ККМ.РежимККМ=Перечисление.РежимыККМ.OffLine Тогда
// закрытие смены ККМ ХХХХХХХХ в режиме OffLine
// ....
ИначеЕсли ККМ.РежимККМ=Перечисление.РежимыККМ.OnLine Тогда
// закрытие смены ККМ ХХХХХХХХ в режиме OnLine
// ....
КонецЕсли;
КонецПроцедуры
//——————————————
Процедура ЗагрузкаТоваров()
Если Pa6oтaKKMвOFFLine=0 Тогда
Возврат;
КонецЕсли;
// загрузка товаров в ККМ ХХХХХХХХ в режиме OFFLine
// ....
КонецПроцедуры
//——————————————
Процедура ПечататьЧек()
Док=Расшифровка.Получить("Документ");
Если ПустЗнач(Док)=1 Тогда
Возврат;
КонецЕсли;
// печать чека на ККМ ХХХХХХХХ в режиме ФР
// ....
Док.ЧекПробитККМ=1;
Док.ККМ=ККМ;
КонецПроцедуры
//——————————————
Процедура Подключить()
Если ККМ.РежимККМ=Перечисление.РежимыККМ.ФР Тогда
// подключение ККМ ХХХХХХХХ в режиме ФР
// ....
ИначеЕсли ККМ.РежимККМ=Перечисление.РежимыККМOffLine Тогда
// подключение ККМ ХХХХХХХХ в режиме OffLine
// ....
ИначеЕсли ККМ.РежимККМ=Перечисление.РежимыККМOnLine Тогда
// подключение ККМ ХХХХХХХХ в режиме OnLine
// ....
КонецЕсли ;
КонецПроцедуры
//——————————————
Процедура ПриОткрытии()
Если глФлагРасшифровки=1 Тогда
Расшифровка=глРасшифровка;
Если Расшифровка.РазмерСписка()<>0 Тогда
ККМ=Расшифровка.Получить("ККМ") ;
Если ПустЗнач(ККМ)=1 Тогда
СтатусВозврата(0) ;
Возврат;
КонецЕсли;
Если НЕ(ККМ.ТипККМ=Перечисление.ТипыККМ.ХХХХХХХХХ) Тогда
Сообщить("Передан неверный тип ККМ") ;
СтатусВозврата(0) ;
Возврат;
КонецЕсли;
Процесс=Расшифровка.Получить("Процесс") ;
Если Процесс="Подключить" Тогда
Подключить();
ИначеЕсли Процесс="ПечататьЧек" Тогда
ПечататьЧек() ;
ИначеЕсли Процесс="ЗагрузкаТоваров" Тогда
ЗагрузкаТоваров() ;
ИначеЕсли Процесс="ЗакрытиеСмены" Тогда
ЗакрытиеСмены();
Иначе
Сообщить("Передан неизвестный процесс");
КонецЕсли;
СтатусВозврата(0) ;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//——————————————
Образцы специальных обработок обслуживания ККМ можно посмотреть в поставляемой конфигурации на примере обработок «ОбслуживаниеЭлектроника92» и «Обслуживание Omron2810».