408.60K
Category: informaticsinformatics

ИТ-Планеты. 1-е Задание 2-го тура

1.

1-е Задание 2-го тура ИТ-Планеты
Отчет проверка зависимостей
Гроо Екатерина Витальевна

2.

Задача
Между задачами не должно быть циклической зависимости (вида «задача 1 зависит от
задачи 2, задача 2 зависит от задачи 3, задача 3 зависит от задачи 1»). Если есть циклическая
зависимость, то это говорит об ошибке в данных и о невозможности корректного
планирования такого проекта.
Циклическая зависимость:

3.

План
1.
2.
3.
4.
5.
Создание расширения
Перенести отчет в расширение
Получить предшествующие задачи по проекту
Сделать связь так, чтобы получить главные задачи предшествующих задач
Написать условие поля «Зависимости»

4.

Создание расширения
Для создания расширения нам нужно перейти в раздел «Конфигурация» -> «Расширения конфигурации> -> «Действия»
-> «Добавить»
По условиям задания расширение должно называться ФИО участника без пробелов, так и сделаем. По комментарию
менеджера компетенции было сказано, что нужно поставить вид расширения – «Адаптация».
Вид расширения не влияет на функционал, он влияет лишь на порядок выполнения кода, если расширений несколько.
Для дальнейшей работы нам потребуется выключить безопасный режим расширения.

5.

Перенос отчета в расширение
Поскольку по условиям задачи конкурсант не имеет права
работать в основной конфигурации, то в таком случае
мы должны перенести отчет в расширение

6.

Создаем макет:
Добавляем
«набор данных
запрос»
Открываем
конструктор
запроса

7.

Получение предшествующих задач по проекту
Сначала нам нужно получить все задачи каждого проекта, для этого мы берем справочник «Проекты» и вытаскиваем
из него ссылку.
Чтобы получить задачи каждого проекта нам потребуется табличная часть справочника «Задачи» под названием
«Предшествующие задачи» поскольку данная табличная часть содержит в себе информацию не только об главной
задачи, но и об предшествующей.

8.

Для того, чтобы получить корректные данные нам нужно настроить связь между этими таблицами.
Переходим в раздел «Связи» и делаем следующую связь: мы берем все проекты и подходящие задачи
т.е. делаем внутреннее соединение. Поскольку справочник проекты является владельцем справочника задачи,
то мы делаем связь по владельцу. Таким образом мы получили информацию о проекте, главной задачи,
предшествующей задаче.
Создаем временную таблицу, чтобы использовать эти данные в дальнейшем.

9.

Приводим таблицу в адекватный вид
Предшествующая задача
Главная задача
Запрос:

10.

Открываем
конструктор
запроса
Создаем новый пакет запросов
На данном этапе нам снова понадобится табличная часть справочника «Задачи» и наша временная таблица.

11.

Настройка вывода информации
Чтобы в табличной части содержалась только нужная нам информация – нам нужно настроить связь между
таблицами. Делаем левое соединение временной таблицы с табличной частью так, чтобы предшествующая задача
в табличной части являлась главной задачей. Т.е. связь ПредшествующаяЗадача = ТЧ.Ссылка.
Таким образом мы
получили 2 таблицы. В 1 таблице у нас содержится информация о том, у какой задачи присутствует
предшествующая задача и во 2 таблицы информация о том какие предшествующие задачи у предшествующей
задачи.

12.

Создание условия поля зависимости
Так как нам нужно отловить циклические зависимости задач в условиях одного проекта, но такого реквизита не
существует, поэтому нам нужно создать реквизит, содержание которого будет произвольное выражение, выражение
будет следующим:
Если предшествующая задача будет равняться предшествующей задачей главной задачи, то это будет нарушением
Иначе нет нарушений.
Создаем новое поле

13.

Группируем по полю «ПредыдущиеЗадачи.Проект», в суммируемое поле перетаскиваем
добавленное поле и
Выставляем функцию «Минимум»(просто потому что так работает)
Приводим поля в адекватный вид:

14.

Готово! Проверяем:
English     Русский Rules