Вывод ссылочных полей

При выводе ссылочных полей в отчет (а также в тех местах, где необходимо отображать представление, например, при выводе значения при помощи функции "Сообщить") следует учитывать тот факт, что при выводе значения-ссылки программа будет выполнять дополнительный запрос для получения представления поля, вследствие чего процесс вывода будет выполняться медленнее. Для того чтобы избежать подобного эффекта, следует в запросе сразу получать поле - представление для ссылочного поля и уже его и выводить в отчет. Ссылочное же поле целесообразно выводить в расшифровку ячейки с тем, чтобы пользователь имел возможность "открыть" значение ячейки и перейти к элементу.

Пример:

Копировать в буфер обмена

ВЫБРАТЬ
    ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    ПродажиКомпанииОбороты.ДокументПродажи.Контрагент КАК ДокументПродажиКонтрагент, 
    ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот, 
    ПродажиКомпанииОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот 
ИЗ 
    РегистрНакопления.ПродажиКомпании.Обороты КАК ПродажиКомпанииОбороты 
ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот) 
ПО 
    ОБЩИЕ, 
    Номенклатура, 
    ДокументПродажиКонтрагент

При выводе результата такого запроса в табличный документ программа будет выполнять дополнительные запросы для получения представлений полей "Номенклатура" и "Контрагент", в результате чего вывод отчета замедлится. Для того чтобы избежать получения представлений во время вывода отчета, следует в запрос добавить поля-представления и в отчет выдавать именно их.

Пример: 

Копировать в буфер обмена

ВЫБРАТЬ 
    ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    ПродажиКомпанииОбороты.Номенклатура.Представление КАК НоменклатураПредставление, 
    ПродажиКомпанииОбороты.ДокументПродажи.Контрагент КАК ДокументПродажиКонтрагент,
    ПродажиКомпанииОбороты.ДокументПродажи.Контрагент.Представление КАК КонтрагентПредставление, 
    ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот, 
    ПродажиКомпанииОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот
ИЗ 
    РегистрНакопления.ПродажиКомпании.Обороты КАК ПродажиКомпанииОбороты
ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот)
ПО 
    ОБЩИЕ, 
    Номенклатура, 
    ДокументПродажиКонтрагент

Из данного запроса необходимо выдавать в табличный документ поля "НоменклатураПредставление" и "КонтрагентПредставление".

Обратим внимание на то, что реализованный в конфигураторе конструктор выходных форм следует выше названным правилам. Он автоматически добавляет необходимые поля-представления в запрос и обеспечивает вывод в отчет именно их.

Заметим, что получение реквизитов "через точку" от ссылочных полей в момент вывода отчета также является операцией способной значительно замедлить вывод отчета. Поэтому для вывода реквизитов ссылочных полей необходимо их получать непосредственно в запросе, а не получать через ссылку при выводе отчета.

Например, для вывода поля "Код" элемента номенклатуры следует использовать такой запрос:

Копировать в буфер обмена

ВЫБРАТЬ 
    ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    ПродажиКомпанииОбороты.Номенклатура.Представление КАК НоменклатураПредставление,  
    ПродажиКомпанииОбороты.Номенклатура.Код КАК НоменклатураКод,  
    ПродажиКомпанииОбороты.ДокументПродажи.Контрагент КАК ДокументПродажиКонтрагент,
    ПродажиКомпанииОбороты.ДокументПродажи.Контрагент.Представление КАК КонтрагентПредставление, 
    ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот, 
    ПродажиКомпанииОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот
ИЗ 
    РегистрНакопления.ПродажиКомпании.Обороты КАК ПродажиКомпанииОбороты
ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот)
ПО 
    ОБЩИЕ, 
    Номенклатура, 
    ДокументПродажиКонтрагент

И выдавать в отчет поле НоменклатураКод, а не получать через ссылку реквизит "Код".

Об использовании представлений ссылочных полей в построителе отчета см. раздел "Работа построителя отчета с представлениями ссылочных значений".