Как настроить рабочее место кассира и торговое оборудование в 1С:ERP при работе через RDP?

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

При организации работы в 1С:ERP Управление предприятием через удаленный рабочий стол (RDP) системные администраторы и разработчики часто сталкиваются с проблемой корректной идентификации рабочих мест кассира (РМК). Стандартные механизмы 1С привязывают настройки оборудования к имени компьютера, но в терминальной сессии функция ИмяКомпьютера() возвращает имя сервера, что делает невозможным разделение касс для разных пользователей. Разберем подробно, как решить эту задачу и обеспечить стабильную работу оборудования.

Проблема идентификации рабочего места в терминальной сессии

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

Рассмотрим вариант программной доработки, позволяющий системе различать пользователей по их логинам в операционной системе. Для этого необходимо внести изменения в логику определения имени компьютера в конфигурации. Вместо стандартного метода можно использовать обращение к WScript.Network. Посмотрим на пример кода:


// Вместо стандартного Параметры.ИмяКомпьютера = ИмяКомпьютера();
// Используем получение имени пользователя Windows
f = новый COMОбъект("WScript.Network");
Параметры.ИмяКомпьютера = f.UserName;

Важное замечание: Более современным и стабильным способом без использования COM-объектов является получение переменной окружения CLIENTNAME. Эта переменная Windows автоматически создается при RDP-подключении и содержит имя физического компьютера, с которого зашел пользователь. Это позволяет привязать кассу именно к конкретному терминалу, а не к учетной записи. Выясним, как это реализовать:


// Получение имени клиентской машины из переменной окружения
ИмяКлиентскогоПК = Shell.ExpandEnvironmentStrings("%CLIENTNAME%");

Переход на сетевой режим работы оборудования (TCP/IP)

Проброс COM-портов через протокол RDP часто работает нестабильно. Это связано с тем, что низкоуровневые запросы драйверов (особенно это касается оборудования АТОЛ) инкапсулируются внутри пакетов RDP. При наличии даже минимальных задержек в сети (пингов) пакеты могут теряться или приходить с опозданием, что вызывает ошибку "Устройство не включено".

Разберем по шагам, как настроить работу ККТ по сети, что является наиболее надежным решением:

  1. Подключение по Ethernet/Wi-Fi: Если касса поддерживает сетевой интерфейс, подключите ее непосредственно в локальную сеть магазина.
  2. Настройка драйвера: В настройках оборудования в 1С (через справочник ПодключаемоеОборудование) укажите тип подключения TCP/IP.
  3. Параметры связи: Вместо выбора COM-порта введите IP-адрес кассы. Если используется драйвер АТОЛ 10-й версии, убедитесь, что на локальном ПК запущена служба веб-сервера драйвера, и укажите порт 16732.

Проанализируем ситуацию, когда оборудование подключено по USB, но проброс портов работает медленно. В этом случае тест связи может занимать до 10 секунд. Решить проблему можно использованием Virtual Serial Ports Emulator (VSPE) или аналогичного ПО, которое позволяет транслировать локальный COM-порт в TCP-сокет, к которому 1С на сервере сможет подключиться напрямую, минуя механизмы проброса RDP.

Настройка таймаутов и параметров энергосбережения

Часто ошибки связи возникают из-за слишком короткого времени ожидания ответа от устройства. В условиях удаленной работы таймауты необходимо увеличивать. Рассмотрим рекомендуемые параметры:

В настройках драйвера ККТ внутри 1С установите значение "Таймаут" в диапазоне 2000–5000 мс. Это позволит системе дождаться ответа от кассы даже при кратковременных задержках сетевого канала.

Также стоит обратить внимание на службу FDSVC и настройки Windows на клиентских машинах. Ошибка "Устройство не включено" часто является следствием работы механизмов энергосбережения. Проанализируем необходимые действия в диспетчере устройств:

Использование тонкого клиента как альтернатива RDP

Многие специалисты рекомендуют отказаться от RDP в пользу Тонкого клиента. Посмотрим на преимущества этого подхода для работы с оборудованием:

При использовании Тонкого клиента база 1С может быть опубликована на веб-сервере (IIS или Apache). В этом случае само приложение выполняется локально на компьютере кассира, хотя все данные хранятся на сервере. 1С работает с драйверами напрямую через локальные ресурсы ПК. Это полностью исключает проблемы с пробросом портов, идентификацией рабочего места и задержками протокола RDP. Администрирование такой системы упрощается, так как обновления конфигурации применяются на сервере автоматически для всех клиентов.

Итоги и рекомендации

Подводя итог, для стабильной работы РМК в 1С:ERP через RDP рекомендуется следовать следующему алгоритму:

  1. Использовать переменную CLIENTNAME для разделения настроек оборудования между разными физическими терминалами.
  2. При возможности перевести все торговое оборудование (кассы, эквайринг, сканеры) на TCP/IP протокол.
  3. Увеличить таймауты в настройках драйверов до 2-5 секунд.
  4. Отключить функции экономии энергии для USB-портов на клиентских машинах.
  5. В перспективе рассмотреть переход на Тонкий клиент для минимизации проблем с Библиотекой подключаемого оборудования (БПО).

Соблюдение этих правил позволит создать отказоустойчивую систему для работы кассиров в терминальной среде, минимизируя время простоя торговой точки.

← На главную