Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
product:tables:admin:requisites:condition [11.11.2020 12:36] – создано maynproduct:tables:admin:requisites:condition [28.10.2025 10:04] (текущий) ekaterina.menkhuzina
Строка 1: Строка 1:
 ====== Условные реквизиты справочника ====== ====== Условные реквизиты справочника ======
-<callout type="danger" icon="true"Статья в разработке! </callout>+{{tag>Реализацияастройка}}
  
-3.1. Изменения в настройках справочников +//Функциональность доступна начиная [[releases:3_22|с версии системы 3.22]].//
-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. Изменения при заполнении форм сбора отчетности +Условный реквизит в [[product:tables:about|справочнике]] -- это возможность сделать заполнение обязательного реквизита при определённых условиях необязательным.
-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. Отображается сообщение ошибки. Формат сообщения и место его отображения такие же, как и при включенной опции «Обязательный» без указания значений условного реквизитаПример, где реквизит «Комментарий к статусу» обязателен к заполнению, если в реквизите «Статус» выбрано значение «Требуется помощь»:+
  
 +<callout icon="fa fa-briefcase" title="Пример">Вы заполняете форму статуса работы над задачами/проектами, которая содержит в себе справочник.
 +
 +Выбираете значение "Все в норме" или "Помощь не требуется". Но система не даёт сохранить запись без комментария, хотя он здесь не нужен.
 +</callout>
 +
 +Именно для того, чтобы не заставлять пользователей заполнять бессмысленные поля, можно настроить условные реквизиты в справочниках. Правила условия будут распространяться на заполнение справочника как с карточки объекта или из вкладки справочника в объекте, так и на заполнение полей справочника из формы.
 +
 +Сделать реквизит условием обязательности заполнения другого реквизита можно для:
 +  * [[product:requisites:other|реквизита-даты]] (исключение – системный реквизит «Дата» опции «Использовать дату»),
 +  * [[product:requisites:requisite-class|реквизита-классификатора]];
 +  * [[product:requisites:requisite-prosess|реквизита-процесса]].
 +
 +===== Условные реквизиты в справочнике и в объекте =====
 +Механика настройки условного реквизита в справочнике и в объекте почти идентична, но роль они выполняют разную:
 +  * условный реквизит в справочнике регулирует **обязательность заполнения** другого реквизита;
 +  * [[product/objects/admin/conditional_requisite|условный реквизит в объекте]] определяет условие, при котором другой реквизит **отображается** на странице объекта.
 +
 +===== Как настроить условный реквизит =====
 +  - Администрирование -> Структура базы данных -> Справочники -> клик на нужный справочник -> портлет "Реквизиты"
 +  - В строке с тем реквизитом, из которого вы хотите сделать условие ("Если у этого реквизита такое значение, то...") нажмите ''Изменить'' -> поставьте чек-бокс в поле ''Условный''.
 +  - Сохраните изменения в строке.
 +  - В строке с тем реквизитом, к которому вы хотите применить условие (тот, который не должен быть обязательным для заполнения при выполнении этого условия), нажмите ''Изменить'' -> в поле "Обязательный" нажмите ''Задать''.
 +  - Выберите в выпадающем списке название условного реквизита и то значение, которое у него должно быть, чтобы этот реквизит стал обязательным для заполнения.
 +
 +{{ :product:tables:admin:requisites:table_requisites_03.png?nolink |}}
 +
 +==== Доступное условие по умолчанию - Сравнение дат ====
 +Даже если вы не указали ни одного реквизита условным, по нажатию на ''Задать'' в поле "Обязательный" будет вариант "Сравнение дат".
 +
 +<callout type="primary" icon="true">Под [[product:objects:date:dates|датами]] здесь имеются в виду даты [[product/tables/admin/linking_to_objects|того объекта]], к которому привязан этот справочник.</callout>
 +
 +<image shape="thumbnail">{{ :product:tables:admin:requisites:table_requisites_04.png?nolink |}}</image>
 +
 +Например, если утверждённая дата меньше плановой или расчётной даты, скорее всего, что-то пошло не так, и, например, поле для ввода комментария о возникшей проблеме должно стать обязательным.