1с редактор печатных форм. Публикации. Написание запроса для печатной форы

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

Стоит сказать, что не все конфигурации поддерживают такую функцию. Такая функция точно есть в Бухгалтерии Предприятия 3.0 и Управление торговлей 11.

Расскажем подробно на примере документа «Счет», как изменить его шаблон в конфигурации БП 3.0, в УТ 11 это делается аналогично.

1. Нужно нажать пиктограмму АДМИНИСТРИРОВАНИЕ вверху панели 1с:Предприятия, затем слева в меню выбрать «МАКЕТЫ ПЕЧАТНЫХ ФОРМ » На экране появится картинка, похожая на ту, что на рисунке:

2. Находим в списке нужный нам макет — в нашем примере это «Счет-заказ». Обратите внимание, что справа, в столбце «Владелец макета» выводится документ, к которому макет относится. В нашем примере — это «Счет на оплату покупателю».

3. Кликаем левой кнопкой мыши 2 раза в нужную нам строчку, то есть в «Счет-заказ» и попадаем в окно «Как открыть макет?»

4. Выбираем «Для просмотра и редактирования», как показано на рисунке:

Окно «Для просмотра и редактирования»

5. Нажимаем «Ок».

6. Редактируем таблицу, как нам нужно: исправляем текст, добавляем текст в пустые ячейки, изменяем шрифт, выделяем жирным, вставляем рисунки, картинки из файлов и т.д. О том, как редактировать таблицы в 1С, скоро выйдет статья.

7. Нажимаем крестик на вкладке «Счет-заказ» и отвечаем утвердительно («Да» и «Завершить изменения») для сохранения наших изменений.

Вот, собственно, и все, что нужно сделать.

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

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

Итак! Есть конфигурация (например "Управление торговлей", редакция 10.3), и для нее необходимо разработать внешнюю печатную форму. Для примера возьмем типовой документ "Счет на оплату покупателю" (хотя внешние печатные формы можно создавать не только для документов, но и для справочников).

Пример для 1С 8.3 (Управляемые формы)

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

Задача

Разработать внешнюю печатную форму, которая будет доступна из документа "Счет на оплату покупателю", и которая будет содержать наименование организации, контрагента и перечень товаров с ценой, суммой и количеством.

Поехали!

Первое что нужно сделать, это создать файл внешней обработки. Обработка должна содержать три основных момента:
  1. Реквизит "СсылкаНаОбъект" с типом "ДокументСсылка.СчетНаОплатуПокупателю"
  2. Макет, который будет выводиться на печать
  3. Экспортную Функцию "Печать()" которая возвращает табличный документ
Эти действия видны на рисунке №1

"Рисуем макет"

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

Функция "Печать()"

Вот форма почти и готова. Осталось написать программное заполнение полей табличного документа. Эти действия выполняются в модуле объекта обработки, в функции под название "Печать", которая ОБЯЗАТЕЛЬНО должны быть экспортной.
Этап №1. Получение данных для шапки, заполнение параметров шапки, и ее вывод в табличный документ ТабличныйДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("НашМакет"); ЗапросДанных = Новый Запрос("ВЫБРАТЬ | ПРЕДСТАВЛЕНИЕ(СчетНаОплатуПокупателю.Контрагент) КАК Контрагент, | ПРЕДСТАВЛЕНИЕ(СчетНаОплатуПокупателю.Организация) КАК Организация |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &Ссылка"); ЗапросДанных.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Шапка = ЗапросДанных.Выполнить().Выбрать(); Шапка.Следующий(); Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Заполнить(Шапка); ТабличныйДокумент.Вывести(Область); Этап №2. Получение данных табличной части, и построчный вывод товаров
ЗапросДанных.Текст = "ВЫБРАТЬ | _Товары.НомерСтроки, | ПРЕДСТАВЛЕНИЕ(_Товары.Номенклатура) КАК Номенклатура, | _Товары.Количество, | _Товары.Цена, | _Товары.Сумма |ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК _Товары |ГДЕ | _Товары.Ссылка = &Ссылка"; Выборка = ЗапросДанных.Выполнить().Выбрать(); Область = Макет.ПолучитьОбласть("Данные"); Пока Выборка.Следующий() Цикл Область.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(Область); КонецЦикла; Этап №3. Возврат табличного документа и функции печать Возврат ТабличныйДокумент;

Добавляем нашу внешнюю печатную форму в 1С

Заходим в меню "Сервис - Внешние печатные формы и обработки - Внешние печатные формы"

В открывшемся окне создания элемента, выполняем следующие действия:

  1. Загружаем файл внешней обработки
  2. Указываем для какого документа (или справочника) конфигурации, предназначена печатная форма
  3. Записываем изменения

Печатаем!

Открываем любой документ "Счет на оплату покупателю" (с заполненной табличной частью "Товары", потому что именно оттуда мы берем данные для заполнения), нажимаем кнопку "Печать", в открывшемся окне, выбираем НАШУ печатную форму, и нажимаем "Печать"


ВНИМАНИЕ! Такой алгоритм разработки подходит ТОЛЬКО для "Обычного приложения". Печатные формы для конфигураций в режиме "Управляемое приложение" отличаются!

Файл печатной форме которая показана в примере можно

2016-12-01T12:56:42+00:00

В 1С:Бухгалтерия 8.3 (редакция 3.0) появилась замечательная возможность. Теперь пользователь в режиме 1С:Предприятия может совершенно спокойно редактировать макеты печатных форм.

Когда это может быть полезно? Ну, например, есть некоторая печатная форма, скажем, "Требование-накладная" в которой вы каждый раз после вывода её на печать вносите какие-то изменения. Меняете шрифт, допечатываете поля, убираете лишнее.

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

Ниже по шагам я покажу как изменить макет печатной формы "Требование-накладная". Мы добавим туда новое поле: "Ответственный".

1. Сформируйте печатную форму (по кнопке "Печать") и нажмите в открывшейся форме кнопку (справа) "Ещё"->"Изменить макет":

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

3. Мы добавим поле "Ответственный" и нажмем кнопку "Записать и закрыть".

4. Печатная форма переформировалась в новом виде как мы и хотели.

Если же после изменения печатной формы она перестала работать, то вам .

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

Рассмотрим написание простейшей печатной формы в 1с 8.1 — 8.2 на примере конфигурации Бухгалтерия предприятия 2.0 . Допустим требуется написать внешнюю печатную форму к документу : вывести основные данные документа, а так же из табличной части Товары : номенклатуру, цену, количество и сумму.

Скачать получившийся пример можно по .

В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка ), задаем имя, создаем обязательный для внешней печатной формы реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровУслуг .

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

Добавляем новый макет , тип макета оставляем Табличный документ . На макете создаем три области: Шапка, Данные и Подвал . Сделать это можно выделив нужное количество строк и нажав меню Таблица->Имена->Назначить имя (Ctrl+Shift+N) .

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

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

Программирование

Зайдем в модуль объекта печатной формы Действия->Открыть модуль объекта .

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

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

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

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

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

ОбластьШапки.Параметры.ТекстЗаголовка = +СсылкаНаОбъект.Номер; ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация; ТабДок.Вывести(ОбластьШапки);

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

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

В параметр запроса передаем реквизит СсылкаНаОбъект , что бы указать в условии ГДЕ , что нам нужны данные только того документа из которого выводим печатную форму. Чтобы получить выборку запроса, сначала выполняем его, а затем выбираем строки.

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

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

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

Заполним и выведем область Подвал .

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

Возвращаем заполненный табличный документ из функции Печать() .

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

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

5. Подключение печатной формы к документу

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

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

Теперь в документе Реализация товаров и услуг появится новая печатная форма.

Авторегистрация печатной формы

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

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

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

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

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

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

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

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

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


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


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


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


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

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

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

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

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