Конструктор запросов входит в состав конструктора схемы компоновки данных

Обновлено: 28.03.2024

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Автор уроков и преподаватель школы: Владимир Милькин

Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.

Готовим рабочее место

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .

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

На вашем рабочем столе должен появиться вот такой ярлык:

Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.

Если вы её удалили - скачайте заново по следующей ссылке, распакуйте и подключите в список баз.

Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).

Ставим цель

Цель этого урока - создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:

  • Имя
  • Пол
  • Любимый цвет клиента.

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

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

Создаём отчёт

Запускаем конфигуратор для базы "Гастроном":

Из главного меню выбираем пункт "Файл"->"Новый. ":

Выбираем "Внешний отчет":

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1", а затем жмём кнопку "Открыть схему компоновки данных":

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных" и жмём кнопку "Готово":

Открылось основное рабочее окно, с множеством закладок и полей, в котором мы и будем настраивать нашу схему компоновки данных.

Не нужно пугаться - возможностей здесь действительно много, но далеко не все из них нам нужны. Особенно на первом уроке.

Сейчас мы находимся на закладке "Наборы данных". На ней и останемся.

Пишем запрос через конструктор

Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.

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

Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт "Добавить набор данных - запрос":

Добавился набор данных с именем "НаборДанных1", но мы видим, что поле "Запрос" в нижней части окна пока пустое:

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

В этом запросе мы выбрали три поля ("Наименование", "Пол" и "ЛюбимыйЦвет") из таблицы "Справочник.Клиенты".

Но не торопитесь писать этот текст в поле "Запрос" вручную.

Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется "Конструктор запроса".

Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса. " в верхней правой части поля "Запрос":

В открывшемся окне перетащим таблицу "Клиенты" из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:

Получилось вот так:

Далее раскроем таблицу "Клиенты" во втором столбце по знаку "Плюс", чтобы увидеть все её поля и перетащим поле "Наименование" из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле "Наименование":

Получилось вот так:

Поступим точно так же с полями "Пол" и "ЛюбимыйЦвет". Результат будет таким:

Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".

Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:

Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку "Настройки" и нажмём кнопку конструктора настроек (волшебная палочка):

В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее":

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет", "Наименование" и "Пол"):

Получим вот такой результат и нажмём кнопку "ОК":

Конструктор настроек закрылся и появился пункт "Детальные записи":

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню "Файл"->"Сохранить":

Я сохраню его на рабочий стол под именем "Урок1":

Проверяем отчёт в режиме пользователя

Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:

Имя пользователя "Администратор", пароля нет:

Через меню выберем пункт "Файл"->"Открыть. ":

И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":

Открылась форма отчёта, нажмём кнопку "Сформировать":

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл"->"Печать. ":

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

То ли ещё будет, наберитесь терпения

Войдите на сайт как ученик

Для учеников

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

По кнопке ОК, откроется конструктор, аналогичный конструктору запросов, но с двумя дополнительными закладками:

Тут как бы упрощенная версия СКД, можно настроить особенности вывода информации, группировки, итоги, и оформление.

На закладке Выходная форма описываем особенности вывода отчета - доступные пункты меню, отборы и т.д.:

  1. Для динамического создания отчета как программными, так и интерактивными средствами
  2. Для динамического создания отчета программными средствами
  3. Для динамического создания отчета интерактивными средствами

Правильный ответ первый. Интерактивная работа с построителем разобрана выше. Также, можно работать с ним и программно, для этого существует объект встроенного языка ПостроительОтчета.

  1. Конструктор запросов входит в состав конструктора выходных форм
  2. Конструктор выходных форм входит в состав конструктора запросов
  3. Конструктор выходных форм может использовать построитель отчетов
  4. Конструктор выходных форм всегда использует построитель отчетов
  5. Верны 1 и 3
  6. Верны 1 и 4

Вопрос 07.27 экзамена 1С:Профессионал по платформе. Что может передаваться построителю отчета для его дальнейшего использования?

  1. Отчет конфигурации
  2. Внешний отчет
  3. Запрос
  4. Макет
  5. Верны ответы 3 и 4
  6. Верны все ответы

Правильный ответ пятый, среди свойств построителя отчета есть Макет и Текст (для запроса), но нет Отчета конфигурации и Внешнего отчета:

Вопрос 07.28 экзамена 1С:Профессионал по платформе. Может ли пользователь изменить состав отображаемых полей отчета?

  1. Только в модуле формы отчета, описав их языком запросов
  2. Может, используя настройки построителя отчета, выбирая их из числа доступных полей
  3. Нет
  1. Группировки, ВыбранныеПоля, ДоступныеПоля, ИзмеренияКолонки, Измерения-Строки, Отбор, Порядок, Фильтр
  2. ВыбранныеПоля, ИзмеренияКолонки, ИзмеренияСтроки, Показатели, УсловноеОформление, Дополнительные поля, Фильтр
  3. ВыбранныеПоля, ДоступныеПоля, ИзмеренияКолонки, ИзмеренияСтроки, Отбор, Порядок, УсловноеОформление

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

  1. макет, созданный разработчиком
  2. макет, генерируемый автоматически
  3. верно первое и второе

Правильный ответ третий - по умолчанию используется автоматический макет, но он может быть изменен, либо вовсе заменен, разработчиком.

Вопрос 07.31 экзамена 1С:Профессионал по платформе. Основными областями применения построителя отчетов являются.

  1. стандартные и аналитические отчеты
  2. произвольные выборки для обработки информации
  3. создание отчетов пользователями без доработки в конфигурации
  4. верны ответы 1 и 2
  5. верны ответы 1, 2 и 3

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

  1. Объект конфигурации
  2. Объект встроенного языка
  3. Конструктор
  4. Нет правильного ответа

Вопрос 07.37 экзамена 1С:Профессионал по платформе. Какими скобками выделяются расширения языка запросов, предназначенные для построителя отчета?

  1. Квадратные скобки – []
  2. Фигурные - <>
  3. Круглые - ()
  4. Не выделяются

Правильный ответ второй. Язык запросов системы 1C:Предприятие имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов. Такие инструкции оформляются в фигурные скобки <. >и игнорируются при обычном выполнении запроса. Вне скобок сам текст запроса для построителя, в фигурных скобках - запрос для настроек.

  1. Формируются автоматически на основе исходного текста запроса
  2. Могут быть указаны явно в тексте запроса с использованием расширения языка запросов
  3. Справедливы оба утверждения

Правильный ответ третий. Если нужно, настройки отдельно указываются в фигурных скобках:

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

Чтобы не форматировать каждый новый отчет по новому, можно сделать своего рода шаблоны оформления. Для этого используется общий объект конфигурации Макеты. Создадим новый макет с типом Макет оформления компоновки данных:

Вопрос 04.59 экзамена 1С:Профессионал по платформе. Для определения схемы источника данных в системе компоновки данных используется:

  1. Конструктор запроса
  2. Конструктор запроса с обработкой результата
  3. Конструктор схемы компоновки данных
  4. Конструктор настроек компоновки данных
  1. Один
  2. Количество источников ограничено
  3. Количество источников не ограниченно

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

  1. памяти компьютера
  2. внешних источников
  3. базы данных
  4. Верны ответы 1 и 2
  5. Верны все ответы

Вопрос 04.62 экзамена 1С:Профессионал по платформе. Запрос для системы компоновки данных необходимо определять:

  1. полностью заранее, т.е. статический
  2. только обязательные поля, т.е. динамический
  3. только таблицы, т.е. определяемый

Вопрос 04.63 экзамена 1С:Профессионал по платформе. Конструктор настроек компоновки данных позволяет:

  1. определить новые наборы данных
  2. определить новые настройки для отчета
  3. изменить текущие настройки

Правильный ответ второй, им определяются только новые настройки. При сохранении их прежние настройки затираются.

Вопрос 04.64 экзамена 1С:Профессионал по платформе. Конструктор настроек компоновки данных позволяет настроить вывод информации в виде:

  1. Диаграммы
  2. Списка
  3. Таблицы
  4. Верны все варианты
  1. Только в конфигураторе
  2. Только в режиме 1С:Предприятие
  3. Доступен и в конфигураторе и 1С:Предприятии

Вопрос 04.66 экзамена 1С:Профессионал по платформе. Конструктор макета оформления компоновки данных используется для:

  1. создания и настройки фиксированных макетов в системе компоновки данных
  2. для создания и изменения шаблонов вывода информации
  3. определения настройки выводимой информации

Правильный ответ второй - см. выше создание общего макета. Макет определяет шаблон ("стиль" в терминах MS Office) форматирования отчетов и прочих выходных данных.

Вопрос 04.67 экзамена 1С:Профессионал по платформе. Конструктор макета оформления компоновки данных открывается:

  1. из конструктора макетов при указании типа макета "Макет оформления компоновки данных"
  2. из конструктора настроек компоновки данных
  3. из конструктора схемы компоновки данных
  4. из конструктора запросов

6 комментариев:

Добрый день. В 4-66 неправильный ответ . Верный ответ 2. - для создания и изменения шаблонов вывода информации. ( проверила в официальном платном тесте 1с )

ps : огромное спасибо за сайт и ваш труд!

Не могу понять суть вопроса.

04.62 Запрос для системы компоновки данных необходимо определять:
1. полностью заранее, т.е. статический
2. только обязательные поля, т.е. динамический
3. только таблицы, т.е. определяемый

Как то не по русски составлено предложение. Вот как звучит ответ: "Запрос для системы компоновки данных необходимо определять только обязательные поля, т.е. динамический". То ли предлога не хватает, то ли с головой моей что то не так. Помогите понять, что от меня хочет услышать 1С?

Что такое "обязательные поля"? Что такое "динамический запрос"?

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

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

Варианты:
1) Полностью заранее, статический запрос - значит все используемые таблицы объектов и их поля в нем заранее описаны, и не изменяются (пользователем).
2) только обязательные поля - значит программист должен указать все используемые таблицы и те их поля, которые будет использовать (выводить пользователю). Это "Динамический" в том смысле, что состав полей может меняться динамически в зависимости от внесенных пользователем настроек.
3) описать в запросе только таблицы, не указывая полей. Так СКД не работает, ей нужны поля.
3)

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

Конструктор запросов работает как в режиме Предприятие (как обработка Консоль запросов), так и в Конфигураторе. Использование в режиме Предприятие позволяет квалифицированным пользователям самостоятельно получать выборки данных, для которых нет типовых отчетов.

  1. Сформировать текст нового запроса
  2. Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса и получение результата выполнения запроса
  3. Отредактировать текст имеющегося запроса
  4. Верны ответы 1 и 3
  5. Все вышеперечисленное

Вопрос 04.42 экзамена 1С:Профессионал по платформе. Использование конструктора запроса с обработкой результата позволяет:

  1. Сформировать текст нового запроса
  2. Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса, получение и обработку результата выполнения запроса
  3. Отредактировать текст имеющегося запроса
  4. Все вышеперечисленное
  5. Верны ответы 1 и 3

Вопрос 04.43 экзамена 1С:Профессионал по платформе. При сохранении текста запроса, открытого повторно с помощью конструктора запроса, без внесения в этот текст изменений:

  1. Весь первоначальный текст остается без изменений
  2. Из первоначального текста будут удалены только комментарии
  3. В первоначальном тексте комментарии останутся, а будут удалены только конструкции языка запросов построителя отчетов
  4. Из первоначального текста будут удалены и комментарии, и конструкции языка запросов построителя отчетов
  1. С помощью пункта главного меню "Текст - Конструктор запроса…"
  2. С помощью кнопки "Конструкторы - Конструктор запросов" на закладке "Макеты" из окна редактирования объекта
  3. С помощью пункта всплывающего контекстного меню "Конструктор запроса…", появляющегося при нажатии в тексте модуля правой клавиши мыши
  4. Верно все вышеперечисленное
  5. Верны ответы 1 и 3
  1. Разработчиками, так как необходимо знание языка запросов
  2. Квалифицированными пользователями без использования конфигуратора
  3. Верно все вышеперечисленное
  4. Нет верного ответа


Вопрос 04.46 экзамена 1С:Профессионал по платформе. На закладке "Таблицы и поля" конструктора запросов задают:

  1. Источники данных запросов, в качестве которых могут выступать реальные и виртуальные таблицы
  2. Набор полей из таблиц - источников данных запроса
  3. Поля в виде произвольного выражения
  4. Верны ответы 1 и 2
  5. Верно все вышеперечисленное

Вопрос 04.47 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вложенного запроса необходимо:

  1. Открыть закладку "Таблицы и поля". В командной панели над деревом "База данных" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  2. Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  3. Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  4. В конструкторе запросов создать вложенный запрос нельзя

Вопрос 04.48 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вычисляемого поля необходимо:

  1. Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Изменить текущий элемент". В открывшемся окне добавить новое поле
  2. Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  3. Открыть закладку "Объединения/Псевдонимы". В командной панели над списком полей нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  4. Создать вычисляемое поле, можно только изменив текст запроса "вручную"

Вопрос 04.49 экзамена 1С:Профессионал по платформе. Для создания в запросе строк, сгруппированных с помощью агрегатных функций, на закладке "Группировка" конструктора запросов обязательно должны быть заполнены:

  1. Только список групповых полей. Указание суммируемых полей не обязательно
  2. Только список суммируемых полей, при этом остальные поля автоматически попадут в секцию СГРУППИРОВАТЬ ПО в тексте запроса
  3. Обязательным является указание как групповых, так и суммируемых полей

Вопрос 04.50 экзамена 1С:Профессионал по платформе. В конструкторе запросов условия на значения агрегатных функций можно накладывать:

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: объединяем наборы данных

Автор уроков и преподаватель школы: Владимир Милькин

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

Ставим цель

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

Создаем новый отчет

Открываем базу "Гастроном" в конфигураторе и через главное меню "Файл->Новый. " создаём отчёт:

Вид документа - "Внешний отчет":

В форме нового отчёта указываем имя "Урок7" и нажимаем кнопку "Открыть схему компоновки данных":


Соглашаемся с именем макета по умолчанию:

Создаем первый набор данных

Создаём новый набор данных - запрос (через зелёный плюсик), выделяем его и вызываем конструктор запроса:


Делаем выборку из таблицы документов "ПоступлениеЕды" следующих полей:

Вот он, текст нашего запроса к таблице по закупкам:


Создаем второй набор данных

Выделяем мышкой пункт "Наборы данных".


. и добавляем ещё один набор данных - запрос:


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


Делаем выборку из таблицы документов "ПродажаЕды" следующих полей:

Текст запроса будет таким:


Сделаем имена более читабельными. Для этого двойным щелчком переименуем "НаборДанных1" в "Покупки" и поле "Дата" в "ДатаПокупки":


Второй же набор "НаборДанных2" переименуем в "Продажи", а поле "Дата" переименуем в "ДатаПродажи":


Мы получили два набора данных. В первом - информация по покупкам (дата покупки и поставщик), во втором- информация по продажам (дата продажи и клиент). Давайте попробуем теперь вывести всё это в отчет.

Проверяем результат

Переходим на закладку "Настройки" и нажимаем волшебную палочку для вызова конструктора:


Тип отчета - "Список. ":

Выбираем поля для отчёта из обоих наборов:

Сохраняем отчёт и формируем в режиме пользователя:


Получилось не совсем то, что ожидали. Получилось перекрёстное соединение одного набора данных с другим. А нам нужно именно объединение. Исправим.

Создаем объединение наборов данных

Для этого переходим на закладку "Наборы данных".

Снова выделяем мышкой пункт "Наборы данных".


. и добавляем туда набор данных - объединение:

Видим, что этот набор добавился и у него совершенно другая картинка (не таблица, как у двух других, а два объединяющихся круга):


Затем перетаскиваем мышкой наборы "Покупки" и "Продажи" в "НаборДанных1":


Вот это и значит, что теперь "Покупки" и "Продажи" будут не соединяться, а именно объединяться в отчёте.

Сохраним отчёт и сформируем в режиме пользователя:


Отлично. То, что надо.

А давайте зададимся целью объединить столбцы "Поставщик" и "Клиент" в один? И пусть этот новый столбец будет называться "Контрагент".

Для этого заходим на закладку "Наборы данных" и меняем имя поля "Поставщик" в наборе "Покупки" на имя "Контрагент":


Затем в наборе "Продажи" меняем имя поля "Клиент" на имя "Контрагент":


Переходим на закладку "Настройки", выделяем пункт "Отчет", переходим внизу на закладку "Выбранные поля", удаляем уже не существующие поля "Поставщик" и "Клиент" и перетаскиваем из первой колонки во вторую новое поле "Контрагент":


Должно получится вот так:


Готово

Сохраняем отчёт и проверяем в режиме пользователя:


Замечательно всё получилось.

Войдите на сайт как ученик

Для учеников

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

Читайте также: