Проблема с печатью в терминальной (RDP) сессии — одна из самых распространенных и в то же время коварных задач для системного администратора и технического специалиста 1С. Часто возникает ситуация, когда Microsoft Word, Блокнот и другие стандартные приложения печатают без проблем, а 1С:Предприятие игнорирует команды пользователя. При попытке вызвать предварительный просмотр или открыть параметры страницы программа может выдавать сообщение: «Ошибка при получении характеристик принтера». Рассмотрим подробнее, почему это происходит и как по шагам восстановить работоспособность системы.
Одной из самых частых причин «тихого отказа» печати (когда при нажатии кнопки «Печать» вообще ничего не происходит) является накопление устаревших или поврежденных данных в кэше пользователя. 1С запоминает настройки для каждого документа. В системе сохраняется связка документ — принтер — настройки печати. Если принтер был переименован, переподключен или изменились его параметры в терминальной сессии, 1С пытается обратиться к несуществующему объекту.
Разберем, как правильно очистить кэш:
%AppData%\1C\1cv8%LocalAppData%\1C\1cv8.mxt. Если в профиле остались «хвосты» от старых принтеров, их удаление заставит программу заново инициализировать параметры текущего устройства.Для корректной инициализации графической подсистемы 1С критически важно наличие в системе принтера, установленного «по умолчанию». Если в терминальной сессии из-за особенностей проброса (например, через ScrewDrivers или Easy Print) ни один принтер не помечен как основной, 1С может блокировать доступ к окну печати.
Выясним причину с помощью командной строки. Проверим статус принтеров следующей командой:
wmic printer get name,default
Если во всех строках в колонке Default стоит значение FALSE, значит, система не определила основное устройство. Чтобы исправить это быстро, можно отфильтровать вывод и назначить принтер вручную:
wmic printer where name='Имя_Вашего_Принтера' call setdefaultprinter
После выполнения этой команды перезапустите сеанс 1С и проверьте доступность параметров страницы.
Проанализируем ситуацию с конкретной моделью, упомянутой в обсуждении — HP LaserJet P1005. Это устройство является «host-based» (GDI-принтером), что означает, что вся обработка задания происходит на процессоре компьютера, а не на самом принтере. Такие модели крайне нестабильно ведут себя в RDP-сессиях.
Для решения проблем с такими принтерами рекомендуем:
HP Universal Print Driver (UPD). Он часто работает стабильнее в терминальной среде, чем «родные» драйверы.Windows Server 2008 R2 можно попробовать включить режим изоляции для конкретного драйвера, чтобы его сбои не влияли на всю подсистему печати spooler.Поскольку Windows Server 2008 R2 является 64-битной системой, а большинство версий 1С:Предприятие 8.3 работают как 32-битные приложения, для их взаимодействия используется процесс splwow64.exe (Thunking Spooler API). Иногда этот процесс «зависает» или перестает отвечать именно в контексте конкретной сессии.
Посмотрим на алгоритм действий в этом случае:
splwow64.exe, запущенный от имени проблемного пользователя.Для формирования задания печати 1С создает временные файлы во временной папке пользователя (Temp). Если у пользователя установлены жесткие квоты на дисковое пространство или ограничены права на запись в системные временные каталоги, формирование печатной формы может прерываться без сообщения об ошибке.
Проанализируем ситуацию:
TEMP и TMP указывают на существующие папки, к которым у пользователя есть полный доступ.C:\Windows\System32\spool\PRINTERS (требуется остановка службы Print Spooler), если в очереди печати скопились «битые» задания.Если используется ScrewDrivers, важно помнить, что это решение подменяет стандартный механизм проброса принтеров RDP. Рассмотрим важный нюанс: версии клиента на локальном компьютере и сервера на терминале должны быть максимально близки. Если возникла «Ошибка при получении характеристик принтера», это может означать, что ScrewDrivers не смог передать специфические параметры (размер бумаги, лотки, разрешение) в 1С. В этом случае попробуйте временно отключить сторонний софт и использовать стандартный Remote Desktop Easy Print.
Если принтер сетевой, но проброс через RDP не работает, разберем альтернативный метод подключения:
\\Имя_ПК_Пользователя\Имя_Принтера.Этот метод позволяет миновать многие проблемы подсистемы Easy Print, так как сервер будет считать принтер локально подключенным устройством.
Резюме: Если 1С не печатает, в первую очередь проверьте наличие принтера по умолчанию и очистите кэш пользователя. Если проблема сохраняется — переходите к анализу драйверов и процесса splwow64.exe. Сочетание этих методов позволяет решить 99% проблем с печатью в 1С.