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

17.07.24

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

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

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

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

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

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

 

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

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

 

 

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

 

 

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

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

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

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

 

 

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

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

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

 

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

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

 

 

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

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

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

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

 

Решение

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

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

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

 

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

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

 

 

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

 

 

Резюмируем

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

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

 

 

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    79188    52    40    

64

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    7400    2    2    

6

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

6100 руб.

14.01.2016    60145    22    25    

47

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

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

6088 руб.

17.10.2025    1901    3    0    

2

Работа с интерфейсом Рабочее место 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6100 руб.

16.01.2015    68095    46    60    

85

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    48744    mrXoxot    44    

139

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    26286    smielka    39    

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