Доброго времени. В 1С БП 3, есть возможность печатать договора по шаблону и сохранять их в виде вложенного файла. Если все делать на форме, то все ок получается, а вот как вывести это действие программно? То есть выбрать шаблон, передать какой договор и вложить в него файл договора в формате pdf. Начал рыть стандартный механизм и уперся вот во что:
Справочники.ДоговорыКонтрагентов.Формы.СохраниеПечатнойФормы
в ней команда "сохранить"

```1c
    #Если Не ВебКлиент Тогда
    Если ВариантСохранения = "СохранитьВПапку" И ПустаяСтрока(ВыбраннаяПапка) Тогда
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Необходимо указать папку.'"),,"ВыбраннаяПапка");
    Возврат;
    КонецЕсли;
    #КонецЕсли

    ФорматыСохранения = Новый Массив;

    Для Каждого ВыбранныйФормат Из ВыбранныеФорматыСохранения Цикл
    Если ВыбранныйФормат.Пометка Тогда
    ФорматыСохранения.Добавить(ВыбранныйФормат.Значение);
    КонецЕсли;
    КонецЦикла;

    Если ФорматыСохранения.Количество() = 0 Тогда
    ПоказатьПредупреждение(,НСтр("ru = 'Необходимо указать как минимум один из предложенных форматов.'"));
    Возврат;
    КонецЕсли;
    //Сохранение договора
    РезультатВыбора = Новый Структура;
    РезультатВыбора.Вставить("ВариантСохранения", ВариантСохранения);
    РезультатВыбора.Вставить("ПапкаДляСохранения", ВыбраннаяПапка);
    РезультатВыбора.Вставить("ОбъектДляПрикрепления", ВыбранныйОбъект);
    РезультатВыбора.Вставить("ФорматыСохранения", ФорматыСохранения);

    ОповеститьОВыборе(РезультатВыбора); //Куда идет дальше?
    //уходит владельцу
```

как понять, что выполняется после ОповеститьОВыборе?
---
Все. Разобрался.
Если кому то повезет как и мне разбираться в подобном вопросе, то вот мое решение:

```1c
    &НаСервере
    Процедура СоздатьДоговорНаСервере()

    //ТабДок = Справочники.ШаблоныДоговоров.ПолучитьМакет("ДоговорПоставки"); //СпраПолучитьМакет("Справочники.ШаблоныДоговоров.Макеты.ДоговорПоставки");
    ТабДок = Справочники.ШаблоныДоговоров.НайтиПоНаименованию("Договор поставки");
    //ИмяФайла = ПолучитьИмяВременногоФайла();
    //ТД = Новый ТекстовыйДокумент;
    //ТД.УстановитьТекст(ТабДок.ПолучитьТекст());
    //ТД.Записать(ИмяФайла);
    //ДД = Новый ДвоичныеДанные(ИмяФайла);
    //УдалитьФайлы(ИмяФайла);
    //Возврат ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);

    //Форма = ПолучитьФорму("Справочник.ШаблоныДоговоров.ФормаВыбора");

    // Загрузим из макета
    Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000045");

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДоговорыКонтрагентов.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |ГДЕ
    | ДоговорыКонтрагентов.Владелец = &Владелец";

    Запрос.УстановитьПараметр("Владелец", Контрагент);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыборкаДетальныеЗаписи.Следующий();

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

    ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение шаблона договора'");
    ПараметрыВыполненияВФоне.КлючФоновогоЗадания = ВыборкаДетальныеЗаписи.Ссылка;

    //ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблонуВФоне",
    //ПараметрыЗаполнения, ПараметрыВыполненияВФоне);
    //СохДок = ЗаполнитьТекстДоговораПоШаблонуВФоне(ПараметрыЗаполнения);

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ПараметрыЗаполнения.ШаблонДоговора,
    ФорматированныйДокумент,
    ПараметрыЗаполнения.СсылкаНаОбъект);

    //Результат = Новый Структура();
    //Результат.Вставить("ТекстHTML");
    //Результат.Вставить("Вложения");
    //
    //ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ////ТекстовыйДокумент.УстановитьТекст(
    //ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);

    //Возврат ФорматированныйДокумент;

    //ПараметрыЗаполнения = Новый Структура;
    //ПараметрыЗаполнения.Вставить("ШаблонДоговора", ТабДок);
    //ПараметрыЗаполнения.Вставить("СсылкаНаОбъект", ВыборкаДетальныеЗаписи.Ссылка);
    //
    //ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    //ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение шаблона договора'");
    //ПараметрыВыполненияВФоне.КлючФоновогоЗадания = ВыборкаДетальныеЗаписи.Ссылка;
    //
    //ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблонуВФоне",
    //ПараметрыЗаполнения, ПараметрыВыполненияВФоне);

    //Макет = Справочники.ШаблоныДоговоров.ДанныеШаблонаДоговора(ТабДок);

    //ФорматированныйДокумент = Новый ФорматированныйДокумент;
    //
    //ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ТабДок,
    // ФорматированныйДокумент,
    // ВыборкаДетальныеЗаписи.Ссылка);

    //Результат = Новый Структура();
    //Результат.Вставить("ТекстHTML");
    //Результат.Вставить("Вложения");
    //
    //ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);
    //ТабДок = Макет.Получить;//Формируем договор

    ИмяВременнойПапки = ПолучитьИмяВременногоФайла();
    СоздатьКаталог(ИмяВременнойПапки);

    ИмяФайлаБезРасширения = СокрЛП(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru = '%1 %2'"), Контрагент, ВыборкаДетальныеЗаписи.Ссылка));
    ИмяФайлаБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаБезРасширения);

    //ИмяВременногоФайла = ПолучитьИмяВременногоФайла("rtf");

    ПолноеИмяФайла = ПодготовитьRTFНаОсновеФорматированногоДокумента(ИмяВременнойПапки, ИмяФайлаБезРасширения);
    РасширениеФайла = "rtf";

    ЭлектронноеВзаимодействиеБП.КонвертироватьВФорматRTF(ФорматированныйДокумент, ПолноеИмяФайла); ///? тут что то не так, не могу пока понять что!
    //ТипФайлаТекст
    //ФорматированныйДокумент.Записать(ИмяВременногоФайла);
    ДвоичныеДанные = Новый ДвоичныеДанные(ПолноеИмяФайла);
    //АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)));

    //АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
    //ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(ВыборкаДетальныеЗаписи.Ссылка, "Договор_Тест", "rtf", , , АдресВХранилище);

    ПараметрыФайла = Новый Структура();
    ПараметрыФайла.Вставить("Автор", Пользователи.ТекущийПользователь());
    ПараметрыФайла.Вставить("ВладелецФайлов", ВыборкаДетальныеЗаписи.Ссылка);
    ПараметрыФайла.Вставить("ИмяБезРасширения", ИмяФайлаБезРасширения);
    ПараметрыФайла.Вставить("РасширениеБезТочки", РасширениеФайла);
    ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", Неопределено);

    ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(
    ПараметрыФайла, АдресФайлаВоВременномХранилище, ", ");

    //УдалитьФайлы(ИмяВременногоФайла);
    //УдалитьВременныйФайлНаСервер(ИмяВременнойПапки);
    Сообщить("Готово " + Контрагент.Ссылка);

    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция УникальноеИмяФайла(ИмяФайла)

    Файл = Новый Файл(ИмяФайла);
    ИмяБезРасширения = Файл.ИмяБезРасширения;
    Расширение = Файл.Расширение;
    Папка = Файл.Путь;

    Счетчик = 1;
    Пока Файл.Существует() Цикл
    Счетчик = Счетчик + 1;
    Файл = Новый Файл(Папка + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение);
    КонецЦикла;

    Возврат Файл.ПолноеИмя;

    КонецФункции

    Функция ПодготовитьRTFНаОсновеФорматированногоДокумента(ИмяПапки, ИмяФайла)

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПолноеИмяФайла = УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяПапки) + ИмяФайла);

    ЭлектронноеВзаимодействиеБП.КонвертироватьВФорматRTF(ФорматированныйДокумент, ПолноеИмяФайла);

    Возврат ПолноеИмяФайла;

    КонецФункции

    Функция ЗаполнитьТекстДоговораПоШаблонуВФоне(ПараметрыЗаполнения) Экспорт

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ПараметрыЗаполнения.ШаблонДоговора,
    ФорматированныйДокумент,
    ПараметрыЗаполнения.СсылкаНаОбъект);

    Результат = Новый Структура();
    Результат.Вставить("ТекстHTML");
    Результат.Вставить("Вложения");

    ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);

    Возврат ФорматированныйДокумент;

    КонецФункции
```
---
как понять, что выполняется после ОповеститьОВыборе?
В форме откуда это дело вызывалось,
есть стандартное событие "ОбработкаОповещения"
если оно назначено, то как раз результат выбора туда параметром приходит, и дальше выполняется последующая обработка.
---
//Куда идет дальше? - туда, откуда эту форму вызывали - там и обрабатывается результат выбора
поискать по конфигурации программное открытие формы.
Или если интересует конкретная ситуация - отладчиком...
---
Я просто пытаюсь отловить тот момент, в котором создается документ в формате pdf.
---
все выполняется на сервере, выбор будет предопределен, все выполняется в коде.
---
так поставь точку останова на ОповеститьОВыборе(РезультатВыбора) а дальше по F11
а там уже смотри как формируется таб док и сохраняется в pdf будет что то вроде

```1c
    Для каждого ФорматСохранения из РезультатВыбора.ФорматыСохранения Цикл
    ТабДок.Записать(ИмяФайла, ФорматСохранения); //ФорматСохранения = ТипФайлаТабличногоДокумента.PDF
    КонецЦикла;
```
---
Сообщение было скрыто модератором.
---
После кровопролитных лазаний по конфигурации, неприличных слов и громких стуков головой об стенку, я таки нашел как все формируется в 1С.
Сохранение документа у меня программно работает, но беда теперь в другом, сохраненных документ идет без форматирование, в кодировке UTF-8.
Теперь не могу понять, как сделать, чтобы форматирование брал из макета.

Вот код:

```1c
    ШаблонДоговора = Справочники.ШаблоныДоговоров.НайтиПоНаименованию("Договор поставки");

    Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000045");

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДоговорыКонтрагентов.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |ГДЕ
    | ДоговорыКонтрагентов.Владелец = &Владелец";

    Запрос.УстановитьПараметр("Владелец", Контрагент);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыборкаДетальныеЗаписи.Следующий();

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

    ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение шаблона договора'");
    ПараметрыВыполненияВФоне.КлючФоновогоЗадания = ВыборкаДетальныеЗаписи.Ссылка;

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ПараметрыЗаполнения.ШаблонДоговора,
    ФорматированныйДокумент,
    ПараметрыЗаполнения.СсылкаНаОбъект);

    ЭлектронноеВзаимодействиеБП.КонвертироватьВФорматRTF(ФорматированныйДокумент, ИмяВременногоФайла);
    //ТипФайлаТекст
    ФорматированныйДокумент.Записать(ИмяВременногоФайла);
    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
    //АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)));
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
    //ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(ВыборкаДетальныеЗаписи.Ссылка, "Договор_Тест", "rtf", , , АдресВХранилище);

    ПараметрыФайла = Новый Структура();
    ПараметрыФайла.Вставить("Автор", Пользователи.ТекущийПользователь());
    ПараметрыФайла.Вставить("ВладелецФайлов", ВыборкаДетальныеЗаписи.Ссылка);
    ПараметрыФайла.Вставить("ИмяБезРасширения", ИмяВременногоФайла);
    ПараметрыФайла.Вставить("РасширениеБезТочки", "rtf");
    ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", Неопределено);

    ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(
    ПараметрыФайла, АдресФайлаВоВременномХранилище, ", ");

    УдалитьФайлы(ИмяВременногоФайла);
    Сообщить("Готово " + Контрагент.Ссылка);
```

Кто-нибудь знает каким образом формируется файл с форматированием из макета.
---
Все. Разобрался.
Если кому то повезет как и мне разбираться в подобном вопросе, то вот мое решение:

```1c
    &НаСервере
    Процедура СоздатьДоговорНаСервере()

    //ТабДок = Справочники.ШаблоныДоговоров.ПолучитьМакет("ДоговорПоставки"); //СпраПолучитьМакет("Справочники.ШаблоныДоговоров.Макеты.ДоговорПоставки");
    ТабДок = Справочники.ШаблоныДоговоров.НайтиПоНаименованию("Договор поставки");
    //ИмяФайла = ПолучитьИмяВременногоФайла();
    //ТД = Новый ТекстовыйДокумент;
    //ТД.УстановитьТекст(ТабДок.ПолучитьТекст());
    //ТД.Записать(ИмяФайла);
    //ДД = Новый ДвоичныеДанные(ИмяФайла);
    //УдалитьФайлы(ИмяФайла);
    //Возврат ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);

    //Форма = ПолучитьФорму("Справочник.ШаблоныДоговоров.ФормаВыбора");

    // Загрузим из макета
    Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000045");

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДоговорыКонтрагентов.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |ГДЕ
    | ДоговорыКонтрагентов.Владелец = &Владелец";

    Запрос.УстановитьПараметр("Владелец", Контрагент);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыборкаДетальныеЗаписи.Следующий();

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

    ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение шаблона договора'");
    ПараметрыВыполненияВФоне.КлючФоновогоЗадания = ВыборкаДетальныеЗаписи.Ссылка;

    //ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблонуВФоне",
    //ПараметрыЗаполнения, ПараметрыВыполненияВФоне);
    //СохДок = ЗаполнитьТекстДоговораПоШаблонуВФоне(ПараметрыЗаполнения);

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ПараметрыЗаполнения.ШаблонДоговора,
    ФорматированныйДокумент,
    ПараметрыЗаполнения.СсылкаНаОбъект);

    //Результат = Новый Структура();
    //Результат.Вставить("ТекстHTML");
    //Результат.Вставить("Вложения");
    //
    //ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ////ТекстовыйДокумент.УстановитьТекст(
    //ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);

    //Возврат ФорматированныйДокумент;

    //ПараметрыЗаполнения = Новый Структура;
    //ПараметрыЗаполнения.Вставить("ШаблонДоговора", ТабДок);
    //ПараметрыЗаполнения.Вставить("СсылкаНаОбъект", ВыборкаДетальныеЗаписи.Ссылка);
    //
    //ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    //ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение шаблона договора'");
    //ПараметрыВыполненияВФоне.КлючФоновогоЗадания = ВыборкаДетальныеЗаписи.Ссылка;
    //
    //ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблонуВФоне",
    //ПараметрыЗаполнения, ПараметрыВыполненияВФоне);

    //Макет = Справочники.ШаблоныДоговоров.ДанныеШаблонаДоговора(ТабДок);

    //ФорматированныйДокумент = Новый ФорматированныйДокумент;
    //
    //ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ТабДок,
    // ФорматированныйДокумент,
    // ВыборкаДетальныеЗаписи.Ссылка);

    //Результат = Новый Структура();
    //Результат.Вставить("ТекстHTML");
    //Результат.Вставить("Вложения");
    //
    //ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);
    //ТабДок = Макет.Получить;//Формируем договор

    ИмяВременнойПапки = ПолучитьИмяВременногоФайла();
    СоздатьКаталог(ИмяВременнойПапки);

    ИмяФайлаБезРасширения = СокрЛП(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru = '%1 %2'"), Контрагент, ВыборкаДетальныеЗаписи.Ссылка));
    ИмяФайлаБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаБезРасширения);

    //ИмяВременногоФайла = ПолучитьИмяВременногоФайла("rtf");

    ПолноеИмяФайла = ПодготовитьRTFНаОсновеФорматированногоДокумента(ИмяВременнойПапки, ИмяФайлаБезРасширения);
    РасширениеФайла = "rtf";

    ЭлектронноеВзаимодействиеБП.КонвертироватьВФорматRTF(ФорматированныйДокумент, ПолноеИмяФайла); ///? тут что то не так, не могу пока понять что!
    //ТипФайлаТекст
    //ФорматированныйДокумент.Записать(ИмяВременногоФайла);
    ДвоичныеДанные = Новый ДвоичныеДанные(ПолноеИмяФайла);
    //АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)));

    //АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
    //ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(ВыборкаДетальныеЗаписи.Ссылка, "Договор_Тест", "rtf", , , АдресВХранилище);

    ПараметрыФайла = Новый Структура();
    ПараметрыФайла.Вставить("Автор", Пользователи.ТекущийПользователь());
    ПараметрыФайла.Вставить("ВладелецФайлов", ВыборкаДетальныеЗаписи.Ссылка);
    ПараметрыФайла.Вставить("ИмяБезРасширения", ИмяФайлаБезРасширения);
    ПараметрыФайла.Вставить("РасширениеБезТочки", РасширениеФайла);
    ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", Неопределено);

    ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(
    ПараметрыФайла, АдресФайлаВоВременномХранилище, ", ");

    //УдалитьФайлы(ИмяВременногоФайла);
    //УдалитьВременныйФайлНаСервер(ИмяВременнойПапки);
    Сообщить("Готово " + Контрагент.Ссылка);

    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция УникальноеИмяФайла(ИмяФайла)

    Файл = Новый Файл(ИмяФайла);
    ИмяБезРасширения = Файл.ИмяБезРасширения;
    Расширение = Файл.Расширение;
    Папка = Файл.Путь;

    Счетчик = 1;
    Пока Файл.Существует() Цикл
    Счетчик = Счетчик + 1;
    Файл = Новый Файл(Папка + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение);
    КонецЦикла;

    Возврат Файл.ПолноеИмя;

    КонецФункции

    Функция ПодготовитьRTFНаОсновеФорматированногоДокумента(ИмяПапки, ИмяФайла)

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПолноеИмяФайла = УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяПапки) + ИмяФайла);

    ЭлектронноеВзаимодействиеБП.КонвертироватьВФорматRTF(ФорматированныйДокумент, ПолноеИмяФайла);

    Возврат ПолноеИмяФайла;

    КонецФункции

    Функция ЗаполнитьТекстДоговораПоШаблонуВФоне(ПараметрыЗаполнения) Экспорт

    ФорматированныйДокумент = Новый ФорматированныйДокумент;

    ПечатьДоговоров.ЗаполнитьТекстДоговораПоШаблону(ПараметрыЗаполнения.ШаблонДоговора,
    ФорматированныйДокумент,
    ПараметрыЗаполнения.СсылкаНаОбъект);

    Результат = Новый Структура();
    Результат.Вставить("ТекстHTML");
    Результат.Вставить("Вложения");

    ФорматированныйДокумент.ПолучитьHTML(Результат.ТекстHTML, Результат.Вложения);

    //ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9)), АдресХранилища);

    Возврат ФорматированныйДокумент;

    КонецФункции
```