|
Права пользователя в УПП 1.3 | ☑ | ||
---|---|---|---|---|
0
demonprodigy
09.08.18
✎
17:36
|
Здравствуйте, подскажите.
Как называется право на то, чтобы была возможность редактировать документ "Заявка на расходование денежных средств" в состоянии "К рассмотрению" Не могу найти, если конечно это типовая роль. Благодарю заранее. |
|||
3
dchumak
10.08.18
✎
03:48
|
Редактирование разрешается не по роли, а по согласованию заявки.
Процедура ПриОткрытии() ... Если НЕ ЭтоНовый() Тогда //Если используется функционал согласования заявок - проверим можно ли редактировать заявку Если НЕ ЭтаФорма.ТолькоПросмотр Тогда ЭтаФорма.ТолькоПросмотр = НЕ УправлениеДенежнымиСредствами.РазрешеноИзменениеЗаявки(Ссылка); КонецЕсли; КонецЕсли; Функция РазрешеноИзменениеЗаявки(ДокументСсылка, ТекстСообщенияПользователю = "") Экспорт Если НЕ ИспользуетсяСогласованиеЗаявок(ДокументСсылка.Организация, ДокументСсылка.Дата) Тогда Возврат Истина; КонецЕсли; ТекущийПользователь = глЗначениеПеременной("глТекущийПользователь"); МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц(); //Получим маршруты согласования, в которых текущий пользователь назначен основным Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ | Ссылка КАК МаршрутСогласования |ПОМЕСТИТЬ МаршрутыТекущегоПользователя |ИЗ Справочник.МаршрутыСогласования.СогласующиеЛица |ГДЕ Пользователь = &ТекПользователь |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ |СостоянияСогласования.Состояние, |СостоянияСогласования.Этап, |СостоянияСогласования.Пользователь, |СостоянияСогласования.Уровень, |СогласующиеЛица.Пользователь КАК СледующийСогласующий, |ВЫБОР КОГДА | СостоянияСогласования.Этап В ИЕРАРХИИ | (ВЫБРАТЬ МаршрутСогласования ИЗ МаршрутыТекущегоПользователя) | И СостоянияСогласования.Этап НЕ В | (ВЫБРАТЬ МаршрутСогласования ИЗ МаршрутыТекущегоПользователя) |ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК НижестоящийЭтапСогласования |ИЗ РегистрСведений.СостоянияСогласованияЗаявок.СрезПоследних(,Заявка = &ТекущаяЗаявка) КАК СостоянияСогласования |ЛЕВОЕ СОЕДИНЕНИЕ | Справочник.МаршрутыСогласования.СогласующиеЛица КАК СогласующиеЛица | ПО СогласующиеЛица.Ссылка = СостоянияСогласования.Этап.Родитель |"; Запрос.УстановитьПараметр("ТекПользователь", ТекущийПользователь); Запрос.УстановитьПараметр("ТекущаяЗаявка", ДокументСсылка); РезультатыЗапросов = Запрос.ВыполнитьПакет(); Выборка = РезультатыЗапросов[1].Выбрать(); //Маршрут согласования заявки не определен Если НЕ Выборка.Следующий() Тогда Возврат Истина; КонецЕсли; //Заявка еще не начала проходить по маршруту согласования Если НЕ ЗначениеЗаполнено(Выборка.Состояние) ИЛИ Выборка.Состояние = Перечисления.СостоянияОбъектов.Подготовлен Тогда Возврат Истина; //Заявка уже согласована к оплате ИначеЕсли Выборка.Состояние = Перечисления.СостоянияОбъектов.Утвержден Тогда ТекстСообщенияПользователю = НСтр("ru = 'Утвержденная заявка не может быть изменена.'"); Возврат Ложь; Иначе //Заявка проходит по маршруту согласования. // Возможность изменения зависит от пользователя, который пытается изменить заявку //Заявка в процессе согласования у текущего пользователя (в состоянии Отложен или Отклонен) Если Выборка.Пользователь = ТекущийПользователь И (Выборка.Состояние = Перечисления.СостоянияОбъектов.Отклонен ИЛИ Выборка.Состояние = Перечисления.СостоянияОбъектов.Отложен) Тогда Возврат Истина; //Заявка перешла на согласование текущему пользователю ИначеЕсли Выборка.Состояние = Перечисления.СостоянияОбъектов.Согласован И (Выборка.СледующийСогласующий = ТекущийПользователь) Тогда Возврат Истина; //Заявка находится на согласовании у "нижестоящих" этапов согласования ИначеЕсли Выборка.НижестоящийЭтапСогласования Тогда Возврат Истина; КонецЕсли; КонецЕсли; ТекстСообщенияПользователю = НСтр("ru = 'Заявка в процессе согласования, не может быть изменена.'"); Возврат Ложь; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |