Найти тему
Будни одинэсника | 1С

Принципы работы с торговым оборудованием в 1С для технических специалистов

Оглавление

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

5 простых шагов, чтобы все работало!

Цель публикации - систематизировать весь процесс подключения торгового оборудования к 1С.

Сквозная задача этой заметки:

Представим, что мы пришли к клиенту и нам нужно настроить работу ККМ с 1С:Бухгалтерией.
У нас есть кассовый аппарат, компьютер на котором стоит 1С и бухгалтер, который хочет вводить ПКО в 1С нажимать кнопку и на кассе бы выходил чек.

1️⃣ ШАГ 1

Физическое подключение.

Чтобы торговое оборудование работало оно как минимум должно быть подключено к компьютеру. Это кажется очевидным, но практика говорит, что даже на этом этапе все идет не по плану.

Несколько примеров:

  1. Пользователь приобрел кассу, которая подключается по COM порту, а у него современный ноутбук - Epic fail...
  2. Пользователь хочет подключить сканер, ридер магнитных карт, дисплей покупателя, ККМ, эквайринговый терминал к одному компьютеру. Все оборудование работает по USB, при этом в компьютере 4 порта два из которых заняты мышкой и клавиатурой;
  3. Пользователь купил весы с печатью этикеток, которые взаимодействуют с 1С по проводному Ethernet. Вся локальная сеть пользователя работает по Wi-Fi.

Итог: Мы должны точно понимать, а можем ли мы подключить это оборудование к компьютеру и как оно будет взаимодействовать с ним!

Если даже оборудование было подключено до нас, то все равно нужно проверить правильно ли его подключили. Некоторые люди могут USB вставить в HDMI.

2️⃣ ШАГ 2

Взаимодействие оборудования с операционной системой.

Оборудование подключили теперь нужно понять, а понимает ли это оборудование операционная система.

Проверить легко. Заходим в диспетчер устройств и смотрим чтобы не было ни одного оборудования с желтым восклицательным знаком. Если такие есть, то нужно установить драйвер оборудования для этого устройства. Драйвера берем с сайтов производителей устройств.

Например, чтобы установить драйвер эмуляции COM порта для сканера Metrologic, нам потребуется драйвер который выпускает фирма Metrologic, а не фирма АТОЛ.
Если проводить аналогию с Принтером, когда вы его устанавливаете вы берете драйвер для принтера с сайта производителя этого принтера, а не с сайта производителя Word'а из которого вы печатаете документ.

Нужно понимать, что драйвер оборудования выпускается под определенную операционную систему. Драйвер для ОС Linux не подойдет для Windows и драйвер под архитектуру x64 не подойдет для компьютеров x86.

3️⃣ ШАГ 3

Библиотека обслуживания торгового оборудования.

Отлично! Мы удостоверились, что ОС понимает наше оборудование. Теперь мы должны понять, что это оборудование может делать какие-то действия.

Для этого нам потребуется библиотеки обслуживания торгового оборудования (они называются драйвера торгового оборудования (ДТО), не путать с драйверами для операционной системы из второго пункта).

Зачем нужен ДТО? Дело в том, что Windows после установки драйвера ОС понимает, как обмениваться с устройством информацией, но он совершено не знает, что это устройство умеет и как им управлять. Управлением устройством занимается ДТО. Он посылает нужные команды и эти команды понимает оборудование. Драйвер Windows совершено не знает, какую нужно послать команду чтобы открылся денежный ящик, а ДТО знает.

При установке ДТО в ОС регистрируются библиотеки DLL, вызывая команды из DLL можно управлять оборудованием.

Драйверы торгового оборудования выпускают либо производители оборудования или организации специализирующиеся на торговых решениях (АТОЛ, Штрих-М, 1С-Рарус, Сканкод, Клеверенс и т.д.).

Обычно комплект ДТО включает в себя тестовую утилиту, через которую можно посылать команды оборудованию, вот с помощью этой утилиты и можно проверить можно ли управлять оборудованием с компьютера.

4️⃣ ШАГ 4

Обработки обслуживания для 1С:Предприятия

Вот только теперь мы добрались до 1С.

1С тоже ничего не знает про оборудование, мы тоже должны его научить с ним работать. Типовые решения пишутся универсально не зависимо какое оборудование к нему потом будет подключаться. Как это реализовано?

Например, у нас есть две разные кассы от разных производителей, от АТОЛ и Штрих-М, эти производители выпускают свои ДТО, набор команд в их DLL разный и называются они по разному.

1С выпускает правила и говорит нам все равно какие у вас команды и как они у вас называются, нам важно чтобы вы написали модуль 1С (внешнею обработку) в которой будут определенные функции вот с такими названиями, что внутри этих функций будет происходить нам все равно. Мы в своем типовом коде просто сошлемся на эту функцию, на вход что-то подадим и будем ждать ответ в таком-то формате.

И что получается, 1С пишет свою программу и вставляет команду открыть денежный ящик. Эта команда вызывает функцию из обработки обслуживания, которая всегда называется ОткрытьДенежныйЯщик() внутри этой функции разработчик написал, как он вызовет свою DLL, что он туда посылает и что в ответ получает. Все!

Таким образом чтобы 1С поняла, как работать с оборудованием ей нужно подсунуть этот обработчик. Для всех основных видов оборудования уже написаны все обработчики их пишут те же сервисные компании (АТОЛ, Штрих-М, 1С-Рарус, Сканкод, Клеверенс и т.д.).

Подключаем обработчик к 1С жмем тест смотрим, что оборудование выдает нам результат.

5️⃣ ШАГ 5

Проверяем работу на программе.

Открывает документ ПКО и пробуем пробить чек!

#1c #торговоеоборудование #бухгалтерия #программист #администрирование #ккм