Имеется функция, которая после записи создает задание.
НовоеПоручение.Исполнитель = пользователь, который находится в табличной части.( в коде он подставляет конкретного пользователя т.е. первого по списку из ТЧ)
в этой табличной части может быть разное количество пользователей.
В табличной части есть еще реквизиты типа булево.
Так вот надо, если пользователь поставил истина то Исполнитель поставляется след. пользователь в этой табличной части. Если пользователь поставил отказ, то подставляется в Исполнителя предыдущий пользователь.
Подскажите как это можно реализовать?
НовоеПоручение.Исполнитель = пользователь, который находится в табличной части.( в коде он подставляет конкретного пользователя т.е. первого по списку из ТЧ)
в этой табличной части может быть разное количество пользователей.
В табличной части есть еще реквизиты типа булево.
Так вот надо, если пользователь поставил истина то Исполнитель поставляется след. пользователь в этой табличной части. Если пользователь поставил отказ, то подставляется в Исполнителя предыдущий пользователь.
Подскажите как это можно реализовать?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
если у Админа одобрено,тогда исполнитель следующий?а если у следующего отказ стоит тогда исполнитель Админ?
(5)
Что то типа этого,но как по мне реквизит "Отказ" лишний,по сути "Одобрено" уже несет в себе отказ в случае если галочки нет.
Исполнитель = Неопределено;
Для каждого стр из Объект.СписокСогласующих Цикл
Если стр.Одобрено и не стр.Отказ Тогда
Исполнитель = стр.Исполнитель;
Продолжить();
Иначе
Прервать();
КонецЕсли;
КонецЦикла;
ПоказатьЧто то типа этого,но как по мне реквизит "Отказ" лишний,по сути "Одобрено" уже несет в себе отказ в случае если галочки нет.
(7)Я щас твой вопрос перепрочтел, и не правильно тебе ответил на него.
Крч 1 - админ по списку 2 - репорт.
Если если пользователь админ отправляет задание и у него одобрено = истина, тогда в исполнитель ставится пользователь репорт ( т.е. если у 1 одобрено =истина, исполнитель = 2).
Если репорт поставил отказ, то исполнитель ставится 1 "Админ".
ну проще если объяснить, то истина то на шаг вперед, ложь на шаг назад.
Крч 1 - админ по списку 2 - репорт.
Если если пользователь админ отправляет задание и у него одобрено = истина, тогда в исполнитель ставится пользователь репорт ( т.е. если у 1 одобрено =истина, исполнитель = 2).
Если репорт поставил отказ, то исполнитель ставится 1 "Админ".
ну проще если объяснить, то истина то на шаг вперед, ложь на шаг назад.
(6)
Для лИндекс = 0 По Объект.СписокСогласующих.Количество()-1 Цикл
ИсполнительТекущий = Объект.СписокСогласующих[лИндекс].Исполнитель;
Отказ = Ложь;
Если Объект.СписокСогласующих[лИндекс].Одобрено Тогда
ИсполнительСледующий = Объект.СписокСогласующих[?(лИндекс+1 = Объект.СписокСогласующих.Количество()-1, лИндекс, лИндекс+1)].Исполнитель;
Отказ = Объект.СписокСогласующих[?(лИндекс+1 = Объект.СписокСогласующих.Количество()-1, лИндекс, лИндекс+1)].Отказ;
КонецЕсли;
Если Отказ Тогда
Исполнитель = ИсполнительТекущий;
Иначе
Исполнитель = ИсполнительСледующий;
КонецЕсли;
// еще требуется обработка или условие прерывания цикла
КонецЦикла;
Показать
(15) вам же нужно сравнить два значения, Одобрено и Отказ
переменная введена как раз для этого
перед сравнением установили в Ложь и получили значение для сравнения из строки следующего исполнителя
дальше сравниваем уже переменную с Истина и выполняем нужные действия
как-то так...
переменная введена как раз для этого
перед сравнением установили в Ложь и получили значение для сравнения из строки следующего исполнителя
дальше сравниваем уже переменную с Истина и выполняем нужные действия
как-то так...
(26)Я сделал чуть попроще.
Циклом прохожу таб.часть и проверяю на одобрено.
Если одобрено = ложь, то этого пользователя у кого стоит ложь и подставляю в исполнителя.
соответственно после того как он первого нашел у кого Одобрено = Ложь;
Прервать;
Циклом прохожу таб.часть и проверяю на одобрено.
Если одобрено = ложь, то этого пользователя у кого стоит ложь и подставляю в исполнителя.
соответственно после того как он первого нашел у кого Одобрено = Ложь;
Прервать;
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот