Пример использования текстового макета

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

Рассмотрим устройство текстового макета и пример его использования.

В демонстрационной конфигурации для документа "Расходная накладная" существует процедура печати документа в текстовый файл. Откроем документ "Расходная накладная" и в нижней части формы документа нажмем кнопку "Текстовая печать": 

В отдельном окне будет открыт текстовый документ, в который выведен документ "Расходная накладная":

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

Текстовый макет

Для создания текстового макета в дереве конфигурации нужно добавить новый макет для документа "Расходная накладная", указав, что создаваемый макет будет содержать текстовый документ:

Созданный текстовый макет - обычный текстовый файл, в котором в виде текста описывается содержание макета.

Для документа "Расходная накладная" макет состоит из нескольких областей: "Заголовок", "Шапка", "СоставШапки", "Состав", "Подвал".

В области "Заголовок" размещен текст "Расходная накладная".

В области "Шапка" выводятся номер документа и дата. Место для вывода номера документа размечено с помощью конструкции:

Для вывоода даты - с помощью конструкции:

 

Для вывода контрагента - с помощью конструкции:

 

Во второй строке выводится текст, не уместившийся на первой строке.

Для вывода даты указан формат вывода:

В области "СоставШапка" размещен заголовок таблицы, в котором указывается название для колонок.

В области "Состав" размещена строка для вывода строк табличной части расходной накладной:

1) реквизит "Номенклатура" - расположение размечено с помощью текста

 и указания в конце имени поля, которое должно выводиться на месте квадратных скобок без имени поля внутри:

2) реквизит "Количество" - расположение размечено с помощью текста:

3) реквизит "Цена" - расположение размечено с помощью текста:

 

4) реквизит "Сумма" - расположение размечено с помощью текста

 

Дополнительно в области отчета "Состав" указан формат вывода полей "Количество", "Цена" и "Сумма". Для них указано правое выравнивание, поскольку это числовые данные, и форматная строка "ЧЦ=4; ЧДЦ=0; ЧРД=.":

На тот случай, если наименование хранит достаточно длинный текст, который не поместится на одной строке, предусмотрен его вывод на несколько строк. Это сделано с помощью строк макета:

В них указано, что в первой колонке будет выводится значение поля "Номенклатура". Угловые скобки на второй строке показывают, что строка будет выводиться только в том случае, если есть что в ней выводить: например, содержимое поля "Номенклатура" полностью не уместилось в одну строку и выводится еще одна строка.

В области "Подвал" выводится итоговое значение по полю "Сумма", которое будет сформировано программно:

При этом, для поля "СуммаИтого" также указано правое выравнивание и форматная строка:

Программный код

Для вывода расходной накладной в текстовый файл, в форме "ФормаДокумента" документа "РасходнаяНакладная" размещена процедура  ОсновныеДействияФормыТекстоваяПечать. Она вызывается при нажатии на кнопку "Текстовая печать" в форме.

В процедуре создается текстовый макет (переменная ТекстДок), в который будут выводиться данные. Далее получается текстовый макет (переменная Макет), из которого поочередно получаются области "Заголовок", "Шапка", "СоставШапка", "Состав" и "Подвал".  Для каждой из полученных областей заполняются значения параметров и выводится в текстовый документ.

После окончания формирования содержимого текстового документа, он открывается для просмотра и редактирования.