|
Выборочное удаление получателей | ☑ | ||
---|---|---|---|---|
0
baziza
19.10.15
✎
11:46
|
Всем добрый!
Есть функция, возвращающая таблицу получателей уведомления. Результатом запроса является таблица с колонками ВидПолучателя (Автор, Куратор, Исполнитель, РольИсполнителя) и Получатель (само ФИО получателя): Функция ПолучателиУведомленияПоЗадаче(Задача, ВидУведомления) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Автор", Перечисления.су_ПолучателиУведомлений.Автор); Запрос.УстановитьПараметр("Куратор", Перечисления.су_ПолучателиУведомлений.Куратор); Запрос.УстановитьПараметр("Исполнитель", Перечисления.су_ПолучателиУведомлений.Исполнитель); Запрос.УстановитьПараметр("РольИсполнителя", Перечисления.су_ПолучателиУведомлений.РольИсполнителя); Запрос.УстановитьПараметр("Задача", Задача); Запрос.Текст = "ВЫБРАТЬ | &Исполнитель КАК ВидПолучателя, | прЗадачиПроцессов.Исполнитель КАК Получатель |ИЗ | Задача.прЗадачиПроцессов КАК прЗадачиПроцессов |ГДЕ | прЗадачиПроцессов.Ссылка = &Задача | И НЕ прЗадачиПроцессов.Исполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | &Автор, | прЗадачиПроцессов.БизнесПроцесс.Автор |ИЗ | Задача.прЗадачиПроцессов КАК прЗадачиПроцессов |ГДЕ | прЗадачиПроцессов.Ссылка = &Задача | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | &Куратор, | прПроцессКураторы.Пользователь |ИЗ | Задача.прЗадачиПроцессов КАК прЗадачиПроцессов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ БизнесПроцесс.прПроцесс.Кураторы КАК прПроцессКураторы | ПО прЗадачиПроцессов.БизнесПроцесс = прПроцессКураторы.Ссылка |ГДЕ | прЗадачиПроцессов.Ссылка = &Задача | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | &РольИсполнителя, | прРолиПользователей.Пользователь |ИЗ | Задача.прЗадачиПроцессов КАК прЗадачиПроцессов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.прРолиПользователей КАК прРолиПользователей | ПО прЗадачиПроцессов.РольИсполнителя = прРолиПользователей.РольПользователя |ГДЕ | прЗадачиПроцессов.Ссылка = &Задача | И прЗадачиПроцессов.Исполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)"; ТаблицаПолучателей = Запрос.Выполнить().Выгрузить(); УдалитьДублирующихсяПолучателей(ТаблицаПолучателей, ВидУведомления); Событие = БСП_ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Задача, "Событие"); УдалитьПолучателейПоПравилам(ТаблицаПолучателей, ВидУведомления, Событие); Возврат ТаблицаПолучателей; КонецФункции Проблема в том, что рассылка происходит и уволенным сотрудникам (в справочнике уволенные сотрудники помечены буквой "ъ" перед ФИО). Помогите дополнить функцию исключением таких получателей. Как я понимаю, это можно реализовать с помощью условия, аля если имя получателя начинается на "ъ", тогда исключаем его из таблицы получателей. Надеюсь вопрос расписал понятно, всем спасибо за внимание) |
|||
1
mikecool
19.10.15
✎
11:48
|
(0) все правильно написал, делай
|
|||
2
baziza
19.10.15
✎
12:06
|
А в самом запросе сразу можно исключить уволенных?
|
|||
3
ibreiter
19.10.15
✎
12:13
|
Можно.
Условие подобно сделать |
|||
4
baziza
19.10.15
✎
12:26
|
Добавил в конце запроса:
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТИсключитьУволенных.ВидПолучателя, ВТИсключитьУволенных.Получатель ИЗ ВТИсключитьУволенных КАК ВТИсключитьУволенных ГДЕ НЕ ВТИсключитьУволенных.Получатель.Наименование ПОДОБНО "ъ%" Вроде есть желаемый результат. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |