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

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

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

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

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

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

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

В области "СоставШапка" размещен заголовок таблицы, в котором указывается название для колонок.
В области "Состав" размещена строка для вывода строк табличной части расходной накладной:
- реквизит "Номенклатура" - расположение размечено с помощью текста
и указания в конце имени поля, которое должно выводиться на месте квадратных скобок без имени поля внутри:
- реквизит "Количество" - расположение размечено с помощью текста:
- реквизит "Цена" - расположение размечено с помощью текста:
- реквизит "Сумма" - расположение размечено с помощью текста
Дополнительно в области отчета "Состав" указан формат вывода полей "Количество", "Цена**"** и "Сумма**".** Для них указано правое выравнивание, поскольку это числовые данные, и форматная строка "ЧЦ=4; ЧДЦ=0; ЧРД=.":

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

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

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

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




