Печать табличных документов из платформы 1С в среде Linux иногда сопровождается неприятным эффектом: при выборе альбомной (ландшафтной) ориентации программа визуально корректно отображает документ в режиме предварительного просмотра, но при отправке на физический принтер результат печатается в книжной ориентации. В этой статье мы разберем, почему возникает такой «перекос» и какими способами можно вернуть корректную печать документов.
Первым делом проанализируем ситуацию, когда 1С «запоминает» неверные параметры печати для конкретного пользователя. В платформе 1С существует хранилище системных настроек, куда записываются параметры последнего вывода на печать для каждого табличного документа. Если там накопились некорректные данные, их необходимо сбросить.
Рассмотрим процедуру, которая программно удаляет «битые» настройки печати текущего пользователя. Вы можете выполнить данный код через консоль кода или внешнюю обработку:
Процедура УдалитьВсеНастройкиПечатиТекущегоПользователя()
ИмяПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь.Имя;
МассивНастроек = Новый Массив;
Настройки = ХранилищеСистемныхНастроек.Выбрать(Новый Структура("Пользователь", ИмяПользователяИБ));
Пока Настройки.Следующий() Цикл
Если СтрНачинаетсяС(Настройки.КлючОбъекта, "Общее/НастройкиПечатиТабличногоДокумента") Тогда
МассивНастроек.Добавить(Настройки.КлючОбъекта);
КонецЕсли;
КонецЦикла;
Для Каждого КлючНастройки Из МассивНастроек Цикл
ХранилищеСистемныхНастроек.Удалить(КлючНастройки, Неопределено, ИмяПользователяИБ);
КонецЦикла;
КонецПроцедуры
После выполнения данного кода рекомендуется перезапустить сеанс работы с 1С. Это часто помогает, если проблема вызвана несовпадением параметров в ХранилищеСистемныхНастроек и возможностями текущего принтера в системе.
Если очистка кэша не принесла результатов, переходим к уровню операционной системы. Проблема часто кроется в том, как платформа взаимодействует с подсистемой печати CUPS (Common Unix Printing System) через PPD-файлы (PostScript Printer Description).
Разберем, что нужно предпринять:
localhost:631) на универсальный драйвер, такой как Generic PCL 6 или Generic PostScript. Они имеют меньше специфических ограничений и часто лучше интерпретируют команды 1С.CUPS можно принудительно задать ориентацию бумаги по умолчанию для конкретной очереди печати. Иногда это «перекрывает» некорректные команды, поступающие из приложения.Вы могли заметить, что при экспорте документа в PDF и последующей печати из просмотрщика PDF ориентация сохраняется верно. Это подтверждает, что сам принтер физически способен печатать в ландшафтном режиме. Проблема заключается именно в этапе генерации задания на печать платформой 1С. Когда вы отправляете документ напрямую, 1С создает поток данных (например, в формате PostScript или PCL), и если PPD-файл содержит неверную инструкцию для параметра Orientation, принтер просто игнорирует запрос на поворот страницы.
Если вышеуказанные шаги не помогли, рекомендуем выполнить следующие действия:
/etc/cups/cupsd.conf (установите LogLevel debug). В логах вы сможете увидеть, какие именно параметры Orientation передаются из 1С в систему. Если там значится Portrait, значит, платформа неверно считывает настройки драйвера.cups и libcups.Подводя итог: в 90% случаев проблема решается либо полной очисткой настроек печати пользователя в 1С, либо переустановкой принтера с использованием универсального драйвера Generic PostScript, который стабильнее работает с запросами 1С в Linux-среде.