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

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

Представление в запросе 1С 8.3: как вывести ссылку строкой

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

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

Разница между этими подходами принципиальна. Автопредставление работает неявно: вы выбираете поле типа Документ.РеализацияТоваровУслуг, а при выводе в табличный документ или сообщение видите строку вида «Реализация товаров и услуг 0000-000123 от 15.03.2026». Функция ПРЕДСТАВЛЕНИЕ() даёт строку уже на уровне запроса — значение в выборке имеет тип «Строка», что важно для группировок, соединений и выгрузок.

Ниже разобраны оба способа, ограничения функции, влияние на производительность и типичные ошибки, которые приводят к неожиданным результатам в отчётах и обработках.

Как платформа формирует представление ссылок без функции

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

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

ВЫБРАТЬ

РеализацияТоваровУслуг.Ссылка КАК Документ,

РеализацияТоваровУслуг.Контрагент КАК Контрагент

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

При обходе выборки методом Выборка.Документ вернёт ссылку, а вот Строка(Выборка.Документ) или вывод в табличный документ дадут готовое представление. Это важно понимать: строка появляется на этапе отображения, а не в самом запросе.

Функция ПРЕДСТАВЛЕНИЕ: синтаксис и базовый пример

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

ВЫБРАТЬ

ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Ссылка) КАК ДокументСтрокой,

ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Контрагент) КАК КонтрагентСтрокой

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

В выборке поля ДокументСтрокой и КонтрагентСтрокой будут иметь тип «Строка». Это позволяет применять к ним строковые операции, сортировать по алфавиту именно по представлению и передавать результат в системы, которые не понимают тип «Ссылка» — например, при выгрузке в JSON или обмене с внешними базами.

Функция работает не только со ссылками. Для примитивных типов (число, дата, булево) она вернёт строковое отображение значения, а для перечислений — представление значения перечисления, заданное в конфигураторе. Это удобно, когда нужно вывести статус документа словами, а не ссылкой на перечисление.

Когда функция нужна, а когда избыточна

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

Определить необходимость функции помогает вопрос: что потребитель результата будет делать со значением? Если отображать — достаточно ссылки. Если обрабатывать как текст, соединять с другими строками или передавать наружу — нужна функция.

Маршрут решения

Как выбрать действие

Результат выводится в отчёт СКД, табличный документ или формуОставьте ссылочное поле как есть — представление подставится автоматически
Нужно сгруппировать или отсортировать данные по строковому представлениюПримените ПРЕДСТАВЛЕНИЕ() к полю в секции ВЫБРАТЬ
Результат выгружается в файл, JSON или передаётся во внешнюю системуИспользуйте ПРЕДСТАВЛЕНИЕ(), чтобы получить строку на уровне запроса
Нужно склеить представление с другим текстом через оператор +Оберните ссылку в ПРЕДСТАВЛЕНИЕ(), иначе получите ошибку типов

ПРЕДСТАВЛЕНИЕ в группировках, соединениях и условиях

Функция применима в секциях СГРУППИРОВАТЬ ПО и УПОРЯДОЧИТЬ ПО. Типичный сценарий — отчёт, где строки должны идти в алфавитном порядке наименований контрагентов, а сам контрагент выводится текстом:

ВЫБРАТЬ

ПРЕДСТАВЛЕНИЕ(Продажи.Контрагент) КАК Контрагент,

СУММА(Продажи.СуммаОборот) КАК Сумма

ИЗ

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

СГРУППИРОВАТЬ ПО

ПРЕДСТАВЛЕНИЕ(Продажи.Контрагент)

УПОРЯДОЧИТЬ ПО

Контрагент

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

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

Производительность и влияние на СУБД

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

Проверить, как запрос выполняется на самом деле, помогает консоль запросов с показом текста запроса СУБД или технологический журнал с событием DBMSSQL/DBPOSTGRS. Если видно, что представление тянет за собой дополнительные соединения или построчные вызовы, стоит пересмотреть подход.

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

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

Тип поля в выборке
Норма

Значение имеет тип «Строка», доступны строковые функции

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

Вернулся тип «Ссылка» — функция не применена или применена не к тому полю

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

Время сопоставимо с запросом без представления

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

Запрос замедлился в разы — вероятно, переопределён обработчик представления

Открытие объекта из отчёта
Норма

По двойному клику открывается форма объекта

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

Ячейка содержит строку, объект не открывается — для отчёта лучше выводить ссылку

Альтернативы: выбор конкретных полей вместо представления

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

Для документов аналог представления собирается вручную: синоним вида документа (константная строка), номер и дата. Это даёт полный контроль над форматом, например позволяет вывести номер без префиксов через функцию ПОДСТРОКА или отформатировать дату нужным образом.

Сравнение вариантов

ПРЕДСТАВЛЕНИЕ(Ссылка)

Универсально, учитывает переопределённые представления; медленнее и не подходит для условий и соединений

Ссылочное поле без обёртки

Оптимально для отчётов и форм; представление подставится при отображении, объект остаётся доступен для открытия

Конкретный реквизит (Наименование, Номер)

Самый быстрый вариант, полный контроль формата; не учитывает переопределённую логику представления

Типичные ошибки и ограничения

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

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

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

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

Ещё одно ограничение: функция недоступна в некоторых контекстах компоновки данных на уровне выражений ресурсов и вычисляемых полей — там строковое представление формируется иначе, через форматирование или код на встроенном языке.

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

Частые вопросы

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

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

Можно ли применить ПРЕДСТАВЛЕНИЕ к числу или дате?

Да, функция вернёт строковое отображение значения. Однако форматирование будет стандартным; если нужен конкретный формат даты или числа, надёжнее выполнить форматирование в коде функцией Формат() после получения результата запроса.

Почему в отчёте СКД поле с ПРЕДСТАВЛЕНИЕ не открывается по двойному клику?

Потому что в ячейке находится строка, а не ссылка. Расшифровка и открытие объекта работают только для ссылочных значений. Решение — выводить в отчёт само ссылочное поле, а представление платформа подставит автоматически.

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

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

Как получить представление вне запроса, в коде?

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

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

Наиболее вероятная причина — переопределённый обработчик ОбработкаПолученияПредставления в модуле менеджера объекта: представление вычисляется для каждой строки на сервере 1С. Проверьте модуль менеджера и, если возможно, замените функцию на выбор конкретных реквизитов.

Итог

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

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