Как в 1с добавить текст в макете

Обновлено: 04.07.2024

Несмотря на простоту вопроса, у пользователей программ 1С он возникает постоянно: «Как разместить документ на одной странице, если его края по ширине или длине выходят на другой лист?» или «Как распечатать два экземпляра документа на одном листе?» Ведь практически все бухгалтеры любят экономить бумагу. В этом лайфхаке раскроем все секреты!

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

Рассмотрим на примерах.

Настройка ориентации и масштаба листов

Имеем документ «Расчетная ведомость».

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

Для настройки параметров листа по кнопке «Еще» выберите команду «Параметры страницы».

Для данной формы установим параметры:

• Ориентация листа – «ландшафт» - альбомная ориентация.

• Масштаб – «По ширине листа».

При таком масштабе программа автоматически выровняет печатную форму по краям листа. Нажмите «Ок» и проверьте результат.

Форма вместилась на два листа и по краям нет пустого места. Ширина автоматически подобрана.

Ведомость распечатывается с двух сторон.

При необходимости пользователь может задать произвольно масштаб документа, установив значение в процентах.

Настройка полей. Двусторонняя печать в 1С

При печати документа обратите внимание на настройку полей: с какой стороны делается отступ для подшивки, чтобы край документа не «съело».

Для этого выставьте нужный размер в настройке «Поля».

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

При двусторонней печати не забудьте про зеркальное отображение страниц – «Чередование страниц» и настройки двусторонней печати. Настройте параметры в разделе «Режимы печати».

Как распечатать два экземпляра документа в 1С на одном листе?

Рассмотрим еще один пример. Имеем документ «Расходная накладная». Документ небольшой и пользователь может распечатать на одном листе два экземпляра.

Для настройки перейдите по кнопке «Еще» - «Параметры страницы».

В настройке установите переключатель в положение – 2 экземпляра на странице. Нажмите «Ок» и распечатайте документ.

В связи с выходом обработок "АЛАНН: Печать документов с печатью и подписью в PDF из 1С" и "АЛАНН: Рассылка почты из 1С", позволяющих отправлять клиентам печатные формы любых документов в формате PDF (предварительно вставив туда печати и подписи), у программистов появилась возможность создавать свои внешние печатные формы и прикреплять их к обработкам АЛАНН. Каким требованиям должны соответствовать внешние печатные формы, создаваемые для обработок АЛАНН, описано в публикации "Как создать свою внешнюю печатную форму к обработкам АЛАНН". В этой же публикации пойдёт речь о способах добавления изображений в макеты.

Метод, который буду описывать я, назовём "Метод "Слоями"". Метод, который всем известен и чаще используется (когда в макет добавляются картинки с прозрачным фоном), назовём "Метод "Прозрачности"".

Технология, так сказать.

Итак, для примера, вставим печать и подписи в типовой счёт на оплату (конфигурации Управление торговлей 10.3). Для этого откроем общий макет "СчетЗаказ" и найдём область "ПодвалСчета" (полупрозрачными красными квадратами я выделил области, в которые мне необходимо вставить печать и подписи)):


Разумеется, если сейчас натыкать картинки с печатью и подписью в макет, то текст, который за ними, видно не будет. Поэтому находим на панели инструментов элементы: "Прямая" и "Текст" (на картинке ниже на эти элементы показывают красные стрелочки):


Выбираем элемент "Текст" и добавляем его в макет:


  1. Устанавливаем у элемента: текст "Руководитель", размер шрифта - "10" и выделение жирным.
  2. В свойствах элемента указываем: Линия - "Нет линии", ЦветФона - "Авто" (нажимаем на кнопку "Очистить" [X]), Узор - "Нет заливки":


В результате в макете у нас получилось две, визуально одинаковых, надписи "Руководитель":


Теперь ту надпись, которую мы создали, необходимо передвинуть так, чтобы она полностью совпала с "родной" надписью "Руководитель":


А "родную" надпись можно удалить.

То же самое делаем с остальными надписями в области "ПодвалСчета".

Механизм работы с линиями подчёркивания аналогичен:

  1. Добавляем в макет элемент типа "Прямая"
  2. Полностью совмещаем его с нужной линией в макете (например, линией, подчёркивающей наименование должности).
  3. После чего удаляем эту самую "родную" линию.

В конечном итоге у нас получится область макета, состоящая полностью из элементов типа "Текст" ил "Прямая", ничем не отличающаяся от исходной области:


Теперь добавляем в макет три изображения: Печать и две подписи. Так, что получается:


"Ну и где же фокус?" - скажете вы. А вот для фокуса сделаем следующее:

  1. вызовем контекстное меню одного из изображений (щелкнем правой кнопкой мышки по изображению),
  2. выберем "Порядок -> На задний план".

И так для каждого из изображений. В результате получится:


или, если смотреть уже готовый вариант, то:


Если макет готовится для использования совместно с обрабтоками АЛАНН, необходимо:

  1. Всем изображениям в макете дать нормальные для восприятия имена (например, "ПечатьОрганизации", "ПодписьРуководителя", и т.п.).
  2. Очистить изображения от содержимого, т.е. сделать картинки пустыми.

Сравнение результата методов "Слоями" и "Прозрачности"


Примерно так выглядят результаты при использовании этих методов. Как мне кажется, картинка справа более эстетична:

Метод "Прозрачности" Метод "Слоями"


К публикации прикреплён файл, содержащий готовые подвалы для типовых печатных форм (Счёт, ТОРГ-12, Акт об оказании услуг), в которые вставлены изображения (печати и подписи) по методу "Слоями".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В этом уроке мы научимся создавать табличные макеты в 1С, которые в дальнейшем могут быть использованы для программного формирования печатных форм.

К примеру, как я сформировал макеты для тестовой базы.

Я зашёл в форму обработки и перешёл на закладку "Макеты":

Далее я нажал на "Плюсик" и выбрал тип "Табличный документ":

Открылся редактор табличного документа:

Во многих моментах работа в редакторе похожа на работу в программе Excel, но есть свои особенности, на которых я бы хотел остановиться.

Как назначить имя области

Что я понимаю под областью? Это и несколько строк и несколько ячеек, в общем любая часть табличного документа, которая может быть выделена нами, используя левую кнопку мыши.

Вот выделенная область из двух строк:

А вот выделенная область из 2 столбцов:

А сейчас мы выделим область на пересечении первых двух строк и первых двух столбцов:

Так вот. Если мы сумели выделить нужную нам область, то, нажав на ней правой кнопкой и выбрав пункт "Свойства", мы сможем присвоить ей имя, по-которому мы будем к ней обращаться из нашего кода, формируя печатную форму:

Это базовый навык, которым мы должны овладеть, чтобы суметь делать табличные макеты.

Как посмотреть уже назначенные имена

А давайте посмотрим какие имена областям уже назначены в макете?

Для этого из меню конфигуратора выбираем:

Вот она наша только что назначенная область "Шапка":

А если сейчас выделим её в диалоге и нажмём "Выбрать", то в редакторе будет выбрана соотв. область ячеек:

Как задать параметр области

Часто при формировании печатной области требуется не просто вывести область из макета. Нужно ещё и заполнить определенные ячейки определенными параметрами.

Эти параметры мы задаём у области и заданные значения автоматически попадают в нужные ячейки.

Для этого в свойствах нужной нам ячейки (куда будет выводиться значение параметра).

Указываем в поле "Заполнение" значение "Параметр", а в поле "Параметр" пишем имя, по которому мы будем обращаться к этому параметру из кода:

Если же указать в заполнении не "Параметр", а "Шаблон", то можно будет в самой ячейке указать какой-то текст (шаблон) с использованием имени параметра в квадратных скобках:

В этом случае имя параметра (и его позиция в шаблоне) указывается в квадратных скобках.

Как задать параметр расшифровки?

Имя параметра расшифровки задаётся всё в тех же свойствах ячейки:

Уже потом из кода мы присвоим этому параметру (по имени "РасшифровкаНоменклатуры") нужное значение (ссылку на элемент номенклатуры).

И когда пользователь сделает двойной щелчок на этой ячейки - ему откроется значение, присвоенное параметру расшифровки (в данном случае откроется форма элемента номенклатуры).

Дальнейшее напутствие

Мы рассмотрели необходимые основы. А теперь внимательно исследуйте рабочий пример.

Скачайте и разверните эту базу. Найдите в ней обработку "ОбработкаДляИспытаний".

В её макетах есть табличные варианты. Исследуйте их как можно тщательнее, опираясь на приёмы, которые мы рассмотрели чуть выше.

Уже затем (в этой же обработке) переходите к примерам использования этих макетов. Только так вы научитесь создавать свои печатные формы на основе табличных макетов.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также: