К статье
Практический материал

Разработка и Конфигурация · 12 мин

Представление в запросе 1С: что это и как использовать

Что такое представление в запросе 1С, как работает функция ПРЕДСТАВЛЕНИЕ, когда её использовать, ограничения, типичные ошибки и примеры кода.

При работе с запросами в 1С разработчик часто сталкивается с ситуацией, когда из базы нужно получить не саму ссылку на объект, а её человекочитаемое текстовое описание — наименование товара, ФИО сотрудника, номер документа. Для этого в языке запросов предусмотрена функция ПРЕДСТАВЛЕНИЕ(), а также связанный механизм автоматического получения представлений ссылочных полей.

Понимание того, как формируется представление, важно не только для вывода красивых отчётов. Неправильное использование функции влияет на производительность: лишние соединения таблиц и преобразования типов замедляют выполнение запроса, особенно на больших объёмах данных. Поэтому вопрос «что такое представление в запросе» — это одновременно вопрос корректности и скорости работы решения.

В материале разобрано, что именно возвращает функция ПРЕДСТАВЛЕНИЕ, чем она отличается от обращения к полям через точку, в каких задачах её применение оправдано, а где лучше обойтись другими средствами платформы.

Что такое представление объекта в 1С

Каждый ссылочный объект в 1С (элемент справочника, документ, план счетов) имеет внутренний идентификатор — ссылку. Сама по себе ссылка нечитаема: это уникальный идентификатор, который не несёт смысла для пользователя. Чтобы показать объект человеку, платформа формирует его представление — строку, составленную из ключевых полей объекта.

Для справочника это обычно наименование, для документа — комбинация вида «Реализация товаров 000001 от 12.03.2026», для перечисления — синоним значения, заданный в конфигураторе. Какие именно поля участвуют в представлении, определяется настройками объекта метаданных: длиной кода и наименования, основным представлением (в виде кода или наименования), а также стандартным представлением для документов.

В языке запросов доступ к представлению реализован двумя способами: неявно — при обращении к полю ссылки через точку (например, Товары.Номенклатура.Наименование) и явно — через функцию ПРЕДСТАВЛЕНИЕ(). Оба подхода дают строку, но работают по-разному и имеют разные последствия для производительности.

Функция ПРЕДСТАВЛЕНИЕ: синтаксис и поведение

Функция имеет простой синтаксис: ПРЕДСТАВЛЕНИЕ(Поле), где в качестве аргумента передаётся поле запроса — ссылка, значение перечисления или другое значение. Результат всегда имеет строковый тип. Ниже пример типового запроса:

SELECT

Продажи.Номенклатура КАК Товар,

ПРЕДСТАВЛЕНИЕ(Продажи.Номенклатура) КАК ТоварПредставление,

ПРЕДСТАВЛЕНИЕ(Продажи.ДокументРеализации) КАК ДокументСтрокой

ИЗ

РегистрНакопления.Продажи КАК Продажи

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

Для ссылок, указывающих на несуществующие объекты (так называемые «битые ссылки»), функция вернёт строку вида «<Объект не найден> (…)», что иногда используют как диагностический приём при поиске нарушений ссылочной целостности.

Чем ПРЕДСТАВЛЕНИЕ отличается от обращения через точку

Разработчики нередко смешивают два приёма: получение представления функцией и разыменование ссылки через точку (Ссылка.Наименование). Результат может совпадать, но механизмы различаются. Разыменование возвращает конкретное поле с известным типом, а ПРЕДСТАВЛЕНИЕ — всегда строку, сформированную по правилам объекта метаданных.

КритерийПРЕДСТАВЛЕНИЕ(Поле)Поле через точку (Ссылка.Наименование)
Тип результатаВсегда строкаТип конкретного поля
Состав значенияПо правилам объекта (для документа — вид, номер, дата)Только запрошенное поле
Работа с составными типамиКорректно обрабатывает поле любого ссылочного типаТребует, чтобы поле существовало у всех типов
Нагрузка на СУБДСкрытое соединение, может быть тяжелееОбычно легче, соединение явное
Применение в условияхНе рекомендуетсяДопустимо, но тоже с осторожностью

Ключевое преимущество ПРЕДСТАВЛЕНИЕ проявляется при работе с полями составного типа. Если реквизит может хранить ссылку и на справочник «Контрагенты», и на справочник «Организации», разыменование через точку потребует конструкции ВЫБОР с проверкой типа, а функция представления вернёт читаемую строку для любого из типов без дополнительных условий.

Сравнение вариантов получения представления

ПРЕДСТАВЛЕНИЕ(Поле)

Подходит для вывода в отчёты и для полей составного типа. Ограничение — скрытое соединение и строковый результат, непригодный для дальнейших соединений.

Ссылка.Наименование (через точку)

Подходит, когда тип поля один и нужно конкретное поле. Ограничение — не работает универсально для составных типов.

Получение представления в коде (Строка(Ссылка))

Подходит, когда данные уже выбраны и обрабатываются в модуле. Ограничение — дополнительные обращения к базе при массовой обработке.

Где использовать представление, а где — нет

Главное правило: представление — это данные для отображения, а не для логики. Корректные сценарии применения: вывод в отчёты на СКД, формирование печатных форм, экспорт данных в текстовом виде, диагностические выборки. Во всех этих случаях строковое представление — конечный результат, который дальше не обрабатывается.

Некорректные сценарии — использование представления в условиях отбора, соединениях таблиц и группировках. Сравнение строк медленнее сравнения ссылок, а соединение по представлению вообще лишено смысла: два разных объекта могут иметь одинаковое наименование, и соединение даст дубли или потери данных.

Типичные ошибки
01
Соединение таблиц по представлению — приводит к дублям и потере строк, так как наименования не уникальны.
02
Отбор вида ГДЕ ПРЕДСТАВЛЕНИЕ(Товар) = "Кирпич" — медленно и ненадёжно; отбирать нужно по ссылке.
03
Группировка по представлению — объекты с одинаковым наименованием склеиваются в одну группу.
04
Массовое использование ПРЕДСТАВЛЕНИЕ по многим полям в одном запросе — каждое поле добавляет скрытое соединение, запрос резко замедляется.
05
Ожидание, что представление вернёт наименование для документа — для документов возвращается строка с видом, номером и датой, а не отдельное поле.

Представление в отчётах на СКД

В схеме компоновки данных представление ссылочных полей часто выводится автоматически: если в наборе данных выбрано поле-ссылка, СКД при выводе показывает пользователю его представление. Явно добавлять ПРЕДСТАВЛЕНИЕ в текст запроса набора данных обычно не требуется — это лишь увеличивает нагрузку. Исключение — случаи, когда нужна конкретная строковая форма, отличающаяся от стандартной.

Представление для полей составного типа

Если поле регистра может содержать ссылки разных типов (например, «Плательщик» — контрагент или физическое лицо), функция ПРЕДСТАВЛЕНИЕ — самый простой способ получить читаемое значение без построения ВЫБОР с определением типа каждой записи. Это оправдано именно в выводимых полях, а не в служебных вычислениях.

Влияние на производительность и как его снизить

Каждый вызов ПРЕДСТАВЛЕНИЕ для ссылочного поля означает, что СУБД должна получить данные из таблицы объекта. На выборке в несколько тысяч строк это незаметно, но на больших регистрах с десятками представлений запрос может выполняться в разы дольше. Признак проблемы — отчёт, который «висит» при большом периоде, хотя сам запрос выглядит простым.

Контрольные точки

Как проверить результат

Состав полей запроса
Норма

ПРЕДСТАВЛЕНИЕ применяется только к полям, выводимым пользователю

Тревожный признак

Функция используется в условиях, соединениях или группировках

Скорость выполнения
Норма

Отчёт открывается за приемлемое время на реальном объёме данных

Тревожный признак

Время выполнения резко растёт при увеличении периода

Корректность данных
Норма

Каждой строке соответствует свой объект, нет склейки по наименованию

Тревожный признак

Разные объекты с одинаковым наименованием объединены в одну строку

Практические способы снизить нагрузку: запрашивать представление только для итоговых строк отчёта, а не для каждой детальной записи; заменять функцию на разыменование конкретного поля, когда тип ссылки один; переносить формирование строки на этап обработки результата в модуле, если объём данных невелик.

Как безопасно добавить представление в запрос
  1. 1
    Определите, действительно ли нужна строка: если поле участвует в логике — используйте ссылку.
  2. 2
    Добавьте ПРЕДСТАВЛЕНИЕ(Поле) в список выборки с понятным псевдонимом, например ТоварПредставление.
  3. 3
    Выполните запрос в консоли запросов на копии базы и проверьте результат глазами.
  4. 4
    Замерьте время выполнения на реальном объёме данных и сравните с вариантом без представления.
  5. 5
    Если запрос замедлился — замените функцию на разыменование поля или вынесите формирование строки в код.

ПРЕДСТАВЛЕНИЕССЫЛКИ и смежные возможности

Помимо основной функции, в языке запросов есть связанные механизмы. Функция ПРЕДСТАВЛЕНИЕССЫЛКИ() применяется в расширениях языка запросов для СКД и позволяет получать представления полей, которые не входят в основной запрос, — платформа дособирает их отдельно при выводе. Это снижает нагрузку на основной запрос, но требует понимания того, как СКД формирует итоговый текст обращения к базе.

Для перечислений ПРЕДСТАВЛЕНИЕ возвращает синоним значения из метаданных. Если синоним не заполнен, будет использовано имя значения. Это стоит учитывать при локализации решений: представление зависит от настроек конфигурации и языка, а не является фиксированной константой.

Удобный приём диагностики: выберите ПРЕДСТАВЛЕНИЕ по ссылочному полю регистра и отберите строки, где результат содержит «Объект не найден». Так быстро находятся битые ссылки без написания отдельной обработки.
ПЗ
Практическое замечание

Ограничения и частые вопросы

Функция не работает с произвольными выражениями — аргументом должно быть поле или значение, для которого платформа умеет строить представление. Нельзя получить представление результата агрегатной функции или вычисляемого выражения. Также следует помнить, что представление формируется на момент выполнения запроса: если наименование объекта изменится, старые выгрузки не обновятся автоматически.

В динамических списках представления ссылочных полей выводятся платформой автоматически, поэтому добавлять их в запрос списка вручную не нужно — это только замедлит открытие формы.

Итог

Что важно запомнить

Представление — это строковое описание объекта для показа пользователю. Функция ПРЕДСТАВЛЕНИЕ() получает его в запросе, но создаёт скрытые соединения и возвращает строку. Используйте её только в выводимых полях отчётов и печатных форм, никогда — в условиях, соединениях и группировках. Для одиночного типа ссылки предпочтительнее разыменование через точку.

Чем ПРЕДСТАВЛЕНИЕ отличается от ВЫРАЗИТЬ в запросе 1С?

Это разные функции. ПРЕДСТАВЛЕНИЕ преобразует значение в читаемую строку по правилам объекта метаданных, а ВЫРАЗИТЬ приводит значение к указанному типу данных (например, сужает составной тип или ограничивает длину строки). Их часто комбинируют: сначала получают представление, затем приводят его к строке фиксированной длины.

Почему запрос с ПРЕДСТАВЛЕНИЕ работает медленно?

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

Что вернёт ПРЕДСТАВЛЕНИЕ для битой ссылки?

Функция вернёт строку вида «<Объект не найден>» с фрагментом идентификатора. Это свойство удобно использовать для поиска нарушений ссылочной целостности: достаточно выбрать представления ссылочных полей и отобрать строки, содержащие соответствующий текст.

Можно ли отбирать записи по представлению в условии ГДЕ?

Технически запрос выполнится, но делать так не следует. Сравнение строк медленнее сравнения ссылок, а главное — наименования не уникальны: отбор по строке может захватить лишние объекты или пропустить нужные из-за различий в пробелах и регистре. Отбирайте всегда по ссылке, полученной через параметр.

Что возвращает ПРЕДСТАВЛЕНИЕ для документа?

Для документа формируется стандартное представление: вид документа, номер и дата, например «Поступление товаров 000012 от 05.04.2026». Отдельное поле «наименование» у документов отсутствует, поэтому получить его через ПРЕДСТАВЛЕНИЕ нельзя — состав строки определяется платформой.

Нужно ли добавлять ПРЕДСТАВЛЕНИЕ в запрос набора данных СКД?

Обычно нет. СКД при выводе ссылочных полей сама показывает пользователю их представления. Явный вызов функции оправдан, только если требуется нестандартная строковая форма значения, отличающаяся от той, что формирует платформа.