Подготовить запрос для получения списка шаблонов.
Функция ПодготовитьЗапросДляПолученияСпискаШаблонов(ТипШаблона, Предмет = Неопределено, ВладелецШаблона = Неопределено, ВыводитьОбщиеШаблон = Истина) Экспорт
Если ТипШаблона = "SMS" Тогда
ПредназначенДляSMS = Истина;
ПредназначенДляЭлектронныхПисем = Ложь;
Иначе
ПредназначенДляSMS = Ложь;
ПредназначенДляЭлектронныхПисем = Истина;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ШаблоныСообщений.Ссылка,
| ШаблоныСообщений.Представление,
| ШаблоныСообщений.Наименование КАК Имя,
| ШаблоныСообщений.ВнешняяОбработка КАК ВнешняяОбработка,
| ШаблоныСообщений.ШаблонПоВнешнейОбработке КАК ШаблонПоВнешнейОбработке,
| ВЫБОР
| КОГДА ШаблоныСообщений.ПредназначенДляЭлектронныхПисем
| ТОГДА ВЫБОР
| КОГДА ШаблоныСообщений.ТипТекстаПисьма = ЗНАЧЕНИЕ(Перечисление.СпособыРедактированияЭлектронныхПисем.HTML)
| ТОГДА ШаблоныСообщений.ТекстШаблонаПисьмаHTML
| ИНАЧЕ ШаблоныСообщений.ТекстШаблонаПисьма
| КОНЕЦ
| ИНАЧЕ ШаблоныСообщений.ТекстШаблонаSMS
| КОНЕЦ КАК ТекстШаблона,
| ШаблоныСообщений.ТипТекстаПисьма,
| ШаблоныСообщений.ТемаПисьма,
| ВЫБОР
| КОГДА КОЛИЧЕСТВО(ШаблоныСообщений.Параметры.ИмяПараметра) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЕстьПроизвольныеПараметры
|ИЗ
| Справочник.ШаблоныСообщений КАК ШаблоныСообщений
|ГДЕ
| (ШаблоныСообщений.ТолькоДляАвтора = ЛОЖЬ ИЛИ ШаблоныСообщений.Автор = &Пользователь) И
| ШаблоныСообщений.ПредназначенДляSMS = &ПредназначенДляSMS
| И ШаблоныСообщений.ПредназначенДляЭлектронныхПисем = &ПредназначенДляЭлектронныхПисем
| И ШаблоныСообщений.Назначение <> ""Служебный""
| %ВладелецШаблона%
| И ШаблоныСообщений.ПометкаУдаления = ЛОЖЬ";
Если ЗначениеЗаполнено(ВладелецШаблона) Тогда
ОтборПоВладельцу = "И ШаблоныСообщений.ВладелецШаблона = &ВладелецШаблона";
Запрос.УстановитьПараметр("ВладелецШаблона", ВладелецШаблона);
Иначе
ОтборПоВладельцу = "";
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "%ВладелецШаблона%", ОтборПоВладельцу);
Запрос.УстановитьПараметр("ПредназначенДляSMS", ПредназначенДляSMS);
Запрос.УстановитьПараметр("ПредназначенДляЭлектронныхПисем", ПредназначенДляЭлектронныхПисем);
Запрос.УстановитьПараметр("Пользователь", Пользователи.АвторизованныйПользователь());
ОтборОбщиеШаблоны = ?(ВыводитьОбщиеШаблон, "ШаблоныСообщений.ПредназначенДляВводаНаОсновании = ЛОЖЬ", "");
Если ЗначениеЗаполнено(Предмет) Тогда
Запрос.Текст = Запрос.Текст + " И (ШаблоныСообщений.ПолноеИмяТипаПараметраВводаНаОсновании = &ПолноеИмяТипаПредмета "
+ ?(ЗначениеЗаполнено(ОтборОбщиеШаблоны), " ИЛИ " + ОтборОбщиеШаблоны, "") + ")";
Запрос.УстановитьПараметр("ПолноеИмяТипаПредмета",
?(ТипЗнч(Предмет) = Тип("Строка"), Предмет, Предмет.Метаданные().ПолноеИмя()));
Иначе
Запрос.Текст = Запрос.Текст + ?(ЗначениеЗаполнено(ОтборОбщиеШаблоны), " И " + ОтборОбщиеШаблоны, "");
КонецЕсли;
Возврат Запрос;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////