Почему печать УПД в 1С 7.7 по RDP происходит медленно и как ее ускорить?

Системный администратор 1С v7.7 Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При работе в терминальном режиме (RDP) пользователи платформы «1С:Предприятие 7.7» нередко сталкиваются с ситуацией, когда стандартные документы (например, ТОРГ-12) выводятся на печать быстро, а печать универсального передаточного документа (УПД) занимает в два и более раз больше времени, хотя на экране форма формируется практически мгновенно. Разберем детально, почему это происходит и как устранить задержки при выводе на печать.

Причины медленной печати сложных форм по RDP

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

  1. Избыточная сетка колонок в макете таблицы (MXL). В печатной форме УПД разработчики часто создают мелкую сетку (более 100–170 колонок), чтобы гибко объединять ячейки и подгонять ширину реквизитов. Графический движок «1С 7.7» обрабатывает каждую ячейку и каждую границу через вызовы Windows GDI API (LineTo, Rectangle, ExtTextOut). Чем больше ячеек и линий в таблице, тем больше примитивов генерируется при выводе на печать.
  2. Особенности механизма Remote Desktop Easy Print. По умолчанию службы удаленных рабочих столов Windows используют драйвер Easy Print, который конвертирует команды GDI в промежуточный XML-документ формата XPS. Для документов со сложной версткой формируется массивный поток данных, требующий длительной растеризации на сервере и последующей передачи по RDP-каналу на локальный клиент.
  3. Прослойка разрядности SplWOW64. Поскольку «1С:Предприятие 7.7» — 32-разрядное приложение (x86), на 64-битных серверах вызовы подсистемы печати транслируются через системный процесс splwow64.exe. Маршалинг сотен графических примитивов ячеек вносит дополнительную задержку.
  4. Тип драйвера печати (PCL6 / PostScript / Host-Based). Драйверы PCL6 воспринимают сетку таблицы как векторную графику и формируют тяжелый спул-файл, что существенно снижает скорость обработки задания принтером.

Способ 1. Оптимизация макета табличного документа (MXL)

Рассмотрим первый уровень оптимизации — сокращение количества графических элементов внутри печатной формы:

  1. Откроем печатную форму УПД в конфигураторе или во внешней обработке.
  2. Проверим реальное количество колонок. Если их более 50–70 (например, 150–170), это свидетельствует об избыточном дроблении таблицы.
  3. Удалим неиспользуемые и избыточные пустые колонки, объединив соседние области таблицы без потери общего визуального форматирования бланка.
  4. Проверим свойства ячеек: очистим оформление у пустых областей, удалим невидимые границы со стилем «Нет линии» (установив базовое отсутствие границ), чтобы они не генерировали холостые команды GDI.
  5. Используем стандартные системные шрифты (например, Arial или Tahoma) без частого переключения стилей (полужирный/курсив) в рамках одной строки.

Способ 2. Отключение Remote Desktop Easy Print и переход на прямые драйверы

Перенаправление печати через Easy Print часто является главным источником задержек при передаче сложных бланков. Выполним перенастройку групповых политик сервера:

  1. Откроем редактор локальной групповой политики на сервере, выполнив команду gpedit.msc.
  2. Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров.
  3. Найдем политику «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» и переведем ее в состояние «Отключено».
  4. Установим на сервере и клиентском компьютере полностью идентичные версии официальных драйверов печати производителя (названия драйверов в системе должны совпадать символ в символ).
  5. По возможности используем драйверы версии PCL5 или универсальные драйверы (Universal Print Driver), так как они быстрее обрабатывают текстово-табличные данные по сравнению с PCL6.

Способ 3. Прямая печать через сетевой порт (TCP/IP)

Если принтер находится в одной локальной сети с терминальным сервером (или объединен через корпоративный VPN-канал), наиболее эффективным решением будет отказ от перенаправления клиентских принтеров:

  1. В параметрах RDP-клиента (mstsc.exe) на вкладке «Локальные ресурсы» снимем отметку с пункта «Принтеры».
  2. На терминальном сервере установим принтер как сетевой, указав его прямой локальный IP-адрес через стандартный порт TCP/IP (или подключим расшаренный сетевой принтер).
  3. В свойствах принтера на сервере (вкладка «Дополнительно») включим режим «Начинать печать немедленно», чтобы печать стартовала до полной буферизации всего задания.
  4. Проверим формат данных очереди печати (Spooler): для прямых драйверов переключение типа данных на RAW обеспечивает прямую передачу готовых инструкций в порт принтера без лишних преобразований.

Комплексное применение оптимизации макета MXL и настройка прямого вывода на сетевой порт позволяют сократить время печати УПД в терминальной среде до уровня обычных документов.

← На главную