Файл: Автоматизация разграничений прав доступа к ресурсам информационной системы в ООО "Монарх" (Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

// Возврат;

// КонецЕсли;

// ИначеЕсли ФильтрКолонка = "ДатаПостановки" Тогда

// Если НачалоДня(СтрокаПодЗадача.ПодЗадача.Дата) <> НачалоДня(ФильтрЗначение) Тогда

// Возврат;

// КонецЕсли;

// ИначеЕсли ФильтрКолонка = "ДатаОжидаемая" Тогда

// Если НачалоДня(СтрокаПодЗадача.ПодЗадача.ДатаОкончания) <> НачалоДня(ФильтрЗначение) Тогда

// Возврат;

// КонецЕсли;

// КонецЕсли;

//КонецЕсли;

// создать новый узел дерева

НовыйУзел = Узел.Строки.Добавить();

НовыйУзел.ПодЗадача = СтрокаПодЗадача.ПодЗадача;

НовыйУзел.Выполнена = СтрокаПодЗадача.ПодЗадача.Проведен;

НовыйУзел.НомерВТабЧасти = СтрокаПодЗадача.НомерСтроки;

НовыйУзел.Наименование = Строка(СтрокаПодЗадача.ПодЗадача.Номер) + " " + СтрокаПодЗадача.ПодЗадача.Наименование;

НовыйУзел.Статус = СтрокаПодЗадача.ПодЗадача.Статус;

НовыйУзел.Дата = СтрокаПодЗадача.ПодЗадача.Дата;

НовыйУзел.ДатаОжидаемая = СтрокаПодЗадача.ПодЗадача.ОжидаемаяДатаВыполнения;

НовыйУзел.Комментарий = СтрокаПодЗадача.Комментарий;

НовыйУзел.Пометка = УстановитьПометку(СтрокаПодЗадача.ПодЗадача);

//НовыйУзел.Картинка = БиблиотекаКартинок.ДебетКредит;

// теперь рекурсивно для каждого поддрева

Для Каждого СтрокаПодЗадача Из СтрокаПодЗадача.ПодЗадача.Подзадачи Цикл

ЗаполнитьПодЗадачу(СтрокаПодЗадача, НовыйУзел);

КонецЦикла;

КонецПроцедуры // ЗаполнитьПодЗадачу

// признак выполнения задачи

Функция УстановитьПометку(Задача)

Возврат Число(Задача.Проведен);

//Если Задача.Проведен Тогда

// Возврат 1;

//КонецЕсли;

//

//Для Каждого СтрокаПодЗадача Из Задача.Подзадачи Цикл

// Если НЕ Задача.Проведен Тогда

// Возврат 2;

// КонецЕсли;

//КонецЦикла;

//

//Возврат 0;

КонецФункции

//пройти по массиву Путь (хранит ссылки на подзадачи) начиная с головы и вернуть ИД последнего узла

&НаКлиенте

Функция СпозиционироватьсяВДеревеПодзадач(Вдереве, Путь, Й)

Если Путь.Количество() = 0 Тогда

Возврат 0;

КонецЕсли;

Ключ = Путь[Й];

Для Каждого ТекущаяСтрока Из Вдереве.ПолучитьЭлементы() Цикл

Если ТекущаяСтрока.Подзадача = Ключ Тогда

Если Й = 0 Тогда

Возврат ТекущаяСтрока.ПолучитьИдентификатор();

Иначе

Возврат СпозиционироватьсяВДеревеПодзадач(ТекущаяСтрока, Путь, Й-1);

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецФункции

// перехват выбора (двойной щелчок) - открыть текущую подзадачу

&НаКлиенте