Почему 1С не видит принтер при работе через RDP и как это исправить?

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

Работая в среде терминального доступа, многие пользователи сталкиваются с тем, что 1С «не видит» доступные локальные принтеры, хотя в других приложениях (Word, Excel) печать выполняется без проблем. Давайте разберем по шагам, как выявить причину и устранить эту ошибку.

Шаг 1: Проверка настроек подключения RDP

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

  1. Откройте «Параметры» подключения.
  2. Перейдите на вкладку «Локальные ресурсы».
  3. Убедитесь, что установлена галочка «Принтеры» в разделе «Локальные устройства и ресурсы».

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

Шаг 2: Устранение проблемы «принтеров-привидений»

Если принтеры в Windows Server 2012 видны в «Устройствах и принтерах», но периодически пропадают внутри 1С, это может быть следствием конфликта драйверов или некорректной обработки сессий. Разберем метод обхода, который помогает стабилизировать список устройств. Для программной проверки доступных устройств непосредственно из среды 1С можно использовать обработку для получения списка принтеров.

Для диагностики состояния принтеров воспользуйтесь скриптом на PowerShell, который покажет, какие принтеры реально видит система через API:


Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * From Win32_Printer")
If colPrinters.Count <> 0 Then
    Dim s
    s = "printers found: " + CStr(colPrinters.Count) + chr(13)
    For Each objPrinterInstalled In colPrinters
        s = s + objPrinterInstalled.Name + chr(13)
    Next
    msgbox s
End if

Если список не соответствует ожидаемому, выполните следующие действия:

  1. Запустите gpedit.msc, перейдите в «Конфигурация компьютера» -> «Административные шаблоны» -> «Принтеры». Включите параметр «Всегда обрабатывать задания печати на сервере».
  2. Внесите изменения в реестр для корректной очистки сессий. В ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider] создайте параметр RemovePrintersAtLogoff типа DWORD со значением 0.
  3. Очистите содержимое ветки Client Side Rendering Print Provider, удалив вложенные ключи, и перезагрузите сервер.

Шаг 3: Очистка настроек пользователя в 1С

Иногда 1С сохраняет «битые» пути к принтерам в своих внутренних настройках. Даже если принтер в системе уже исправлен, программа продолжает обращаться к несуществующему устройству.

Попробуйте очистить кэш настроек для конкретного пользователя:

Шаг 4: Установка принтера напрямую на сервер

Если перенаправление через RDP работает нестабильно, наиболее надежным «индустриальным» решением является установка сетевого принтера непосредственно на сервер Windows Server.

  1. Установите принтер на сервере через IP-порт (используя драйвер Universal Print Driver, который поддерживает большинство терминальных сред).
  2. Предоставьте права доступа к этому принтеру нужной группе пользователей на уровне настроек безопасности Windows.
  3. В этом случае 1С будет видеть принтер как локально установленное устройство сервера, что исключает зависимость от механизма перенаправления RDP-сессий.

Рекомендации по драйверам

При использовании 64-битных версий Windows Server убедитесь, что драйверы принтера также являются 64-битными. Разрядность драйверов — частая причина того, что Принтер отображается в Windows, но «не виден» изнутри приложения 1С. Если модель принтера старая, рассмотрите возможность использования универсальных драйверов от производителя, они лучше адаптированы к работе в многопользовательских терминальных сессиях.

← На главную