Подскажите пожалуйста, есть такое условие в запросе
надо чтобы оно выполнялось только при определенном условии, т.е. когда указана и Роль и Пользователь. Делаю так:
выдает ошибку, что параметр Исполнитель не указан, когда указываю роль(массив ролей), без пользователей.
Т.е. когда УстановленОтборПоРолиИПользователю = Ложь, он все равно просит заполнить параметр Исполнитель.
Параметры устанавливаю так:
ГДЕ
НЕ ЗадачаЗадачаИсполнителя.ТекущийИсполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
{ГДЕ
(ЗадачаЗадачаИсполнителя.Ссылка В (&МассивСсылок)),
(ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
ГДЕ
ИсполнителиРолейИДелегаты.РольПользователь = ЗадачаЗадачаИсполнителя.ТекущийИсполнитель
И ИсполнителиРолейИДелегаты.ИсполнительДелегат В (&Исполнитель)
И ИсполнителиРолейИДелегаты.ИмяОбластиДелегирования В ("", "ПроцессыИЗадачи"))
ИЛИ ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
Справочник.ПолныеРоли КАК ИсполнителиРолей
ГДЕ
ИсполнителиРолей.Ссылка = ЗадачаЗадачаИсполнителя.РольИсполнителя
И ИсполнителиРолей.Ссылка В (&РольИсполнителя))
}
Показатьнадо чтобы оно выполнялось только при определенном условии, т.е. когда указана и Роль и Пользователь. Делаю так:
ГДЕ
НЕ ЗадачаЗадачаИсполнителя.ТекущийИсполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
{ГДЕ
(ЗадачаЗадачаИсполнителя.Ссылка В (&МассивСсылок)),
(ВЫБОР
КОГДА &УстановленОтборПоРолиИПользователю
ТОГДА ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
ГДЕ
ИсполнителиРолейИДелегаты.РольПользователь = ЗадачаЗадачаИсполнителя.ТекущийИсполнитель
И ИсполнителиРолейИДелегаты.ИсполнительДелегат В (&Исполнитель)
И ИсполнителиРолейИДелегаты.ИмяОбластиДелегирования В ("", "ПроцессыИЗадачи"))
ИЛИ ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
Справочник.ПолныеРоли КАК ИсполнителиРолей
ГДЕ
ИсполнителиРолей.Ссылка = ЗадачаЗадачаИсполнителя.РольИсполнителя
И ИсполнителиРолей.Ссылка В (&РольИсполнителя))
ИНАЧЕ ЛОЖЬ
КОНЕЦ)}
Показатьвыдает ошибку, что параметр Исполнитель не указан, когда указываю роль(массив ролей), без пользователей.
Т.е. когда УстановленОтборПоРолиИПользователю = Ложь, он все равно просит заполнить параметр Исполнитель.
Параметры устанавливаю так:
Если МассивРолей.Количество() > 0 И МассивПользователей.Количество() > 0 Тогда
Список.Параметры.УстановитьЗначениеПараметра("УстановленОтборПоРолиИПользователю", Истина);
Список.Параметры.УстановитьЗначениеПараметра("РольИсполнителя", МассивРолей);
Список.Параметры.УстановитьЗначениеПараметра("Исполнитель", МассивПользователей);
ИначеЕсли МассивРолей.Количество() > 0 Тогда
Список.Параметры.УстановитьЗначениеПараметра("УстановленОтборПоРолиИПользователю", Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "РольИсполнителя", МассивРолей);
ИначеЕсли МассивПользователей.Количество()> 0 Тогда
Список.Параметры.УстановитьЗначениеПараметра("УстановленОтборПоРолиИПользователю", Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Исполнитель", МассивПользователей);
КонецЕсли;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Исполняться-то ветка запроса (условие) не будет. Но вот т.к. в тексте запроса параметр упоминается - платформа требует чтобы параметр был задан (любой, хоть строка "привет"). Платформа ведь не выполняет запрос, не анализирует его текст перед выполнением на логику выполнения (в целях проверки заполнения параметров).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот