Как вывести статус документа картинкой в табличной части документа в управляемых формах?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Метод 1: Использование индекса картинки в строке

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

  1. Подготовка коллекции: Убедитесь, что в конфигурации есть подходящая Картинка (коллекция картинок), содержащая необходимые иконки статусов (проведен, не проведен, помечен на удаление).
  2. Добавление реквизита: В табличную часть вашего документа добавьте новый реквизит числового типа (например, с именем ИндексКартинки).
  3. Настройка формы: Перейдите в свойства элемента формы, соответствующего вашей табличной части. В настройках найдите свойство КартинкиСтрок и выберите там вашу общую картинку.
  4. Привязка: У колонки табличной части, в которой должна отображаться иконка, установите свойство ПутьКДаннымКартинкиСтроки, указав созданный вами реквизит ИндексКартинки.
  5. Заполнение индекса: В программном коде при заполнении или изменении данных строки документа присваивайте реквизиту ИндексКартинки соответствующее числовое значение, которое соответствует позиции иконки в коллекции картинок.

Рассмотрим пример логики заполнения индекса на основе анализа данных:


Процедура ОбновитьИндексКартинкиВСтроке(СтрокаТабличнойЧасти)
    Если СтрокаТабличнойЧасти.Документ.ПометкаУдаления Тогда
        СтрокаТабличнойЧасти.ИндексКартинки = 0; // Индекс картинки для удаления
    ИначеЕсли СтрокаТабличнойЧасти.Документ.Проведен Тогда
        СтрокаТабличнойЧасти.ИндексКартинки = 1; // Индекс картинки для проведения
    Иначе
        СтрокаТабличнойЧасти.ИндексКартинки = 2; // Индекс картинки для нового
    КонецЕсли;
КонецПроцедуры

Метод 2: Использование условного оформления

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

Разберем процесс настройки по шагам:

  1. Открытие формы: В конфигураторе откройте форму вашего документа и перейдите на вкладку Условное оформление.
  2. Создание элемента: Добавьте новый элемент оформления. В поле Оформление выберите свойство КартинкаСтроки.
  3. Выбор картинки: В параметре оформления укажите конкретную картинку из библиотеки Общие картинки, которая будет отображаться при выполнении условия.
  4. Настройка условия: Перейдите в поле Условие и добавьте выражение, которое определяет, когда именно должна появиться данная картинка. Например: Объект.ТабличнаяЧасть.СсылкаНаДокумент.Проведен = Истина.
  5. Применение к полю: В разделе Оформляемые поля обязательно укажите колонку табличной части, к которой необходимо применить это оформление.

Преимущества условного оформления:

Рекомендации по реализации

Если ваша задача — сделать интерфейс максимально чистым, вы можете скрыть текстовое представление документа в колонке и оставить только иконку. Для этого установите свойство ОтображатьКартинку в значение Истина, а само значение колонки может оставаться невидимым для пользователя, если это соответствует бизнес-логике вашего решения.

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

← На главную