Почему печатная форма документа в 1С весит слишком много и долго отправляется на принтер через терминал?

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

При работе пользователей в терминальной сессии (RDP) нередко возникает неприятная ситуация: стандартные документы отправляются на печать практически мгновенно, занимая в диспетчере печати считанные сотни килобайт, однако одна конкретная форма (например, форма МХ-8 или накладная) формирует задание размером в 10–15 мегабайт. Подобный объем очереди печати на узких интернет-каналах приводит к зависанию сеанса 1С и долгому ожиданию физического выхода листа из печатающего устройства. При этом при локальной печати вне терминала та же самая форма уходит без задержек.

Разберем по шагам, почему диспетчер печати Windows раздувает размер документа, содержащего обычную текстовую таблицу, и как устранить данную неполадку.

Причины резкого увеличения размера задания печати

Проанализируем механику формирования очереди печати на стороне сервера терминалов:

  1. Растеризация шрифтов драйвером: если в макете печатной формы применен шрифт, отсутствующий на терминальном сервере или не поддерживаемый напрямую принтером, драйвер вынужден преобразовывать страницу не в векторные команды, а в полностраничное растровое изображение высокого разрешения (300 или 600 DPI). В результате страница с несколькими строками превращается в несжатое графическое полотно объемом 10–12 МБ.
  2. Скрытые графические элементы в табличном документе: в макете могут присутствовать прозрачные подложки, логотипы, свернутые в нулевой размер, или пустые рамки объектов. Даже невидимый графический объект обрабатывается подсистемой печати в исходном разрешении.
  3. Несовместимость и особенности драйверов печати: использование базового механизма Easy Print (Remote Desktop Easy Print) или универсальных драйверов PCL/RAW часто приводит к неоптимальной конвертации документов XPS/EMF в поток данных принтера.
  4. Раздутая область печати: случайные пробелы, границы или заливки ячеек на далеких координатах таблицы заставляют платформу 1С формировать гигантскую виртуальную область печати.

Шаг 1. Проверка и корректировка макета в конфигураторе

Выясним причину внутри самой конфигурации. Для этого откроем проблемную печатную форму в режиме конфигуратора:

  1. Проверяем границы области печати: откроем макет документа, нажмем комбинацию клавиш Ctrl + A и посмотрим, где заканчивается выделенная сетка. Если выделение уходит далеко вправо или вниз за пределы видимой таблицы, удалим пустые строки и столбцы.
  2. Проверяем наличие скрытых рисунков: перейдем к панели свойств и проверим коллекцию Рисунки макета. Все устаревшие, пустые или уменьшенные до пикселя графические объекты необходимо удалить.
  3. Задаем строгую область печати в коде: чтобы исключить захват пустого пространства, перед выводом на печать программно ограничим область табличного документа:
    
    // Ограничиваем область печати только значащим диапазоном ячеек
    ТабличныйДокумент.ОбластьПечати = ТабличныйДокумент.Область(1, 1, НомерПоследнейСтроки, НомерПоследнейКолонки);
    
  4. Унифицируем шрифты: выделим всю таблицу и заменим экзотические или узкие начертания (например, нестандартный Arial Narrow или внешний штрихкод) на базовый системный шрифт (например, Tahoma или обычный Arial).

Шаг 2. Настройка драйверов на сервере и клиенте

Рассмотрим параметры драйвера печати, влияющие на растеризацию текстовых данных:

  1. Установка однотипных драйверов: убедимся, что на терминальном сервере и на локальном компьютере пользователя установлена одна и та же версия официального драйвера принтера от производителя (Type 3 или Type 4 PCL6/PostScript), избегая стандартных встроенных драйверов Microsoft.
  2. Переключение режима TrueType: откроем свойства принтера на клиентском компьютере и сервере, перейдем на вкладку «Параметры устройства» (Device Settings) и установим режим передачи шрифтов TrueType в значение «Загружать как софт-шрифт» (Download as Softfont) вместо «Печатать как растр» (Print as bitmap).
  3. Настройка графического режима: в дополнительных параметрах драйвера принтера переведем режим передачи графики из «Растр» в «Вектор».
  4. Отключение Easy Print при необходимости: если перенаправление выполняется через стандартный драйвер Easy Print, откроем редактор локальной групповой политики на сервере (gpedit.msc), перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров, и для политики «Использовать в первую очередь драйвер принтера Easy Print» установим значение Отключено, чтобы сессия использовала «родной» вендорный драйвер.

Шаг 3. Обходной путь: печать через сохранение в PDF

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


// Сохраняем табличный документ во временный PDF-файл
ИмяФайла = КаталогВременныхФайлов() + "print_form.pdf";
ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);

// Запускаем локальный просмотрщик или печать файла
ЗапуститьПриложение(ИмяФайла);

Такой подход полностью снимает проблему раздувания очереди печати, так как преобразование PDF-документа выполняется локальными ресурсами клиента без передачи тяжелых растровых данных по сети терминального подключения.

← На главную