Выбрать получателя. Формирует список получателей рассылки, предлагает пользователю выбрать
// Формирует список получателей рассылки, предлагает пользователю выбрать
// конкретного получателя или всех получателей рассылки и возвращает
// результат выбора пользователя.
// Вызывается из формы элемента.
//
Процедура ВыбратьПолучателя(ОбработчикРезультата, Объект, МножественныйВыбор, ВозвращатьСоответствие) Экспорт
Если Объект.Личная = Истина Тогда
НаборПараметров = "Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Автор";
Иначе
НаборПараметров = "Ссылка, ВидПочтовогоАдресаПолучателей, Личная, ТипПолучателейРассылки, Получатели";
КонецЕсли;
ПараметрыПолучателей = Новый Структура(НаборПараметров);
ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, Объект);
РезультатВыполнения = РассылкаОтчетовВызовСервера.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей);
Если РезультатВыполнения.БылиКритичныеОшибки Тогда
ПараметрыВопросаПользователю = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопросаПользователю.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопросаПользователю.Картинка = БиблиотекаКартинок.Предупреждение32;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, РезультатВыполнения.Подробно, РежимДиалогаВопрос.ОК, ПараметрыВопросаПользователю);
Возврат;
КонецЕсли;
Получатели = РезультатВыполнения.Получатели;
Если Получатели.Количество() = 1 Тогда
Результат = Получатели;
Если Не ВозвращатьСоответствие Тогда
Для Каждого КлючИЗначение Из Получатели Цикл
Результат = Новый Структура("Получатель, ПочтовыйАдрес", КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
КонецЕсли;
ВыполнитьОбработкуОповещения(ОбработчикРезультата, Результат);
Возврат;
КонецЕсли;
ВозможныеПолучатели = Новый СписокЗначений;
Для Каждого КлючИЗначение Из Получатели Цикл
ВозможныеПолучатели.Добавить(КлючИЗначение.Ключ, Строка(КлючИЗначение.Ключ) +" <"+ КлючИЗначение.Значение +">");
КонецЦикла;
Если МножественныйВыбор Тогда
ВозможныеПолучатели.Вставить(0, Неопределено, НСтр("ru = 'Всем получателям'"));
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ОбработчикРезультата", ОбработчикРезультата);
ДополнительныеПараметры.Вставить("Получатели", Получатели);
ДополнительныеПараметры.Вставить("ВозвращатьСоответствие", ВозвращатьСоответствие);
Обработчик = Новый ОписаниеОповещения("ВыбратьПолучателяЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ВозможныеПолучатели.ПоказатьВыборЭлемента(Обработчик, НСтр("ru = 'Выбор получателя'"));
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ВыбратьПолучателяЗавершение (БСП)
СформироватьСписокПолучателейРассылки (БСП)
ИнициализироватьСтруктуруПолучатели (БСП)
ПослеОпределенияПолучателей (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)