Связка платформы 1С:Предприятие 7.7 (например, популярной конфигурации «Торговля и Склад 9.2») и современного кассового оборудования — задача, с которой часто сталкиваются администраторы и разработчики при автоматизации розничной торговли. Особую сложность вызывает сценарий, когда ККТ (в нашем случае популярный фискальный регистратор АТОЛ 30Ф) подключен к локальному компьютеру пользователя по USB, а сама база 1С работает в сессии службы терминалов (RDP) на сервере под управлением устаревшей, но все еще используемой операционной системы Windows Server 2003.
В этой статье мы подробно разберем, как правильно спроектировать такую архитектуру, настроить физическое подключение, пробросить порты на сервер терминалов, зарегистрировать необходимые компоненты и запустить печать чеков из «семерки» без сбоев и конфликтов.
Перед тем как приступить к практической настройке, проанализируем доступные варианты интеграции кассы АТОЛ 30Ф с сервером терминалов. Выделяют два основных подхода:
FDSVC в старых версиях драйверов или встроенный Веб-сервер в современных ДТО 10). 1С на сервере отправляет команды печати чека не на локальный порт, а напрямую по IP-адресу компьютера кассира через сетевой порт.Мы пошагово разберем оба варианта настройки, чтобы вы могли выбрать наиболее стабильный и подходящий для вашей инфраструктуры способ.
---
Это классический и наиболее простой в реализации способ, не требующий сложной сетевой маршрутизации между сервером и локальным ПК.
Подключим кассовый аппарат АТОЛ 30Ф к USB-порту локального компьютера кассира. Для того чтобы операционная система определила кассу, необходимо установить драйверы торгового оборудования АТОЛ. В процессе установки будут установлены драйверы виртуального COM-порта (обычно это драйверы USB-to-UART от Silicon Labs или собственные USB-драйверы АТОЛ).
После успешной установки откроем Диспетчер устройств Windows на локальном компьютере и развернем ветку Порты (COM и LPT). Мы должны увидеть новые устройства. Как правило, АТОЛ 30Ф создает два виртуальных порта:
COM3) — используется для управления ККТ и печати чеков из товароучетной системы.COM4) — используется службой Ethernet-over-USB (EoU) для передачи пробитых чеков в ОФД через интернет локального компьютера.Обязательно запомним номер порта, предназначенного для управления кассой (в нашем примере — COM3).
Для того чтобы сервер терминалов увидел наш локальный порт, его необходимо перенаправить. Выполним следующие действия на локальном компьютере:
Win + R, введем mstsc и нажмем Enter).Установим RDP-соединение с сервером. Нам необходимо убедиться, что операционная система Windows Server 2003 успешно приняла проброшенный порт. Для этого откроем командную строку на сервере (Пуск -> Выполнить -> cmd) и введем следующую команду:
change port /query
Эта команда выведет список всех COM-портов, доступных в вашей текущей терминальной сессии. В списке должна появиться строка вида:
COM3 = \Device\RdpDrPort\;COM3:2\tsclient\COM3
Если вы видите подобную запись, это означает, что порт успешно проброшен и готов к работе. Если команда не вывела порты с меткой \tsclient\, проверьте настройки групповых политик (GPO) на сервере терминалов — там может быть запрещено перенаправление LPT- и COM-портов клиентов.
Для работы 1С с кассой на сервере Windows Server 2003 также должен быть установлен драйвер торгового оборудования АТОЛ. Версия драйвера на сервере должна строго соответствовать версии драйвера, установленного на локальном компьютере кассира.
После установки драйвера нам необходимо зарегистрировать динамическую библиотеку (внешнюю компоненту), через которую 1С взаимодействует с кассой. Для старой 8-й версии драйверов АТОЛ (ДТО 8) такой библиотекой является FprnM1C82_54FZ.dll (или FprnM1C.dll для более ранних версий).
Запустим командную строку на сервере от имени Администратора и зарегистрируем библиотеку с помощью утилиты regsvr32:
regsvr32 "C:\PathToDll\FprnM1C82_54FZ.dll"
В случае успешной регистрации на экране появится соответствующее информационное сообщение. Также рекомендуется скопировать эту библиотеку в каталог с установленной платформой 1С 7.7 (в папку BIN) или непосредственно в каталог базы данных.
Рассмотрим, как подключить обработку обслуживания кассы в самой 1С 7.7:
frATOL54_comm.ert или специализированную под ФФД 1.05 обработку frATOL54_comm_105.ert) в каталог базы данных в папку \ExtForms\Equip\..efd (например, fr_Atol30F_105.efd).COM3) и скорость обмена данными (для ККТ АТОЛ стандартная скорость по умолчанию обычно составляет 115200 или 19200).Важный нюанс при работе нескольких пользователей:
Если на одном сервере в одной базе данных работают несколько кассиров с разными кассами, стандартный механизм 1С 7.7 может перезаписывать настройки оборудования, так как в типовой конфигурации «Торговля и Склад» настройки часто привязываются к имени компьютера, а в терминале имя компьютера сервера для всех общее (или привязывается к сетевому имени клиента, что требует правильной обработки).
Чтобы избежать конфликтов, убедимся, что каждый пользователь заходит в 1С под своим уникальным именем. В процессе пробития чека внешняя обработка формирует служебный XML-файл с параметрами чека. Нам нужно проследить, чтобы этот файл сохранялся в индивидуальной папке пользователя (каталоге пользователя в 1С 7.7), а не в общем каталоге базы данных. Иначе при одновременной печати чеков кассиры будут блокировать файлы друг друга, вызывая ошибки записи.
---
Если вы столкнулись с тем, что чек на кассе печатается очень медленно (с задержкой в несколько секунд на каждую строку), либо RDP-соединение периодически обрывается и связь с портом теряется, рассмотрим альтернативный вариант — работу через службу сетевого доступа FDSVC (Fiscal Device Service).
Этот способ исключает нестабильный RDP-проброс портов и передает команды печати напрямую по протоколу TCP/IP.
C:\Program Files (x86)\ATOL\Drivers8\Utils\Bin\).fdsvc.exe).COM3), укажем порт TCP (по умолчанию используется порт 6220) и запустим службу. Также рекомендуется установить флажок «Автозапуск», чтобы служба стартовала вместе с Windows.6220).Теперь перейдем на сервер терминалов и настроим подключение в 1С:
COM... выберем вариант подключения по TCP/IP (если это поддерживает используемая версия драйвера и обработки обслуживания).192.168.1.15), а в поле «Порт» укажем 6220.При такой схеме команды на печать чека будут уходить с сервера по локальной сети напрямую на ПК кассира, минуя проброс через RDP. Это обеспечивает максимальную скорость и стабильность печати.
---
Проанализируем важные технологические ограничения, с которыми можно столкнуться при администрировании связки Windows Server 2003 и ККТ АТОЛ в современных реалиях.
Описанные в оригинальной теме драйверы серии 8 (ДТО 8) на сегодняшний день устарели и полностью сняты с поддержки производителем. Современные прошивки ККТ работают под управлением драйверов 10-й версии (ДТО 10). При попытке использовать ДТО 10 на Windows Server 2003 вы неизбежно столкнетесь со следующими сложностями:
.NET Framework 4.0 или выше. Windows Server 2003 поддерживает установку .NET Framework только до версии 4.0 включительно. Убедитесь, что эта платформа развернута на вашем сервере, иначе библиотека 1С не сможет инициализироваться.addin_fptr10_x86.dll), даже если сама операционная система Windows Server 2003 является 64-битной.В оригинальном обсуждении упоминается адаптация конфигурации под формат фискальных данных ФФД 1.05. Однако на текущий момент при торговле маркированным товаром (обувь, одежда, лекарства, табак, молочная продукция, пиво, вода) законодательство требует использования формата ФФД 1.2.
Типовые обработки обслуживания для 1С 7.7 от компании «1С» давно не обновляются и не поддерживают ФФД 1.2. Для реализации этих требований вам потребуется:
ЧекККМ, ПриходныйКассовыйОрдер и внешнюю обработку обслуживания, внедряя туда передачу обязательных тегов маркировки (например, тег 1162 и структуры для проверки кодов маркировки перед пробитием чека).Таким образом, организовать стабильную печать чеков на ККТ АТОЛ 30Ф из среды 1С 7.7 через терминал Windows Server 2003 вполне реально. Придерживайтесь описанных шагов, контролируйте права доступа к COM-портам в терминальных сессиях и корректность разделения пользовательских каталогов для бесконфликтной записи XML-файлов обмена.