в базе хранится Шаблон договора с контрагентом
ТекстДоговора - это Форматированный документ
Функция ОпределитьШаблонПечатнойФормы(ИмяШаблона, ПредставлениеШаблона)
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ИмяФайла", ИмяШаблона);
//Запрос.УстановитьПараметр("Описание",ПредставлениеШаблона + " (Шаблон)");
Запрос.УстановитьПараметр("ТОбъект",Справочники.Организации.НайтиПоКоду("000000002"));
//
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| Ссылка, Хранилище КАК ХранилищеФайла,
| CASE WHEN ПометкаУдаления THEN 2 ELSE 1 END as Приоритет
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК спр
|ГДЕ
| спр.Объект = &ТОбъект
| И спр.ВидДанных = ЗНАЧЕНИЕ(Перечисление.ВидыДополнительнойИнформацииОбъектов.Файл)
// | И спр.Наименование = &Описание
| И спр.ИмяФайла ПОДОБНО &ИмяФайла
|УПОРЯДОЧИТЬ ПО Приоритет
|";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции // ОпределитьШаблонПечатнойФормы
&НаСервере
Процедура СохранитьНаСервере()
ВЫборка = ОпределитьШаблонПечатнойФормы("ДоговорСКонтрагентом", "ДоговорСКонтрагентом");
Если Выборка = Неопределено Тогда // Необходимо создать новый элемент справочника
СправочникОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
СправочникОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
СправочникОбъект.ИмяФайла = "ДоговорСКонтрагентом";
СправочникОбъект.Наименование = "ДоговорСКонтрагентом(Шаблон)";
СправочникОбъект.Объект = Справочники.Организации.НайтиПоКоду("000000002");
// Запишем в хранилище выбранный файл
Попытка
СправочникОбъект.Хранилище = Новый ХранилищеЗначения(ТекстДоговора);
Исключение
//Предупреждение(ОписаниеОшибки());
КонецПопытки;
Иначе
СправочникОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если Выборка.Приоритет = 2 Тогда // Элемент помечен на удаление
Попытка
СправочникОбъект.УстановитьПометкуУдаления(Ложь);
Исключение
КонецПопытки;
КонецЕсли;
ХранилищеШаблона = Выборка.ХранилищеФайла;
Попытка
СправочникОбъект.Хранилище = Новый ХранилищеЗначения(ТекстДоговора);
Исключение
// Предупреждение(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Попытка
СправочникОбъект.Записать();
Исключение
//Предупреждение(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура Сохранить(Команда)
СохранитьНаСервере();
КонецПроцедуры