Запросы 1С СКД. Возможности и ограничения

20.04.20

Разработка - СКД

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.
 
 
 
 
 
 

Запросы 1С СКД. Возможности и ограничения

 

При использовании подсистемы СКД первое, с чем вы столкнетесь это необходимость написания запроса. Конечно, система компоновки данных умеет строить отчеты без использования запросов, например с помощью набора данных объект вы можете сделать отчет из таблицы значений. Но 90% отчетов, которые вы будете создавать с помощью СКД, потребуют написания запроса. Поэтому важно знать об особенностях работы с запросами в СКД, ограничениях, способах и инструментах поиска ошибок.

Если у вас хоть раз возникал вопрос: почему запрос в консоли запросов выдает правильные данные, а в вашем отчете на СКД нет, то в этой статье вы найдете ответ.

Возможности и ограничения языка запросов при использовании в СКД

  В 1С СКД можно использовать практически все возможности языка запросов 1С:

  • Пакетные запросы. Временные таблицы
  • Объединения, вложенные запросы, группировка, сортировка, опции (ПЕРВЫЕ, РАЗЛИЧНЫЕ)
  • Параметры в запросах. При этом параметры, определенные в запросе автоматически, заполняются в СКД на закладке «Параметры»
  • Обращение к внешним источникам данных. С помощью СКД вы можете связывать разные внешние источники данных, используя несколько наборов данных, что невозможно сделать в одном запросе. Правда, при этом нужно учитывать особенности использования наборов данных в СКД

В 1С СКД недоступны:

  • Секция ИТОГИ. Использование данной секции в запросе добавляет в стандартную «плоскую» выборку дополнительные итоговые записи. В СКД такие записи добавляются самой подсистемой по своим правилам, поэтому данная секция для СКД неактуальна
  • Предложение «АВТОУПОРЯДОЧИВАНИЕ». Обычно эта опция языка запросов редко используется, а в отчетах она практически не имеет смысла

В 1С СКД дополнительно с помощью расширения языка запросов 1С для СКД имеется возможность:

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

О дополнительных возможностях мы поговорим в следующем разделе.

Расширение языка запросов 1С для СКД

В предыдущем разделе мы определили, что язык запросов, используемый в СКД, имеет больше возможностей, чем просто запросы, выполняемые через объект платформы «Запрос». К сожалению, упорядоченной документации по этому разделу в 1С нет. Крупицы информации разбросаны: по справке к платформе, ИТС, различным неофициальным интернет ресурсам. Я постараюсь коротко объяснить основную суть данного дополнения к языку запросов и дам ссылки на источники информации, где вы можете более подробно изучить эту тему.

Итак.

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

1С СКД

Как известно, во многих типовых конфигурациях в 1С используется механизм дополнительных реквизитов, когда к объектам конфигурации пользователь может самостоятельно, без изменения конфигурации, добавить дополнительные реквизиты. Чтобы предоставить пользователю возможность работы с этими реквизитам в отчетах, построенных на СКД, используется механизм подключения характеристик. С помощью специального оператора «ХАРАКТЕРИСТИКИ» программист может привязать характеристики к выбранным объектам отчета. При этом необходимо указать тип объекта, к которому производится подключение характеристик, список дополнительных свойств для данного объекта, таблицу, в  которой хранятся значения этих свойств.

Например, так:

Запрос:

1С СКД

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

1С СКД

Используя небольшую хитрость, которую мы показывали в нашем курсе по СКД можно использовать эти реквизиты и в режиме конфигуратора:

1С СКД

Как вы заметили, все элементы расширения языка запросов для СКД заключены в фигурные скобки «{}», чтобы отличать их от основных элементов запроса.

Кроме подключения характеристик расширение языка запросов используется для:

  • Управления автоматическим заполнением списка полей набора данных запрос
  • В том числе для управления заполнением доступности поля (группа полей «Ограничение поля» и «Ограничение реквизитов»)
  • Управления необязательными таблицами, необязательными условиями, необязательными параметрами
  • Управление местом применения отбора (в параметрах виртуальных таблиц, в секции «ГДЕ», в секции «ИМЕЮЩИЕ», в конкретном запросе пакета)

С описанием работы этой части расширения в официальной документации совсем плохо. Немного информации есть в справке к платформе.  Про работу с параметрами хорошо описано на диске ИТС.

Все в одном месте хорошо описано в этой статье.

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

Серия статей по СКД
Следующая статья..

Автор курсов образовательного проекта Profession Store. Павел Шемякин

Вступайте в нашу телеграмм-группу Инфостарт

Запросы СКД ограничения системы компоновки

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    244607    1340    419    

1122

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    4660    260    shapa_pro    25    

63

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    15200    ovetgana    112    

105

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

01.07.2025    8949    krasnoshchekovpavel    5    

66

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    8170    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    15369    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

СКД – инструмент, на базе которого в современных конфигурациях реализованы практически все отчеты. СКД используется в динамических списках, печатных формах и универсальных механизмах. Если построить простейший отчет может каждый разработчик, то с нюансами знакомы далеко не все. Расскажем о неочевидных на первый взгляд приемах, способных значительно повысить качество отчетов.

24.12.2024    12984    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    9385    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4605 10.04.20 08:18 Сейчас в теме
Это для совсем чайников?
top_1c; Vyacheslide; +2 Ответить
2. toypaul 64 10.04.20 10:35 Сейчас в теме
(1) Привет. Это вводная часть одной большой статьи. Планируем выложить все части в ближайшее время. Из этой статьи будут ссылки на все остальные части
3. herfis 522 10.04.20 11:01 Сейчас в теме
Предложение «АВТОУПОРЯДОЧИВАНИЕ». Обычно эта опция языка запросов редко используется, а в отчетах она практически не имеет смысла

Да ладно, редко используется. Часто использую. А как иначе? Явно сортировать по наименованию? Дык автоупорядочивание удобнее. В отчетах она не имеет смысла ровно по той же самой причине, что и ИТОГИ. СКД и итогами и упорядочиванием управляет сама.
4. toypaul 64 10.04.20 11:09 Сейчас в теме
(3) Давайте возьмем любую типовую конфигурацию и посчитаем в скольких запросах мы найдем АВТОУПОРЯДОЧИВАНИЕ. По мне так вообще плохая практика полагаться на что-то "автоматическое". Правильно именно сортировать по наименованию.

Пусть будет в моем мире - обычно, а в вашем нет. На этом и сойдемся. Может кто-то еще добавит.
5. herfis 522 10.04.20 14:43 Сейчас в теме
(4)
По мне так вообще плохая практика полагаться на что-то "автоматическое".

Только если не понимать, как оно работает.
6. stein13 12 10.04.20 20:27 Сейчас в теме
СКД - это конечно крутой инструмент, если им владеть, но не все возможно решить через СКД, к сожалению...
7. user1392234 11.04.20 08:47 Сейчас в теме
Спасибо, интересная тема!
8. ХамитоваРайса 11.04.20 08:56 Сейчас в теме
А как так? Автор статьи - Павел Шемякин, а публикует на Infostart Александр Овчинников? С чем связана такая странность? Автор чересчур скромный?
11. toypaul 64 13.04.20 08:14 Сейчас в теме
(8) Статья была написана в рабочее время, поэтому публикуется с рабочего аккаунта
9. Yashazz 4900 12.04.20 17:22 Сейчас в теме
Может, я чего не понял, но это что, очередной репост Хрусталёвой в погоне за стартманями?..
Не говоря уж о том, что Пермитин очень даже неплохо всё уже расписал, смысла повторяться никакого. Чем эта публикация отличается в лучшую сторону от его работ, а?
10. toypaul 64 13.04.20 08:14 Сейчас в теме
(9) Надо подождать когда будут выложены все части статьи. Потом сами и расскажите - чем лучше, чем хуже.
12. Cyberhawk 137 08.05.20 17:15 Сейчас в теме
Если у вас хоть раз возникал вопрос: почему запрос в консоли запросов выдает правильные данные, а в вашем отчете на СКД нет, то в этой статье вы найдете ответ
А где ответ?
13. toypaul 64 12.05.20 08:12 Сейчас в теме
(12) надо прочитать все части
14. Cyberhawk 137 12.05.20 09:16 Сейчас в теме
(13) По тексту публикации это, увы, никак не прослеживается.
В аннотации читаем "В этом цикле статей", в гиперссылке в конце читаем "Следующая статья", т.е. текущая публикация как раз позиционируется как "эта статья". Поэтому рекомендую то, что выделено жирным в моем предыдущем комментарии, исправить.
Для отправки сообщения требуется регистрация/авторизация