Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

1С: Настройка параметров печати документов через Native API платформы

Обновлено: 16.09.2026  ·  Официальная база знаний

Проблемы при нестандартном выводе печатных форм в 1С

При массовой пакетной печати складских накладных, маршрутных листов или самоклеящихся этикеток со штрихкодами встроенные средства интерактивного вывода дают сбой: сбивается масштаб страницы, документ печатается не на том принтере, сбивается ориентация (альбомная вместо книжной) либо печать останавливается в ожидании диалогового окна пользователя.

ПроблемаГде проявляетсяПричина
Каждый документ требует нажатия кнопки «Печать»Пакетная печать документов реализацииНе задан признак фонового вывода на печать без вызова диалога
Штрихкод на этикетке обрезается по краямТермопринтеры этикеток (Zebra, TSC)Платформа использует поля принтера по умолчанию вместо параметров макета
Документ уходит в основной лоток вместо лотка черновиковСетевые МФУ (Kyocera, HP)Отсутствует прямая инициализация свойств управления лотками (Paper Bin)

Программное управление параметрами табличного документа

  1. Базовая программная настройка геометрии страницы:

    Управление параметрами печати осуществляется через свойства объекта платформы ТабличныйДокумент до момента его отправки в спулер печати:

    ТабДок = Новый ТабличныйДокумент;
    // Установка имени параметров печати для сохранения индивидуальных настроек пользователя:
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_НАКЛАДНАЯ";
    
    // Геометрия и ориентация:
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.Автомасштаб = Истина;
    ТабДок.ПолеСлева = 10;   // в миллиметрах
    ТабДок.ПолеСправа = 10;
    ТабДок.ПолеСверху = 5;
    ТабДок.ПолеСнизу = 5;
  2. Управление количеством копий, дуплексом и целевым принтером:
    // Выбор физического или сетевого принтера из списка установленных в ОС:
    ТабДок.ИмяПринтера = "\\CORP-PRINT\HP_LaserJet_Enterprise";
    
    // Настройка двусторонней печати:
    ТабДок.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх;
    ТабДок.КоличествоЭкземпляров = 2;
    ТабДок.РазборПоКопиям = Истина;
  3. Прямой вывод в спулер печати без открытия экранной формы:
    // Метод Напечатать() отправляет задание напрямую в подсистему печати ОС Windows
    // Параметр 1: Режим использования диалога печати (НеИспользовать)
    ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
  4. Печать этикеток фиксированного размера:
    // Для принтеров термоэтикеток отключаем автомасштаб и задаем жесткий размер:
    ТабДок.Автомасштаб = Ложь;
    ТабДок.МасштабПечати = 100;
    ТабДок.РазмерСтраницы = "Custom"; // Задается драйвером, либо выбор формата: "A4", "A5"

Внимание: Свойство ИмяПараметровПечати кэширует параметры печати в системных таблицах настроек пользователя. Если вы программно меняете свойства в коде, но они не применяются на клиенте, очистите сохраненные настройки пользователя для этой печатной формы через меню Главное > Настройки > Очистка настроек.

Практический опыт инженера: Практика ITSTM: При генерации PDF-файлов из табличных документов для последующей фоновой печати на сервере Linux используйте метод ТабДок.Записать("/tmp/doc.pdf", ТипФайлаТабличногоДокумента.PDF) с последующей отправкой в демон CUPS через утилиту lpr.

Частые вопросы (FAQ)

Почему ТабДок.Напечатать() падает с ошибкой на сервере 1С?

Метод Напечатать() требует наличия контекста графической подсистемы Windows (GDI) и доступен исключительно на клиенте (Тонкий клиент, Толстый клиент). На стороне сервера 1С:Предприятия печать без вызова сторонних COM-объектов не поддерживается.

Как вывести документ ровно на одну страницу по ширине?

Установите свойство ТабДок.Автомасштаб = Истина;, либо задайте точные границы: ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабДок.МасштабПечати = 0; (при значении 0 платформа автоматически подгоняет ширину).

Как программно переключить лоток подачи бумаги в принтере?

В Native API 1С нет прямого метода переключения физического лотка (Tray ID). Для этого создают два логических принтера в Windows с одинаковым драйвером, но разными лотками по умолчанию, и передают имя нужного принтера в свойство ИмяПринтера.

Что произойдет, если указанный принтер в ТабДок.ИмяПринтера недоступен?

Платформа выдаст системное исключение либо перенаправит поток печати на принтер, назначенный в Windows принтером по умолчанию.