1C:Предприятие 8 предоставляет возможность формировать выходные формы (документы, отчеты) на основе текстового документа. Часто вывод информации в текстовый документ очень удобен, поскольку во многих случаях текстовый файл можно, например, быстро напечатать на матричном принтере или передать в другую программу.
Рассмотрим устройство текстового макета и пример его использования.
В демонстрационной конфигурации для документа "Расходная накладная" существует процедура печати документа в текстовый файл. Откроем документ "Расходная накладная" и в нижней части формы документа нажмем кнопку "Текстовая печать":
В отдельном окне будет открыт текстовый документ, в который выведен документ "Расходная накладная":
Для обеспечения такой функциональности нужно создать текстовый макет и программный код, который будет открывать макет и на его основе формировать текстовый документ.
Для создания текстового макета в дереве конфигурации нужно добавить новый макет для документа "Расходная накладная", указав, что создаваемый макет будет содержать текстовый документ:
Созданный текстовый макет - обычный текстовый файл, в котором в виде текста описывается содержание макета.
Для документа "Расходная накладная" макет состоит из нескольких областей: "Заголовок", "Шапка", "СоставШапки", "Состав", "Подвал".
В области "Заголовок" размещен текст "Расходная накладная".
В области "Шапка" выводятся номер документа и дата. Место для вывода номера документа размечено с помощью конструкции:
Для вывоода даты - с помощью конструкции:
Для вывода контрагента - с помощью конструкции:
Во второй строке выводится текст, не уместившийся на первой строке.
Для вывода даты указан формат вывода:
В области "СоставШапка" размещен заголовок таблицы, в котором указывается название для колонок.
В области "Состав" размещена строка для вывода строк табличной части расходной накладной:
1) реквизит "Номенклатура" - расположение размечено с помощью текста
и указания в конце имени поля, которое должно выводиться на месте квадратных скобок без имени поля внутри:
2) реквизит "Количество" - расположение размечено с помощью текста:
3) реквизит "Цена" - расположение размечено с помощью текста:
4) реквизит "Сумма" - расположение размечено с помощью текста
Дополнительно в области отчета "Состав" указан формат вывода полей "Количество", "Цена" и "Сумма". Для них указано правое выравнивание, поскольку это числовые данные, и форматная строка "ЧЦ=4; ЧДЦ=0; ЧРД=.":
На тот случай, если наименование хранит достаточно длинный текст, который не поместится на одной строке, предусмотрен его вывод на несколько строк. Это сделано с помощью строк макета:
В них указано, что в первой колонке будет выводится значение поля "Номенклатура". Угловые скобки на второй строке показывают, что строка будет выводиться только в том случае, если есть что в ней выводить: например, содержимое поля "Номенклатура" полностью не уместилось в одну строку и выводится еще одна строка.
В области "Подвал" выводится итоговое значение по полю "Сумма", которое будет сформировано программно:
При этом, для поля "СуммаИтого" также указано правое выравнивание и форматная строка:
Для вывода расходной накладной в текстовый файл, в форме "ФормаДокумента" документа "РасходнаяНакладная" размещена процедура ОсновныеДействияФормыТекстоваяПечать. Она вызывается при нажатии на кнопку "Текстовая печать" в форме.
В процедуре создается текстовый макет (переменная ТекстДок), в который будут выводиться данные. Далее получается текстовый макет (переменная Макет), из которого поочередно получаются области "Заголовок", "Шапка", "СоставШапка", "Состав" и "Подвал". Для каждой из полученных областей заполняются значения параметров и выводится в текстовый документ.
После окончания формирования содержимого текстового документа, он открывается для просмотра и редактирования.