Многие технические специалисты сталкиваются с досадной ситуацией: при печати многостраничных документов из 1С (особенно внешних печатных форм) принтер выдает первые два-три листа корректно, а затем начинает выводить абсолютно пустые страницы. Ситуация осложняется тем, что в предварительном просмотре всё выглядит идеально, а проблема чаще всего проявляется при работе через веб-сервер или удаленный рабочий стол (RDP). Это классическое проявление ошибки платформы под номером 10212820.
В этой статье мы подробно разберем, почему возникает эта ошибка, и проанализируем все доступные способы её решения — от системных настроек драйверов до программных правок в коде 1С.
Проанализируем техническую сторону вопроса. Ошибка связана с тем, как графическая подсистема платформы 1С взаимодействует с подсистемой печати Windows (GDI+) при формировании метафайлов (EMF). В версиях платформы 8.3.16 и 8.3.17 при передаче данных на печать через терминальные сессии или при формировании PDF-потока на веб-сервере происходит переполнение или некорректная интерпретация команд отрисовки. Это особенно заметно на драйверах принтеров Kyocera (в частности, серии KX Driver), которые используют сложные алгоритмы обработки графики.
Первым делом проверим версию вашей платформы. Ошибка 10212820 была признана разработчиками 1С и исправлена в более свежих релизах. Если вы используете старые сборки веток 8.3.16 или 8.3.17, настоятельно рекомендуем выполнить переход на следующие версии:
8.3.17.1851 или выше.8.3.18.1201 или выше.Если обновление платформы по каким-то причинам невозможно, проанализируем возможности настройки оборудования. Часто проблема кроется в "умных" функциях драйвера, которые конфликтуют с 1С. Разберем по шагам, что нужно изменить на сервере печати или локальном компьютере:
Отключение расширенных функций печати:
RAW, что значительно повышает стабильность вывода из 1С.Смена эмуляции для Kyocera:
Если вы используете универсальный драйвер Kyocera KX Driver, попробуйте заменить его на классический KPDL или PCL6 Mini-Driver. Опыт показывает, что упрощенные драйверы без избыточного графического интерфейса работают с табличными документами 1С гораздо корректнее в терминальных средах.
Разберем ситуацию, когда ошибка возникает в конкретной внешней печатной форме (ВПФ). Как было отмечено в обсуждении, иногда проблема триггерится некорректными разделителями страниц или сложной структурой макета. Попробуем оптимизировать вывод программно.
Явное указание параметров страницы:
Проанализируем код формирования печатной формы. Иногда автоматический масштаб или ориентация заставляют движок 1С совершать лишние итерации рендеринга. Попробуем жестко зафиксировать параметры:
ТабДок = Новый ТабличныйДокумент;
// Заполняем ТабДок...
ТабДок.АвтоМасштаб = Ложь;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ЭкземпляровНаСтранице = 1;
// Вместо вывода разделителей, попробуйте проверить область печати
Разбиение задания на части:
Если документ очень большой, и принтер "запинается" после 5-й страницы, мы можем применить хитрость: отправлять на печать не один огромный объект ТабличныйДокумент, а выводить его постранично в цикле, вызывая метод Напечатать() для каждого фрагмента. Это очищает буфер печати после каждой итерации.
Выясним причину, почему при работе через браузер или тонкий клиент по HTTP печать может "падать". В этом режиме 1С часто сначала генерирует PDF-файл во временном хранилище, который затем передается клиенту. Если PDF получается битым (с пустыми листами), это означает, что проблема в серверной части рендеринга.
Рассмотрим следующие действия:
Arial). Редкие или кастомные шрифты при отсутствии их на сервере могут приводить к ошибкам формирования PDF-потока.Иногда настройки принтера "залипают" в профиле пользователя 1С. Даже если вы сбросили настройки в самой базе, конфигурационные файлы в операционной системе могут хранить старые параметры. Выполним следующие действия:
%AppData%\Roaming\1C\1cv8\....Подводя итог, можно сказать, что ошибка 10212820 — это комплексная проблема. Наилучшим решением остается обновление платформы до рекомендуемых релизов. Если же это невозможно, комбинация отключения "Расширенных функций печати" в драйвере и программная фиксация параметров страницы в 1С позволяют успешно обойти этот баг и обеспечить стабильную работу пользователей.