Как вывести дополнительные данные в табличную часть документа и настроить их оформление в 1С?

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

В процессе разработки часто возникает задача вывода на форму табличной части дополнительных сведений, которые не хранятся непосредственно в объекте, но необходимы пользователю для визуального анализа. Рассмотрим подробно, как правильно организовать вывод таких данных и как настроить для них Условное оформление.

Организация вывода данных в табличную часть

Важно понимать, что управляемые формы имеют свои архитектурные особенности. Если вам нужно просто отобразить дополнительные реквизиты (например, сумму или комментарий, привязанные к документу-основанию), не обязательно хранить их в базе данных. Выполним следующие действия:

  1. В структуре Табличная часть на форме добавьте новые колонки.
  2. Если данные уже являются реквизитами основного реквизита ТЧ, их достаточно просто перетащить на форму.
  3. Для заполнения данных при открытии формы используйте процедуру ПриСозданииНаСервере.
  4. Если данные должны обновляться при выборе или изменении документа в ТЧ, реализуйте логику в обработчике события ПриИзменении поля, содержащего ссылку.

Если данные являются реквизитами реквизита (например, Документ.СуммаДокумента), то при добавлении их на форму система сама обеспечит их отображение без необходимости постоянного программного заполнения, если выбран тип ссылки.

Реализация условного оформления программным способом

Когда требуется визуально выделить строки (например, окрасить текст в синий цвет, если документ не проведен), мы используем Условное оформление. Рассмотрим, как создать такое оформление программно в расширении или модуле формы:

Для программной настройки нам потребуется объект УсловноеОформление. Основной принцип заключается в добавлении элемента в коллекцию, установке отбора и указании полей, к которым применяется оформление.


// Пример программной установки условного оформления
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Синий);

// Настройка отбора
ОтборЭлемента = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокДокументов.Документ.Проведен");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента.Использование = Истина;

// Указание полей для применения оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("СписокДокументов");
ПолеОформления.Использование = Истина;

Особенности работы с составными типами

Проанализируем ситуацию, когда поле Документ имеет Составной тип данных (например, включает Реализация товаров и услуг, Возврат товаров и т.д.).

Важное ограничение: Если у документов, входящих в составной тип, нет общих реквизитов с одинаковым именем, платформа не сможет «раскрыть» их в дереве доступных полей для Условного оформления. В таких случаях:

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

Если вы применили код, но визуальных изменений в табличной части нет, пройдите по пунктам:

  1. Убедитесь, что ПутьКДанным в поле оформления точно совпадает с именем элемента на форме.
  2. Проверьте, не перекрывается ли ваше оформление другими настройками Условного оформления, заданными в конфигураторе.
  3. При использовании расширений помните, что порядок применения оформления может зависеть от версии платформы и режима совместимости. Если вы работаете в Расширении, попробуйте явно проверить доступность полей через отладчик в процедуре ПриСозданииНаСервере.

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

← На главную