Это старая версия документа!


Условные реквизиты справочника

Статья в разработке!

3.1. Изменения в настройках справочников 3.1.1. Изменения провести для всех справочников Системы в независимости: 3.1.1.1. отображаются они отдельно или в составе вкладки справочников («Список» или «Ведущий/Подчиненный»). 3.1.1.2. от структуры записей (Иерархическая, Вертикальный или Горизонтальный список). 3.1.1.3. от места отображения (на закладке справочника или на Главной проекта). 3.1.2. В портлете «Реквизиты» добавить новое поле «Условный» в точности как это реализовано в свойствах объектов в одноимённом поле.

3.1.2.1. Расположено правее поля «Обязательный». 3.1.2.2. Содержит чекбоксы для реквизитов типа «Дата» (исключение – системный реквизит «Дата» опции «Использовать дату»), «Классификатор» и «Процесс». Для системного реквизита-классификатора «Статус утверждения» чекбокс отсутствует. 3.1.2.3. По умолчанию чекбоксы выключены. 3.1.3. В портлете «Реквизиты» для чекбоксов поля «Обязательный» в режиме их редактирования отображать кнопку «Задать» по типу как это реализовано в свойствах объектов в поле «Условие». Кнопку «Задать» не отображать для: 3.1.3.1. Реквизитов, имеющих активный чекбокс в поле «Условный». 3.1.3.2. Системных реквизитов (Статус утверждения, Автор, Ресурс, Дата и ФИО).

3.1.4. По нажатию на кнопку «Задать» отображается кнопка и выпадающий список с возможностью выбора одного из: 3.1.4.1. Пункта «Сравнение дат». Отображается всегда. Всегда расположен в верху списка. Пункт отделить разделителем элементов списка. 3.1.4.2. Названий всех реквизитов типа «Классификатор» и «Процесс» портлета «Реквизиты» с отмеченным чекбоксом в поле «Условный» по типу как это реализовано в свойствах объектов в поле «Условие» (за исключением статуса объекта). Расположены под пунктом «Сравнение дат» в порядке алфавита сверху-вниз.

3.1.5. При выборе условного реквизита типа «Классификатор» или «Процесс» отображаются его значения. 3.1.5.1. Доступен выбор множества его значений. 3.1.5.2. По умолчанию не выбрано ни одно значение. 3.1.5.3. Логика следующая: если в условном реквизите «Б» выбраны значения, указанные в качестве условий обязательности заполнения реквизита «А», то реквизит «А» обязателен для заполнения.

3.1.6. При выборе пункта «Сравнение дат» ниже отображаются в 1 строку слева направо: выпадающий список «Дата 1», выпадающий список «Оператор», выпадающий список «Дата 2» и поле ввода «Лаг».

3.1.6.1. Выпадающие списки «Дата 1» и «Дата 2» одинаковые и содержат следующий перечень значений сверху-вниз: 3.1.6.1.1. Системные реквизиты объекта сверху-вниз: • Расчетная дата начала. • Расчетная дата завершения. • Плановая дата начала. • Плановая дата завершения. • Утвержденная дата начала. • Утвержденная дата завершения. • Фактическая дата начала. • Фактическая дата завершения. Примечание: Ниже перечня системных реквизитов расположить разделитель элементов списка. 3.1.6.1.2. Системный реквизит «Дата» опции «Использовать дату». Отображается, если опция включена и реквизит добавлен в справочник. Расположен под системными реквизитами. Ниже реквизита расположить еще один разделитель элементов списка. 3.1.6.1.3. Названия всех других реквизитов типа «Дата» портлета «Реквизиты» с отмеченным чекбоксом в поле «Условный». Расположены под системным реквизитом «Дата» в порядке алфавита сверху-вниз. 3.1.6.1.4. По умолчанию значения списков «Дата 1» и «Дата 2» не указаны. Если значение не указано, то в свернутых списках выводить курсивом текст «Дата 1» и «Дата 2» соответственно. 3.1.6.2. Выпадающий список «Оператор» содержит перечень операторов сравнения: >, >=, =, ⇐, <, !=. По умолчанию оператор не выбран. Если значение не указано, то в свернутом списке выводить курсивом текст «Оператор». 3.1.6.3. Поле ввода «Лаг» - поле для указания временного лага в рабочих днях для выбранной даты в выпадающем списке «Дата 2». 3.1.6.3.1. Только целое число. 3.1.6.3.2. Для указания положительного временного лага необходимо просто ввести число или указать число со знаком «+», к примеру, «5» или «-5». 3.1.6.3.3. Для указания отрицательного временного лага – число со знаком «-» (к примеру, -5). 3.1.6.3.4. По умолчанию лаг не указан. Если значение не указано, то в поле выводить курсивом текст «Лаг». 3.1.6.4. Примеры возможных задаваемых условий: 3.1.6.4.1. Реквизит_Дата1 < Плановая дата завершения + 1 3.1.6.4.2. Реквизит_Дата1 > Реквизит_Дата2 3.1.6.4.3. Реквизит_Дата1 =< Утвержденная дата завершения - 5 3.1.6.5. Логика следующая: Если заданное условие истинно (возвращается значение true), то реквизит обязателен для заполнения. Если заданное условие ложно (возвращается значение false), то реквизит не обязателен для заполнения. Значение Null расценивать, как false. 3.1.7. При сохранении настроек в поле «Обязательный» отображается активный чекбокс и выбранные значения условного реквизита (или заданного условия пункта «Сравнение дат»). 3.1.7.1. Пример для реквизита типа «Классификатор».

3.1.7.2. Пример для пункта «Сравнение дат».

3.1.8. Если у реквизита справочника активен чекбокс в поле «Обязательный», но не задано условие, то логика данного свойства остается прежней, как это реализовано сейчас, т.е. реквизит всегда обязателен для заполнения. 3.1.9. Если у реквизита справочника активен чекбокс в поле «Обязательный» и задано условие, то логика данного свойства в соответствии с п.п. 3.1.5.3 или 3.1.6.5.

3.2. Изменения при сохранении/изменении записей справочников 3.2.1. Реквизиты, обязательность заполнения которых зависит от условия, не помечаются (*) в всплывающем окне «Введите данные в форму» создания/изменения записи справочника (если в настройках справочника выбрано значение «Всплывающее окно» в параметре «Форма ввода записи»). 3.2.2. Сообщение об обязательности заполнения реквизита при создании/изменении записи справочников появляется при непосредственной попытке сохранения изменений (т.е. по нажатию кнопки «Сохранить» в справочнике). 3.2.2.1. Формат сообщения и место его отображения такие же, как и при включенной опции «Обязательный» без указания условия. Пример:

3.3. Изменения при заполнении форм сбора отчетности 3.3.1. Изменения провести для форм сбора отчетности с добавленными справочниками. 3.3.2. Если реквизит обязателен к заполнению и у него не задано условие, то все его ячейки поля обязательны для заполнения (т.е. у всех объектов формы). 3.3.3. Если реквизит обязателен к заполнению и у него задано условие, то соответствующая ячейка поля обязательна для заполнения, если это условие выполняется. 3.3.4. Пример для п.п. 3.3.3 когда в качестве условия заданы значения условного реквизита: 3.3.4.1. У справочника 2 реквизита: классификатор «Статус» (значения «Проблем нет» и «Есть проблемы») и строка «Примечание» 3.3.4.2. реквизит «Примечание» обязателен к заполнению, если в реквизите «Статус» будет выбрано значение «Есть проблемы». 3.3.4.3. Справочник добавлен в форму сбора отчетности. 3.3.4.4. Форма содержит 2 объекта «Задача 1» и «Задача 2» 3.3.4.5. В ячейки поля «Статус» указываем «Проблем нет» для объекта «Задача 1» и «Есть проблемы» для объекта «Задача 2» соответственно. 3.3.4.6. При нажатии «Сохранить» форма сбора отчетности требует ввести значение в ячейку поля «Примечание» только для объекта «Задача 2». 3.3.5. Пример для п.п. 3.3.3 когда в качестве условия задано выражение сравнения дат. 3.3.5.1. У справочника реквизит строка «Примечание» обязателен к заполнению если для объекта выполняется условие: Плановая дата завершения > Утвержденная дата завершения. 3.3.5.2. Справочник добавлен в форму сбора отчетности. 3.3.5.3. Системный реквизит «Плановая дата завершения» добавлен в форму. 3.3.5.4. Форма содержит 2 объекта «Задача 1» и «Задача 2» 3.3.5.5. В ячейки поля «Плановая дата завершения» указываем дату превышающую (для «Задача 1») и не превышающую (для «Задача 2») соответствующую утвержденную дату. 3.3.5.6. При нажатии «Сохранить» форма сбора отчетности требует ввести значение в ячейку поля «Примечание» только для объекта «Задача 1», так как для данного объекта условие выполняется. 3.3.6. Ячейки колонок с реквизитами, обязательность заполнения которых зависит от условия, не помечаются красным фоном, если условие не выполняется. 3.3.7. Проверка обязательности заполнения конкретной ячейки с полем реквизита п.п.3.3.3 происходит при непосредственной попытке сохранения изменений в форме сбора отчетности по нажатию кнопки «Сохранить». При этом: 3.3.7.1. Соответствующий фон ячейки поля подкрашивается красным цветом, если условие выполняется. 3.3.7.2. Отображается сообщение ошибки. Формат сообщения и место его отображения такие же, как и при включенной опции «Обязательный» без указания значений условного реквизита. Пример, где реквизит «Комментарий к статусу» обязателен к заполнению, если в реквизите «Статус» выбрано значение «Требуется помощь»: