При переходе на платформу 1С:Предприятие версии 8.3.15.16xx и смежные релизы многие системные администраторы и разработчики столкнулись с серьезными дефектами в подсистеме печати. Эти проблемы варьируются от полной невозможности печати через терминальный сервер до самопроизвольного изменения формата бумаги с привычного А4 на экзотический Tabloid. В этой статье мы подробно разберем причины возникновения данных ошибок и рассмотрим проверенные методы их устранения, включая настройку драйверов, работу с файловой системой и обновление платформы.
Одной из самых обсуждаемых проблем стала ошибка 10212820. Суть ее заключается в том, что при использовании удаленного доступа к рабочему столу (RDP) печать на принтеры Kyocera выполняется некорректно или не выполняется вовсе. Официальный статус ошибки «Отклонена», однако это не значит, что решения не существует. Проанализируем ситуацию подробнее.
Выясним причину: конфликт возникает из-за специфической реализации драйверов Kyocera серии KX Driver. Эти драйверы используют сложные команды графической подсистемы Windows (GDI), которые в 15-й ветке платформы стали обрабатываться иначе. Рассмотрим пошагово, как обойти это ограничение:
KX Driver. Практика показывает, что использование KPDL Driver или Classic Driver (PCL6) полностью решает проблему передачи задания на печать через RDP-сессию.printisolationhost.exe при ошибках рендеринга из 1С.Многие пользователи заметили, что даже если в настройках принтера и в параметрах страницы 1С жестко задан формат А4, программа упорно пытается отправить документ на печать в формате Tabloid. Это ошибка 10212015, которая затронула релизы с 8.3.15.1194 по 8.3.15.1469.
Разберем, почему это происходит. Платформа некорректно считывает настройки принтера по умолчанию и игнорирует параметры, заданные в объекте ТабличныйДокумент. Посмотрим, как мы можем исправить эту ситуацию, не прибегая к ручной корректировке каждого печатного листа.
Во-первых, проанализируем состояние кэша настроек пользователя. Часто 1С сохраняет параметры печати в профиле, и даже после исправления кода платформы старые (ошибочные) настройки продолжают влиять на результат. Нам необходимо выполнить очистку. Рассмотрим процедуру:
%AppData%\Roaming\1C\1cv8\..mxl, а также папку Config. В этих файлах платформа хранит историю настроек принтера для каждого конкретного отчета.Во-вторых, если проблема наблюдается в Linux-клиенте (ошибка 10212942), это связано с взаимодействием платформы и системы печати CUPS. Платформа неверно сопоставляет внутренние идентификаторы форматов 1С с именами в PPD-файлах. Решением здесь является обновление до релиза 8.3.15.1702 или выше, где механизм сопоставления был переписан.
Разберем еще одну неприятную особенность версии 8.3.15.1656. При выгрузке печатной формы в формат Excel (XLSX) шрифты в колонтитулах, которые в 1С имеют размер 12, внезапно превращаются в гигантский размер 28. Проанализируем причину: это баг механизма масштабирования при формировании XML-структуры файла Excel.
Если в параметрах печати установлено значение «По ширине страницы», 1С применяет коэффициент масштабирования к шрифтам колонтитулов дважды. Чтобы избежать этого до обновления платформы (исправлено в 8.3.15.1778), используем следующий программный метод корректировки перед сохранением документа:
ТабДок = Новый ТабличныйДокумент;
// Заполнение документа...
ТабДок.АвтоМасштаб = Ложь;
ТабДок.МасштабПечати = 100;
ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);
Установка фиксированного масштаба 100 вместо автоматического позволяет сохранить корректное начертание шрифтов при экспорте.
Для пользователей ОС Linux (особенно в связке с тонким клиентом) ситуация с печатью в 15-й ветке оставалась нестабильной долгое время. Мы часто сталкиваемся с тем, что поля документа обрезаются, даже если настройки выглядят корректно. Выясним причину: платформа использует жестко зашитые непечатные зоны, которые могут не совпадать с реальными границами вашего принтера в CUPS.
Рассмотрим рекомендации по стабилизации печати в Linux:
PaperDimension и ImageableArea внутри PPD-файла.Подводя итог, можно сказать, что ветка 8.3.15.16xx была переходным этапом с большим количеством экспериментов в графическом ядре. Если вы столкнулись с описанными проблемами, мы рекомендуем следующий план действий:
AppData, так как 1С склонна «запоминать» ошибочные параметры принтера навсегда.Мы надеемся, что этот подробный разбор помог вам разобраться в причинах сбоев печати и найти подходящее решение для вашей информационной системы.