Как изменить заголовок Печать документа при выводе табличного документа в 1С

Программист 1С v8.3 (Управляемые формы)
← На главную

При разработке внешних печатных форм или отчетов в конфигурациях на базе Библиотеки стандартных подсистем (БСП), таких как «Управление холдингом», «ERP» или «Бухгалтерия предприятия 3.0», разработчики часто сталкиваются с тем, что в заголовке окна предварительного просмотра или в очереди печати принтера отображается стандартный текст «Печать документа». Это выглядит неинформативно для пользователя, особенно если печатается сразу несколько разных форм.

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

Способ 1. Изменение синонима в коллекции печатных форм

Чаще всего внешние обработки используют стандартный механизм печати БСП через процедуру Печать. В этой процедуре происходит формирование табличного документа и его добавление в общую коллекцию. Именно здесь закладывается имя, которое пользователь увидит в списке печатных форм и в заголовке окна.

Проанализируем типовой код вывода документа в коллекцию:


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 

    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_ПечатнаяФорма") Тогда
        
        ТабДок = СформироватьПечатнуюФорму(МассивОбъектов); // Ваша функция формирования
        
        // Третий параметр в методе ниже — это и есть заголовок (Синоним)
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм, 
            "ПФ_MXL_ПечатнаяФорма", 
            "Заголовок, который вы хотите видеть", // Поменяйте "Печать документа" на это
            ТабДок
        );
        
    КонецЕсли;

КонецПроцедуры

Разберем этот момент: если вы передаете в третий параметр жестко заданную строку "Печать документа", система будет использовать именно ее. Чтобы сделать заголовок динамическим (например, «Счет на оплату №...»), необходимо сформировать эту строку программно, основываясь на данных печатаемого объекта.

Способ 2. Установка свойства Заголовок самого Табличного Документа

Иногда изменение синонима в коллекции недостаточно, особенно если вы используете нестандартные вызовы или хотите гарантировать, что имя документа сохранится при открытии его в отдельном окне. У объекта ТабличныйДокумент есть собственное свойство Заголовок.

Рассмотрим пример установки этого свойства непосредственно в коде формирования макета:


ТабДок = Новый ТабличныйДокумент;
ТабДок.Заголовок = "Реестр платежей от " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
// Далее идет заполнение макета...

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

Способ 3. Управление параметрами вывода (структура ПараметрыВывода)

В стандартных процедурах печати БСП передается параметр ПараметрыВывода. Это структура, которая позволяет управлять поведением формы печати. В ней есть поле Заголовок, которое система анализирует перед открытием формы ПечатьДокументов.

Посмотрим, как можно модифицировать этот параметр:


// Внутри процедуры Печать
ПараметрыВывода.Заголовок = "Печать реестра документов";

Если этот параметр заполнен, общая форма печати БСП (ОбщаяФорма.ПечатьДокументов) при создании на сервере установит заголовок окна равным этому значению. Если же параметр пуст, система обратится к метаданным самой формы или к синонимам из коллекции. Для отправки произвольного табличного документа в эту форму можно использовать обработку для печати через типовой механизм БСП.

Способ 4. Настройка имени файла и параметров печати

Выясним, как сделать так, чтобы при сохранении документа (например, в PDF) система предлагала осмысленное имя файла, а не «Таблица.mxl» или «Печать документа». Для этого используются два важных свойства табличного документа: ИспользуемоеИмяФайла и ИмяПараметровПечати.

Пример реализации:


ТабДок.ИспользуемоеИмяФайла = "Счет_на_оплату_№123";
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МОЯ_ВНЕШНЯЯ_ОБРАБОТКА_СЧЕТ";

Способ 5. Особенности при использовании внешней обработки

Если вы печатаете из внешней обработки и используете вызов УправлениеПечатьюКлиент.ПечатьДокументов, обратите внимание на то, как вы заполняете коллекцию. Вы можете напрямую обратиться к заголовку формы в момент ее открытия, но это считается «плохим тоном» в программировании 1С. Правильнее всего — корректно подготовить данные на стороне сервера в процедуре формирования печатной формы.

Проанализируем ситуацию, описанную в сообщениях форума. Пользователь выяснил, что заголовок берется из ОбщаяФорма.ПечатьДокументов. Если вы хотите изменить заголовок окна «на лету» из кода формы (что упоминалось в сообщении 9), можно использовать следующий прием в процедуре ПриСозданииНаСервере или при открытии:

ЭтаФорма.Заголовок = "Ваш новый заголовок";

Однако помните, что при использовании БСП лучше придерживаться штатных механизмов: передавать правильные синонимы в КоллекцияПечатныхФорм и заполнять ПараметрыВывода. Это гарантирует стабильную работу при обновлениях платформы и конфигурации. Для изучения корректной структуры кода подойдёт пример реализации внешней печатной формы на БСП.

Подведем итоги

Чтобы избавиться от назойливого заголовка «Печать документа», рекомендуется выполнить следующие шаги:

  1. В процедуре Печать при вызове УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию всегда указывайте осмысленный третий параметр.
  2. Явно устанавливайте ТабДок.Заголовок для самого объекта табличного документа.
  3. Не забывайте про ТабДок.ИспользуемоеИмяФайла, чтобы пользователи могли удобно сохранять результаты работы.
  4. Если печатается один специфичный документ, можно дозаполнить структуру ПараметрыВывода.Заголовок.

Используя эти методы, вы сделаете работу пользователей в «1С:Предприятии» гораздо более комфортной, а ваши печатные формы — профессиональными.

← На главную