Как подключить ККМ к серверной базе 1С: Разбор архитектурных схем и пошаговая настройка

Системный администратор 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

Переход с файлового режима работы на клиент-серверный вариант (SQL) — это логичный шаг при масштабировании бизнеса. Однако перед системными администраторами и разработчиками встает серьезный вопрос: как подружить торговое оборудование (в частности, ККМ/ККТ), физически находящееся в магазине, с базой данных 1С, развернутой на удаленном сервере? Рассмотрим детально особенности архитектуры, разберем возможные варианты подключения, выявим их плюсы и минусы, а также изучим специфику настройки под различными операционными системами.

Схема 1. Тонкий клиент 1С — самый надежный и рекомендуемый вариант

При использовании тонкого клиента база данных находится на сервере приложений 1С (и СУБД), а на рабочем месте кассира устанавливается локальное приложение Тонкий клиент 1С. Рассмотрим, как в данном случае происходит взаимодействие с кассовым аппаратом.

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

Проанализируем пошаговый алгоритм работы этой схемы:

  1. Сервер 1С хранит конфигурацию, данные и бизнес-логику. В момент проведения чека сервер подготавливает XML-пакет с данными чека в соответствии с требованиями ФЗ-54.
  2. Подготовленный XML-пакет передается через веб-сервер (по протоколу HTTP/HTTPS) или напрямую через рабочий процесс сервера 1С на локальный компьютер тонкого клиента.
  3. Локальный тонкий клиент принимает этот пакет и обращается к интеграционному компоненту 1С (внешняя библиотека формата .dll или .so), который предварительно загружается из базы данных и регистрируется в операционной системе кассира.
  4. Интеграционный компонент передает команду локально установленному драйверу производителя ККТ (например, ДТО 10 от АТОЛ или драйвер Штрих-М).
  5. Локальный драйвер отправляет команду непосредственно на физический порт кассового аппарата (USB, COM или локальный IP-адрес).

Преимущества схемы: Высокая отказоустойчивость, мгновенная печать чеков без сетевых задержек, простота настройки торгового оборудования в стандартном интерфейсе 1С. Даже при кратковременных просадках скорости интернета сессия тонкого клиента удерживает стабильное соединение.

Схема 2. Работа через веб-клиент (браузер)

Существует распространенное заблуждение, что при публикации базы на веб-сервере и работе через обычный интернет-браузер для ККМ «вообще ничего не нужно настраивать локально». Выясним, почему это не так.

Любой современный браузер работает в изолированной среде («песочнице») и из соображений безопасности не имеет прямого доступа к аппаратным ресурсам компьютера (включая USB и COM-порты). Чтобы заставить кассу печатать чеки из браузера, нам необходимо выполнить следующие действия:

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

Схема 3. Подключение через Удаленный рабочий стол (RDP)

Этот вариант часто выбирают из-за экономии лицензий или привычки администрирования. При этой схеме и сама 1С, и ее сеанс запускаются непосредственно на сервере терминалов (RDP-сервере), а касса физически подключена к тонкому клиенту (локальному ПК кассира). Для связи сервера с кассой используется механизм проброса портов (Port Redirection).

Разберем, почему классический проброс портов по RDP часто вызывает критические сбои в работе кассиров:

Если отказаться от RDP невозможно, рекомендуется использовать альтернативные способы связи ККМ с удаленным сервером вместо стандартного проброса портов:

Вариант А: Использование сетевых интерфейсов ККМ (TCP/IP). Современные ККТ оснащаются сетевыми платами Ethernet или модулями Wi-Fi. Если объединить магазин и сервер в единую локальную сеть с помощью VPN-туннеля (например, IPSec или OpenVPN), то серверная 1С сможет общаться с кассой напрямую по ее сетевому IP-адресу, полностью игнорируя RDP-сессию клиента.

Вариант Б: Локальный веб-сервер ККМ. Драйверы производителей (например, АТОЛ ДТО 10) имеют встроенную службу веб-сервера. Вы можете запустить эту службу на локальном ПК кассира. При этом касса будет доступна по HTTP-протоколу. В настройках торгового оборудования в 1С на удаленном сервере указывается тип подключения «Веб-сервис ККМ» и прописывается внешний IP-адрес компьютера кассира (или его доменное имя в VPN). Обмен данными будет идти по надежному протоколу HTTP/JSON.

Вариант В: Стороннее специализированное ПО (например, KKM-Server). Программа устанавливается на компьютер кассира, берет под управление подключенную по USB кассу и транслирует ее в сеть в виде веб-службы. На сервере 1С настраивается подключение к этому адресу, что гарантирует стабильный обмен командами даже по слабым каналам связи.

Специфика операционных систем: Windows vs Linux

Проанализируем влияние выбора операционной системы на сервере и рабочих местах на стабильность работы касс.

Сценарий 1: Сервер на Linux, рабочие места на Windows. Это оптимальный по стоимости и стабильности вариант. Серверная часть 1С и СУБД PostgreSQL работают под управлением производительной ОС Linux, экономя бюджет на лицензиях Microsoft. Кассиры при этом работают на привычной ОС Windows через Тонкий клиент 1С. Все драйверы ККМ устанавливаются в Windows стандартным образом, никаких сложностей с совместимостью не возникает.

Сценарий 2: Рабочие места кассиров переводятся на Linux. Если компьютеры кассиров работают под управлением отечественных дистрибутивов (Astra Linux, РЕД ОС, Alt Linux), администрирование усложняется. Рассмотрим важные шаги для настройки ККМ в среде Linux:

  1. Права доступа к портам: В Linux устройства подключаются как файлы (например, /dev/ttyACM0 или /dev/ttyUSB0). По умолчанию доступ к ним есть только у суперпользователя root. Чтобы пользователь 1С мог отправлять чеки на печать, его необходимо добавить в группу владельцев портов (обычно это dialout или uucp). Выполним в терминале команду: sudo usermod -aG dialout имя_пользователя_linux
  2. Настройка правил udev: Чтобы права на порт не сбрасывались при каждом перезапуске кассы или ПК, создадим файл правил udev. Например, в каталоге /etc/udev/rules.d/ создадим файл 99-kkm.rules со следующим содержимым:
    
    KERNEL=="ttyACM[0-9]*", TAG+="udev-acl", OWNER="root", GROUP="dialout", MODE="0666"
    
  3. Зависимости библиотек: Формы настроек торгового оборудования в 1С на Linux требуют наличия установленных графических библиотек веб-браузера. Обязательно убедитесь, что в системе установлена библиотека libwebkit2gtk, выполнив соответствующую команду установки для вашего дистрибутива (например, sudo apt-get install libwebkit2gtk-4.0-37). Без нее окно настроек параметров ККТ в 1С может просто закрываться с критической ошибкой.

Общие рекомендации для успешного внедрения

Вне зависимости от выбранного варианта подключения ККМ к серверу 1С, придерживайтесь следующих правил для обеспечения непрерывности продаж:

← На главную