Привет! Давно не было от меня вестей. За это время я сменил профессию: теперь я не программист, а аналитик. Однако я по-прежнему считаю себя разработчиком! А ещё блогером :)
– Кому это интересно! Давай контент! Мамкин блогер! – Хейтер
Кто помнит, кто знает, я люблю экспериментировать с дизайном в платформе 1С и находить интересные и креативные решения. Об одном из таких решений я хочу рассказать.
– Где контент?! Два абзаца воды. – Хейтер
Проблемная ситуация
Для начала давайте посмотрим на скриншот, который представлен ниже.
Всё выглядит хорошо, но давайте обратим внимание на загадочную колонку «Палет/ТУ» и картинку рядом с ней. Вы не видите картинку? А она есть, но пустая. Давайте уменьшим размер этой колонки и посмотрим, что получится.
Всё пропало! Посмотрите, в ячейке нет даже «трёх точек», значение "10,0" ячейки исчезает и показывает пустоту. Это может привести к тому, что пользователь получит неверную информацию и примет неправильное решение. А всё из-за странного поведения платформы.
– Сам создал проблему на ровном месте, горе дизайнер! А пользователь, ты что тупой, раздвинь колонку, сбрось настройки формы, пошевели извилинами и всё увидишь! – Хейтер
Мы подошли к самой сути проблемы: «пустая» картинка, как и картинка с изображением, требует определённого количества пикселей. Если на картинке есть рисунок, это хотя бы как-то оправдано, но если она выводится «пустой», то это просто бесполезная трата пространства.
Ещё один пример — выбор транспортного средства в очень компактном столбце.
Не только «пустая» картинка занимает место, но и стандартные кнопки забирают остатки свободного пространства. В результате пользователь видит лишь небольшое окошко, что, безусловно, вызывает у него раздражение. Меня это тоже раздражает! К тому же, в большинстве случаев на этом месте нет никакой картинки, только если произошла ошибка.
– Фи! Заботится о пользователях, что вы, что вы. – Хейтер
Думаю, проблема уже понятна, но какое же её решить?
Предыстория поиска решения
Давайте начнём с примера, который можно назвать классикой: «Не баг, а фича». В одном из релизов нашего продукта пропала иконка. Когда мы меняли значение, иконка должна была меняться, но вместо этого она исчезала (красная стрелка указывает на проблему). Это было похоже на магию: иконка просто пропадала как элемент формы.
Как обычно, мы столкнулись с ошибкой, которую необходимо исправить. Поведение функционала было некорректным. Параллельно возникла дополнительная задача — добавить ещё одну иконку для отображения состояния. К сожалению, в таблице уже нет места для этой иконки без порождения «тумач». Ранее мы объединили десяток иконок в одну картинку, чтобы скрыть за ней интересный функционал, но это отдельная история. В данном случае нам нужна была именно отдельная иконка с отдельной колонкой. И самое неприятное, что в большинстве случаев она будет пустой и займёт ценные 16 пикселей экрана.
– Да твой текст, уже сплошной тумач! Много букв! 16 пикселей ему жалко, кг/ам! – Хейтер
Программист успешно исправил ошибку и сообщил о неожиданном поведении платформы. Он сказал: «Дима, я случайно передал не тот номер коллекции картинок, поэтому картинка полностью исчезала как элемент формы, так как не было подходящего значения в коллекции».
«Исчезала» - подумал я и эврика! Это же классно, это то что нам нужно, в большинстве случаев можно скрывать картинку как элемент формы в ячейке, а в некоторых случаях выводить.
Решение
Дело за малым, нужно всего-то на всего передать не существующий номер коллекции, хоть три топора! Ну или два, в честь памяти платформы 7.7!
– Бо-же-мой и всё?! Так много писал ради этого! – Хейтер *прицокивает*
Итак входные данные, у нас есть коллекция картинки, где 0 – это пустая картинка, а 1 – некие «три точки а-ля хищник». Если мы передадим значение 77, тогда картинка и вовсе не будет выведена в интерфейс! Вот так просто! Единственное, я не уверен, что это задокументированное поведение платформы и тут, кто знает, подскажите, если есть на ИТС. А так используем на свой страх и риск.
Демонстрация работы
Задача: необходимо подсветить особенность у единичных позиций номенклатуры в колонке «Артикул». Решили использовать данную возможность и выводить картинку только у тех значений, где это необходимо.
Преимущество в том, что если по какой-то причине пользователь попытается уменьшить размер колонки, он не увидит «пустое значение», а увидит часть текста и поймёт, что там скрыто что-то важное.
Резюмируем
Не баг, а фича! Возможность интерфейса классная, поэтому решил с вами поделиться. Если вы о ней знали, молодцы, я не знал и поделился со всеми. Всем спасибо!
– Я это знал давно! Зря потратил время. – Хейтер
С уважением, Дмитрий Котов | 1С (одноименный канал в ТГ).