1C:Документооборот - настройка доступа к входящим документам
04.07.2019
13:33
#1
Коллеги, прошу у вас помощи, совета.
Ситуация следующая:
имею 1с:документооборот 8 КОРП.
Настраиваю права к документам. С внутренними проблем нет. Но с входящими засада: либо дать доступ всем (или определенным лицам, группам) на чтение/редактирование/регистрацию, либо не давать и тогда никто документы не увидит.
Мне же нужно настроить по следующей схеме: обычные пользователи должны видеть входящие документы те, которые им направили по процессу. И не более.
Если кто знает как это сделать, заранее благодарен.
Ситуация следующая:
имею 1с:документооборот 8 КОРП.
Настраиваю права к документам. С внутренними проблем нет. Но с входящими засада: либо дать доступ всем (или определенным лицам, группам) на чтение/редактирование/регистрацию, либо не давать и тогда никто документы не увидит.
Мне же нужно настроить по следующей схеме: обычные пользователи должны видеть входящие документы те, которые им направили по процессу. И не более.
Если кто знает как это сделать, заранее благодарен.
15.07.2019
08:46
#5
Я бы в процесс добавил обработчик, типа такого:
УстановитьПривилегированныйРежим(Истина);
текЗаявка = Процесс.Предметы[0].Предмет.Ссылка;
текОтветственныйМенеджер = текЗаявка.Контрагент.Ответственный;
Если ЗначениеЗаполнено(текОтветственныйМенеджер) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РабочиеГруппы.Участник
|ИЗ
| РегистрСведений.РабочиеГруппы КАК РабочиеГруппы
|ГДЕ
| РабочиеГруппы.Объект = &Объект
| И РабочиеГруппы.Участник = &Участник
| И РабочиеГруппы.Изменение = ИСТИНА";
Запрос.УстановитьПараметр("Объект", текЗаявка);
Запрос.УстановитьПараметр("Участник", текОтветственныйМенеджер);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Набор = РегистрыСведений.РабочиеГруппы.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(текЗаявка);
Набор.Отбор.Участник.Установить(текОтветственныйМенеджер);
Запись = Набор.Добавить();
Запись.Объект = текЗаявка;
Запись.Участник = текОтветственныйМенеджер;
Запись.Изменение = ИСТИНА;
РегистрыСведений.РабочиеГруппы.ЗаполнитьУстаревшиеИзмерения(Запись);
Набор.Записать(Истина);
КонецЕсли;
КонецЕсли;
Если ДокументооборотПраваДоступаПовтИсп.ВключеноИспользованиеПравДоступа() Тогда
ДокументооборотПраваДоступа.ОпределитьДескрипторыОбъекта(текЗаявка);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
И настраивал бы доступ по рабочим группам.
УстановитьПривилегированныйРежим(Истина);
текЗаявка = Процесс.Предметы[0].Предмет.Ссылка;
текОтветственныйМенеджер = текЗаявка.Контрагент.Ответственный;
Если ЗначениеЗаполнено(текОтветственныйМенеджер) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РабочиеГруппы.Участник
|ИЗ
| РегистрСведений.РабочиеГруппы КАК РабочиеГруппы
|ГДЕ
| РабочиеГруппы.Объект = &Объект
| И РабочиеГруппы.Участник = &Участник
| И РабочиеГруппы.Изменение = ИСТИНА";
Запрос.УстановитьПараметр("Объект", текЗаявка);
Запрос.УстановитьПараметр("Участник", текОтветственныйМенеджер);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Набор = РегистрыСведений.РабочиеГруппы.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(текЗаявка);
Набор.Отбор.Участник.Установить(текОтветственныйМенеджер);
Запись = Набор.Добавить();
Запись.Объект = текЗаявка;
Запись.Участник = текОтветственныйМенеджер;
Запись.Изменение = ИСТИНА;
РегистрыСведений.РабочиеГруппы.ЗаполнитьУстаревшиеИзмерения(Запись);
Набор.Записать(Истина);
КонецЕсли;
КонецЕсли;
Если ДокументооборотПраваДоступаПовтИсп.ВключеноИспользованиеПравДоступа() Тогда
ДокументооборотПраваДоступа.ОпределитьДескрипторыОбъекта(текЗаявка);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
И настраивал бы доступ по рабочим группам.
Читают тему
(гостей: 1)