При разработке интерфейсов в управляемых приложениях часто возникает задача наглядного отображения состояния документов прямо внутри табличной части. Например, пользователю важно сразу видеть, проведен ли документ, или он помечен на удаление. Разберем, как реализовать такую визуализацию, используя стандартные инструменты платформы 1С:Предприятие 8.
Этот классический способ предполагает привязку числового значения к визуальному представлению строки. Суть метода заключается в том, что мы добавляем в табличную часть дополнительный реквизит, который будет содержать номер (индекс) картинки из коллекции.
Картинка (коллекция картинок), содержащая необходимые иконки статусов (проведен, не проведен, помечен на удаление).ИндексКартинки).КартинкиСтрок и выберите там вашу общую картинку.ПутьКДаннымКартинкиСтроки, указав созданный вами реквизит ИндексКартинки.ИндексКартинки соответствующее числовое значение, которое соответствует позиции иконки в коллекции картинок.Рассмотрим пример логики заполнения индекса на основе анализа данных:
Процедура ОбновитьИндексКартинкиВСтроке(СтрокаТабличнойЧасти)
Если СтрокаТабличнойЧасти.Документ.ПометкаУдаления Тогда
СтрокаТабличнойЧасти.ИндексКартинки = 0; // Индекс картинки для удаления
ИначеЕсли СтрокаТабличнойЧасти.Документ.Проведен Тогда
СтрокаТабличнойЧасти.ИндексКартинки = 1; // Индекс картинки для проведения
Иначе
СтрокаТабличнойЧасти.ИндексКартинки = 2; // Индекс картинки для нового
КонецЕсли;
КонецПроцедуры
Более современным и гибким подходом является Условное оформление. Этот механизм позволяет избежать создания лишних полей в модели данных, так как платформа управляет визуализацией на уровне настроек формы.
Разберем процесс настройки по шагам:
Оформление выберите свойство КартинкаСтроки.Общие картинки, которая будет отображаться при выполнении условия.Условие и добавьте выражение, которое определяет, когда именно должна появиться данная картинка. Например: Объект.ТабличнаяЧасть.СсылкаНаДокумент.Проведен = Истина.Оформляемые поля обязательно укажите колонку табличной части, к которой необходимо применить это оформление.Преимущества условного оформления:
Если ваша задача — сделать интерфейс максимально чистым, вы можете скрыть текстовое представление документа в колонке и оставить только иконку. Для этого установите свойство ОтображатьКартинку в значение Истина, а само значение колонки может оставаться невидимым для пользователя, если это соответствует бизнес-логике вашего решения.
Помните, что при работе с ТабличнаяЧасть управляемой формы все изменения свойств элементов желательно выполнять в процедурах ПриСозданииНаСервере или при обработке событий ПриАктивизацииСтроки, чтобы данные в интерфейсе всегда оставались актуальными.