ПодготовитьЗапросДляПолученияСпискаШаблонов (БСП)

Автор: 1С
ОбщийМодуль.ШаблоныСообщенийСлужебный
БСП

Подготовить запрос для получения списка шаблонов.

Функция ПодготовитьЗапросДляПолученияСпискаШаблонов(ТипШаблона, Предмет = Неопределено, ВладелецШаблона = Неопределено, ВыводитьОбщиеШаблон = Истина) Экспорт
	
	Если ТипШаблона = "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
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПриПолученииСпискаШаблонов (БСП)

ПодготовитьHTTPЗапрос (БСП)

TurboConf 6 - расширение Конфигуратора 1С