Процедура ДобавитьОписаниеОбласти(НаборОбластей, знач ИмяОбласти, знач ТипОбласти) Экспорт
НоваяОбласть = Новый Структура;
НоваяОбласть.Вставить("ИмяОбласти", ИмяОбласти);
НоваяОбласть.Вставить("ТипОбласти", ТипОбласти);
НаборОбластей.Вставить(ИмяОбласти, НоваяОбласть);
КонецПроцедуры
Функция ПолучениеОписанияОбластей() Экспорт
ОписаниеОбластей = Новый Структура;
ДобавитьОписаниеОбласти(ОписаниеОбластей, "Тушка", "Общая");
ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал", "Общая");
ДобавитьОписаниеОбласти(ОписаниеОбластей, "ВерхнийКолонтитул", "ВерхнийКолонтитул");
ДобавитьОписаниеОбласти(ОписаниеОбластей, "НижнийКолонтитул", "НижнийКолонтитул");
ДобавитьОписаниеОбласти(ОписаниеОбластей, "НижнийТитульныйКолонтитул", "НижнийТитульныйКолонтитул");
Возврат ОписаниеОбластей;
КонецФункции
функция ПолучитьДанныеМакета(Знач ИмяМакета)
ОписаниеОбластей = Новый Соответствие;
ДвоичныеДанныеМакетов = Новый Соответствие;
ТипыМакетов = Новый Соответствие;
ДвоичныеДанныеМакетов.Вставить(ИмяМакета, ПолучитьМакет(ИмяМакета));
ОписаниеОбластей.Вставить(ИмяМакета, ПолучениеОписанияОбластей());
Макет = Новый Структура;
Макет.Вставить("ОписаниеОбластей", ОписаниеОбластей);
Макет.Вставить("ДвоичныеДанныеМакетов", ДвоичныеДанныеМакетов);
Макет.Вставить("ТипыМакетов", ТипыМакетов);
Макет.Вставить("ЛокальныйКаталогФайловПечати", Неопределено);
Если НЕ Макет.Свойство("ТипыМакетов") Тогда
Макет.Макеты.Вставить("ТипыМакетов", Новый Соответствие);
КонецЕсли;
Возврат Макет;
Конецфункции
Функция СгенерироватьДокумент(ДокументСсылка,ИмяМакета) Экспорт
ДанныеОбъекта = Новый Структура;
ДанныеОбъекта.Вставить("АрбитражныйСуд", "Самый гуманный суд в мире!");
ДанныеМакетов = ПолучитьДанныеМакета(ИмяМакета);
ТипМакета = ДанныеМакетов.ТипыМакетов[ИмяМакета];
ДвоичныеДанныеМакета = ДанныеМакетов.ДвоичныеДанныеМакетов;
Области = ДанныеМакетов.ОписаниеОбластей;
Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакета[ИмяМакета],ТипМакета,ИмяМакета);
Если Макет = Неопределено Тогда
Возврат "";
КонецЕсли;
ЗакрытьОкноПечатнойформы = Ложь;
ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(ТипМакета, Макет.НастройкиСтраницыМакета,Макет);
АдресХранилищаПечатнойФормы = "";
Если ПечатнаяФорма = Неопределено Тогда
УправлениеПечатью.ОчиститьСсылки(Макет);
Возврат "";
КонецЕсли;
Область = УправлениеПечатью.ОбластьМакета(Макет, Области[ИмяМакета]["Тушка"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта);
АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма);
УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма, ЗакрытьОкноПечатнойФормы);
УправлениеПечатью.ОчиститьСсылки(Макет);
докбин = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресХранилищаПечатнойФормы));
док = докбин.Получить();
Возврат док;
КонецФункции