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

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

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

Что такое псевдоним в запросе 1С, как задавать имена полям и таблицам через КАК, правила именования, типичные ошибки и примеры для консоли запросов и СКД.

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

Без псевдонимов поле в результате получает имя, сформированное платформой автоматически — например, Ссылка, Наименование или нечитаемое имя вида Поле1 для выражений. Это затрудняет обращение к результату из кода, ломает обходы выборки и делает запрос неудобным для отладки. Задание осмысленных псевдонимов — фактический стандарт качественного кода на встроенном языке 1С.

Псевдонимы бывают двух видов: псевдонимы полей (в секции ВЫБРАТЬ) и псевдонимы таблиц-источников (в секции ИЗ и в соединениях). Оба вида задаются одним и тем же словом КАК, но решают разные задачи и подчиняются немного разным правилам.

Зачем нужны псевдонимы полей в секции ВЫБРАТЬ

Основная задача псевдонима поля — дать колонке результата понятное и предсказуемое имя. Когда вы обращаетесь к выборке из кода (Выборка.СуммаДокумента), платформа ищет поле именно по псевдониму. Если псевдоним не задан, имя формируется платформой, и для вычисляемых выражений оно будет служебным и неудобным.

Вторая причина — работа с выражениями. Любое выражение в списке выборки: арифметика, функции, конструкция ВЫБОР — обязано иметь псевдоним, если вы планируете использовать его значение. Например, выражение Продажи.Сумма * 0.2 КАК СуммаНДС создаёт читаемую колонку, к которой легко обратиться и в коде, и в конструкторе СКД.

Третья причина — устранение неоднозначности. Если в запросе участвуют две таблицы с одноимёнными полями (например, Ссылка у документа и у регистра), псевдонимы позволяют различить колонки в результате: Заказ.Ссылка КАК Заказ и Оплата.Ссылка КАК Оплата.

ВЫБРАТЬ

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

СУММА(Продажи.Количество) КАК КоличествоПродано,

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

ИЗ

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

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

Продажи.Номенклатура

Псевдонимы таблиц в секции ИЗ и соединениях

Псевдоним таблицы задаётся сразу после имени источника: ИЗ Документ.РеализацияТоваровУслуг КАК Реализация. Дальше по всему запросу к полям этой таблицы обращаются через псевдоним: Реализация.Контрагент, Реализация.Дата. Это делает текст короче и однозначно показывает, из какого источника берётся каждое поле.

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

Отдельный случай — вложенные запросы и производные таблицы. Для них псевдоним обязателен синтаксически: платформа не выполнит запрос, если вложенный запрос в секции ИЗ не имеет имени. То же относится к обращениям к временным таблицам: имя временной таблицы фактически и есть её псевдоним.

Правила именования псевдонимов

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

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

Практические рекомендации по именованию:

  • Давайте псевдонимы, отражающие смысл данных: СуммаДокумента, а не Поле1 или С1.
  • Для таблиц используйте короткое имя сущности: Реализация, Товары, Остатки.
  • Не называйте псевдоним таблицы именем, совпадающим с именем другой таблицы или поля запроса.
  • Придерживайтесь единого стиля во всех запросах конфигурации — это упрощает сопровождение.
Типичные ошибки
01
Два поля с одинаковым псевдонимом — платформа выдаёт ошибку неоднозначности, запрос не выполняется
02
Вычисляемое выражение без псевдонима — к значению невозможно обратиться из кода по понятному имени
03
Псевдоним совпадает с зарезервированным словом — синтаксическая ошибка ещё на этапе проверки запроса
04
Вложенный запрос без псевдонима — запрос отклоняется платформой независимо от корректности остального текста

Псевдонимы в группировках, упорядочивании и итогах

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

В секции СГРУППИРОВАТЬ ПО ситуация обратная: здесь указываются исходные поля или выражения, а не псевдонимы результирующих колонок. Если вы группируете по выражению, его нужно повторить в секции группировки полностью. Попытка сослаться на псевдоним агрегатного поля внутри ГДЕ или СГРУППИРОВАТЬ ПО приведёт к ошибке — для фильтрации по агрегатам используется секция ИМЕЮЩИЕ.

При использовании ИТОГИ ПО учитывайте, что обход выборки строится по псевдонимам полей группировки. Если поле группировки не имеет осмысленного псевдонима, получить значение группировки в обходе будет затруднительно.

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

Псевдонимы в консоли запросов, СКД и динамических списках

В консоли запросов псевдонимы видны как заголовки колонок результата — это самый быстрый способ проверить, что имена заданы правильно. Если колонка называется Поле1 или имя обрезано, значит псевдоним не задан или задан неудачно.

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

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

Как проверить и отладить псевдонимы

Самый надёжный способ проверки — выполнить запрос в консоли запросов и посмотреть заголовки колонок результата. Все вычисляемые поля должны иметь осмысленные имена, дубли имён отсутствовать, а обращение из кода (Выборка.ИмяПоля) — не вызывать ошибку «Поле не найдено».

При ошибке «Неоднозначное поле» проверьте, не заданы ли одинаковые псевдонимы двум полям и не совпадает ли псевдоним с именем поля, выбранным без псевдонима. При ошибке обращения из кода сверяйте имя в коде посимвольно с псевдонимом в запросе — платформа чувствительна к точному написанию.

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

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

Заголовки колонок в консоли запросов
Норма

Каждая колонка имеет осмысленное уникальное имя

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

Колонки вида Поле1, Поле2 или дублирующиеся имена

Обращение к полю из кода
Норма

Выборка.ИмяПоля возвращает значение без ошибок

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

Ошибка «Поле не найдено» при обходе выборки

Настройки отчёта на СКД
Норма

Поля набора данных доступны в настройках под заданными именами

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

Поля отсутствуют в списке доступных или отображаются служебные имена

Итог

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

Псевдоним задаётся словом КАК и определяет имя колонки результата или краткое имя таблицы. Вычисляемые поля и вложенные запросы без псевдонимов непригодны для работы. Имена должны быть уникальными, осмысленными и не совпадать с зарезервированными словами. Проверяйте результат в консоли запросов и не переименовывайте псевдонимы в действующих отчётах без тестирования.

Частые вопросы о псевдонимах в запросах 1С

Чем псевдоним поля отличается от псевдонима таблицы?

Псевдоним поля задаётся в секции ВЫБРАТЬ и определяет имя колонки в результате запроса — по нему обращаются из кода и настроек отчёта. Псевдоним таблицы задаётся в секции ИЗ и служит для ссылок на поля источника внутри текста запроса; в результат он не попадает.

Можно ли использовать русские буквы в псевдонимах?

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

Обязателен ли псевдоним для простого поля вида Документ.Ссылка?

Формально нет — платформа сама присвоит полю имя Ссылка. Однако явный псевдоним рекомендуется: он делает намерение разработчика понятным и защищает запрос от неоднозначности при добавлении новых источников.

Почему возникает ошибка «Неоднозначное поле» и как её исправить?

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

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

Нет, псевдонимы — это чисто синтаксический элемент, они не меняют план выполнения запроса на стороне СУБД. На производительность влияют соединения, индексы и условия отбора, но не имена полей.

Как задать псевдоним для вложенного запроса?

Вложенный запрос заключается в скобки в секции ИЗ, после которых обязательно указывается псевдоним через КАК: ИЗ (ВЫБРАТЬ ...) КАК ВложенныйЗапрос. Без псевдонима платформа отклонит такой запрос с синтаксической ошибкой.