При разработке внешних печатных форм в типовых конфигурациях 1С, работающих на основе БСП (Библиотеки стандартных подсистем), разработчики часто сталкиваются с тем, что сформированный табличный документ в окне просмотра получает стандартное наименование «Таблица». Это не только выглядит непрофессионально, но и затрудняет последующее сохранение документа на диск, так как система не предлагает осмысленного имени файла. Давайте разберем, как исправить эту ситуацию и задать нужные заголовки.
В современных типовых решениях (таких как БП 3.0, УТ 11, КА) вывод печатных форм жестко регламентирован. Мы не можем просто использовать метод ТабличныйДокумент.Показать(), так как это интерактивное действие, недоступное на сервере. Вместо этого используется универсальный механизм формирования коллекции печатных форм.
Ключевой процедурой здесь является УправлениеПечатью.ВывестиТаблидукментВКоллекцию. Давайте посмотрим на её сигнатуру, чтобы понять, какие параметры мы можем использовать:
Процедура ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
ИмяМакета,
СинонимМакета,
ТабличныйДокумент,
Картинка = Неопределено,
ПолныйПутьКМакету = "",
ИмяФайлаПечатнойФормы = Неопределено) Экспорт
Заголовок, который отображается в окне предварительного просмотра, напрямую зависит от параметра СинонимМакета, который мы передаем при вызове функции. Если вы хотите видеть в заголовке «Счет на оплату № 123», именно здесь следует формировать динамическую строку.
Однако, если вы хотите управлять именно заголовком формы, которая открывается пользователю, можно дополнительно использовать структуру ПараметрыВывода. В коде формирования печатной формы часто доступен параметр ПараметрыВывода, в котором можно переопределить свойство ЗаголовокФормы:
ПараметрыВывода.ЗаголовокФормы = "Счет на оплату № " + НомерДокумента;
Самый частый вопрос — почему при нажатии на кнопку «Сохранить» 1С предлагает стандартное имя файла? Причина кроется в последнем параметре функции ВывестиТабличныйДокументВКоллекцию — ИмяФайлаПечатнойФормы. Если оставить его со значением Неопределено, система подставит «Таблица».
Чтобы исправить это, передайте в этот параметр желаемое имя файла. Мы рекомендуем формировать его с учетом номера документа и даты:
// Пример формирования имени файла
ИмяФайла = "Счет_" + СокрЛП(Объект.Номер) + "_от_" + Формат(Объект.Дата, "ДФ=dd.MM.yyyy");
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СчетЗаказ",
НСтр("ru='Счет на оплату'"),
ТабличныйДокумент,
,
,
ИмяФайла);
Давайте систематизируем наши действия для достижения результата:
ТабличныйДокумент в процедуре печати внешней обработки.Объект.Номер.УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию обязательно заполните последний аргумент ИмяФайлаПечатнойФормы.СинонимМакета для отображения имени в списке и ПараметрыВывода.ЗаголовокФормы для изменения заголовка окна, если это необходимо.Помните, что использование ТабличныйДокумент.ИмяФайла (прямое свойство объекта) также может влиять на сохранение, но в типовых механизмах приоритет всегда отдается параметрам, передаваемым в КоллекциюПечатныхФорм. Старайтесь придерживаться этого стандарта, чтобы ваши формы вели себя так же, как и типовые документы 1С.
Если вы работаете в рамках расширения конфигурации, вы можете создать замещающую процедуру для типовой функции печати и дописать туда логику формирования имени файла, если исходная печатная форма не позволяет сделать это через параметры.