Публикации. Публикации Изменение формы счета в 1с

В этой статье подробно будет рассказано, как новичку, плохо знающему 1С 8 создать печатную форму. Для примера возьмем одну из самых распространенных конфигураций 1С 8 — Бухгалтерию 2.0 . Создание печатной формы 1С этапы написания:

  • Создание файла внешней печатной формы;
  • Создание макета печатной формы;
  • Написание программного кода для вывода данных печатной формы на экран;
  • Создание параметров авторегистрации печатной формы;
  • Подключение внешней печатной формы к базе 1С Предприятия .

Создание печатной формы 1С. Постановка задачи

От нас требуется в конфигурации Бухгалтерия 2.0 создать печатную форму к документу Поступление товаров и услуг . В шапке печатной формы вывести следующие данные:

  • Организацию;
  • Контрагента;
  • Договор контрагента;
  • Дату поступления.

В виде таблицы вывести данные табличной части Товары документа. Таблица должна включать в себя следующие колонки:

  • Номенклатура;
  • Количество;
  • Цена;
  • Сумма;
  • А также цена номенклатуры на текущую дату (по виду цен из документа).

Файл внешней обработки

Перейдем к решению задачи. Для начала откроем 1С 8 в режиме Конфигуратор . Именно в этом режиме осуществляются все разработки на платформе 1С 8. Теперь нам необходимо создать файл внешней обработки. Для этого кликнем по меню Файл -> Новый… или по пиктограмме нового файла.

В открывшемся окошке выберем пункт Внешняя обработка .

Далее в поле Имя необходимо вписать название внешней обработки. В нашем случае назовем ее просто: «ПечатнаяФорма», поле синоним при этом заполнится автоматически. Обратите внимание, что в поле Имя, внешней обработки, следует писать название без пробелов и знаков препинания.

Добавим реквизит внешней обработки СсылкаНаОбъект и выберем для него тип ДокументСсылка.ПоступлениеТоваровУслуг . Для этого в дереве метаданных внешней обработки 1С выделим пункт Реквизиты и нажмем кнопку Добавить (кнопка с зеленым плюсом). В правой части экрана откроется окно свойств реквизита, в поле Имя впишем — СсылкаНаОбъект. В поле Тип нажмем кнопку с тремя точками.

В дереве типов раскроем ветку ДокументСсылка , и найдем там элемент ПоступлениеТоваровУслуг, поставим напротив него галочку и нажмем ОК.

Сохраним файл внешней обработки на жесткий диск, для этого воспользуемся меню Файл -> Сохранить , пиктограммой Сохранить (синяя дискета), либо сочетанием клавиш Ctrl + S . Назовем сохраняемый файл «ПечатнаяФорма».

Создание макета печатной формы

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

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

В открывшемся новом макете создадим несколько областей, необходимых для вывода печатной формы. Все необходимые нам области макета будут горизонтальными, поэтому для создания новой области следует выделить необходимое количество строк макета и перейти в меню Таблица -> Имена -> Назначить имя или использовать сочетание клавиш Ctrl + Shift + N, после чего ввести в окошке имя области. При создании области макета не бойтесь ошибиться с количеством строк их всегда можно будет добавить или убрать. Для удаления строки макета 1С выделите нужную строку и выберите в контекстном меню пункт Удалить . Для добавление новой строки в макет, выделите любую строку макета и выберите в контекстном меню пункт Раздвинуть .

Добавление шапки макета

В первую очередь создадим область Шапка , в нее будут выводится данные для заголовка печатной формы. Для данной области нам потребуется семь строк макета. Выделим их и, как я уже писал выше, нажмем сочетание клавиш Ctrl + Shift + N , в поле Имя напишем «Шапка» и нажмем кнопку ОК .

Заполним область макета нужными нам данными. Обычно ни одна печатная форма не обходится без заголовка, поэтому создадим его и в нашей шапке макета. Так как в заголовке помимо названия печатной формы мы будем выводить еще и номер документа из которого она была напечатана, то текст заголовка в макете мы зададим параметром. Параметр макета — это специально обозначенная ячейка макета, в которую при помощи встроенного языка 1С 8 можно выводить различные данные. Заголовок должен выводится на всю ширину печатной формы, поэтому определимся сколько ячеек макета нам будет достаточно для печати на стандартной альбомной ориентации листа.

Обычно хватает тринадцать или четырнадцать ячеек макета, выделим их в первой строке области Шапка и объединим в одну ячейку (Контекстное меню -> Объединить ). После этого дважды щелкнем по получившейся большой ячейке и напишем название параметра, в нашем случае «ТекстЗаголовка». Для того чтобы введенный текст стал полноценным параметром щелкнем по ячейке правой кнопкой мыши и в контекстном меню выберем пункт Свойства . На закладке Макет найдем поле Заполнение и выберем значение Параметр . Параметры в макете 1С обозначаются скобками «<>».

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

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

На рисунке видно, как отличаются параметры макета, от обычного текста.

Добавление шапки таблицы макета

Последнее, что нам необходимо создать в данной области макета — это шапка таблицы, в которую будут выводится данные табличной части Товары . Колонки необходимые для таблицы были описаны в разделе «Постановка задачи». Шапку таблицы также создадим используя объединение ячеек и написания текста (названий колонок). Границы шапки таблицы выделим при помощи инструмента Рамка , который расположен на панели форматирования макета.

Добавление таблицы в макет

Создадим в макете еще одну область — Данные . В нее будет выводится таблица данных табличной части Товары. Для данной области нам понадобится только одна строка макета. Чтобы вывести все строки табличной части в печатную форму мы будем заполнять и выводить данную область нужное количество раз. Колонки в области Данные должны совпадать с колонками шапки таблицы, поэтому заполнить ее не составит труда. Единственное отличие — в области Данные нам нужны параметры, а не просто текст. Также заметьте, что по умолчанию числовые параметры форматируются по правому краю, а текстовые по левому. Для выделения колонок, также необходимо использовать инструмент Рамка .

Добавление подвала в макет

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

В итоге должен получиться макет следующего вида:

Создание печатной формы 1С. Программирование

Приступим к программированию — это важнейший этап создания печатной формы. В первую очередь перейдем в модуль объекта внешней печатной формы, именно там мы будем программировать. Для этого в основном окне внешней обработки нажмем Действия -> Открыть модуль объекта.

В модуле объекта внешней печатной формы необходимо создать экспортную функцию Печать().

Функция Печать() Экспорт КонецФункции

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

Инициализация основных переменных

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

ТабДок = новый ТабличныйДокумент;

В переменную Макет получим созданный нами макет печатной формы. Для этого используем встроенную функцию ПолучитьМакет(<ИмяМакета>).

Макет = ПолучитьМакет("Макет");

Все области макета получим в переменные. Для этого используем метод макета ПолучитьОбласть(<ИмяОбласти>) .

ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьДанные = Макет.ПолучитьОбласть("Данные"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

Вывод шапки печатной формы в табличный документ

Все необходимые переменные инициализированы. Приступим к заполнению и выводу областей макета в табличный документ. В первую очередь заполним заголовок печатной формы, для этого нам необходимо передать в параметр ТекстЗаголовка , который мы создали в макете, нужный нам текст. Для заполнения значений параметров у области макета существует специальная коллекция, которая так и называется — Параметры. Из которой через «.» можно получить любой параметр. В текст заголовка передадим текст: «Печатная форма», а также номер документа.

ОбластьШапки.Параметры.ТекстЗаголовка = "Печатная форма "+СсылкаНаОбъект.Номер;

Остальные параметры шапки заполним подобным образом, все необходимые для них значения получим из реквизита СсылкаНаОбъект , в котором содержится ссылка на печатаемый документ.

ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация; ОбластьШапки.Параметры.Контрагент = СсылкаНаОбъект.Контрагент; ОбластьШапки.Параметры.ДатаПоступления = СсылкаНаОбъект.Дата; ОбластьШапки.Параметры.ДоговорКонтрагента = СсылкаНаОбъект.ДоговорКонтрагента;

Все параметры шапки заполнены, выведем ее в созданный нами табличный документ, для этого используем метод Вывести(<Область>) .

ТабДок.Вывести(ОбластьШапки);

Написание запроса для печатной форы

Займемся заполнением и выводом области Данные . Создание печатной формы 1С подразумевает и написание запроса, нам он необходим для получения данных табличной части Товары и цен Номенклатуры на текущую дату будем использовать Запрос . Язык запросов 1С 8 похож на SQL, а точнее практически копирует возможности его оператора SELECT, но при этом весь запрос пишется на русском языке. Поэтому если вы хотя бы отдаленно знакомы с SQL, то и язык запросов 1С 8 поймете легко.

В данной печатной форме запрос будет довольно простым и многие скажут, что можно было бы обойтись и без него, но знание языка запросов и умение его грамотно использовать — одно из главных умений программиста 1С. Запросы позволяют используя меньшие ресурсы получать сложнейшие выборки данных, а также в тексте запроса намного легче разобраться, чем в программном коде написанном без использования запроса (или с минимальным его использованием). К тому же, в 1С 8 есть очень хороший конструктор запросов, позволяющий в интерактивном режиме собирать запрос из нужных таблиц.

Создадим переменную, которая будет содержать в себе запрос.

Запрос = Новый Запрос;

Текст запроса будем составлять при помощи конструктора запросов. Для начала напишем:

Запрос.Текст = "";

Поставим курсор мышки между кавычками, нажмем правую кнопку мыши. В открывшемся контекстном меню выберем пункт Конструктор запроса, он очень поможет нам в создании печатной формы 1С. После этого откроется окно конструктора запроса, оно содержит много вкладок, но для нашего запроса понадобятся только четыре: «Таблицы и поля», «Связи», «Условия», «Объединения / Псевдонимы».

Для нашего запроса нам понадобятся две таблицы: табличная часть Товары документа Поступление товаров и услуг и срез последних на текущую дату регистра сведений Цены номенклатуры .

В левой части окна конструктора найдем столбец База данных . В нем находится дерево всех объектов метаданных, найдем нужные нам. Для этого раскроем ветку Документы и отыщем документ ПоступлениеТоваровУслуг , раскроем его и найдем табличную часть Товары , перетащим ее в столбец конструктора запросов Таблицы . Перетащить можно тремя способами: собственно перетаскиванием, двойным щелчком по таблице или выделив ее и нажав кнопку «>». Раскроем ветку РегистрыСведений и найдем там таблицу ЦеныНоменклатуры.СрезПоследних , также перетащим ее в столбец Таблицы . Этих двух таблиц достаточно для нашего запроса.

Выберем нужные нам поля из полученных таблиц. Для этого в столбце Таблицы раскроем таблицу и найдем поля: Номенклатура, Сумма, Цена, Количество и перетащим их в третий столбец конструктора — Поля . Раскроем таблицу , найдем поле Цена и тоже перетащим его в Поля .

Структура таблиц и полей нашего запроса готова, теперь займемся условиями. Нам необходимо чтобы данные табличной части Товары брались не из всех поступлений, а только из того, которое мы печатаем. Для этого наложим условие на таблицу ПоступлениеТоваровУслугТовары . Перейдем на закладку «Условия» конструктора запросов. В колонке Поля расположены выбранные нами ранее таблицы, для условия нам понадобится поле Ссылка из таблицы ПоступлениеТоваровУслугТовары, перетащим его в окно Условия.

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

После того, как в окно Условия мы добавили поле Ссылка , конструктор запросов сам создаст параметр с аналогичным названием и расположит его после знака «=». Данный параметр можно переименовать, если есть желание. В тексте запроса параметры помечаются знаком «&», но в данном случае этого делать не нужно, так как подразумевается, что во второй части условия стоит параметр, это просто надо запомнить. О том как передать значение в параметр запроса 1С будет рассказано ниже.

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

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

ТипЦен = &ТипЦен

Параметры виртуальной таблицы заполнены, нажмем кнопку ОК .

Теперь, когда мы ограничили выборку только нужным нам документом, создадим связи между таблицами запроса. Если этого не сделать, то цены из таблицы ЦеныНоменклатурыСрезПоследних не будут связаны с номенклатурой из поступления. Перейдем на вкладку Связи конструктора запросов. Создадим связь по полю Номенклатура между двумя нашими таблицами. Для этого нажмем кнопку Добавить , в поле Таблица 1 выберем таблицу ПоступлениеТоваровУслугТовары , а в поле Таблица 2 — ЦеныНоменклатурыСрезПоследних. В условиях связи выберем поля Номенклатура из обоих таблиц.

Также следует заметить, что в выборке запроса нам необходимо получить все строки из табчасти Товары и цены только в том случае, если таковые имеются на текущую дату по типу цен документа. Таким образом данные табчасти Товары являются обязательными, а данные среза цен нет. Поэтому в связях между этими таблицами необходимо использовать так называемое ЛЕВОЕ СОЕДИНЕНИЕ, причем левой (или обязательной) таблицей будет ПоступлениеТоваровУслугТовары , а правой (или необязательной) ЦеныНоменклатурыСрезПоследних. Для того чтобы левое соединение таблиц запроса заработало так как я описал выше необходимо поставить галочку Все после поля Таблица 1.


Запрос практически готов, осталось только немного поработать над псевдонимами полей. Перейдем на закладку Объединения / Псевдонимы и зададим псевдоним для поля ЦеныНоменклатурыСрезПоследних.Цена . Имя псевдонима будет — ЦенаНаСегодня , нужен он для того чтобы имена полей выборки запроса и имена параметров в макете печатной формы совпадали.

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

Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Сумма, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Количество, | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНаСегодня |ИЗ |Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(| &ТекущаяДата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних | ПО ПоступлениеТоваровУслугТовары.Номенклатура | = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";

Выполнение запроса

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

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

Выборка = Запрос.Выполнить().Выбрать();

Заполнение таблицы печатной формы

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

Пока Выборка.Следующий() Цикл КонецЦикла;

Именно в этом цикле мы будем заполнять и выводить область макета Данные . Но для начала инициализируем две переменные числового типа. В них будем собирать итоги по количеству и сумме, которые нам необходимо вывести в область Подвал .

ИтогоСумма = 0; ИтогоКоличество = 0;

Внутри цикла будем заполнять область Данные данными из текущего элемента выборки, в переменные ИтогоСумма и ИтогоКоличество добавлять значения суммы и количества, и наконец, выводить область в табличный документ при помощи уже знакомого нам метода Вывести() . Так как имена полей нашего запроса полностью совпадают с именами параметров области Данные , то для заполнения будем использовать встроенную процедуру ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>), которая копирует значения свойств <Источника> в свойства <Приемника>.

Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка); ИтогоСумма = ИтогоСумма + Выборка.Сумма; ИтогоКоличество = ИтогоКоличество + Выборка.Количество; ТабДок.Вывести(ОбластьДанные); КонецЦикла;

Вывод подвала печатной формы в табличный документ

Осталось заполнить и вывести последнюю область макета — Подвал . Данные для заполнения мы уже подготовили, заполнение и вывод осуществляем по той же схеме.

ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество; ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма; ТабДок.Вывести(ОбластьПодвал);

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

Возврат ТабДок;

На этом этап программирования закончен и создание печатной формы 1с практически завершено. Полный текст функции Печать() здесь приводить не буду, можете посмотреть его в файле печатной формы, скачать который можно внизу статьи.

Создание печатной формы 1С. Параметры авторегистрации

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

Делается он следующим образом:

  • Во внешней обработке создаем новый макет. Называем его «Параметры_Авторегистрации» (важно не ошибиться!).
  • В первой ячейке макета пишем Документы. (или Справочники. ) и имя документа к которому необходимо подключить печатную форму.

Подключение к базе внешней печатной формы

  • Запустите 1С 8 в режиме Предприятие;
  • Перейдите в меню Сервис -> Дополнительные отчеты и обработки -> Дополнительные внешние печатные формы ;
  • Нажмите кнопку Добавить ;
  • В открывшемся окне нажмите пиктограмму Заменить файл внешней обработки ;
  • Если у вас созданы параметры авторегистрации, то соглашаемся их использовать;
  • Если у вас не созданы параметры авторегистрации, то в табличную часть Принадлежность печатной формы добавляем нужный документ или справочник;
  • Нажимаем кнопку ОК.

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

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

При необходимости, вы можете изменить стандартный макет и, в дальнейшем, осуществлять печать документа на основе вашего персонального ("пользовательского") макета. Для редактирования макета печатной формы предусмотрен механизм выгрузки на локальный компьютер. Правка макета проводится в локальной версии приложения системы "1С:Предприятие" (в частности, можно использовать бесплатное приложение 1С:Предприятие - Работа с файлами).


Для изменения макета печатной формы выполните следующее.




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

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

Желаем приятной работы!

Как вставить в макет печатной формы логотип компании?

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


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

Желаем приятной работы!

Жизнь идет, меняется законодательство, разработчик выпускает обновления конфигураций и перед нами снова выбор: установить обновление самому или опять звонить программисту, чтобы «поставил новый релиз»…

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


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


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


Введем два дополнительных условия:

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

Ну что, какова задача? Кажется слишком сложной? Ну что ж, чем она сложнее, тем интереснее, и тем больше ее хочется решить. Тогда за работу.


Запускаем нашу базу в режиме Конфигуратора. Открываем конфигурацию, выбрав в главном меню команду «Конфигурация > Открыть конфигурацию» . Саму конфигурацию мы изменять ни в коем случае не будем. Мы будем ее использовать как прототип. Основную работу мы будем проводить тут, но редактировать будем внешние обработки. Создаем внешнюю обработку командой в главном меню «Файл > Новый» . Выбираем вид документа «Внешняя обработка» . Для первой обработки зададим имя «ФирменнаяНакладная»


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


Теперь немножко займемся «плагиатом» . Скопируем макет «Накладная» из документа «РеализацияТоваровУслуг» . Для этого найдем его в ветке «Документы» дерева конфигурации. Раскроем эту ветку щелчком мыши на значке «+» и найдем нужный нам макет «Накладная» (он находится в ветке «Макеты» ). Для того чтобы, скопировать этот объект, нужно, выбрав этот макет в дереве, выполнить команду «Правка > Копировать» (то же самое действие происходит по комбинации CTRL+C ). Теперь перейдем в созданную нами обработку, выберем в дереве метку «Макеты» и в главном меню выберем пункт – «Правка > Вставить» (CTRL+V) . Результат должен выглядеть как на рисунке 1.


Теперь двойным щелчком мыши откроем макет.

Что такое «макет»

Скажем несколько слов о назначении макета.

Макет – место хранения «строительных блоков» , областей, из которых, как из кирпичиков, строится табличный документ, который мы привыкли называть печатной формой. Области задаются с помощью горизонтальных и вертикальных секций или их пересечений. В нашем макете имеются только горизонтальные секции: «Заголовок», «Поставщик», «Покупатель», «ШапкаТаблицы», «Строка» (см. рис. 2) . Область – набор ячеек. Как и в MS Excel, ячейки можно объединить, изменить цвет текста и фона, шрифт и так далее. Все настройки ячейки можно просмотреть и изменить в окне свойств ячейки. Вызвать окно настройки можно, щелкнув правой кнопкой мыши на ячейке и выбрав пункт контектстного меню «Свойства» (тот же результат достигается сочетанием клавиш Alt+Enter ).


Ячейка может содержать значение одного из трех видов:

  1. текст – значение такого вида будет выведено на печать в том же виде;
  2. параметр – ячейка такого вида содержит имя переменной, значение которой будет выведено на печать.
  3. шаблон – ячейки такого вида являются комбинацией первого и второго варианта. Ячейка может содержать текст и переменные. Чтобы программа могла отличить текст от переменной, переменные нужно заключать в квадратные скобки: «Сегодня [Дата]» .

Важно! Значение ячеек второго и третьего вида табличный редактор отображает в треугольных скобках. На рисунке 2 ячейка с текстом «Покупатель» - имеет вид текст, а правее ячейки «ПредставлениеПокупателя» - параметр.

Зачем я все это рассказываю? Теперь вы знаете, в каких ячейках можно легко поменять содержимое, и в каких нежелательно что-то менять, так как нужно будет вносить изменения в алгоритм вывода на печать.

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

Что есть в макете для печати

Структура макета у всех документов очень похожа. Внимательно исследовав один документ, мы сможем разобраться и с другими. Первая секция «Заголовок» . При выводе этой секции будет сформирован заголовок документа, состоящий из вида, даты и номера документа. За ней следуют секции «Поставщик» и «Покупатель» , в которые программа выведет информацию о поставщике и покупателе соответственно. Далее более интересная секция «ДопИнформация» , которую разработчики используют для вывода прочей информации по документу, например, информацию о договоре с его номером и датой. Особенностью этой секции является то, что она может быть выведена много раз, и каждый раз может содержать разную информацию. Что именно и когда выводить, описано в алгоритме вывода на печать.

На этом шапка документа завершена. За шапкой следует обычно табличная часть. Интересно, что в макете описаны два варианта отображения табличной части: «ШапкаТаблицы» , «Строка» и «ШапкаТаблицыМест» и «СтрокаМест» . В зависимости от того, заполнена или нет у вас колонка «Мест» в документе, будет использоваться первый или второй вариант вывода табличной части документа. Любопытный читатель наверняка уже задался вопросом: почему в секции вывода шапки «Цена» и «Сумма» взяты в треугольные скобки, как будто это переменные? Так и есть, – это переменные, в которых в зависимости от настроек документа будет выведена надпись «Цена» , «Цена с НДС» или «Цена без НДС» и аналогично для суммы.

Ну а ниже в макете находятся секции, с помощью которых выводятся итоги документа и подписи.

Редактируем макет

Логотип было бы неплохо разместить над информацией о поставщике и покупателе. Предлагаю отредактировать область макета «Заголовок» . Нужно уменьшить размеры ячейки с содержимым «ТекстЗаголовка» . Это ячейка состоит из нескольких объединенных ячеек. Размер изменяем следующим образом:

  1. Предусмотрительно скопируем содержимое объединенной ячейки «ТекстЗаголовка» (для этого ячейку нужно выделить и воспользоваться командой «Правка > Копировать» или сочетанием клавиш CTRL+C )
  2. Выделив эту ячейку, выбираем в главном меню пункт «Таблица - Объединить» , что приведет к обратному действию – объединенная ячейка будет разбита на множество исходных ячеек
  3. Теперь выберем меньшее количество ячеек, – вместо ячейки 2 столбца начнем объединение с 6 столбца, завершив его на столбце 32, – и снова нажмем на кнопку «Объединить»
  4. Командой «Правка > Вставить» (CTRL+V) вставим в новую объединенную ячейку содержимое прежней объединенной ячейки
  5. Освободившиеся ячейки в колонках 2 – 5 попросту очистим (выделим и нажмем клавишу Delete)

Теперь на освободившееся место можно вставить картинку с логотипом. Для этого в меню выберем пункт «Таблица > Рисунки > Картинка…» . Найдем на диске файл с нашим логотипом и нажмем «ОК ». Теперь переместим картинку на освободившееся место. В результате должно получиться как на рисунке 3.


Теперь выделим полужирным шрифтом значение в ячейках «Поставщик» и «Покупатель» (рис. 4). Для этого в свойствах ячейки найдем параметр «Шрифт» и зададим полужирное начертание.



И напоследок осталось добавить подпись службы безопасности. Эту информацию будем размещать в секции «Подписи» . Чтобы получить место для подписей нужно раздвинуть секцию. Выделим строку 37, нажмем на ней правой кнопкой мыши и выберем «Раздвинуть» , и так два раза. В одной из добавленных строк разместим место для подписи службы безопасности. В результате все должно получиться как на рисунке 5.



Важно! В типовой конфигурации используются два языка: русский и украинский. Макет хранит представление текста на обоих языках (оформление ячейки - общее). Для того чтобы внести украинский вариант добавленной нами надписи, необходимо зайти в свойства ячейки и в поле «Текст» нажать на кнопочку «поиск» . Откроется окно для внесения представления текста на разных языках (рис. 6).

Как обеспечить вывод на печать

Итак, макет готов. Теперь в самый раз заняться алгоритмом его вывода на печать.

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

  1. Нужно создать реквизит в обработке «СсылкаНаОбъект» с типом «ЛюбаяСсылка»
  2. Нужно создать в модуле обработки процедуру «Печать() Экспорт» без параметров и обязательно указать ключевое слово "Экспорт "

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

На панели окон выбираем окно редактирования нашей обработки (на рисунке 7). Откроется окно с деревом объектов нашей обработки. Выбираем ветку «Реквизиты» и нажимаем кнопку «Добавить» ,. Откроется окно свойств реквизита. Внесем имя – «СсылкаНаОбъект» и укажем тип «ЛюбаяСсылка» . Теперь мы можем переходить к тексту модуля печати. Писать мы ее с нуля не будем, вместо этого скопируем ее из документа «РеализацияТоваровУслуг» .



Для этого находим в дереве конфигурации среди документов «РеализацияТоваровУслуг» , щелкаем на нем правой кнопкой мыши и выбираем «Открыть модуль объекта» (см. рисунок 8).



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

См. на рисунке 9, мы выделили заголовок и строку под ней. После этого копируем в буфер. Главное меню «Правка > копировать» (или CTRL+C) .



Запомнили текст в буфере обмена, теперь снова переходим к нашей обработке «ФирменнаяНакладная» . Нажимаем на кнопку «Действия > Открыть модуль объекта» (рис. 10).



Вставляем скопированный текст: «Правка > Вставить» (или CTRL+V) .

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

  1. Переименовать функцию в «Печать»
  2. Заменить «ЭтотОбъект» на «СсылкаНаОбъект»
  3. Заменить «ЭтотОбъект» на «СсылкаНаОбъект»
  4. Заменить «БанковскийСчетОрганизации» на «СсылкаНаОбъект.БанковскийСчетОрганизации»
  5. Заменить «Товары.Итог» на «СсылкаНаОбъект.Товары.Итог»

Для этих действий можно воспользоваться пунктом главного меню «Правка > Замена» .

После этого нужно обязательно проверить на синтаксис. Для этого есть магическая комбинация CTRL+F7. В результате должно появиться сообщение: «Синтаксических ошибок не обнаружено!»

Ну что ж, на этом мы завершили все черную работу. Теперь можем сохранять результаты своих трудов в файле, например «ФирменнаяНакладная.epf» . Для этого нужно сделать активным окно этой обработки и сохранить ее, воспользовавшись главным меню программы «Файл > Сохранить как…» . Имя файла с обработкой – «ФирменнаяНакладная.epf» (оно будет предложено по умолчанию). Сохранить его можно временно на рабочий стол, чтобы потом быстрее найти.

Важно! Как вы видели, никаких изменений внутри нашей конфигурации мы не производили. Для всех вышеописанных действий даже не нужно снимать ее с поддержки (то есть включать возможность изменения).

Подключаем внешнюю обработку к конфигурации

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



При этом откроется справочник «Внешние обработки» , с отбором по виду «печатные формы» . Он будет хранить перечень всех внешних печатных форм с оказанием для каких они документов и в каких случаях их нужно показывать.



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

Нам нужно создать новый элемент в справочнике. Нажимаем Insert . Теперь рассмотрим содержимое элемента. В наименовании вносим осмысленное краткое описание сути этой формы, например, «Фирменная накладная» . Как у любого другого справочника, тоже есть код. Оставим по умолчанию. Реквизит вид заполнен по умолчанию и редактированию не подлежит – «Печатная форма» . И последний реквизит шапки элемент – комментарий. Тут как обычно более детально о назначении печатной формы. Кроме шапки у элементов этого справочника есть две закладки. На второй расположена информация об ограничение прав доступа к этой обработке. Эта тема выходит за рамки этой статьи (об этой и других настройках прав доступа в без доработки конфигурации мы расскажем в одном из ближайших номеров).

А на первой закладке остановимся подробнее.

Закладка содержит четыре колонки. Представление объекта – тип документа, для которого мы хотели бы использовать нашу печатную форму,

Отбор – условие, при выполнении которого должна быть доступна эта печатная форма. Например, мы переработали печатную форму расходной накладной и перевели ее на английский язык. И хотим, чтобы для клиентов из папки «Европейские» вместо стандартной печатной формы «Расходная накладная» печаталась новая форма, на английском языке. Для этого можно воспользоваться колонкой «Отбор» . Пример такого отбора на рисунке 13.



Но в нашем задании никаких отборов не нужно.

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

Заменяемая печатная форма – в случае если мы хотим, чтобы созданная нами печатная форма заменила одну из стандартных для этого документа, то нужно указать, какую нужно заменять. В случае есть ничего не выбрать – появится дополнительная печатная форма.

В нашем случае нам нужно чтобы «ФирменнаяНакладная» печаталась вместо обычной расходной накладной. Для этого нужно выбрать в этом поле «Расходная накладная» .

Все теперь сохраняем этот элемент. И открываем любую расходную накладную.

Должно получиться так, как показано на рисунке 14.



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

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

Никому не секрет, что, хоть в наше время всё большее количество компаний переходят на электронный документооборот, старая поговорка «Без бумажки ты…» не теряет своей актуальности. Так сложилось, что проверяющие органы почему-то интересуют в первую очередь бумажные документы. Поэтому, если вы активно пользуетесь для финансового контроля программой 1С:Бухгалтерия или Предприятие, важно знать, как распечатать электронный документ, созданный при помощи программы.

Печатные формы в 1С позволяют трансформировать электронный документ в печатный вариант.

Для этого разработчик предусмотрел отличный инструмент - Конструктор печати. С его помощью можно создавать документы, в которых можно указывать любые нужные вам данные, а не только несколько стандартных форм. Особенно это касается тех документов, которые не имеют строго регламентированного вида, менять который ни в коем случае нельзя. Сюда, в частности, можно отнести акт выполненных работ, некоторые накладные или платёжки.

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

Для начала стоит разобраться, что, вообще, представляет собой печатная форма в 1С 8. Это шаблон электронной таблицы 1С (наподобие Excel), в котором указанные некоторые переменные строки, заполняемые данными из программы при оформлении документа.

Печатные формы бывают двух видов:

  • Внутренние (встроенные). Они хранятся в конфигурации программы, поэтому лучше их не менять, так как потом могут возникнуть проблемы при обновлении.
  • Внешние - хранящиеся отдельно от настроек программы. И их помощью можно создавать и подготавливать для печати документ практически любой сложности, не влияя на конфигурацию программы 1С 8.

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

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

Где хранятся печатные формы

Просмотреть встроенные печатные формы можно как в режиме конфигуратора, так и в обычном режиме предприятия. В первом случае нужно при запуске программы нажать соответствующую кнопку в стартовом окне. Вы увидите меню программы, найти ветку «РеализацияТоваровУслуг», в которой содержится пункт «Макеты». В нём зачастую содержатся только два пункта - «Накладная» и «Акт». Где же тогда все остальные, ведь список гораздо более обширен? Они просто прячутся в другом месте. Нужно отрыть ветку «Общие» - «Общие макеты», в ней и хранятся практически все макеты.

Во втором случае нужно перейти в раздел меню «Администрирование» - «Печатные формы, отчёты и обработки» - «Макеты печатных форм». В нём будут отображаться все макеты документов. Примечательно, что в этом же меню их можно и отредактировать.

Что касается внешних форм, то их сначала нужно либо создать через режим конфигуратора, либо скачав готовый файл, а затем подключить в меню «Администрирование» - «Печатные формы, отчёты и обработки» - «Дополнительные отчёты и обработки». Об этом расскажем несколько позже.

Создание простой формы через встроенный Конструктор печати

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

  1. Первым делом запуститесь в режим Конфигуратора, найдите нужный вам документ, например, РеализацияТоваровУслуг, в свойствах документа перейдите в Действия - Конструкторы - Конструктор печати.
  2. При запросе варианта работы выберите «Обычные формы».
  3. Дайте название новому макету, например, «Печать счёта».
  4. Выберите те реквизиты, которые вы бы хотели видеть в шапке документа. Причём их нужно выбирать в том порядке, в котором они будут отображаться. Для выбора вам нужно выделить курсором пункт в левой колонке и нажать стрелочку посреди экрана, чтобы реквизит отобразился в правой колонке.
  5. Отметьте реквизиты для отображения в табличной части. Выбор реквизитов происходит по тому же принципу, что и в предыдущем пункте.
  6. Таким же образом выберите реквизиты нижней части документа.
  7. На заключительном этапе создания выберите, хотите ли вы печатать сразу же без предварительного просмотра, нужна ли защита таблицы, после чего подтвердите создание формы кнопкой ОК.

Создание внешней печатной формы

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

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

Теперь подробнее о самой процедуре. Рассмотрим на примере создания макета «Счёт» для документа «Реализация (акты, накладные)».

  1. Откройте программу 1С 8 в режиме Конфигуратора.
  2. Нажмите Файл - Новый - Внешняя обработка, придумайте его название (оно не должно включать пробелы), затем нажмите кнопку Действия - Открыть модуль объекта.
  3. В открывшемся поле для ввода введите следующий код (жёлтым цветом выделены значения, которые можно изменить на свои):

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить(«Документ.РеализацияТоваровУслуг»); //Указываем документ, к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить(«Вид», «ПечатнаяФорма»); //может быть — ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
ПараметрыРегистрации.Вставить(«Назначение», МассивНазначений);
ПараметрыРегистрации.Вставить(«Наименование», «Заказ для реализации товаров»); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить(«БезопасныйРежим», ЛОЖЬ);
ПараметрыРегистрации.Вставить(«Версия», «1.0»);
ПараметрыРегистрации.Вставить(«Информация», «Эта форма для печати была создана в качестве образца»);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, «Внешний заказ», «ВнешнийЗаказ», «ВызовСерверногоМетода», Истина, «ПечатьMXL»);
ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»)); //имя макета печ.формы
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»)); //ВызовСерверногоМетода
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

  1. Сохраните макет для печати в виде файла в любую папку на жёстком диске, назовите его соответствующим образом.

Вставьте в этот же документ процедуру запуска печати из меню программы (выделенные жёлтым цветом команды должны совпадать со строкой):

ДобавитьКоманду(ТаблицаКоманд, «Внешний заказ», «ВнешнийЗаказ»):
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
«Внешнийзаказ»,
«Внешний заказ»,
СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати);
КонецПроцедуры // Печать()

  1. Вставьте макет заполнения печатной формы, кликнув по названию внешней формы в левом нижнем углу и выбрав «Макеты» - «Добавить» - «Табличный документ», дайте ему название. После этого заполните электронную таблицу нужными данными. Например:
    • Заказ на товар № [НомерРеализации] от [ДатаРеализации] - клик правой кнопкой мыши - Свойства - Макет - Заполнение - Шаблон.
    • Создайте столбцы, которые должны отображаться в вашем документе.
    • Выделите введённые ячейки, нажмите Таблица - Имена - Назначить имя - введите название «Шапка».
    • Скопируйте строку с заголовками таблицы, выделите их, кликните правой кнопкой мыши - Свойства - Макет - Заполнение - Параметр.
    • Выделите строку, назовите её, к примеру, «СтрокаТЧ».
    • Создайте подвал: пропишите Итого, ячейку, в которой должна отображаться итоговая сумма, назовите СуммаИтого, в свойствах выберите «Параметры».
    • Укажите ответственного, в свойствах ячейки для вывода фамилии укажите «Параметры».
    • Выделите нижние строки и дайте диапазону наименование «Подвал».
  2. Теперь в окне ввода пропишите функцию формирования печатной формы:

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = «ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплатуВРТУ»;
МакетОбработки = ПолучитьМакет(«СчетНаОплатуВнешний»);
//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть(«Шапка»);
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ОбластьШапка.Параметры.ДатаДокумента = СсылкаНаДокумент.Дата;
ОбластьШапка.Параметры.НазваниеОрганизации = СсылкаНаДокумент.Организация.Наименование;
//выводим шапку в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);
//заполняем строки ТЧ
ОбластьСтроки = МакетОбработки.ПолучитьОбласть(«СтрокаТЧ»);
Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары Цикл
ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока);
ТабличныйДокумент.Вывести(ОбластьСтроки);
КонецЦикла;
//заполняем подвал
ОбластьПодвал = МакетОбработки.ПолучитьОбласть(«Подвал»);
ОбластьПодвал.Параметры.КоличествоИтог = СсылкаНаДокумент.Товары.Итог(«Количество»);
ОбластьПодвал.Параметры.СуммаИтог = СсылкаНаДокумент.Товары.Итог(«Сумма»);
ОбластьПодвал.Параметры.ИмяОтветственного = СсылкаНаДокумент.Менеджер.Наименование;
//выводим подвал в табличный документ
ТабличныйДокумент.Вывести(ОбластьПодвал);
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции

  1. Сохраните изменения в документе.
  2. Теперь нужно активировать созданную форму. Для этого:
    • Перейдите в «Администрирование» - «Печатные формы, отчёты и обработки» - «Дополнительные отчёты и обработки».
    • Нажмите кнопку «Создать», выберите в проводнике файл внешней формы, подтвердите ввод кнопкой «Записать и закрыть».
  3. Для проверки перейдите в Продажи - Реализация (акты, накладные), нажмите кнопку «Печать», выберите свою форму и проверьте правильность заполнения.
  4. Распечатайте документ при потребности.

Заключение

Мы рассмотрели с вами образец создания печатной формы через Конструктор печати и через инструмент создания внешних форм. Надеемся, что у вас всё получится. В комментариях оставляйте свои вопросы.

Сегодня мы расскажем Вам, как правильно работать с печатными формами в 1С.

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

    необходимо подправить расположение разных элементов;

    нужно добавить несколько колонок;

    необходимо сменить надписи или добавить недостающие.

А теперь давайте выполним изменение пользовательских данных в печатной форме. Для примера возьмем любой счет.

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


В качестве примера можно отредактировать сумму счета. Переходите к редактированию открывшейся перед вами печатной формы. Для этого нужно нажать на кнопку «Только просмотр» на панели, которая находится в верхнем углу печатного листа.


Чтобы перейти к правкам, нужно последовательно нажать разделы в меню: таблица –> вид –> редактирование.


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


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

    изменить порядок или название колонок;

    внести правки в наименования полей;

    изменить количество полей;

    внести дополнительные сведения и прочее.

Поделиться