[UI] Работа с коллекций картинок в таблице, или история, как баг стал фичей!

27.05.24

Разработка - Работа с интерфейсом

Скрыть/Показать элемент формы "Картинка" в таблице на форме. Из категории мелочь, а приятно.

Привет! Давно не было от меня вестей. За это время я сменил профессию: теперь я не программист, а аналитик. Однако я по-прежнему считаю себя разработчиком! А ещё блогером :)

– Кому это интересно! Давай контент! Мамкин блогер! – Хейтер

Кто помнит, кто знает, я люблю экспериментировать с дизайном в платформе 1С и находить интересные и креативные решения. Об одном из таких решений я хочу рассказать.

– Где контент?! Два абзаца воды. – Хейтер

 

Проблемная ситуация

Для начала давайте посмотрим на скриншот, который представлен ниже.

 

 

Всё выглядит хорошо, но давайте обратим внимание на загадочную колонку «Палет/ТУ» и картинку рядом с ней. Вы не видите картинку? А она есть, но пустая. Давайте уменьшим размер этой колонки и посмотрим, что получится.

 

 

Всё пропало! Посмотрите, в ячейке нет даже «трёх точек», значение "10,0" ячейки исчезает и показывает пустоту. Это может привести к тому, что пользователь получит неверную информацию и примет неправильное решение. А всё из-за странного поведения платформы.

– Сам создал проблему на ровном месте, горе дизайнер! А пользователь, ты что тупой, раздвинь колонку, сбрось настройки формы, пошевели извилинами и всё увидишь! – Хейтер

Мы подошли к самой сути проблемы: «пустая» картинка, как и картинка с изображением, требует определённого количества пикселей. Если на картинке есть рисунок, это хотя бы как-то оправдано, но если она выводится «пустой», то это просто бесполезная трата пространства.

Ещё один пример — выбор транспортного средства в очень компактном столбце.

 

 

Не только «пустая» картинка занимает место, но и стандартные кнопки забирают остатки свободного пространства. В результате пользователь видит лишь небольшое окошко, что, безусловно, вызывает у него раздражение. Меня это тоже раздражает! К тому же, в большинстве случаев на этом месте нет никакой картинки, только если произошла ошибка.

– Фи! Заботится о пользователях, что вы, что вы. – Хейтер

Думаю, проблема уже понятна, но какое же её решить?

 

Предыстория поиска решения

Давайте начнём с примера, который можно назвать классикой: «Не баг, а фича». В одном из релизов нашего продукта пропала иконка. Когда мы меняли значение, иконка должна была меняться, но вместо этого она исчезала (красная стрелка указывает на проблему). Это было похоже на магию: иконка просто пропадала как элемент формы.

 

 

Как обычно, мы столкнулись с ошибкой, которую необходимо исправить. Поведение функционала было некорректным. Параллельно возникла дополнительная задача — добавить ещё одну иконку для отображения состояния. К сожалению, в таблице уже нет места для этой иконки без порождения «тумач». Ранее мы объединили десяток иконок в одну картинку, чтобы скрыть за ней интересный функционал, но это отдельная история.  В данном случае нам нужна была именно отдельная иконка с отдельной колонкой. И самое неприятное, что в большинстве случаев она будет пустой и займёт ценные 16 пикселей экрана.

– Да твой текст, уже сплошной тумач! Много букв! 16 пикселей ему жалко, кг/ам! – Хейтер

Программист успешно исправил ошибку и сообщил о неожиданном поведении платформы. Он сказал: «Дима, я случайно передал не тот номер коллекции картинок, поэтому картинка полностью исчезала как элемент формы, так как не было подходящего значения в коллекции».

«Исчезала» - подумал я и эврика! Это же классно, это то что нам нужно, в большинстве случаев можно скрывать картинку как элемент формы в ячейке, а в некоторых случаях выводить.

 

Решение

Дело за малым, нужно всего-то на всего передать не существующий номер коллекции, хоть три топора! Ну или два, в честь памяти платформы 7.7!

– Бо-же-мой и всё?! Так много писал ради этого! – Хейтер *прицокивает*

Итак входные данные, у нас есть коллекция картинки, где 0 – это пустая картинка, а 1 – некие «три точки а-ля хищник». Если мы передадим значение 77, тогда картинка и вовсе не будет выведена в интерфейс! Вот так просто! Единственное, я не уверен, что это задокументированное поведение платформы и тут, кто знает, подскажите, если есть на ИТС. А так используем на свой страх и риск.

 

Демонстрация работы

Задача: необходимо подсветить особенность у единичных позиций номенклатуры в колонке «Артикул». Решили использовать данную возможность и выводить картинку только у тех значений, где это необходимо.

 

 

Преимущество в том, что если по какой-то причине пользователь попытается уменьшить размер колонки, он не увидит «пустое значение», а увидит часть текста и поймёт, что там скрыто что-то важное.

 

 

Резюмируем

Не баг, а фича! Возможность интерфейса классная, поэтому решил с вами поделиться. Если вы о ней знали, молодцы, я не знал и поделился со всеми. Всем спасибо!

– Я это знал давно! Зря потратил время. – Хейтер

 

 

С уважением, Дмитрий Котов | 1С (одноименный канал в ТГ).

Динамический список таблица формы список картинка

См. также

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    17360    24    4    

37

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11962    781    elcoan    47    

109

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    10411    158    acces969    31    

120

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    4379    kalyaka    4    

31

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    9210    1    2    

6

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    10264    AtamanovYS    19    

143
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 27.05.24 12:47 Сейчас в теме
Понравилось, что автор мои замечания, сразу в тексте написал)
Mahon83; gorenski; rpgshnik; +3 Ответить
2. user1826876 27.05.24 13:23 Сейчас в теме
Я вообще ни чего не понял.
CheBurator; tsmult; McLer; rpgshnik; +4 Ответить
3. starik-2005 3052 27.05.24 13:33 Сейчас в теме
Сразу видно - писал хейтер со стажем )))
gorenski; Interrupted; flanchev; quazare; McLer; rpgshnik; +6 Ответить
4. SerVer1C 781 27.05.24 18:00 Сейчас в теме
6. svsrus 179 27.05.24 23:20 Сейчас в теме
(4)
-1 даст пустую картинку (т.е. как будто 0 передал). Сегодня тоже этот баг/фичу заметил. А начал боловаться, потому что пустая картинка была просто белый квадрат и было очень не красиво на цветном фоне. Передал 99 - нет картинки! Чудеса!
rpgshnik; +1 Ответить
5. quazare 3710 27.05.24 21:07 Сейчас в теме
Дмитрий, ты подписан на меня в тг? Вообще в типовых - с индексом 3.0 там такое творится с табличными частями…. Я разбирал один из документов
rpgshnik; +1 Ответить
7. gigapevt 25 28.05.24 10:18 Сейчас в теме
Странно... таким поведение коллекции уже пользуюсь очень давно, если выставить индекс за пределы массива коллекции, то иконка не отображается. Думал что это нормальное поведение системы )))
rpgshnik; +1 Ответить
8. CheBurator 3125 28.05.24 21:23 Сейчас в теме
Хоспадя, это ж ещё со времён клюшек известно: если передать номер несуществующей картинки - будет "пусто"
headMade; rpgshnik; Dach; gorenski; +4 Ответить
9. CheBurator 3125 28.05.24 21:25 Сейчас в теме
Остальное настолько мутно в стате изложено с таким количеством воды как будто платят за количество букв.
.
Понятно почему ТС ушёл из погромистов если код пишет также как статью... ;-)
11. support 4450 29.05.24 09:39 Сейчас в теме
(9) Сергей, тебе не кажется, что ты превратился в ворчливого деда? ))
dsdred; rpgshnik; +2 Ответить
10. gorenski 356 29.05.24 05:12 Сейчас в теме
Хорошая статья, возможно не все знают про эту фичу. Немного портят впечатление запикселенные скриншоты, что там за секретная информация, которую никому нельзя видеть - тайная номенклатура или Иванов-Петров-Сидоров? ))
12. reset2 17 29.05.24 16:10 Сейчас в теме
Нуда, ну да, нынче такие водохранилища набирают плюсы, а не настоящие джедайские разработки.
Оставьте свое сообщение