как сохранить печатную форму в epf

Как из встроенной печатной формы 1С сделать внешнюю

Рассмотрим создание внешней печатной формы из встроенной на примере Торг 12 из типовой конфигурации 1С 8.2 Бухгалтерия 2.0.

Создадим новую внешнюю обработку, назовем ее Торг12Внешняя. Добавим реквизит СсылкаНаОбъект и присвоим ему тип ДокументСсылка.РеализацияТовароУслуг (Торг 12 печатается из реализации).

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

Так как нас интересует только Торг12, копируем строчку

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

Теперь найдем в модуле документа процедуру ПечатьТОРГ12() и скопируем ее в модуль печатной формы. Нажимаем Сохранить и видим, что не определена переменная мВалютаРегламентированногоУчета. Опишем ее в начале модуля:

и инициализируем в конце:

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

Получите понятные самоучители по 1С бесплатно:

Также нужно заменить обращения к текущему документу через конструкции Ссылка и ЭтотОбъект на СсылкаНаОбъект и СсылкаНаОбъект.ПолучитьОбъект() соответственно(стоит заметить, что конструкцию ЭтотОбъект.Ссылка следует заменять на СсылкаНаОбъект).

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

На этом создание внешней печатной формы из встроенной для 1с 8 завершено, вносим в нее нужные изменения и подключаем к документу.

Скачать что у нас получилось можно по ссылке.

Источник

Программирование в 1С для всех

В этой статье мы научимся создавать внешнюю печатную форму для управляемого приложения 1С 8.3, которое написано на БСП («1С: Бухгалтерия предприятия 3.0», «1С: Управление торговлей 11»). Причем создавать с нуля, не используя так называемые шаблоны. Вы сами научитесь создавать шаблоны внешних печатных форм.

Все это делается довольно просто))

И так, создадим новую обработку 1С.

Мы будем создавать внешний счет на оплату покупателю, поэтому обработку так и назовем: «СчетНаОплатуВнешний».

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Сохраним ее на жесткий диск.

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

Зайдем в модуль обработки, и создадим экспортную функцию СведенияОВнешнейОбработке.

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

Создадим первый элемент структуры, он будет иметь ключ с название «Вид».

Значением данной связки КлючИЗначение идет одна из строк:

В нашем случае должна быть строка «ПечатнаяФорма».

Следующий элемент структуры должен иметь ключ с названием Назначение.

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

Они должны иметь тип строка, и быть в следующем формате:

Документ.»НазваниеДокумента»

Справочник.»НазваниеСправочника»

У нас этот массив будет возвращать отдельная функция ПолучитьНазначениеОбработки.

Допишем созданный последним элемент структуры.

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

Следующий элемент структуры будет иметь название «Версия», значением данного элемента будет версия обработки. Задается программистом на его усмотрение.

Следующий элемент имеет название «Информация», который содержит краткую информацию по обработке.

Следующий элемент имеет название «БезопасныйРежим», его необходим устанавливать в значение истина или ложь, в зависимости от того необходимо устанавливать или отключать безопасный режим во время выполнения обработки. Мы установим значение Истина.

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

Создадим функцию и таблицу значений внутри нее.

Теперь создадим пять колонок этой таблицы.

И первая колонка – Представление (тип строка).

Эта колонка – представление команды в пользовательском интерфейсе, т.е. то, что пользователь увидит при нажатии меню»Печать» в документе или справочнике.

Вторая колонка – Идентификатор.

Это может быть любая текстовая строка, уникальная в пределах данной обработки.

Третья колонка – Использование.

Параметр данной колонки типа строка, должен принимать одно из четырех значений –

Конкретно мы будем использовать вызов серверного метода.

Следующая колонка – показывать оповещение. Принимает значение истина или ложь, в зависимости от того надо показывать оповещение или нет.

И последняя колонка – модификатор. Это дополнительный модификатор команды. В нашем случае будет иметь название ПечатьMXL.

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

В данном коде все понятно.

В функции СведенияОВнешнейОбработке создадим команду и заполним ее.

Создаем таблицу значений:

Теперь заполним ее.

Еще раз пройдемся по параметрам.

Теперь передадим вновь созданную таблицу команд в структуру ПараметрыРегистрации.

И пусть наша функция СведенияОВнешнейОбработке возвращает данную структуру.

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

Теперь в модуле объекта создадим процедуру Печать. Это процедура с четырьмя параметрами: МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода.

И вот начинается самое интересное, теперь вам необходимо войти в аналогичную процедуру в менеджере объекта счет на оплату покупателю, или в обработке, которая, по сути, является менеджером печати.

Как узнать, где находится нужная нам функция?

Откроем модуль менеджера документа Счет на оплату покупателю.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

В этой процедуре найдем код, где добавляется команда для нужной нам печатной формы (список команд добавляется в таблицу значений КомандыПечати). И обратим внимание на свойство МенеджерПечати. Если этому свойству присваивается какое-нибудь значение — это путь к объекту метаданных, как правило к обработке, то значит при выводе нужной печатной формы будет отработан код в процедуре Печать, которая находится в модуле менеджере этого объекта (в обработке). А если это свойство в принципе не фигурирует при заполнении команды печати, то значит будет отработан код в процедуре Печать, которая находится в модуле менеджера нашего основного объекта (в нашем случае это документ СчетНаОплатуПокупателю)

Посмотрим на процедуру ДобавитьКомандыПечати в модуле менеджера документа «Счет на оплату покупателя».

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

Откроем модуль менеджера обработки ПечатьСчетаНаОплату.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

И раскроем процедуру Печать.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

Так же из модуля менеджера обработки скопируем процедуру СформироватьПечатнуюФорм

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

Эта таблица получается при помощи процедуры модуля менеджера объекта (в нашем случае это документ СчетНаОплатуПокупателю). Найдем эту процедуру в модуле менеджера документа СчетНаОплатуПокупателю.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

И скопируем её в модель нашей внешней обработки.

А сам код процедуры СформироватьПечатнуюФорму в модуле внешней обработки исправим, убрав все не нужное от туда.

Если мы сейчас сделаем проверку модуля внешней обработки, то выйдет две ошибки. Первая, что не определена переменная ПараметрыПечати в процедуре Печать, и, что не найдена функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в функции ПолучитьТаблицуСведенийСчетаНаОплату.

Создадим переменную ПараметрыПечати в процедуре Печать. Это будет простая структура.

А потом найдем функцию ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в модуле менеджера документа СчетНаОплатуПокупателю и скопируем её в модуль внешней обработки.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Должен получится следующий состав процедур и функций модуля внешней обработки (для удобства я разделил их на две области).

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Еще раз делаем проверку модуля. Ошибок не обнаружено.

Продолжаем, теперь нам необходимо, что бы брался наш макет, и печатался по нашей команде.

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Очевидно, она непосредственно формирует табличный документ. Перейдем в этот общий модуль, и скопируем функцию ПечатьСчетаНаОплату в модуль нашей внешней обработки.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epfДелаем проверку модуля внешней обработки. Ругается на несуществующие методы ВывестиЗаголовокПредупреждение и НомерСчетаНаОплату.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

Проверяем еще раз ошибки. Все нормально.

Не забудем в процедуре СформироватьПечатнуюФорму убрать вызов метода ПечатьСчетаНаОплату из общего модуля.

Теперь зайдем в скопированную функцию ПечатьСчетаНаОплату, и посмотрим, где в ней подтягивается макет.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epfНаходим данный макет в общих макетах и копируем его в макеты нашей обработки.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epfИсправляем выделенный код, где подтягивается макет, следующий образом.

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Вернемся обратно в процедуру Печать нашей внешней обработки.

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

Заменить на название идентификатора команды («СчетНаОплатуВнешний»).

Все, сохраняем данную обработку. И запускаем «1С: Предприятие» из конфигуратора 1С.

Идем в администрирование. В дополнительные отчеты и обработки.

Нажимаем на кнопку «Добавить из файла» и выбираем нашу созданную обработку.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Записываем. И смотрим, как выходит наша печатная форма.

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

2 thoughts on “ Создание внешней печатной формы в типовых конфигурациях 1С 8.3 ”

программирование не для всех.
то ПечатьXML, то ПечатьMXL, потом опять ПечатьXML. где правильно?
открыть модуль менеджера документа Счет на оплату покупателю — у меня там пусто. приехали, конечная. вот и поучились программированию.

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

Источник

Еще раз о создании Внешней Печатной Формы на 8.2 из существующей

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

1.Создать новую внешнюю обработку
2.В реквизиты добавить СсылкуНаОбъект можно неопределенный, но лучше на ДокументСсылка.Родитель
3.Скопировать Макет из родителя в новую обработку
4.Скопировать Процедуру Печать из модуля Родителя и превратить ее в Функцию Печать() Экспорт, именно так без параметров, если параметры необходимы описать их в теле функции
5.Скопировать все запрашиваемые функции и процедуры
6.Заменить прямые обращения к Реквизитам Родителя на
Реквизит=СсылкаНаОбъект.Реквизит;
7.Заменить ЭтотОбъект и ЭтотОбъект.Ссылка на СсылкаНаОбъект
8.Обратить Внимание! на вызов процедуры печати
было
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект, «»), НепосредственнаяПечать);

выдавало ошибку не найден «Номер».

стало
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, «»), НепосредственнаяПечать);

PS Теперь можно править Макет (осторожней с изменением его названия)

Прилагаю рабочий вариант НовогоСчета для БП 2.0.25.5

Источник

Как сохранить печатную форму в epf

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

Например, в программе «1С Управление торговлей 11.2» нам нужно создать печатную форму «Спецификация товара», которая будет распечатываться из документа «Заказ клиента».

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

Создадим заготовку внешней печатной формы, как описано в статье «Создание внешнего отчёта, обработки, печатной формы».

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

Найдём объект конфигурации Обработка «ПечатьЗаказовНаТоварыУслуги». В нём хранится макет печатной формы «Заказ клиента». Скопируем его во внешнюю печатную форму. Переименуем макет в «ПФ_MXL_Спецификация» и доработаем его под свои нужды. Из модуля менеджера обработки скопируем процедуру Печать, а также другие процедуры и функции, необходимые для печати. Их можно определить по названию. Естественно все эти процедуры и функции мы «затачиваем» под свои задачи.

Например, изменяем Функцию СформироватьПечатнуюФормуЗаказаНаТоварыИУслуги таким образом, чтобы переменная ДанныеДляПечати формировалась из процедуры нашей внешней печатной формы.

Важный момент: в процедуре ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги мы должны вместо штатного макета подставить свой.

Макет выбиратся здесь:

Мы заменим вторую строку приведённого кода на такую:

Всё остальное, что называется, по вкусу.

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

Источник

1С:Бухгалтерия 8.Тонкая настройка: создаем внешние печатные формы

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

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

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

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

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

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

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

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

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

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

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

как сохранить печатную форму в epf. Смотреть фото как сохранить печатную форму в epf. Смотреть картинку как сохранить печатную форму в epf. Картинка про как сохранить печатную форму в epf. Фото как сохранить печатную форму в epf

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

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

* Для подготовки статьи автор использовал релиз 1.0.12.3 конфигурации «Бухгалтерия для Украины». – Примеч.ред.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *