Как исправить проблемы с печатью в Linux и ошибки синхронизации после обновления УТ 11.4

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

Обновление конфигурации 1С:Управление торговлей 11.4 (в частности, релиза 11.4.7.150) на платформе 8.3.14 может преподнести неприятные сюрпризы системным администраторам, работающим в среде Linux (Ubuntu). Распространенная ситуация: после успешного наката обновления на всех рабочих станциях с Ubuntu внезапно перестает работать прямая печать, хотя в Windows-клиентах все остается в норме. Параллельно с этим могут возникнуть критические сбои при синхронизации с 1С:Бухгалтерия предприятия 3.0.

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

Разбираем причины отказа печати на Ubuntu

Рассмотрим ситуацию, когда печать из 1С не идет на принтер напрямую, но при этом сохранение в PDF и последующая печать из стороннего просмотрщика работают корректно. Это классический признак того, что проблема кроется не в драйвере принтера как таковом, а в механизме формирования графического образа страницы внутри самой платформы 1С для подсистемы CUPS.

Выясним основные технические факторы, которые приводят к такому поведению:

  1. Конфликт с библиотеками отрисовки: Платформа 1С версий 8.3.14.х использует системные библиотеки libpng и libjpeg для рендеринга табличных документов. В версиях Ubuntu 14.04, 16.04 и 18.04 установленные версии этих библиотек могут конфликтовать с внутренними вызовами 1С. Если обновление конфигурации привнесло новые элементы (например, сложные штрихкоды или логотипы в заголовках), движок печати может "тихо" падать, не выдавая явной ошибки.
  2. Зависимость от WebKitGTK: Формирование печатных форм в управляемом приложении на Linux жестко завязано на библиотеку libwebkitgtk. Обновление УТ 11.4.7 часто требует специфических версий этой библиотеки для корректного отображения и подготовки данных к печати.
  3. Профили пользователей и кэш: В папке пользователя ~/.1cv8 сохраняются настройки параметров страницы. При обновлении метаданных структуры печатных форм старые настройки могут стать невалидными, что блокирует инициализацию диалога печати в Linux-клиенте.

Пошаговое решение проблем с печатью

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

Шаг 1. Очистка пользовательского кэша. Это первое, что необходимо сделать на каждой проблемной машине. В Linux настройки хранятся в домашней директории. Выполним полную очистку (предварительно завершив все сеансы 1С):

Нужно удалить содержимое каталогов ~/.1cv8 и ~/.1c. Это заставит платформу заново инициализировать параметры принтеров и страниц.

Шаг 2. Обновление платформы. Практика показывает, что многие ошибки взаимодействия с CUPS были исправлены в более поздних релизах. Если вы используете 8.3.14.1694, рекомендуется перейти на ветку 8.3.15 или выше. Новые версии платформы более корректно обрабатывают передачу параметров PaperSize в Linux.

Шаг 3. Проверка шрифтов и зависимостей. Для корректного расчета ширины колонок и формирования табличного документа в Linux обязательно должны быть установлены шрифты Microsoft. Проверим их наличие командой:

sudo apt-get install ttf-mscorefonts-installer

Также убедимся, что установлена библиотека libwebkitgtk-3.0-0, которая критически важна для работы тонкого клиента.

Анализ ошибки синхронизации XDTO

Перейдем ко второй части проблемы — сбою обмена данными. Пользователи часто сталкиваются со следующей ошибкой при выгрузке данных в Бухгалтерию:

{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(81)}: Значение не является значением объектного типа (СтрокаСообщенияОбОшибке)

Проанализируем ситуацию. Данная ошибка возникает из-за того, что в коде конфигурации объект ОбработкаДляЗагрузкиДанных оказывается не инициализирован (равен Неопределено), а программа пытается обратиться к его свойству для вывода текста ошибки. Это программный дефект релиза 11.4.7.150, который проявляется при определенных условиях в правилах обмена.

Решение проблем с синхронизацией

Разберем, как обойти эту проблему, если вы уже обновились и не можете откатиться назад:

  1. Перепроведение документов: Как показывает практика, ошибка часто возникает из-за несоответствия версий объектов в узле обмена. Попробуйте вручную перепровести документы, предназначенные для выгрузки. Это принудительно обновляет данные в регистрах сведений, отвечающих за обмен, и может "протолкнуть" очередь сообщений.
  2. Обновление правил обмена: Проверьте, что в 1С:Бухгалтерия 3.0 также установлены последние обновления. Обмен между УТ 11.4 и БП 3.0 очень чувствителен к версиям XDTO-пакетов. Если конфигурация УТ обновилась, она может ожидать от БП подтверждения в новом формате, который старая версия БП не понимает.
  3. Использование внешних правил: Если типовой обмен не работает, можно временно загрузить актуальные правила обмена (файл ExchangeRules.xml) через обработку "Регистрация изменений для обмена".

Посмотрим на пример кода, где обычно возникает затык в модуле ОбменДаннымиСервер:


// Пример проблемного участка кода
Попытка
    СтруктураНастроек.СтрокаСообщенияОбОшибке = ОбработкаДляЗагрузкиДанных.СтрокаСообщенияОбОшибке;
Исключение
    // Если ОбработкаДляЗагрузкиДанных не инициализирована, возникнет исключение
    ЗаписьЖурналаРегистрации("Обмен данными", УровеньЖурналаРегистрации.Ошибка, , , "Не удалось получить текст ошибки");
КонецПопытки;

В случае возникновения такой ошибки при отладке, стоит проверить состояние объекта ОбработкаДляЗагрузкиДанных непосредственно перед строкой 81. Если он пустой, значит, сбой произошел на этапе инициализации COM-соединения или при чтении XML-файла сообщения.

Итоговые рекомендации

Подводя итог, можно сказать, что связка УТ 11.4.7 + Linux + Платформа 8.3.14 является довольно нестабильной. Для обеспечения надежной работы рекомендуем следующий план действий:

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

← На главную