Файл: Автоматизация разграничений прав доступа к ресурсам информационной системы в ООО "Монарх".pdf
Добавлен: 31.03.2023
Просмотров: 129
Скачиваний: 1
ПРИЛОЖЕНИЯ
Программный код
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РешениеПоЗаявке") Тогда
// Заполнение шапки
Для Каждого ТекСтрокаЗаявка Из ДанныеЗаполнения.Заявка Цикл
НоваяСтрока = Заявка.Добавить();
НоваяСтрока.ВидПрава = ТекСтрокаЗаявка.ВидПрава;
НоваяСтрока.Объект = ТекСтрокаЗаявка.Объект;
НоваяСтрока.Пользователь = ТекСтрокаЗаявка.Пользователь;
НоваяСтрока.Право = ТекСтрокаЗаявка.Право;
НоваяСтрока.СпециалистИБ = ТекСтрокаЗаявка.СпециалистИБ;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр ПраваВыданные
Движения.ПраваВыданные.Записывать = Истина;
Для Каждого ТекСтрокаЗаявка Из Заявка Цикл
Движение = Движения.ПраваВыданные.Добавить();
Движение.Период = Дата;
Движение.Пользователь = ТекСтрокаЗаявка.Пользователь;
Движение.Право = ТекСтрокаЗаявка.Право;
Движение.СпециалистИБ = ТекСтрокаЗаявка.СпециалистИБ;
Движение.Объект = ТекСтрокаЗаявка.Объект;
Движение.ВидПрава = ТекСтрокаЗаявка.ВидПрава;
КонецЦикла;
КонецПроцедуры
Макет = Документы.ПредоставлениеПраваДоступа.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПредоставлениеПраваДоступа.Дата,
| ПредоставлениеПраваДоступа.Номер,
| ПредоставлениеПраваДоступа.Заявка.(
| НомерСтроки,
| Пользователь,
| ВидПрава,
| Право,
| СпециалистИБ,
| Объект
| )
|ИЗ
| Документ.ПредоставлениеПраваДоступа КАК ПредоставлениеПраваДоступа
|ГДЕ
| ПредоставлениеПраваДоступа.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаявкаШапка = Макет.ПолучитьОбласть("ЗаявкаШапка");
ОбластьЗаявка = Макет.ПолучитьОбласть("Заявка");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьЗаявкаШапка);
ВыборкаЗаявка = Выборка.Заявка.Выбрать();
Пока ВыборкаЗаявка.Следующий() Цикл
ОбластьЗаявка.Параметры.Заполнить(ВыборкаЗаявка);
ТабДок.Вывести(ОбластьЗаявка, ВыборкаЗаявка.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр Решения
Движения.Решения.Записывать = Истина;
Для Каждого ТекСтрокаЗаявка Из Заявка Цикл
Движение = Движения.Решения.Добавить();
Движение.Период = Дата;
Движение.Пользователь = ТекСтрокаЗаявка.Пользователь;
Движение.Право = ТекСтрокаЗаявка.Право;
Движение.СпециалистИБ = ТекСтрокаЗаявка.СпециалистИБ;
Движение.Объект = ТекСтрокаЗаявка.Объект;
Движение.ВидПрава = ТекСтрокаЗаявка.ВидПрава;
Движение.Решение = ТекСтрокаЗаявка.Решение;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗавкаНаДоступ") Тогда
// Заполнение шапки
Для Каждого ТекСтрокаЗаявка Из ДанныеЗаполнения.Заявка Цикл
НоваяСтрока = Заявка.Добавить();
НоваяСтрока.ВидПрава = ТекСтрокаЗаявка.ВидПрава;
НоваяСтрока.Объект = ТекСтрокаЗаявка.Объект;
НоваяСтрока.Пользователь = ТекСтрокаЗаявка.Пользователь;
НоваяСтрока.Право = ТекСтрокаЗаявка.Право;
НоваяСтрока.СпециалистИБ = ТекСтрокаЗаявка.СпециалистИБ;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// регистр Заявки
Движения.Заявки.Записывать = Истина;
Для Каждого ТекСтрокаЗаявка Из Заявка Цикл
Движение = Движения.Заявки.Добавить();
Движение.Период = Дата;
Движение.Пользователь = ТекСтрокаЗаявка.Пользователь;
Движение.Право = ТекСтрокаЗаявка.Право;
Движение.СпециалистИБ = ТекСтрокаЗаявка.СпециалистИБ;
Движение.Объект = ТекСтрокаЗаявка.Объект;
Движение.ВидПрава = ТекСтрокаЗаявка.ВидПрава;
КонецЦикла;
Макет = Документы.ЗавкаНаДоступ.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗавкаНаДоступ.Дата,
| ЗавкаНаДоступ.Номер,
| ЗавкаНаДоступ.Заявка.(
| НомерСтроки,
| Пользователь,
| ВидПрава,
| Право,
| СпециалистИБ,
| Объект
| )
|ИЗ
| Документ.ЗавкаНаДоступ КАК ЗавкаНаДоступ
|ГДЕ
| ЗавкаНаДоступ.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаявкаШапка = Макет.ПолучитьОбласть("ЗаявкаШапка");