Что делать, если принтер не печатает из 1С в терминальной сессии

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

Проблема с печатью в терминальной (RDP) сессии — одна из самых распространенных и в то же время коварных задач для системного администратора и технического специалиста 1С. Часто возникает ситуация, когда Microsoft Word, Блокнот и другие стандартные приложения печатают без проблем, а 1С:Предприятие игнорирует команды пользователя. При попытке вызвать предварительный просмотр или открыть параметры страницы программа может выдавать сообщение: «Ошибка при получении характеристик принтера». Рассмотрим подробнее, почему это происходит и как по шагам восстановить работоспособность системы.

Причина 1: Кэш настроек принтера и платформы

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

Разберем, как правильно очистить кэш:

  1. Переустановка платформы: Это радикальный метод, который помог автору темы. При переустановке часто происходит частичное обновление временных файлов, но это не всегда гарантирует полную очистку профиля пользователя.
  2. Ручное удаление временных файлов: Нам необходимо перейти в папку профиля пользователя в терминальной сессии. Обычно это пути:
    • %AppData%\1C\1cv8
    • %LocalAppData%\1C\1cv8
    Проанализируем содержимое этих папок: удаление каталогов с длинными буквенно-цифровыми названиями (GUID) позволит сбросить настройки интерфейса и печати для конкретного пользователя.
  3. Удаление файлов настроек .mxt: 1С сохраняет параметры печатных форм в файлах с расширением .mxt. Если в профиле остались «хвосты» от старых принтеров, их удаление заставит программу заново инициализировать параметры текущего устройства.

Причина 2: Отсутствие принтера по умолчанию

Для корректной инициализации графической подсистемы 1С критически важно наличие в системе принтера, установленного «по умолчанию». Если в терминальной сессии из-за особенностей проброса (например, через ScrewDrivers или Easy Print) ни один принтер не помечен как основной, 1С может блокировать доступ к окну печати.

Выясним причину с помощью командной строки. Проверим статус принтеров следующей командой:

wmic printer get name,default

Если во всех строках в колонке Default стоит значение FALSE, значит, система не определила основное устройство. Чтобы исправить это быстро, можно отфильтровать вывод и назначить принтер вручную:

wmic printer where name='Имя_Вашего_Принтера' call setdefaultprinter

После выполнения этой команды перезапустите сеанс 1С и проверьте доступность параметров страницы.

Причина 3: Особенности драйверов принтеров HP (Host-based)

Проанализируем ситуацию с конкретной моделью, упомянутой в обсуждении — HP LaserJet P1005. Это устройство является «host-based» (GDI-принтером), что означает, что вся обработка задания происходит на процессоре компьютера, а не на самом принтере. Такие модели крайне нестабильно ведут себя в RDP-сессиях.

Для решения проблем с такими принтерами рекомендуем:

Причина 4: Процесс-посредник splwow64.exe

Поскольку Windows Server 2008 R2 является 64-битной системой, а большинство версий 1С:Предприятие 8.3 работают как 32-битные приложения, для их взаимодействия используется процесс splwow64.exe (Thunking Spooler API). Иногда этот процесс «зависает» или перестает отвечать именно в контексте конкретной сессии.

Посмотрим на алгоритм действий в этом случае:

  1. Откройте диспетчер задач в терминальной сессии.
  2. Найдите процесс splwow64.exe, запущенный от имени проблемного пользователя.
  3. Завершите этот процесс. Система автоматически перезапустит его при следующей попытке печати, что часто восстанавливает связь между 1С и диспетчером очереди печати.

Причина 5: Права доступа и временные файлы

Для формирования задания печати 1С создает временные файлы во временной папке пользователя (Temp). Если у пользователя установлены жесткие квоты на дисковое пространство или ограничены права на запись в системные временные каталоги, формирование печатной формы может прерываться без сообщения об ошибке.

Проанализируем ситуацию:

Причина 6: Использование сторонних решений (ScrewDrivers)

Если используется ScrewDrivers, важно помнить, что это решение подменяет стандартный механизм проброса принтеров RDP. Рассмотрим важный нюанс: версии клиента на локальном компьютере и сервера на терминале должны быть максимально близки. Если возникла «Ошибка при получении характеристик принтера», это может означать, что ScrewDrivers не смог передать специфические параметры (размер бумаги, лотки, разрешение) в 1С. В этом случае попробуйте временно отключить сторонний софт и использовать стандартный Remote Desktop Easy Print.

Дополнительный метод: Создание локального порта

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

  1. Установите драйвер принтера локально на сервере.
  2. При создании принтера выберите «Создать новый порт» (Local Port).
  3. В качестве имени порта укажите сетевой путь к принтеру, например: \\Имя_ПК_Пользователя\Имя_Принтера.

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

Резюме: Если 1С не печатает, в первую очередь проверьте наличие принтера по умолчанию и очистите кэш пользователя. Если проблема сохраняется — переходите к анализу драйверов и процесса splwow64.exe. Сочетание этих методов позволяет решить 99% проблем с печатью в 1С.

← На главную