Схема, которая встречается чаще, чем кажется: кассовая программа живёт на терминальном сервере, а сама касса подключена к локальному компьютеру продавца. Между ними — сессия удалённого рабочего стола.
Работает такая связка при соблюдении нескольких условий, и одно из них совсем не очевидно: службу gRPC на сервере приходится запускать руками.
Что понадобится
На локальном компьютере: подключённая касса АТОЛ.
На сервере:
- драйвер ККТ АТОЛ не ниже 10.10.8.24;
- модуль ЕСМ не ниже 1.6.0.0;
- Microsoft Visual C++ runtime — обычно ставится инсталлятором драйвера;
- .NET Framework 4.8 или новее.
Шаг 1. Включить удалённый рабочий стол на сервере
«Настройки» → «Система» → «Удалённый рабочий стол» → включить функцию.
Затем проверьте состояние службы: в оснастке служб она называется «Службы удалённых рабочих столов» (Remote Desktop Services, RDS). Если не запущена — запустите или перезагрузите сервер.
Шаг 2. Пробросить порт с клиента
Это делается в настройках самого подключения, до входа на сервер.
- Нажмите Win + R, введите
mstsc, нажмите ОК. - В окне подключения нажмите «Показать параметры».
- Перейдите на вкладку «Локальные ресурсы».
- В блоке «Локальные устройства и ресурсы» нажмите «Подробнее…».
- Установите флажок напротив пункта «Порты» и нажмите ОК.
- Вернитесь на вкладку «Общие», введите адрес или имя сервера и подключитесь.
Флажок «Порты» — это и есть весь механизм: без него COM-порт кассы в сессию не попадёт, и сервер её просто не увидит.
Шаг 3. Убедиться, что порт пробросился
Находясь в терминальной сессии, откройте командную строку (Win + R, cmd) и выполните:
change port
Команда выведет список проброшенных портов. В нём должен быть COM-порт, к которому касса подключена на локальном компьютере.
Если касса на клиенте висит на COM21, строка будет выглядеть так:
COM21 = \Device\RdpDrPort\;COM21:1\tsclient\COM21
Порта в списке нет — возвращайтесь к шагу 2. Скорее всего, флажок «Порты» не был установлен либо подключение выполнялось со старыми параметрами.

Шаг 4. Запустить службу gRPC вручную
Главная особенность всей схемы, и без неё дальше ничего не получится.
Автоматический запуск службы помещает её в другую сессию Windows. В терминальной среде это означает, что служба работает, но не видит проброшенных в вашу сессию устройств.
Порядок такой:
- Откройте службы и остановите
fptr grpc service. - Перейдите в папку
C:\Program Files\ATOL\Drivers10\KKT\atol-grpc-service\. - Запустите
atol-grpc-service.exeвручную.
В той же папке лежат готовые пакетные файлы start-atol-grpc-service, stop-atol-grpc-service и restart-atol-grpc-service — ими удобно пользоваться при повторных запусках.
Практическое следствие: после перезагрузки сервера или переподключения сессии службу нужно поднимать заново. Это стоит заложить в регламент работы кассира или автоматизировать запуском при входе в сессию.
Шаг 5. Настроить драйвер на сервере
Откройте «Тест драйвера ККТ» на сервере, перейдите в «Свойства».
- «Адрес ПК для удалённого подключения RPC» — оставить пустым. Это поле для другого сценария, и заполнять его здесь не нужно.
- Канал связи — COM / VCOM.
- COM-порт — тот, который пробросился с клиента, из вывода
change port. - Порт сервера GRPC — 4041.
Нажмите «Проверка связи». В строке результата должна появиться информация о кассе: модель, заводской номер, версия прошивки и признак фискализации. Примерно так: «АТОЛ 22 v2 Ф, №00109521959529, версия 5.15.102, ФИСК.»
Если связи нет, порядок проверки — в статье про диагностику связи с ККТ.
Дальше — обычная настройка модуля
С этого момента схема ничем не отличается от локальной: открыть смену, зарегистрировать экземпляр модуля, проверить статусы. Полный порядок.
Не забудьте про правило, которое в терминальной среде нарушается особенно легко: драйвер должен быть запущен всю смену. Разрыв сессии RDP посреди дня — это как раз тот случай, когда связь с кассой рвётся и требует повторной инициализации канала. Подробнее — в шести правилах кассового узла.
Порядок проверки, если не заработало
- Флажок «Порты» установлен в параметрах подключения?
change portпоказывает COM-порт кассы?- Служба gRPC запущена вручную, а не автоматически?
- Поле «Адрес ПК для удалённого подключения RPC» оставлено пустым?
- Указан ли правильный COM-порт в свойствах драйвера — тот, что из вывода команды?
- Порт GRPC равен 4041?
Третий пункт закрывает большинство обращений.
Частые вопросы
Работало, после перезагрузки сервера перестало. Служба gRPC поднялась автоматически и оказалась в другой сессии. Остановите и запустите вручную.
Можно ли подключить несколько касс к одному серверу? Да, но это отдельная схема с несколькими экземплярами ТС ПИоТ — разобрана здесь.
Касса подключена по USB, а не по COM. Драйвер АТОЛ создаёт виртуальные COM-порты, так что проброс работает так же. Смотрите, какой порт видит система на клиенте.
Нужно ли что-то устанавливать на клиентском компьютере? Только драйвер устройства, чтобы касса определилась и получила COM-порт. Кассовая программа и модуль живут на сервере.
Почему нельзя просто указать адрес сервера в поле RPC? Это другой сценарий подключения. При пробросе порта касса для сервера выглядит как локальное устройство, и поле должно оставаться пустым.
Коротко
Схема собирается из пяти шагов: включить удалённый рабочий стол на сервере, установить флажок «Порты» в локальных ресурсах подключения, убедиться командой change port, что COM-порт кассы виден в сессии, запустить службу gRPC вручную из папки драйвера, настроить свойства драйвера с пустым полем RPC и портом GRPC 4041. Ручной запуск службы — ключевой момент: автоматический помещает её в другую сессию Windows, где проброшенных устройств нет. После перезагрузки сервера шаг придётся повторить.
Материал носит информационный характер. Сайт atoldriver.ru не является представительством компании АТОЛ или АО «ЕСП» и не оказывает услуг по обслуживанию оборудования.