Файл: Разработка регламента выполнения процесса «Управление документооборотом» (1 Построение бизнес-процессов «как есть»).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.06.2023

Просмотров: 347

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

| И ДескрипторыДоступаОбъектовПользователи.ОсновнойОбъектАдресации = &ОсновнойОбъектАдресации

| И ДескрипторыДоступаОбъектовПользователи.ДополнительныйОбъектАдресации = &ДополнительныйОбъектАдресации";

Запрос.УстановитьПараметр("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);

Запрос.УстановитьПараметр("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);

Запрос.УстановитьПараметр("Пользователь", РольИсполнителя);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

// Поиск дескрипторов по ТЧ РабочаяГруппа

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ РАЗЛИЧНЫЕ

| ДескрипторыДоступаОбъектовРабочаяГруппа.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов.РабочаяГруппа КАК ДескрипторыДоступаОбъектовРабочаяГруппа

|ГДЕ

| ДескрипторыДоступаОбъектовРабочаяГруппа.Участник = &Участник

| И ДескрипторыДоступаОбъектовРабочаяГруппа.ОсновнойОбъектАдресации = &ОсновнойОбъектАдресации

| И ДескрипторыДоступаОбъектовРабочаяГруппа.ДополнительныйОбъектАдресации = &ДополнительныйОбъектАдресации";

Запрос.УстановитьПараметр("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);

Запрос.УстановитьПараметр("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);

Запрос.УстановитьПараметр("Участник", РольИсполнителя);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

Иначе

// Обработка записи нового набора записей

Для каждого Эл Из Источник Цикл

РольИсполнителя = Эл.РольИсполнителя;

ОсновнойОбъектАдресации = Эл.ОсновнойОбъектАдресации;

ДополнительныйОбъектАдресации = Эл.ДополнительныйОбъектАдресации;

// Поиск дескрипторов по ТЧ Пользователи

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ РАЗЛИЧНЫЕ

| ДескрипторыДоступаОбъектовПользователи.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов.Пользователи КАК ДескрипторыДоступаОбъектовПользователи

|ГДЕ

| ДескрипторыДоступаОбъектовПользователи.Пользователь = &Пользователь

| И ДескрипторыДоступаОбъектовПользователи.ОсновнойОбъектАдресации = &ОсновнойОбъектАдресации


| И ДескрипторыДоступаОбъектовПользователи.ДополнительныйОбъектАдресации = &ДополнительныйОбъектАдресации";

Запрос.УстановитьПараметр("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);

Запрос.УстановитьПараметр("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);

Запрос.УстановитьПараметр("Пользователь", РольИсполнителя);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

// Поиск дескрипторов по ТЧ РабочаяГруппа

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ РАЗЛИЧНЫЕ

| ДескрипторыДоступаОбъектовРабочаяГруппа.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов.РабочаяГруппа КАК ДескрипторыДоступаОбъектовРабочаяГруппа

|ГДЕ

| ДескрипторыДоступаОбъектовРабочаяГруппа.Участник = &Участник

| И ДескрипторыДоступаОбъектовРабочаяГруппа.ОсновнойОбъектАдресации = &ОсновнойОбъектАдресации

| И ДескрипторыДоступаОбъектовРабочаяГруппа.ДополнительныйОбъектАдресации = &ДополнительныйОбъектАдресации";

Запрос.УстановитьПараметр("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);

Запрос.УстановитьПараметр("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);

Запрос.УстановитьПараметр("Участник", РольИсполнителя);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

КонецЦикла;

КонецЕсли;

КонецПроцедуры

// Обрабатывает запись набора записей РС СведенияОПользователях

Процедура ПриЗаписиСведенийОПользователях(Источник)

Если Константы.ДобавлятьРуководителямДоступПодчиненных.Получить() Тогда

Если Источник.ДополнительныеСвойства.Свойство("СтароеПодразделение") Тогда

// Если подразделение пользователя было изменено, то

// выполняется обновление прав, зависящих от пользователя

Немедленно = Не ДокументооборотПраваДоступаПовтИсп.ОтложенноеОбновлениеПравДоступа();

ЗначениеОтбора = Источник.Отбор.Пользователь.Значение;

Если ЗначениеЗаполнено(ЗначениеОтбора) Тогда

ОбновитьПраваПоПользователю(ЗначениеОтбора, Немедленно);

Иначе

Для каждого Эл Из Источник Цикл

ОбновитьПраваПоПользователю(Эл.Пользователь, Немедленно);


КонецЦикла;

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

// Обрабатывает запись правообразующих констант

Процедура ПриЗаписиКонстанты(Источник)

Если ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьУчетПоОрганизациям") Тогда

// Обработка всех дескрипторов, у которых установлен реквизит Организация

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.Организация <> &ПустаяОрганизация";

Запрос.УстановитьПараметр("ПустаяОрганизация", Справочники.Организации.ПустаяСсылка());

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьГрифыДоступа") Тогда

// Обработка всех дескрипторов, у которых установлен реквизит ГрифДоступа

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.ГрифДоступа <> &ГрифДоступа";

Запрос.УстановитьПараметр("ГрифДоступа", Справочники.ГрифыДоступа.ПустаяСсылка());

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьВопросыДеятельности") Тогда

// Обработка всех дескрипторов, у которых установлен реквизит ВопросДеятельности

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.ВопросДеятельности <> &ВопросДеятельности";

Запрос.УстановитьПараметр("ВопросДеятельности", Справочники.ВопросыДеятельности.ПустаяСсылка());


Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьВидыИсходящихДокументов") Тогда

// Обработка всех дескрипторов, у которых установлен реквизит ВидОбъекта

// типа Справочник.ВидыИсходящихДокументов

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.ВидОбъекта <> &ВидОбъекта

| И ТИПЗНАЧЕНИЯ(ДескрипторыДоступаОбъектов.ВидОбъекта) = ТИП(Справочник.ВидыИсходящихДокументов)";

Запрос.УстановитьПараметр("ВидОбъекта", Справочники.ВидыИсходящихДокументов.ПустаяСсылка());

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьВидыВходящихДокументов") Тогда

// Обработка всех дескрипторов, у которых установлен реквизит ВидОбъекта

// типа Справочник.ВидыВходящихДокументов

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.ВидОбъекта <> &ВидОбъекта

| И ТИПЗНАЧЕНИЯ(ДескрипторыДоступаОбъектов.ВидОбъекта) = ТИП(Справочник.ВидыВходящихДокументов)";

Запрос.УстановитьПараметр("ВидОбъекта", Справочники.ВидыВходящихДокументов.ПустаяСсылка());

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ИспользоватьВидыВнутреннихДокументов") Тогда


// Обработка всех дескрипторов, у которых установлен реквизит ВидОбъекта

// типа Справочник.ВидыВнутреннихДокументов

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов

|ГДЕ

| ДескрипторыДоступаОбъектов.ВидОбъекта <> &ВидОбъекта

| И ТИПЗНАЧЕНИЯ(ДескрипторыДоступаОбъектов.ВидОбъекта) = ТИП(Справочник.ВидыВнутреннихДокументов)";

Запрос.УстановитьПараметр("ВидОбъекта", Справочники.ВидыВнутреннихДокументов.ПустаяСсылка());

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Дескриптор = ВыборкаДетальныеЗаписи.Ссылка;

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(Дескриптор);

ОбновитьПраваСвязанныхДескрипторовПоДескриптору(Дескриптор);

КонецЦикла;

ИначеЕсли ТипЗнч(Источник) = Тип("КонстантаМенеджерЗначения.ДобавлятьРуководителямДоступПодчиненных") Тогда

// Обновление всех дескрипторов

// ДескрипторыДоступаОбъектов

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаОбъектов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаОбъектов КАК ДескрипторыДоступаОбъектов";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаОбъектов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

// ДескрипторыДоступаРегистров

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаРегистров.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаРегистров КАК ДескрипторыДоступаРегистров";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаРегистров.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

// ДескрипторыДоступаФайлов

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДескрипторыДоступаФайлов.Ссылка

|ИЗ

| Справочник.ДескрипторыДоступаФайлов КАК ДескрипторыДоступаФайлов";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Справочники.ДескрипторыДоступаФайлов.ОбновитьПрава(ВыборкаДетальныеЗаписи.Ссылка);

КонецЦикла;

КонецЕсли;