Почему документы из 1С:Предприятия печатаются с растром на принтерах HP в Ubuntu 22.04?

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

Мы рассмотрим распространенную проблему, с которой сталкиваются пользователи тонкого клиента 1С:Предприятие 8.3 в операционной системе Ubuntu 22.04, при попытке печати документов на принтеры HP. Суть проблемы заключается в том, что печатные формы, такие как счета или УПД, выводятся с эффектом растра – шрифты выглядят нечеткими, с мелкими точками, как будто документ печатается в черновом или экономичном режиме. При этом печать из других приложений Ubuntu (например, LibreOffice, веб-браузеров) или из веб-клиента 1С осуществляется без каких-либо искажений, что указывает на специфическую проблему во взаимодействии тонкого клиента 1С с системой печати в новой версии Ubuntu и драйверами HP.

Давайте подробно разберем возможные причины и шаги для устранения этой неприятной ситуации.

1. Проверка и установка необходимых системных компонентов и шрифтов

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

  1. Шрифты Microsoft Core Fonts: Тонкий клиент 1С часто использует шрифты, близкие к Windows-системе. Установим пакет msttcorefonts, если он еще не установлен:

    
    sudo apt update
    sudo apt install ttf-mscorefonts-installer
    

    После установки может потребоваться обновить кэш шрифтов:

    
    sudo fc-cache -f -v
    

    Иногда перезагрузка системы или хотя бы пользовательской сессии помогает применить новые шрифты.

  2. Дополнительные библиотеки для 1С в Linux: Для полноценной работы платформы, включая различные функции печати и отображения, могут потребоваться следующие библиотеки. Убедимся, что они установлены:

    
    sudo apt install libmagickcore-6.q16-6 libfontconfig1 libfreetype6 libgsf-1-114 libwebkit2gtk-4.0-37
    

    Обратите внимание, что для Ubuntu 22.04 и более поздних версий, особенно для последних релизов тонкого клиента, может быть критична библиотека libwebkit2gtk-4.0-37, которая обеспечивает работу некоторых компонентов интерфейса и печати.

2. Работа с платформой 1С:Предприятие

Поскольку проблема проявляется исключительно в тонком клиенте 1С, рассмотрим шаги, связанные непосредственно с его установкой и настройкой.

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

    Сначала удалим существующие пакеты:

    
    sudo apt purge 1c-enterprise-8.3*
    

    Затем очистим пользовательские кэши и настройки, которые могли быть сохранены и вызывать конфликт. Эти каталоги находятся в домашней директории пользователя:

    
    rm -rf ~/.1cv8
    rm -rf ~/.1C
    

    После этого произведем установку пакетов тонкого клиента 1С заново, используя актуальные .deb-файлы вашей версии:

    
    sudo dpkg -i 1c-enterprise-8.3.18.1741-thin-client_8.3.18-1741_amd64.deb
    sudo dpkg -i 1c-enterprise-8.3.18.1741-thin-client-nls_8.3.18-1741_amd64.deb
    sudo apt install -f
    

    Команда sudo apt install -f необходима для доустановки зависимостей, которые могли быть упущены.

  2. Проверка совместимости версий клиента и сервера: Мы должны убедиться, что версия тонкого клиента соответствует версии платформы 1С на сервере, где находится ваша база. Если база данных находится в облаке, этот шаг особенно важен. Попытка использования слишком новой версии клиента (например, 8.3.19.x) с более старой версией сервера (8.3.18.x) приведет к ошибке "несоответствие версии клиента и сервера". Если есть возможность, попробуем использовать самый свежий релиз клиента, который совместим с вашей серверной платформой (например, 8.3.18.1894, если облачный сервис поддерживает его).

  3. Тестирование с различными версиями платформы: Если проблема сохраняется, мы можем попробовать установить другую версию тонкого клиента для тестирования. Это может быть как более свежий, так и более старый релиз в рамках совместимой версии (например, другой релиз 8.3.18.x). Мы можем установить несколько версий платформы и запускать 1С с нужной версией, чтобы проверить, как это повлияет на печать.

  4. Обращение в техническую поддержку облачного сервиса: Поскольку база данных находится в облаке, мы не имеем прямого контроля над версией платформы на сервере. Мы можем обратиться в поддержку облачного сервиса с запросом на обновление серверной платформы до более актуальной версии, если это возможно. Это может решить проблемы совместимости с обновленными версиями ОС Linux и локальных драйверов.

3. Настройка принтеров и системы печати CUPS

Система печати CUPS (Common Unix Printing System) является основой печати в Linux. Мы должны внимательно изучить ее настройки, особенно в контексте принтеров HP.

  1. Проверка настроек принтера в веб-интерфейсе CUPS: Откроем веб-интерфейс CUPS, перейдя по адресу http://localhost:631 в вашем браузере. Перейдем в раздел "Принтеры" (Printers) и выберем проблемный принтер HP. В настройках принтера (обычно "Установить параметры по умолчанию" или "Set Default Options") внимательно изучим все параметры, касающиеся качества печати, режима экономии (EconoMode), разрешения и типа бумаги. Убедимся, что режим экономии или черновой печати EconoMode выключен. Даже если в диалоге печати 1С он неактивен, настройки CUPS могут принудительно его применять.

  2. Переустановка принтера в CUPS: Хотя пользователь уже пробовал этот метод в Ubuntu 22.04 без успеха, это стандартная процедура. Мы удалим принтер из CUPS и добавим его заново. Иногда это помогает сбросить некорректные параметры.

  3. Попытка использования различных драйверов HP: При добавлении принтера в CUPS или HPLIP, нам часто предлагается несколько вариантов драйверов для одной модели HP. Мы можем попробовать использовать различные драйверы, особенно те, которые, как известно, хорошо работают с PDF-потоками:

    • hpcups: Стандартный драйвер HP, обычно самый совместимый.
    • HP LaserJet 5200l pcl3: Некоторые пользователи отмечают хорошее качество печати с этим драйвером, поскольку он может напрямую конвертировать PDF в растровые данные, минуя промежуточные PostScript-преобразования.
    • CUPS + Gutenprint: Gutenprint — это альтернативный набор драйверов, который может обеспечить лучшее качество печати для некоторых моделей принтеров, особенно если стандартные драйверы CUPS или HPLIP не справляются.
    Причина растра может быть в том, что драйвер принтера или CUPS дважды конвертируют данные: сначала PDF в PostScript, а затем PostScript в растровые данные для принтера. Использование драйверов, которые напрямую преобразуют PDF в растр, может устранить эту проблему.

  4. Проверка службы ipp-usb: Если ваш принтер подключен по USB, служба ipp-usb может перехватывать прямой доступ к USB-устройству, что иногда вызывает конфликты с традиционными драйверами CUPS или HPLIP. Мы можем попробовать временно остановить или отключить эту службу для диагностики:

    
    sudo systemctl stop ipp-usb
    sudo systemctl disable ipp-usb
    

    Перезапустим CUPS после этого:

    
    sudo systemctl restart cups
    

    Если это решит проблему, то мы нашли причину. Не забудьте вернуть службу, если она окажется непричастна или необходима для других функций.

  5. Эксперименты с конфигурационным файлом CUPS: В файле /etc/cups/cups-files.conf мы можем попробовать добавить параметр, который влияет на обработку PostScript. Это может быть полезно, если проблема связана с некорректной обработкой шрифтов или артефактами. Добавим следующую строку:

    
    SetEnv GS_OPTIONS -dNoOutputFonts
    

    После изменения файла, обязательно перезапустим службу CUPS:

    
    sudo systemctl restart cups
    

    Важно: Всегда создавайте резервные копии конфигурационных файлов перед их изменением.

  6. Переименование принтера на короткое имя: Некоторые старые или специфические версии ПО могут иметь проблемы с длинными именами принтеров или именами, содержащими пробелы и специальные символы. Попробуем переименовать принтер в CUPS на короткое имя без пробелов (например, HPPrinter).

4. Работа с HPLIP

HPLIP (HP Linux Imaging and Printing) — это официальный набор драйверов и утилит для принтеров HP в Linux. Хотя пользователь столкнулся с проблемами в hp-setup, мы все же рассмотрим его возможности.

  1. Установка hplip-gui: Убедимся, что у нас установлен графический интерфейс для HPLIP. Это может помочь с более удобной настройкой:

    
    sudo apt install hplip-gui
    
  2. Использование hp-setup: Если hp-setup не запускает графический интерфейс или зависает, это может быть связано с несовместимостью с новой версией Qt (например, Qt6 в Ubuntu 22.04). Мы можем попробовать запустить его с повышенными привилегиями, обеспечивая корректный путь:

    
    pkexec env PATH=$PATH /usr/bin/hp-setup
    

    Если автоматическое обнаружение принтера не работает, попробуем ввести IP-адрес сетевого принтера вручную через расширенные настройки hp-setup.

  3. Проверка сообщений об ошибках: При запуске hp-setup из консоли, внимательно посмотрим на любые сообщения об ошибках. Они могут дать ключ к пониманию, почему утилита не работает корректно.

5. Расширенные методы диагностики и обходные пути

Если проблема сохраняется после всех предыдущих шагов, мы можем углубиться в диагностику или рассмотреть альтернативные подходы.

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

  2. Использование Poppler вместо GhostScript для обработки PDF: CUPS часто использует GhostScript для преобразования PDF в растровые данные, понятные принтеру. В некоторых случаях GhostScript может работать некорректно или медленно. Мы можем попробовать настроить CUPS на использование Poppler для рендеринга PDF, если такая опция доступна в конфигурации драйвера принтера или через PPD-файл. Это более сложный шаг, требующий редактирования PPD-файлов или создания кастомных драйверов.

  3. Просмотр системных журналов: Во время попытки печати из 1С, мы можем отслеживать системные журналы на наличие ошибок, связанных с CUPS, HPLIP или платформой 1С. Откроем терминал и используем команду:

    
    journalctl -f
    

    Затем попробуем распечатать документ из 1С. Любые ошибки, появляющиеся в журнале, могут помочь нам определить источник проблемы.

  4. Тестирование в другой сборке Ubuntu 22.04 (виртуальная машина): Как предлагал пользователь, мы можем попробовать установить другую "вкусовую" сборку Ubuntu 22.04 (например, Kubuntu, Xubuntu) или даже просто чистую установку Ubuntu 22.04 в VirtualBox. Установим там тонкий клиент 1С и настроим принтер. Это поможет определить, является ли проблема специфичной для вашей текущей установки Ubuntu или более широко распространена на всех сборках 22.04.

Заключение

Проблема растеризации шрифтов при печати из тонкого клиента 1С:Предприятие на принтерах HP в Ubuntu 22.04 является довольно специфичной и может быть вызвана множеством факторов – от несовместимости версий библиотек и драйверов до некорректных настроек CUPS или особенностей самой платформы 1С. Мы рассмотрели комплексный набор шагов, которые помогут нам систематически диагностировать и, надеемся, решить эту проблему. В случае отсутствия однозначного решения, активное взаимодействие с технической поддержкой облачного сервиса (если используется) и сообщества пользователей Linux и 1С может оказаться критически важным.

← На главную