Как исправить некорректную печать в 1С через RDP на принтеры Kyocera и HP (ошибка 10212820)

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

В процессе эксплуатации технологической платформы 1С версий 8.3.15 и ранних сборок 8.3.16 (в частности, 8.3.16.1030) системные администраторы столкнулись с критической проблемой. При работе пользователей через удаленный рабочий стол (RDP) печать на определенные модели принтеров, такие как Kyocera, HP или Konica Minolta, выполняется некорректно. Чаще всего это проявляется в том, что на печать не выводятся штрихкоды, логотипы или рамки таблиц, хотя в предварительном просмотре 1С всё отображается правильно.

Разберем подробно причины возникновения этой ошибки, зарегистрированной под номером 10212820, и проанализируем все доступные способы её решения, от простых настроек драйверов до системных манипуляций.

Выясним причину возникновения ошибки

Проанализируем ситуацию с технической стороны. Начиная с версии 8.3.15, разработчики 1С изменили механизм взаимодействия платформы с графической подсистемой Windows (GDI). Платформа перешла на использование новых библиотек для рендеринга печатных форм. Это было сделано для оптимизации, однако привело к конфликту в терминальных сессиях.

При использовании RDP EasyPrint или пробросе принтеров через терминал, метафайлы графики, формируемые 1С, передаются драйверу некорректно. В результате принтер получает текст, но "теряет" графические объекты, такие как штрихкоды (которые в новых версиях 1С рисуются встроенными средствами Native API, а не шрифтами).

Способ 1: Откат на стабильную версию платформы

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

  1. Деинсталлируем текущую версию платформы (например, 8.3.16.1030).
  2. Установим стабильную версию из ветки 8.3.14 (например, 8.3.14.2095).
  3. Проверим печать в терминальной сессии. Как показывают отчеты пользователей, в 14-й версии проблемы с пропаданием штрихкодов не наблюдается.

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

Способ 2: Смена типа драйвера принтера (для Kyocera)

Если откат платформы невозможен, попробуем решить проблему на уровне драйверов. Для принтеров Kyocera это является наиболее эффективным методом. По умолчанию часто используется универсальный драйвер KX Driver, который и вызывает сбои в 1С.

Проанализируем шаги по замене драйвера:

  1. Зайдем в свойства принтера на сервере печати или непосредственно на терминальном сервере.
  2. На вкладке "Дополнительно" выберем "Сменить драйвер".
  3. Вместо KX Driver выберем драйвер KPDL (Kyocera Page Description Language). Если он не установлен, его необходимо скачать с официального сайта производителя.
  4. В некоторых случаях помогает использование Microsoft IPP Class Driver, который доступен в стандартном наборе Windows.

Способ 3: Изменение настроек процессора печати

Посмотрим на более глубокие настройки очереди печати. Иногда ошибка 10212820 лечится принудительной сменой типа данных, которые 1С отправляет в спулер Windows.

Разберем по шагам:

  1. Откроем "Устройства и принтеры" на сервере.
  2. Выберем проблемный принтер и перейдем в "Свойства принтера" -> вкладка "Дополнительно".
  3. Нажмем кнопку "Процессор печати...".
  4. В появившемся окне выберем в левой колонке winprint, а в правой — тип данных RAW.
  5. Сохраним настройки и перезапустим службу печати (Print Spooler).

Этот метод заставляет систему передавать данные на принтер в "сыром" виде, минуя некоторые этапы обработки графическим движком Windows, что часто помогает избежать искажений графики 1С.

Способ 4: Отключение расширенных функций печати

Проанализируем еще одну настройку, которая часто конфликтует с RDP-сессиями в новых версиях 1С. В драйверах многих современных принтеров (особенно HP и Kyocera) включена опция "Enable advanced printing features".

Выполним следующие действия:

  1. В свойствах принтера перейдем на вкладку "Дополнительно".
  2. Найдем чекбокс "Включить дополнительные возможности печати" (или "Enable advanced printing features").
  3. Снимем эту галочку.
  4. Применим изменения.

Это упростит задание печати до стандарта, который корректно воспринимается старыми протоколами передачи данных в терминале.

Проблема пропадания штрихкодов в 1С

Посмотрим на специфику, упомянутую в сообщении №24. Если в предварительном просмотре штрихкод виден, а на бумаге — нет, это может быть связано с тем, что 1С использует встроенную компоненту Native API. Эта компонента очень чувствительна к разрешению (DPI), установленному в драйвере принтера.

Проанализируем решение:

  1. Убедимся, что в настройках печати принтера установлено стандартное разрешение (например, 600x600 DPI).
  2. Выясним, не включен ли режим "Экономия тонера" или "Draft", так как при них драйвер может игнорировать мелкие графические элементы, генерируемые 1С.

Итоги и рекомендации

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

  1. Попробуйте обновиться на версию 8.3.16.1148 или выше, где фирма 1С заявила об исправлении проблем с рендерингом в RDP.
  2. Если обновление невозможно, используйте KPDL-драйверы для Kyocera.
  3. В крайнем случае — откатывайтесь на 8.3.14.2095, которая признана сообществом наиболее стабильной в плане печати через терминал.

Рассмотренные методы позволяют восстановить работоспособность печати без необходимости замены дорогостоящего парка принтеров, как это предлагалось в официальном "способе обхода" от разработчика.

← На главную