Обновление конфигурации 1С:Управление торговлей 11.4 (в частности, релиза 11.4.7.150) на платформе 8.3.14 может преподнести неприятные сюрпризы системным администраторам, работающим в среде Linux (Ubuntu). Распространенная ситуация: после успешного наката обновления на всех рабочих станциях с Ubuntu внезапно перестает работать прямая печать, хотя в Windows-клиентах все остается в норме. Параллельно с этим могут возникнуть критические сбои при синхронизации с 1С:Бухгалтерия предприятия 3.0.
В данной статье мы подробно разберем причины возникновения этих проблем, проанализируем техническую подоплеку взаимодействия 1С с графическим стеком Linux и предложим пошаговый алгоритм восстановления работоспособности системы.
Рассмотрим ситуацию, когда печать из 1С не идет на принтер напрямую, но при этом сохранение в PDF и последующая печать из стороннего просмотрщика работают корректно. Это классический признак того, что проблема кроется не в драйвере принтера как таковом, а в механизме формирования графического образа страницы внутри самой платформы 1С для подсистемы CUPS.
Выясним основные технические факторы, которые приводят к такому поведению:
libpng и libjpeg для рендеринга табличных документов. В версиях Ubuntu 14.04, 16.04 и 18.04 установленные версии этих библиотек могут конфликтовать с внутренними вызовами 1С. Если обновление конфигурации привнесло новые элементы (например, сложные штрихкоды или логотипы в заголовках), движок печати может "тихо" падать, не выдавая явной ошибки.libwebkitgtk. Обновление УТ 11.4.7 часто требует специфических версий этой библиотеки для корректного отображения и подготовки данных к печати.~/.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.МодульОбъекта(81)}: Значение не является значением объектного типа (СтрокаСообщенияОбОшибке)
Проанализируем ситуацию. Данная ошибка возникает из-за того, что в коде конфигурации объект ОбработкаДляЗагрузкиДанных оказывается не инициализирован (равен Неопределено), а программа пытается обратиться к его свойству для вывода текста ошибки. Это программный дефект релиза 11.4.7.150, который проявляется при определенных условиях в правилах обмена.
Разберем, как обойти эту проблему, если вы уже обновились и не можете откатиться назад:
ExchangeRules.xml) через обработку "Регистрация изменений для обмена".Посмотрим на пример кода, где обычно возникает затык в модуле ОбменДаннымиСервер:
// Пример проблемного участка кода
Попытка
СтруктураНастроек.СтрокаСообщенияОбОшибке = ОбработкаДляЗагрузкиДанных.СтрокаСообщенияОбОшибке;
Исключение
// Если ОбработкаДляЗагрузкиДанных не инициализирована, возникнет исключение
ЗаписьЖурналаРегистрации("Обмен данными", УровеньЖурналаРегистрации.Ошибка, , , "Не удалось получить текст ошибки");
КонецПопытки;
В случае возникновения такой ошибки при отладке, стоит проверить состояние объекта ОбработкаДляЗагрузкиДанных непосредственно перед строкой 81. Если он пустой, значит, сбой произошел на этапе инициализации COM-соединения или при чтении XML-файла сообщения.
Подводя итог, можно сказать, что связка УТ 11.4.7 + Linux + Платформа 8.3.14 является довольно нестабильной. Для обеспечения надежной работы рекомендуем следующий план действий:
libpng12-0 (для старых Ubuntu) или их аналогов в новых системах, так как 1С часто требует именно специфические версии библиотек для прямой работы с принтерами.Соблюдение этих шагов позволит восстановить работоспособность офиса и обеспечить стабильный обмен данными между торговой и бухгалтерской базами.