22.08.2016 13:17
Действительно, на текущий момент это можно сделать только при помощи разных шаблонов для каждого из вариантов (и подваринтов) задачи. Минусы описаны правильно: много шаблонов, сложно выбирать нужный из обширного списка при создании задачи. А каждый подвариант (вроде того, что в примере с оплатой/предоплатой) либо увеличивает количество неиспользуемых полей в шаблоне, либо увеличивает количество самих шаблонов (отдельно для оплаты, отдельно для предоплаты и т.д).
Что касается изменения подхода к настройке форм и, в частности, включения в них условных полей, то это хоть и сложный, но обсуждаемый вопрос. Тут надо понимать, что дело не только в интерфейсе настройке - сейчас задачи, созданные по разным шаблонам, отличаются друг от друга наличием разных полей. То есть, затрагивается структура внутреннего хранения данных в системе, а это всегда больно переделывается - а значит, нужны серьезные на то основания. При этом сам текущий конструктор шаблонов в плане удобства нам не нравится и мы давно подумываем сменить его на другой - поэтому примеры удачных интерфейсных решений, используемых в других системах, нам интересны.
Еще один момент, который мне пока непонятен - сейчас шаблон задачи является удобным идентификатором ее типа, это широко используется в фильтрах (отобрать только задачи определенного типа) и автоматических сценариях (разные сценарии для задач разного типа). Если свести много шаблонов в один, изменяющийся в зависимости от выбранных полей, что будет служить таким идентификатором? Первое, что приходит в голову - условие "содержит значение в поле <таком-то>" (например, содержит значение в поле "предоплата" - значит это предоплата). Но так сразу увеличивается сложность условий (и, соответственно, падает удобство их восприятия и скорость отбора данных), если искомый тип задачи находится в глубине дерева вариантов - то есть, если нужно найти задачу в которой поле такое-то содержит значение, и в поле таком-то есть значение, и в поле таком-то.... и так далее. И вот тут непонятно, будет ли это в итоге удобнее по совокупности факторов, чем текущий подход с отдельными шаблонами.
За пример с Пирусом спасибо, он хорошо показывает, как может быть настроено простое условие. А что касается более сложных, есть еще какие-то механизмы? Или все строится только на этом варианте настройки, просто одно "условное" поле может ссылаться на другое такое же, и на этом строятся сложные варианты поведения формы? Если второе, то есть ли опыт построения таких сложных форм? Хочется заранее понять, насколько удобно работать с таким подходом в сложных случая, как воспринимаются мозгом эти "ссылки на ссылки", есть ли визуальное понимание, как в итоге будет выглядеть форма для того или иного случая?