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) В функции "СформироватьПечатнуюФорму" воспользоваться "Конструктором запроса с обработкой результата" для формирования печатной формы (при составлении запроса не забудьте про необходимость выходного поля "Ссылка" и наложение условия "В" по этому полю); Использовать закомментированные фрагменты функции для подключения к стандарту.