При масштабировании торговой сети перед системными администраторами часто встает задача объединения нескольких торговых точек в единую базу данных. Типичный сценарий: на удаленном сервере развернута конфигурация 1С:Розница (версии ПРОФ), а рабочие места кассиров подключаются к ней удаленно. Когда количество касс достигает 10, классические методы подключения торгового оборудования (ТО) начинают давать серьезные сбои.
В этой статье мы подробно разберем, почему популярный метод проброса COM-портов через RDP и эмуляторы типа VSPE является устаревшим и опасным для стабильной работы бизнеса. Мы детально проанализируем альтернативные архитектурные решения, которые позволят вашим кассам печатать чеки мгновенно, а базе данных — работать без взаимных блокировок.
---
На первый взгляд схема с пробросом COM-портов через стандартный RDP-клиент или виртуальный эмулятор VSPE выглядит привлекательно: она проста в настройке и не требует изменения программной архитектуры. Однако при работе 10 активных касс вы неизбежно столкнетесь со следующими критическими проблемами:
VSPE на терминальном сервере при одновременной работе 10 пользователей часто путает сессии. При кратковременном обрыве связи и переподключении пользователя касса может «отвалиться», сменить виртуальный порт или заблокировать порт для других пользователей.---
Самым опасным следствием медленной работы касс через RDP являются транзакционные блокировки в СУБД. Выясним физику этого процесса.
В момент нажатия кнопки «Пробить чек» в интерфейсе 1С запускается транзакция проведения документа. Упрощенно этот процесс выглядит следующим образом:
НачатьТранзакцию();
Попытка
// 1. Проведение документа "Чек ККМ" в базе данных
// 2. Блокировка таблиц остатков товаров и денежных средств
// 3. Вызов оборудования: Печать чека на ККТ
// 4. Ожидание успешного ответа от ККТ
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
КонецПопытки;
Пока касса медленно печатает чек через RDP и обменивается данными с сервером, транзакция в базе данных остается открытой. В этот момент СУБД жестко блокирует таблицы остатков товаров (например, РегистрНакопления.ТоварыНаСкладах) и кассовых регистров. Если один кассир «подвис» на печати чека на 20 секунд, все остальные 9 касс не смогут провести свои чеки. Они будут ожидать освобождения таблиц, после чего получат критическую ошибку: «Конфликт блокировок при выполнении транзакции».
---
Это наиболее правильный с точки зрения архитектуры 1С подход. Вместо запуска тяжелых RDP-сессий мы публикуем базу данных на веб-сервере (IIS или Apache), а кассиры подключаются к ней через локально установленный Тонкий клиент.
Рассмотрим преимущества этого метода:
АТОЛ ДТО 10 или драйвер Штрих-М) устанавливается локально на компьютере кассира.Разберем по шагам процесс настройки:
---
Если специфика бизнес-процессов требует работы именно в терминальном режиме (RDP), необходимо отказаться от проброса COM-портов в пользу прямого сетевого подключения ККТ.
Современные кассовые аппараты поддерживают передачу данных по протоколу TCP/IP. Реализовать это можно двумя способами:
Современные драйверы (например, АТОЛ ДТО 10) имеют встроенную службу удаленного подключения. На локальном компьютере кассира, к которому подключена касса, активируется сетевая служба драйвера (по умолчанию порт 6220).
В удаленной 1С на сервере в настройках кассы мы выбираем тип подключения TCP/IP, указываем IP-адрес локального компьютера кассира и порт 6220. 1С общается с кассой напрямую по сети, минуя RDP-каналы.
Если кассовые аппараты оснащены LAN-портами или Wi-Fi-модулями, мы можем подключить их напрямую к роутерам на торговых точках.
Рассмотрим схему настройки:
WireGuard или OpenVPN).---
Если интернет-канал на торговых точках нестабилен, лучшим решением будет развертывание схемы РИБ (1 центральный узел на сервере и 10 подчиненных узлов непосредственно на точках).
Проанализируем особенности этого решения:
Единственным минусом РИБ является необходимость администрирования локальных баз на точках и затраты на приобретение лицензий 1С для каждого рабочего места.
---
Если вы ограничены условиями, при которых тонкий клиент или TCP/IP-подключение невозможны, а стандартный RDP-проброс работает нестабильно, необходимо заменить бесплатный VSPE на специализированный софт корпоративного уровня.
Рекомендуем использовать продукт FabulaTech (Serial Port for Remote Desktop). В отличие от стандартных эмуляторов, эта программа:
---
Для наглядности сравним все рассмотренные варианты по ключевым параметрам, чтобы вы могли выбрать оптимальный путь для вашей инфраструктуры:
| Параметр | RDP + VSPE | Тонкий клиент (Web) | Прямой TCP/IP (VPN) | Схема РИБ |
|---|---|---|---|---|
| Скорость печати | Низкая (зависит от пинга) | Максимальная (локальная) | Высокая (сетевой протокол) | Максимальная (локальная) |
| Риск блокировок СУБД | Очень высокий | Минимальный | Низкий | Отсутствует |
| Работа без интернета | Невозможна | Невозможна | Невозможна | Полная автономия |
| Сложность настройки | Простая | Средняя | Высокая (нужен VPN) | Высокая (настройка обменов) |
---
Подключение 10 касс к одной базе 1С:Розница — выполнимая задача, требующая отказа от устаревших технологий. Наш опыт и практика администрирования показывают: