Схема, которая встречается чаще, чем кажется: кассовая программа живёт на терминальном сервере, а сама касса подключена к локальному компьютеру продавца. Между ними — сессия удалённого рабочего стола.
Для перенаправленного COM-порта процесс gRPC должен работать в той же пользовательской RDP-сессии, где виден этот порт. Обычная системная служба работает в другом контексте.
Что понадобится
На локальном компьютере: подключённая касса АТОЛ.
На сервере:
- драйвер ККТ АТОЛ не ниже 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, нажмите ОК. - В окне подключения нажмите «Показать параметры».
- Перейдите на вкладку «Локальные ресурсы».
- В блоке «Локальные устройства и ресурсы» нажмите «Подробнее…».
- Установите флажок напротив пункта «Порты» и нажмите ОК.
- Вернитесь на вкладку «Общие», введите адрес или имя сервера и подключитесь.
Флажок «Порты» нужен на клиенте, но перенаправление также должно быть разрешено настройками и политиками сервера. Проверьте оба условия.


Шаг 3. Убедиться, что порт пробросился
Находясь в терминальной сессии, откройте командную строку (Win + R, cmd) и выполните:
change port
Команда выведет список проброшенных портов. В нём должен быть COM-порт, к которому касса подключена на локальном компьютере.
Если касса на клиенте висит на COM21, строка будет выглядеть так:
COM21 = \Device\RdpDrPort\;COM21:1\tsclient\COM21
Если порта нет, проверьте параметры текущего RDP-подключения, серверные политики и наличие интерфейса на клиенте. Повторный вход должен использовать сохранённые настройки. Галочку на клиенте вы поставили, а разрешает ли перенаправление сервер — вопрос отдельный.

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