Иногда бывает необходимо выполнять печать документов в регламентных заданиях, или при работе с web сервисами 1С. Штатными методами нельзя выполнить печать на стороне сервера 1С. Предлагаю вариант решения данной задачи при помощи библиотеки
Ghostscript необходимо предварительно установить на сервер 1С. Данный пример реализован в виде внешней обработки, позволяет выбрать принтер и размер бумаги, в том числе произвольный (Custom).
&НаСервере
Процедура ПечатьНаСервере(Знач пПутьКГХостСкрипт,Знач пПринтер)
ФайлДляПроверки = Новый Файл(пПутьКГХостСкрипт);
Если не ФайлДляПроверки.Существует() Тогда
Сообщить("Не найден файл ghostscript!");
Возврат;
КонецЕсли;
пПутьКГХостСкрипт = """" + пПутьКГХостСкрипт + """";
пПринтер = """%printer%" + пПринтер + """";
//ПечатнаяФорма - Табличный документ
ПечатнаяФорма.ПолеСверху = 0;
ПечатнаяФорма.ПолеСлева = 0;
ПечатнаяФорма.ПолеСнизу = 0;
ПечатнаяФорма.ПолеСправа = 0;
ПечатнаяФорма.РазмерКолонтитулаСверху = 0;
ПечатнаяФорма.РазмерКолонтитулаСнизу = 0;
ПечатнаяФорма.РазмерСтраницы = Размер;
РазмерБумаги = "";
Если Размер = "Custom" Тогда
ПечатнаяФорма.ВысотаСтраницы = ВысотаСтраницы;
ПечатнаяФорма.ШиринаСтраницы = ШиринаСтраницы;
ПечатнаяФорма.АвтоМасштаб = Истина;
//1/72 дюйма
ммВДюйме = 25.4;
РазмерБумаги = " -dDEVICEWIDTHPOINTS=" + Формат(ШиринаСтраницы/ммВДюйме*72,"ЧДЦ=0; ЧГ=0") + " -dDEVICEHEIGHTPOINTS="+Формат(ВысотаСтраницы/ммВДюйме*72,"ЧДЦ=0; ЧГ=0");
Иначе
РазмерБумаги = " -sPAPERSIZE=" + Размер;
КонецЕсли;
ФайлДляПечати = ПолучитьИмяВременногоФайла("pdf");
ПечатнаяФорма.Записать(ФайлДляПечати, ТипФайлаТабличногоДокумента.PDF);
ФайлНаДиске = Новый Файл(ФайлДляПечати);
Если не ФайлНаДиске.Существует() Тогда
Сообщить("Не найден файл для печати!");
Возврат;
КонецЕсли;
ФайлДляПечати = """" + ФайлДляПечати + """";
КомандаПечати = пПутьКГХостСкрипт + " -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile=" + пПринтер + " -dPDFFitPage "
+ РазмерБумаги + " "+ ФайлДляПечати;
ЗапуститьПриложение(КомандаПечати,,Ложь,);
КонецПроцедуры
Платформа предприятия 8.3.20
Пример для ОС Windows, но есть версия библиотеки для Linux
Исходный код открыт