Вариант 3
В программном модуле текст вывода данных в Таблицу следующий
Пока Запрос.Группировка("Товар") = 1 Цикл
Тов = Запрос.Товар;
ПечНаим = Тов.Наименование;
ПечАртикул = Тов.Артикул;
ПечЦена = Тов.Цена;
ПечВалюта = Тов.Валюта;
Таб.ВывестиСекцию("Товар1");
КонецЦикла;
Секция "Товар1" в Таблице имеет следующий формат:
<ПечНаим>
|
<ПечАртикул>
|
<ПсчЦена>
|
<ПечВалюта>
|
В третьем варианте отображаемые реквизиты товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизиту товара происходит по сокращенному пути — через промежуточную переменную: Товар — Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее, чем во втором варианте (выигрыш ~20%) и существено быстрее, чем в первом варианте (выигрыш ~40%), т. к. вычисление значений реквизитов объектов через «одну точку» выполняется быстрее, чем через «две (и более) точки».
Кратко суть этого раздела можно выразить так: при реализации больших отчетов, которые рассчитаны на отображение более сотни строк, следует придерживаться следующих правил:
- не размещайте сложных выражений в ячейках Таблицы. Лучше вычислить необходимые значения непосредственно в программном модуле;
- если необходимо получить несколько реквизитов одного объекта, который сам является составной частью другого объекта, то следует воспользоваться промежуточной переменной, в которую сначала можно записать значение всего объекта «целиком», а затем уже от нее получать требуемые данные.