1) Разработать внутреннюю печатную форму по методике подключения новых внутренних печатных форм (см. материалы 3 занятия).
2) В модуле менеджера нашего документа, в процедуре «ДобавитьКомандыПечати», в абзаце, посвященном нашей печатной форме использовать параметр печати с ключом «ФорматСохранения» и значением из системного перечисления «ТипФайлаТабличногоДокумента».
Например:
КомандаПечати.ФорматСохранения = ТипФайлаТабличногоДокумента.PDF;
На текущем этапе развития платформы возможно сохранение в файлы следующих форматов:
-
ANSITXT
-
DOCX
-
HTML
-
HTML3
-
HTML4
-
HTML5
-
MXL
-
MXL7
-
ODS
-
PDF
-
PDF_A_1
-
PDF_A_2
-
PDF_A_3
-
TXT
-
XLS
-
XLS95
-
XLS97
-
XLSX
Подготовка макета печати офисного документа из образца документа
1) Получить у Заказчика образец самого документа
2) Содержимое файла «нарезать» на области, используя теги начала и окончания областей
Тег начала области содержит в фигурных скобках сочетание «v8» и название области через пробел.
Например: {v8 Область.Заголовок}
Тег окончания области содержит тоже самое, только сочетание «v8» заменено на «/v8».
Например: {/v8 Область.Заголовок}
3) Заменить в файле образце динамически изменяемые фрагменты на параметры замены.
Такие параметры должны быть ограничены фигурными скобками и так же начинаются с сочетания «v8».
Например: {v8 Цена}
Методика подключения печатных форм (odt и doc) на основе офисных макетов
Поскольку большая часть функционала рассматриваемой подсистемы определена стандартом достаточно жестко, то мы позволили себе предложить Вам в помощь файл шаблона «ШаблонФункцииОбработкиКомандыПечатиОфиснДок.txt». Поэтому нижеприведенная методика подразумевает, что данным файлом Вы будете пользоваться.
Итак, методика:
1) Создать и разместить в конфигурации макет, созданный в офисном приложении (MicrosoftWord или OpenOffice.org Writer), включающего в себя все необходимые области. Макет размещать в конфигурации только посредством конструктора макета «Двоичные данные»
2) Создать или использовать Общий модуль, исполняемый в режиме Клиент(Управляемое приложение).
В этом модуле сразу поместить код на основе файла шаблона «ШаблонФункцииОбработкиКомандыПечатиОфиснДок.txt» и внести исправления в имени функции (нужное место помечено угловыми скобками <>).
3) Модуль менеджера нашего документа. Процедура «ДобавитьКомандыПечати». Добавить описание нашей новой команды, при этом в качестве обработчика указать функцию из п.2.
4) Модуль менеджера нашего документа. Внести коррективы в функцию «ПолучитьДанныеПечати» и в обслуживающие ее функции:
-
ПолучитьДанныеОбъекта;
-
ПолучитьОписаниеОбластейМакетаОфисногоДокумента
5) Вернуться в функцию из п.2 и отработать заполнение формируемого документа нужными областями.
Методика создания печатных форм (docx) на основе офисных макетов
Для облегчения использования данной методики – разработчики старались обеспечить максимальную преемственность со старой технологией (клиентской сборкой odt и doc).
Поэтому не удивляйтесь почти полному совпадению.
Итак, методика:
1) Создать и разместить в конфигурации макет, созданный в офисном приложении в формате docx, включающего в себя все необходимые области. Макет размещать в конфигурации только посредством конструктора макета «Двоичные данные»
2) Модуль менеджера нашего документа. Процедура «ДобавитьКомандыПечати». Добавить обычное описание нашей новой команды
3) Модуль менеджера нашего документа. Внести коррективы в функцию «ПолучитьДанныеПечати» и в обслуживающие ее функции:
-
ПолучитьДанныеОбъекта;
-
ПолучитьОписаниеОбластейМакетаОфисногоДокумента
4) Добавить в процедуре «Печать» модуля менеджера документа фрагмент, посвященный формированию нашего офисного документа и передаче адреса хранилища нашего документа в свойство «ОфисныеДокументы» нашей печатной формы;
…
// Наша печатная форма
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, «НашаПФ»);
Если ПечатнаяФорма <> Неопределено Тогда
ИмяМакета = «ИмяМакетаНашейПечФормы)»;
МакетИДанныеОбъекта = УправлениеПечатьюВызовСервера.МакетыИДанныеОбъектовДляПечати(«Документ._НашДокумент», ИмяМакета, МассивОбъектов);
ОфисныеДокументы = Новый Соответствие;
Для Каждого Ссылка Из МассивОбъектов Цикл
АдресХранилищаОфисныйДокумент = НашаФункцияСборкиОфиснДокумента(Ссылка, МакетИДанныеОбъекта, ИмяМакета);
ОфисныеДокументы.Вставить(АдресХранилищаОфисныйДокумент, ИмяДокумента);
КонецЦикла;
ПечатнаяФорма.СинонимМакета = НСтр(«ru = ‘Наша печатная форма’»);
ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы;
КонецЕсли;
…
5) Модуль менеджера нашего документа. Создать функцию, собирающую офисный документ для нашей печатной формы. В этой функции сразу поместить код на основе файла шаблона «ШаблонDOCXСборкиПечатиОфиснДок.txt» и внести нужные исправления в фрагментах описания используемых областей.
Методика вывода факсимильных подписи и печати в печатной форме
1) В макете печатной формы добавить рисунки шириной 40 мм и соотношением сторон 1:1 для печати (или 4:1 для подписи) и установить их свойства:
-
Имя: идентификатор вида «Подпись…» или «Печать…» или «Факсимиле…», например, «ПодписьРуководителя», «ПечатьОрганизации»
-
Картинка: (не заполнено)
-
РазмерКартинки: Пропорционально
-
Линия: Точечная
2) Добавить по образцу код по получению картинок в процедуре общего модуля УправлениеПечатьюПереопределяемый.ПриПолученииПодписейИПечатей. Особое внимание уделить указанию правильного имени реквизита, содержащего ссылку на элемент справочника «Организации» для обслуживаемого объекта:
…
Если ТипДокумента = Тип(«ДокументСсылка._ДемоСчетНаОплатуПокупателю») Тогда
ОрганизацииВДокументах = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(СписокДокументов, «Организация»);
…
Методика подключения внешней печатной формы при помощи файла шаблона
1) Сделать клон из файла шаблона «ШаблонВнешнейОбработкиПечатиНаОсновеТабличногоДокумента.epf», переименовав и сохранив его посредством пункта меню «Файл/Сохранить как»;
2) Внести изменения в модуле объекта полученной обработки:
2.1) Исправить параметры функции «СведенияОВнешнейОбработке»;
2.2) Исправить параметры в процедуре «Печать»;
2.3) В функции «СформироватьПечатнуюФорму» воспользоваться «Конструктором запроса с обработкой результата» для формирования печатной формы (при составлении запроса не забудьте про необходимость выходного поля «Ссылка» и наложение условия «В» по этому полю);
2.4) Использовать закомментированные фрагменты функции для подключения к стандарту.
Методика подключения внешней печатной формы на основе офисного документа (odt и doc) при помощи файла шаблона
1) Сделать клон из файла шаблона «ШаблонВнешнейОбработкиФормированияОфисногоДокумента.epf», переименовав и сохранив его посредством пункта меню «Файл/Сохранить как»;
2) Внести изменения в модуле объекта полученной обработки:
2.1) Исправить параметры функции «СведенияОВнешнейОбработке»;
3) Заменить макет в обработке
4) Внести правки в модуле формы обработки, используя закомментированные фрагменты в качестве примеров
4.1) в функцию «ПолучитьДанныеДокументов»;
4.2) в функцию «ПолучитьДанныеОбъекта»;
4.3) в функцию «ПолучитьОписаниеОбластейМакетаОфисногоДокумента»;
4.4) в процедуру «Печать».
Методика подключения внешней печатной формы на основе офисного документа DOCX при помощи файла шаблона
1) Сделать клон из файла шаблона «ШаблонВнешнейОбработкиФормированияДокументаDOCX.epf», переименовав и сохранив его посредством пункта меню «Файл/Сохранить как»;
2) Внести изменения в модуле объекта полученной обработки:
2.1) Исправить параметры функции «СведенияОВнешнейОбработке»;
3) Заменить макет в обработке (Внимание! Загружать можно только файл с расширением docx)
4) Внести правки в модуле формы обработки, используя закомментированные фрагменты в качестве примеров
4.1) в функцию «ПолучитьДанныеДокументов»;
4.2) в функцию «ПолучитьДанныеОбъекта»;
4.3) в функцию «ПолучитьОписаниеОбластейМакетаОфисногоДокумента»;
4.4) в функцию «ПолучитьДанныеДокументов»;
5) Если разрабатываемая печатная форма не для документа (а, например, для справочника):
Необходимо изменить в процедуре «ПечатьНаСервере» фрагменты, посвященные созданию имени файла. Надо переопределить использование номера и даты документа в шаблоне имени — на использование наименования элемента справочника.
Методика разработки печатных форм посредством расширений (на основе шаблона)
1) Загрузить в расширение обработку из файла шаблона «ШаблонОбработкиПечатиНаОсновеТабличногоДокументаДляРасширения.epf» и переименовать ее.
2) Подключить обработку к подсистеме «ПодключаемыеОтчетыИОбработки»
3) Вырезать весь код из модуля объекта обработки и перенести его в модуль менеджера обработки
4) В модуле менеджера полученной обработки:
2.1) Исправить параметры в процедуре «ПриОпределенииНастроек»;
2.2) Исправить параметры в процедуре «ДобавитьКомандыПечати»;
2.3) Исправить параметры в процедуре «Печать»;
2.4) В функции «СформироватьПечатнуюФорму» воспользоваться «Конструктором запроса с обработкой результата» для формирования печатной формы (при составлении запроса не забудьте про необходимость выходного поля «Ссылка» и наложение условия «В» по этому полю); Использовать закомментированные фрагменты функции для подключения к стандарту.