Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
В запросах, которые используются в Схеме компоновки данных (СКД), как обозначают специальные конструкции расширения языка запросов, предназначенные для компоновщика отчета?
Квадратными скобками: [ ... ]
Неправильно: Квадратные скобки не являются стандартным обозначением расширений языка запросов СКД. В тексте запросов СКД специальные инструкции для компоновщика оформляются другим видом скобок.
Никакими - такие конструкции не выделяются скобками
Неправильно: Расширение языка запросов для СКД специально помечается, чтобы компоновщик мог распознать эти участки текста. Если бы они никак не выделялись, механизм не смог бы отличить служебные конструкции СКД от обычного текста запроса.
Фигурными скобками: { ... }
Правильно: Дополнительные синтаксические элементы, которые предназначены для обработки системой компоновки данных, заключаются в фигурные скобки. При выполнении «обычного» запроса эти фрагменты не интерпретируются как стандартный синтаксис языка запросов и используются именно механизмом СКД.
Круглыми скобками: ( ... )
Неправильно: Круглые скобки в языке запросов применяются для выражений, приоритета операций, функций и условий, но не для пометки расширений СКД. Специальные инструкции компоновщика выделяются фигурными скобками, а не круглыми.
Пояснение
СКД строит отчеты на основе набора данных (часто - набора данных типа «Запрос»). Текст такого запроса похож на обычный язык запросов 1С, но дополнительно может содержать «подсказки» для компоновщика: какие поля разрешить пользователю выводить, какие параметры и отборы показать в настройках, какие ресурсы/итоги сформировать и т.д. Эти служебные фрагменты и есть расширение языка запросов для СКД - они всегда заключаются в фигурные скобки { ... }.
Практический контекст:
- Если вы видите в запросе куски вроде {ГДЕ ...}, {ВЫБРАТЬ ...} или конструкции, которые выглядят «не как обычный запрос», почти наверняка это расширение для СКД.
- Такие конструкции нужны именно для механизма компоновки: например, чтобы сделать условие отбора «опциональным» (пользователь может включать/выключать его в настройках отчета) или чтобы подсказать компоновщику, какие поля/ресурсы считать ключевыми.
Пример (условный): в СКД можно обернуть часть условий в { ... }, чтобы компоновщик воспринимал это как настраиваемый элемент отчета, а не жестко зашитое условие. Поэтому при копировании текста запроса из СКД в консоль запросов (или в объект «Запрос») часто возникает ошибка синтаксиса - в обычном запросе фигурные скобки не несут такого смысла. Лучший прием: тестировать «чистый» SQL-подобный текст без { ... } в консоли запросов, а расширения оставлять только в наборе данных СКД.
Полезная привычка при разработке отчетов: держать в голове разделение ролей - обычный текст запроса отвечает за получение данных, а конструкции в { ... } управляют тем, как СКД превращает эти данные в настраиваемый отчет (доступные поля, отборы, ресурсы, итоги и поведение автозаполнения).