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

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

С выходом платформы 1С:Предприятие 8.3.16 многие пользователи столкнулись с неприятной проблемой: при попытке распечатать документ на принтеры марки Kyocera из терминальной сессии (RDP) возникает ошибка «Ошибка при получении характеристик принтера». Ситуация осложняется тем, что в более ранних версиях платформы (например, 8.3.13 или 8.3.14) всё работало корректно, а официальная техническая поддержка 1С в ответ на обращения (код ошибки 10212820) рекомендует «не использовать терминальный сервер или использовать другие принтеры». В данной статье мы разберем причины этой проблемы и проанализируем все доступные способы её решения.

Причины возникновения ошибки на платформе 8.3.16 и выше

Для начала выясним причину, по которой это происходит. Начиная с релиза 8.3.16.1063, разработчики 1С внедрили механизм повышения стабильности работы с принтерами. Теперь работа с драйверами вынесена в отдельный процесс (часто его можно увидеть в диспетчере задач как spl.exe). Это сделано для того, чтобы в случае сбоя или зависания драйвера принтера не «падала» вся платформа 1С.

Проблема заключается в том, что драйверы Kyocera (особенно популярной серии KX) имеют сложную структуру передачи характеристик устройства (структура DEVMODE). Новый изолированный процесс печати 1С в условиях терминальной сессии не всегда может корректно опросить характеристики принтера через проброшенные порты RDP. Это приводит к тому, что 1С либо выдает ошибку сразу, либо неверно определяет границы страницы, из-за чего документ «разрывается» на множество мелких фрагментов при печати.

Способ 1. Использование промежуточной печати через PDF

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

  1. Вместо прямой отправки на принтер выберите команду «Сохранить как PDF» или используйте виртуальный PDF-принтер.
  2. Откройте полученный файл в любом просмотрщике (Adobe Reader, Foxit или встроенный просмотрщик браузера).
  3. Отправьте документ на печать из этого приложения.

Этот способ гарантирует сохранение форматирования и характеристик страницы, так как за рендеринг отвечает специализированное ПО, а не процесс spl.exe платформы 1С.

Способ 2. Замена универсального драйвера KX на Classic PCL6 или KPDL

Проанализируем ситуацию с драйверами. Основная масса ошибок связана с использованием «тяжелого» драйвера Kyocera KX Driver. Мы рекомендуем заменить его на облегченную версию — Kyocera Classic Driver (PCL6 или KPDL). Выполним следующие шаги:

  1. Зайдем на официальный сайт производителя Kyocera в раздел поддержки.
  2. Найдем вашу модель принтера и скачаем драйвер с пометкой Classic Driver или KPDL Driver.
  3. Установим этот драйвер как на локальном компьютере пользователя, так и на терминальном сервере (если не используется Easy Print).
  4. В настройках печати 1С выберем именно новый установленный принтер.

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

Способ 3. Откат версии платформы 1С

Если специфика бизнеса не позволяет менять драйверы на сотнях рабочих мест, а бухгалтерия требует массовой печати «одной кнопкой», придется рассмотреть вариант отката платформы. Проблема наиболее выражена в ветке 8.3.16. Опытным путем установлено, что стабильная работа с принтерами Kyocera сохраняется на версиях:

Важно: Перед откатом убедитесь, что ваша конфигурация (например, БП 3.0 или ЗУП 3.1) не требует обязательного наличия версии 8.3.16. Обычно типовые конфигурации имеют минимальный порог 8.3.14, поэтому откат на стабильную 8.3.15 часто является самым быстрым решением «здесь и сейчас».

Способ 4. Тонкая настройка параметров страницы и кэша

Иногда ошибка «Ошибка при получении характеристик принтера» связана с некорректно сохранившимися настройками в кэше пользователя. Посмотрим, как это исправить:

  1. Попробуйте очистить пользовательский кэш 1С (папки %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8).
  2. В самой программе 1С откройте «Файл — Параметры страницы».
  3. Убедитесь, что в поле «Принтер» выбран системный принтер по умолчанию, а не конкретный экземпляр Kyocera (который мог быть переименован при новом подключении по RDP).
  4. Установите флаг «По ширине страницы» и попробуйте нажать «ОК», чтобы перезаписать настройки DEVMODE в базе данных для текущего пользователя.

Способ 5. Отключение SNMP и дополнительных функций печати

Системным администраторам стоит проверить сетевые настройки порта принтера на сервере. Часто драйвер Kyocera пытается опросить статус устройства по протоколу SNMP, что в терминальной сессии вызывает задержку и последующую ошибку 1С. Проанализируем действия:

  1. Откройте «Свойства принтера» на сервере.
  2. Перейдите на вкладку «Порты», нажмите «Настроить порт».
  3. Снимите галочку «Статус SNMP разрешен».
  4. Перейдите на вкладку «Дополнительно» и снимите галочку «Включить дополнительные возможности печати».

Эти действия упрощают взаимодействие операционной системы с драйвером, уменьшая количество «характеристик», которые 1С пытается получить при формировании табличного документа.

Резюме

Мы выяснили, что корень проблемы лежит в архитектурных изменениях подсистемы печати 1С в версии 8.3.16. Несмотря на то, что для принтеров HP разработчики выпустили исправления, для Kyocera проблема официально остается нерешенной. Наиболее эффективным техническим решением является переход на Classic PCL6 драйверы или использование печати через PDF. Если же требуется восстановить работоспособность немедленно для большого количества пользователей, единственным выходом остается использование платформы версии 8.3.15 до момента выхода исправлений в более новых релизах (сообщество отмечает, что в ветках 8.3.18 и выше ситуация стала более стабильной).

← На главную