При разработке отчетов и обработок в обычном приложении платформы 1С часто возникает необходимость вывести результат выполнения запроса на форму. Типовой подход заключается в выгрузке результата запроса в таблицу значений с последующим связыванием с элементом формы типа Табличное поле.
Однако синтаксис языка запросов 1С не позволяет использовать пробелы в псевдонимах полей (например, ДатаЗаказа или НомерЗаказа). При автоматическом создании колонок на форме с помощью метода СоздатьКолонки() заголовки отображаются ровно так, как они названы в запросе. Рассмотрим подробнее, как изменить заголовки колонок на понятные пользователю и применить к ним необходимое оформление.
Разберем вариант, предложенный в решении задачи. После того как результат запроса выгружен в таблицу значений и связан с элементом формы, вызывается метод СоздатьКолонки(). Затем мы можем обойти коллекцию Колонки элемента формы и изменить свойство ТекстШапки для нужных полей.
Посмотрим на пример кода:
Результат = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТЗ.Значение = Результат;
ЭлементыФормы.ТЗ.СоздатьКолонки();
Для каждого Колонка Из ЭлементыФормы.ТЗ.Колонки Цикл
Если Колонка.Имя = "ДатаЗаказа" Тогда
Колонка.ТекстШапки = "Дата заказа";
ИлиЕсли Колонка.Имя = "НомерЗаказа" Тогда
Колонка.ТекстШапки = "Номер заказа";
КонецЕсли;
КонецЦикла;
Если имена колонок запроса заранее известны, нет необходимости перебирать все элементы в цикле. Мы можем обратиться к конкретной колонке элемента формы напрямую по её имени через точечную нотацию или квадратные скобки:
Результат = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТЗ.Значение = Результат;
ЭлементыФормы.ТЗ.СоздатьКолонки();
// Прямое обращение к колонке табличного поля
ЭлементыФормы.ТЗ.Колонки.ДатаЗаказа.ТекстШапки = "Дата заказа";
ЭлементыФормы.ТЗ.Колонки["НомерЗаказа"].ТекстШапки = "Номер заказа";
Проанализируем альтернативный подход, который позволяет избежать вызова метода СоздатьКолонки() в коде. Колоночный состав и оформление можно полностью настроить в конфигураторе:
ДатаЗаказа).При таком подходе программный код сводится к одной строке назначения источника данных, а метод СоздатьКолонки() вызывать нельзя, так как он сбросит все визуальные настройки:
// При ручной настройке колонок в конфигураторе метод СоздатьКолонки() НЕ вызывается
ЭлементыФормы.ТЗ.Значение = Запрос.Выполнить().Выгрузить();
Выясним, как управлять отображением данных (чисел, дат, выравнивания и цвета) в табличном поле:
Формат у колонки. Набор параметров задается с помощью стандартной строки формата.Выравнивание (например, ВариантВыравнивания.Право для числовых показателей).Пример применения формата и выравнивания кода:
КолонкаДата = ЭлементыФормы.ТЗ.Колонки.ДатаЗаказа;
КолонкаДата.ТекстШапки = "Дата заказа";
КолонкаДата.Формат = "ДФ=dd.MM.yyyy";
КолонкаСумма = ЭлементыФормы.ТЗ.Колонки.Сумма;
КолонкаСумма.ТекстШапки = "Сумма заказа";
КолонкаСумма.Формат = "ЧДЦ=2; ЧГ=3,0";
КолонкаСумма.Выравнивание = ВариантВыравнивания.Право;
Для динамического изменения цвета фона, текста или шрифта отдельных ячеек в зависимости от условий применяются события табличного поля ПриВыводеСтроки или ПриПолученииДанных, где через параметр ОформлениеСтроки настраивается визуальное представление конкретной строки или ячейки.