Дополнительные значения и Комплексные поля

Аватара пользователя
Константин Смоквин
Сообщения: 66
Зарегистрирован: 15.05.2016 19:06

Дополнительные значения и Комплексные поля

13.06.2019 17:26

Здравствуйте,
Предлагаю сделать

1. Дополнительные значения полей
- Если в настройках поля стоит галочка "Позволять создавать дополнительные значения", то у поля появляется справа плюсик, нажатие на который в рамках конкретной задачи приводит к появлению копии этого поля для ввода второго значения. И так неограниченное количество дополнительных значений. Ну или ограниченное. до 50 штук, к примеру.
Приведу пример из нашей практики.
В рамках заказа есть поле "Ссылка на заказ у Поставщика". Обычно, 1 заказ = 1 ссылка. Но бывает, что в рамках одного заказа ссылок больше. две, пять, десять. Хотело бы иметь инструмент быстрого их добавления. Записывать их в общее текстовое поле - не удобно. Использовать тип поля "Список значений" - нельзя вывести значения в виде кликабельных ссылок. А в других случаях при использовании "Списка значений" теряются дополнительные возможности форматирования конкретных видов полей (даты, числа и т.д).
2. Комплексные поля.
Поля которые идут группой и объединены между собой. Например, текстовое поле с произвольным вводом значения + поле со списком запланированных значений. При этом, чтобы группу можно было составлять из любых базовых полей в произвольных комбинациях и порядке. Комплексные поля совместно с первым предложением (Дополнительные значения по нажатию на плюсик) - дают возможность создавать сразу группу полей, которые появятся одним нажатием и будут связаны между собой.
Да, Комплексные поля - это по сути аналитики в виде полей задач, а не аналитик. И возможно, вместо изобретения велосипеда лучше интегрировать аналитики в виде полей задач, чтобы решить сразу весь спектр проблем (включая и удобство работы с аналитиками).

Приведу пример.
В рамках одного заказа есть "Ссылка на заказ у Поставщика" и дополнительное поле "Трекинг номер". Трекинг номер - это информация, "связанная" с конкретным заказом Поставщика и значение поля "Трекинг" имеет смысл только при наличии значения поля "Ссылка Поставщика". Когда в рамках того же заказа появляется вторая ссылка на заказ Поставщика - обязательно понадобится и второе поле трекинга... То есть это группа полей, которые связаны и не имеют практического смысла друг без друга.

Да, этот кейс можно решить за счёт Аналитик. Но ссылка и трекинг - ничего не считают, ничего на что не влияют, ничто не накапливают - это просто информация, которая полезна и применима только в рамках конкретной задачи (заказа) и абсолютно не нужна ни в каких сводных отчётах. То есть чисто идеологически Аналитики здесь не подходят. Но если забыть про "красоту" и идеологию, то чисто практически аналитики в этом случае - это очень неудобно. Создавать и поддерживать отдельную аналитику для этого случая? - Допустим. Но далее важно, чтобы информация с ссылкой и трекингом была легкодоступна в задаче. Ссылка должна быть ссылкой - и сразу на виду, а трекинг должен быть рядом. При помощи полей - эту информацию можно вынести в шаблон - и получать к ней доступ сразу же на странице под описанием задачи - вместо необходимости открывать раздел аналитик и копировать оттуда некликабельную ссылку.

Это очень узкий пример, конечно, но думаю, похожие ситуации встречаются у многих. У нас таких примеров несколько, если потребуется - распишу дополнительные кейсы.

Возвращаясь к аналитикам. Это немного смежная проблема, но было бы здорово иметь возможность выносить аналитики в шаблон, как поля, чтобы сразу их можно было видеть и редактировать под описанием задачи. С кастомизацией - чтобы в задаче отображались только выбранные поля аналитики, а не вся структура (на случай если аналитика громоздкая и нет необходимости чтобы была "под рукой" целиком). Это решило бы и проблему комплексных полей, описанную выше, и существенно повысило удобство работы с аналитикой, особенно в тех случаях, которая информация в аналитику не просто заносится раз и навсегда, а активно используется, редактируется и дополняется на протяжении жизненного цикла задачи.

Аватара пользователя
Дмитрий Гончаренко
Сообщения: 3366
Зарегистрирован: 06.06.2012 13:54

Re: Дополнительные значения и Комплексные поля

21.06.2019 16:32

Давайте начнем с первого пункта. Подразумевается, что это будет новый тип поля или расширение какого-то и существующих?

Аватара пользователя
Константин Смоквин
Сообщения: 66
Зарегистрирован: 15.05.2016 19:06

Re: Дополнительные значения и Комплексные поля

25.06.2019 15:48

Дмитрий Гончаренко писал(а):
21.06.2019 16:32
Давайте начнем с первого пункта. Подразумевается, что это будет новый тип поля или расширение какого-то и существующих?
Нет, это не новый тип поля, а возможность добавлять дополнительные значения к текущим типам полей.
То есть чтобы в рамках одного поля можно было хранить не только 1 значение, а массив значений.

Сейчас есть тип поля "Набор значений", который реализовывает этот принцип - в одно поле можно добавить много разных произвольных значений. Но условно эта релизация привязана только к текстовым значениям. Туда можно поместить только текстовые значения.

Минусы поля "Набор значений":
- Если туда добавлять ссылки, то они будут некликабельны и не нет настройки "отображать как гиперссылку"
- Если туда добавлять числа - то нет настроек группировки, разделителя и т.д, как у числовых полей
- Если туда добавлять даты, то нет настройки "Заполнять по умолчанию текущей датой"...
- и т.д.

То есть тип поля "Набор значений" - лишён возможности тонкой настройки значений добавляемых в него, как в обычных полях. Но его возможность по добавлению большого количества значений - это очень полезная.

Поэтому (почти) у каждого типового поля можно сделать настройку "Превратить в набор значений", превращая любое поле в "Набор значений" с сохранением других настроек поля.

Пример из нашего кейса:
В каждом заказе обычно бывает 1 до 3 ссылок на внешние, связанных с заказом. Но это обычно... В исключительных случаях может быть 5, 10, 15....
Где хранить эти ссылки?
- В описании задачи (или другом поле типа "Текстовая область") неудобно, так как процесс редактирования и добавления новых ссылок получается громоздкий и оставляет на пользователе необходимость заниматься форматированием (проследить, чтобы ссылки не склеились из за того, что пробел между ссылками не был вставлен и ряд друг неудобностей)
- Поле "Набор значений" решает проблемы "Текстовой области" - каждое значение визуально обособлено и независимо в процессе редактирования. Но в поле "Набор значений" - ссылки не кликабельны! И работать с таким полем крайне неудобно получается из за этого.

А вот если взять обычное текстовое поле (не текстовую область, а текстовое поле) и добавить к нему настройку "превратить в набор значений", тогда получается магия!
Мы получаем обычное текстовое поле, в которое можно вставить, как одну ссылку, так и 15 штук! И если стоит настройка "отображать как гиперссылка", то все они будут кликабельны! То есть мы получаем поле "Набор значений", но с тонкими настройками текстового поля.

Да, по кейсу кажется, что проще добавить настройку "отображать как гиперссылку" в текущее поле "Набор значений".... И это решит наш кейс. Но в миллионах других случаев другим пользователям может быть будут нужны наборы значений с возможностью и тонкими настройками дат, чисел и т.д для решения других проблем... Поэтому возможность создавать из любого поля набор значений - решит сразу целый пласт проблем, а не одну конкретную.

--
Пока писал в голову пришло, что есть 2 пути:
Вариант 1. Добавить к текущим типам полей настройку ""Превратить в набор значений". (И необязательно: само поле "Набор значений", чтобы не было дублирования сущностей, можно конвертировать в "текстовое поле" с установленной настройкой "Набор значений", тогда текущие пользователи, использующие "Набор значений", не почувствуют никаких изменений от пропадания "Набора значений", как отдельного поля.

Вариант 2. Сделать у текущего поля "Набор значений" настройку "Соответствовать типу ..." - где пользователь из списка выбирает один из других стандартных типов полей - и в поле "Набор значений" подгружаются настройки выбранного типа. Например, если выбрано "Соответствовать типу [текстовое поле]", то у поля "Набор значений" появляются настройки как у текстового поля (гиперссылка, запрет дублирования), если выбрано "число" - то появляются настройки числа (группировка, разделитель...) - и указанные настройки применяются к каждому значению из поля "Набор значений".

Вероятно, второй вариант проще и безболезненнее для внедрения..

Аватара пользователя
Дмитрий Гончаренко
Сообщения: 3366
Зарегистрирован: 06.06.2012 13:54

Re: Дополнительные значения и Комплексные поля

26.06.2019 13:17

Спасибо за подробные разъяснения, Константин!
В любом случае, тут речь идет о создании нового типа поля - или даже нескольких. Даже если внешне это будет выглядеть как дополнительный признак к существующему полю, а не выбор отдельного типа. Потому что механизм хранения и адресации к полям со множественными значениями принципиально отличается от поля с одним значением.

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

Ответить