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