Как изменить имя печатной формы «Таблица» на «Счет №...» в 1С?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

Разбор механизма вывода печатных форм

В современных типовых решениях (таких как БП 3.0, УТ 11, КА) вывод печатных форм жестко регламентирован. Мы не можем просто использовать метод ТабличныйДокумент.Показать(), так как это интерактивное действие, недоступное на сервере. Вместо этого используется универсальный механизм формирования коллекции печатных форм.

Ключевой процедурой здесь является УправлениеПечатью.ВывестиТаблидукментВКоллекцию. Давайте посмотрим на её сигнатуру, чтобы понять, какие параметры мы можем использовать:


Процедура ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм, 
    ИмяМакета, 
    СинонимМакета, 
    ТабличныйДокумент, 
    Картинка = Неопределено, 
    ПолныйПутьКМакету = "", 
    ИмяФайлаПечатнойФормы = Неопределено) Экспорт

Как задать заголовок окна

Заголовок, который отображается в окне предварительного просмотра, напрямую зависит от параметра СинонимМакета, который мы передаем при вызове функции. Если вы хотите видеть в заголовке «Счет на оплату № 123», именно здесь следует формировать динамическую строку.

Однако, если вы хотите управлять именно заголовком формы, которая открывается пользователю, можно дополнительно использовать структуру ПараметрыВывода. В коде формирования печатной формы часто доступен параметр ПараметрыВывода, в котором можно переопределить свойство ЗаголовокФормы:

ПараметрыВывода.ЗаголовокФормы = "Счет на оплату № " + НомерДокумента;

Управление именем файла при сохранении

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

Чтобы исправить это, передайте в этот параметр желаемое имя файла. Мы рекомендуем формировать его с учетом номера документа и даты:


// Пример формирования имени файла
ИмяФайла = "Счет_" + СокрЛП(Объект.Номер) + "_от_" + Формат(Объект.Дата, "ДФ=dd.MM.yyyy");

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "СчетЗаказ",
    НСтр("ru='Счет на оплату'"),
    ТабличныйДокумент,
    ,
    ,
    ИмяФайла);

Пошаговый алгоритм действий

Давайте систематизируем наши действия для достижения результата:

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

Помните, что использование ТабличныйДокумент.ИмяФайла (прямое свойство объекта) также может влиять на сохранение, но в типовых механизмах приоритет всегда отдается параметрам, передаваемым в КоллекциюПечатныхФорм. Старайтесь придерживаться этого стандарта, чтобы ваши формы вели себя так же, как и типовые документы 1С.

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

← На главную