Как разделить рабочие места пользователей в 1С при работе через RDP, чтобы оборудование не конфликтовало?

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

При работе в 1С:Предприятие 3.0 через терминальный сервер (RDP) часто возникает ситуация, когда программа перестает различать физические рабочие места пользователей. В справочнике Рабочие места создается одна запись (например, «Программист» или имя сервера), к которой «привязываются» все подключаемые устройства: сканеры штрихкода, ККТ, эквайринговые терминалы. В результате настройки оборудования одного пользователя начинают влиять на другого, порты блокируются, а работа склада или кассы останавливается.

Рассмотрим подробно, почему это происходит и как правильно настроить систему, чтобы каждое терминальное соединение имело свое уникальное рабочее место.

Почему 1С «схлопывает» рабочие места?

Для начала проанализируем механизм идентификации. По умолчанию 1С идентифицирует рабочее место по связке «Имя пользователя ОС + Имя компьютера». Когда пользователи заходят на терминальный сервер, для системы «именем компьютера» становится сетевое имя самого сервера (например, SERVER-SRV). Если несколько человек зашли под разными учетными записями, но 1С не настроена на работу в RDP, она может ошибочно привязать их к одному идентификатору, особенно если первый зашедший пользователь обладал правами администратора или настраивал оборудование.

Выясним причину такого поведения: без специальной настройки 1С не запрашивает у операционной системы имя удаленного клиента (физического ПК, с которого пришел пользователь). В итоге срабатывает принцип «кто первый встал, того и тапки» — создается одна запись в справочнике РабочиеМеста, и все последующие сессии используют её же.

Шаг 1. Включение режима использования RDP

Самое важное решение заключается в изменении логики формирования идентификатора рабочего места. Разберем по шагам, где находится нужная настройка:

  1. Перейдем в раздел Администрирование.
  2. Выберем пункт Подключаемое оборудование.
  3. Найдем гиперссылку Рабочие места (в некоторых версиях конфигураций эта настройка находится непосредственно в списке подключаемого оборудования или в разделе настроек параметров системы).
  4. Установим флажок Использовать RDP.

Что это дает? При включении этой опции БиблиотекаПодключаемогоОборудования (БПО) начинает запрашивать переменную окружения CLIENTNAME. Теперь рабочее место будет формироваться по шаблону: ИмяПользователя_ИмяЛокальногоПК. Это гарантирует, что даже если пользователь Иванов зайдет с компьютера SKLAD-1, а затем с компьютера HOME-PC, 1С создаст для него два разных рабочих места, что позволит корректно разделить проброшенные порты.

Шаг 2. Очистка справочника и перерегистрация

После включения флажка «Использовать RDP» старые, «неправильные» записи в справочнике никуда не исчезнут сами собой. Нам необходимо выполнить «генеральную уборку», чтобы система создала новые связи.

Проанализируем алгоритм очистки:

  1. Зайдем в справочник Рабочие места.
  2. Найдем ту самую запись (например, «программист(сервер2)»), которая мешала всем работать, и удалим её (или пометим на удаление).
  3. Попросим всех пользователей полностью выйти из 1С и завершить свои RDP-сессии (Log off).
  4. При повторном входе каждого пользователя 1С увидит, что актуального рабочего места для данной комбинации пользователя и CLIENTNAME нет, и создаст новое, корректное рабочее место.

Шаг 3. Повторная настройка оборудования

К сожалению, после разделения рабочих мест настройки оборудования (например, номер COM-порта сканера) придется задать заново для каждого нового рабочего места — для этой задачи подойдёт система фискализации на онлайн-кассах с очередью печати. Это происходит потому, что настройки в справочнике ПодключаемоеОборудование жестко привязаны к ссылке на конкретное РабочееМесто.

Рассмотрим пример настройки сканера для нового РМ:

  1. Откроем Подключаемое оборудование.
  2. Убедимся, что в поле «Рабочее место» указано актуальное имя (например, Ivanov (PC-OFFICE-1)).
  3. Добавим новое устройство, выберем драйвер и нажмем Настроить.
  4. Укажем проброшенный порт (например, COM3).

Поскольку теперь у каждого пользователя свое РМ, настройки портов не будут перетирать друг друга, даже если физически у всех сканеры «сидят» на одном и том же номере порта в их локальных сессиях.

Технические нюансы: переменная CLIENTNAME

Иногда даже включение галочки RDP не помогает. Разберем ситуацию: если в диспетчере задач на сервере в колонке «Имя клиента» пусто, 1С не сможет получить данные для разделения. Это может быть связано с настройками безопасности терминального сервера или использованием специфических тонких клиентов (Linux/на базе браузеров).

Проверить текущее значение можно через простую команду в терминале Windows:

set CLIENTNAME

Если система возвращает «Console» или пустоту, необходимо обратиться к системному администратору для настройки передачи имен клиентов в RDP-сессию. В самой 1С программно это выглядит примерно так (упрощенный пример логики БПО):


Функция ПолучитьИмяТекущегоРабочегоМеста()
    ИмяКомпьютера = ПолучитьИмяКомпьютера();
    Если НастройкаИспользоватьRDP Тогда
        ИмяКлиентаRDP = ПолучитьПеременнуюОкружения("CLIENTNAME");
        Если ЗначениеЗаполнено(ИмяКлиентаRDP) Тогда
            Возврат ИмяПользователя() + " (" + ИмяКлиентаRDP + ")";
        КонецЕсли;
    КонецЕсли;
    Возврат ИмяПользователя() + " (" + ИмяКомпьютера + ")";
КонецФункции

Проблема виртуальных COM-портов

При использовании RDP крайне важно использовать современные драйверы оборудования с поддержкой Native Api — для стабильности подойдёт обработка подключения и обслуживания онлайн-касс в RDP. Старые компоненты, требующие регистрации через regsvr32, часто работают нестабильно в многопользовательской среде.

Если у вас несколько пользователей работают с одной физической кассой (ККТ), рассмотрите возможность использования сетевого драйвера (TCP/IP). В этом случае касса подключается к сети организации напрямую, и в 1С на каждом рабочем месте указывается её IP-адрес — есть готовое решение для сетевой печати чеков через RDP. Это полностью снимает проблему «проброса» портов через RDP и делает работу системы значительно надежнее.

Таким образом, правильная настройка идентификации рабочих мест — это фундамент стабильной работы торгового оборудования в терминальной среде. Не пренебрегайте опцией «Использовать RDP», чтобы избежать хаоса в настройках и конфликтов оборудования.

← На главную