В процессе эксплуатации технологической платформы 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С, где этот механизм еще не был изменен.
Важное замечание: Учтите, что новые типовые конфигурации (БП 3.0, ЗУП 3.1) могут требовать версию платформы не ниже 8.3.15 или 8.3.16 для работы некоторых механизмов (например, управления памятью или новых функций расширений).
Если откат платформы невозможен, попробуем решить проблему на уровне драйверов. Для принтеров Kyocera это является наиболее эффективным методом. По умолчанию часто используется универсальный драйвер KX Driver, который и вызывает сбои в 1С.
Проанализируем шаги по замене драйвера:
Посмотрим на более глубокие настройки очереди печати. Иногда ошибка 10212820 лечится принудительной сменой типа данных, которые 1С отправляет в спулер Windows.
Разберем по шагам:
winprint, а в правой — тип данных RAW.Этот метод заставляет систему передавать данные на принтер в "сыром" виде, минуя некоторые этапы обработки графическим движком Windows, что часто помогает избежать искажений графики 1С.
Проанализируем еще одну настройку, которая часто конфликтует с RDP-сессиями в новых версиях 1С. В драйверах многих современных принтеров (особенно HP и Kyocera) включена опция "Enable advanced printing features".
Выполним следующие действия:
Это упростит задание печати до стандарта, который корректно воспринимается старыми протоколами передачи данных в терминале.
Посмотрим на специфику, упомянутую в сообщении №24. Если в предварительном просмотре штрихкод виден, а на бумаге — нет, это может быть связано с тем, что 1С использует встроенную компоненту Native API. Эта компонента очень чувствительна к разрешению (DPI), установленному в драйвере принтера.
Проанализируем решение:
Подводя итог, можно сказать, что ошибка 10212820 является следствием "переходного периода" в разработке платформы. Если вы столкнулись с ней, рекомендуем следующий алгоритм действий:
Рассмотренные методы позволяют восстановить работоспособность печати без необходимости замены дорогостоящего парка принтеров, как это предлагалось в официальном "способе обхода" от разработчика.