Конструктор запросов входит в состав конструктора схемы компоновки данных
Обновлено: 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 и 3
- Верны 1 и 4
Вопрос 07.27 экзамена 1С:Профессионал по платформе. Что может передаваться построителю отчета для его дальнейшего использования?
- Отчет конфигурации
- Внешний отчет
- Запрос
- Макет
- Верны ответы 3 и 4
- Верны все ответы
Правильный ответ пятый, среди свойств построителя отчета есть Макет и Текст (для запроса), но нет Отчета конфигурации и Внешнего отчета:
Вопрос 07.28 экзамена 1С:Профессионал по платформе. Может ли пользователь изменить состав отображаемых полей отчета?
- Только в модуле формы отчета, описав их языком запросов
- Может, используя настройки построителя отчета, выбирая их из числа доступных полей
- Нет
- Группировки, ВыбранныеПоля, ДоступныеПоля, ИзмеренияКолонки, Измерения-Строки, Отбор, Порядок, Фильтр
- ВыбранныеПоля, ИзмеренияКолонки, ИзмеренияСтроки, Показатели, УсловноеОформление, Дополнительные поля, Фильтр
- ВыбранныеПоля, ДоступныеПоля, ИзмеренияКолонки, ИзмеренияСтроки, Отбор, Порядок, УсловноеОформление
Вопрос 07.30 экзамена 1С:Профессионал по платформе. Для формирования табличного документа построитель отчета использует.
- макет, созданный разработчиком
- макет, генерируемый автоматически
- верно первое и второе
Правильный ответ третий - по умолчанию используется автоматический макет, но он может быть изменен, либо вовсе заменен, разработчиком.
Вопрос 07.31 экзамена 1С:Профессионал по платформе. Основными областями применения построителя отчетов являются.
- стандартные и аналитические отчеты
- произвольные выборки для обработки информации
- создание отчетов пользователями без доработки в конфигурации
- верны ответы 1 и 2
- верны ответы 1, 2 и 3
Правильный ответ пятый, построитель позволяет легко автоматизировать относительно несложные отчеты, иногда даже без конфигуральных настроек.
- Объект конфигурации
- Объект встроенного языка
- Конструктор
- Нет правильного ответа
Вопрос 07.37 экзамена 1С:Профессионал по платформе. Какими скобками выделяются расширения языка запросов, предназначенные для построителя отчета?
- Квадратные скобки – []
- Фигурные - <>
- Круглые - ()
- Не выделяются
Правильный ответ второй. Язык запросов системы 1C:Предприятие имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов. Такие инструкции оформляются в фигурные скобки <. >и игнорируются при обычном выполнении запроса. Вне скобок сам текст запроса для построителя, в фигурных скобках - запрос для настроек.
- Формируются автоматически на основе исходного текста запроса
- Могут быть указаны явно в тексте запроса с использованием расширения языка запросов
- Справедливы оба утверждения
Правильный ответ третий. Если нужно, настройки отдельно указываются в фигурных скобках:
Система компоновки данных - это инструмент разработки, предназначенный для построения отчетов и иной выходной информации. Разработка в СКД строго визуальна.
Открыть схему компоновки данных отчета можно на его закладке Основное:
Чтобы не форматировать каждый новый отчет по новому, можно сделать своего рода шаблоны оформления. Для этого используется общий объект конфигурации Макеты. Создадим новый макет с типом Макет оформления компоновки данных:
Вопрос 04.59 экзамена 1С:Профессионал по платформе. Для определения схемы источника данных в системе компоновки данных используется:
- Конструктор запроса
- Конструктор запроса с обработкой результата
- Конструктор схемы компоновки данных
- Конструктор настроек компоновки данных
- Один
- Количество источников ограничено
- Количество источников не ограниченно
Вопрос 04.61 экзамена 1С:Профессионал по платформе. Данные для источников в системе компоновки данных могут браться из:
- памяти компьютера
- внешних источников
- базы данных
- Верны ответы 1 и 2
- Верны все ответы
Вопрос 04.62 экзамена 1С:Профессионал по платформе. Запрос для системы компоновки данных необходимо определять:
- полностью заранее, т.е. статический
- только обязательные поля, т.е. динамический
- только таблицы, т.е. определяемый
Вопрос 04.63 экзамена 1С:Профессионал по платформе. Конструктор настроек компоновки данных позволяет:
- определить новые наборы данных
- определить новые настройки для отчета
- изменить текущие настройки
Правильный ответ второй, им определяются только новые настройки. При сохранении их прежние настройки затираются.
Вопрос 04.64 экзамена 1С:Профессионал по платформе. Конструктор настроек компоновки данных позволяет настроить вывод информации в виде:
- Диаграммы
- Списка
- Таблицы
- Верны все варианты
- Только в конфигураторе
- Только в режиме 1С:Предприятие
- Доступен и в конфигураторе и 1С:Предприятии
Вопрос 04.66 экзамена 1С:Профессионал по платформе. Конструктор макета оформления компоновки данных используется для:
- создания и настройки фиксированных макетов в системе компоновки данных
- для создания и изменения шаблонов вывода информации
- определения настройки выводимой информации
Правильный ответ второй - см. выше создание общего макета. Макет определяет шаблон ("стиль" в терминах MS Office) форматирования отчетов и прочих выходных данных.
Вопрос 04.67 экзамена 1С:Профессионал по платформе. Конструктор макета оформления компоновки данных открывается:
- из конструктора макетов при указании типа макета "Макет оформления компоновки данных"
- из конструктора настроек компоновки данных
- из конструктора схемы компоновки данных
- из конструктора запросов
6 комментариев:
Добрый день. В 4-66 неправильный ответ . Верный ответ 2. - для создания и изменения шаблонов вывода информации. ( проверила в официальном платном тесте 1с )
ps : огромное спасибо за сайт и ваш труд!
Не могу понять суть вопроса.
04.62 Запрос для системы компоновки данных необходимо определять:
1. полностью заранее, т.е. статический
2. только обязательные поля, т.е. динамический
3. только таблицы, т.е. определяемый
Как то не по русски составлено предложение. Вот как звучит ответ: "Запрос для системы компоновки данных необходимо определять только обязательные поля, т.е. динамический". То ли предлога не хватает, то ли с головой моей что то не так. Помогите понять, что от меня хочет услышать 1С?
Что такое "обязательные поля"? Что такое "динамический запрос"?
Я тоже не понял вопрос.
Вот что написано в пояснениях из мобильного приложения:
---
Для запроса компоновки данных определяется набор полей, которые могут потребоваться.
Конечный запрос зависит от настроек вывода полей.
---
. Понятней не стало :)
Да уж. Косноязычие авторов тестов во всей красе.
Суть же здесь такая. Пользователь может сам в отчете построенном на СКД добавлять и удалять поля, в т.ч. и те что программист не описывал явно.
Варианты:
1) Полностью заранее, статический запрос - значит все используемые таблицы объектов и их поля в нем заранее описаны, и не изменяются (пользователем).
2) только обязательные поля - значит программист должен указать все используемые таблицы и те их поля, которые будет использовать (выводить пользователю). Это "Динамический" в том смысле, что состав полей может меняться динамически в зависимости от внесенных пользователем настроек.
3) описать в запросе только таблицы, не указывая полей. Так СКД не работает, ей нужны поля.
3)
Платформа предлагает разработчику собственно Конструктор запроса и Конструктор запроса с обработкой результата. В первом случае, конструктор позволяет чисто визуальными средствами определить выборку данных из таблиц системы:
Конструктор запросов работает как в режиме Предприятие (как обработка Консоль запросов), так и в Конфигураторе. Использование в режиме Предприятие позволяет квалифицированным пользователям самостоятельно получать выборки данных, для которых нет типовых отчетов.
- Сформировать текст нового запроса
- Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса и получение результата выполнения запроса
- Отредактировать текст имеющегося запроса
- Верны ответы 1 и 3
- Все вышеперечисленное
Вопрос 04.42 экзамена 1С:Профессионал по платформе. Использование конструктора запроса с обработкой результата позволяет:
- Сформировать текст нового запроса
- Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса, получение и обработку результата выполнения запроса
- Отредактировать текст имеющегося запроса
- Все вышеперечисленное
- Верны ответы 1 и 3
Вопрос 04.43 экзамена 1С:Профессионал по платформе. При сохранении текста запроса, открытого повторно с помощью конструктора запроса, без внесения в этот текст изменений:
- Весь первоначальный текст остается без изменений
- Из первоначального текста будут удалены только комментарии
- В первоначальном тексте комментарии останутся, а будут удалены только конструкции языка запросов построителя отчетов
- Из первоначального текста будут удалены и комментарии, и конструкции языка запросов построителя отчетов
- С помощью пункта главного меню "Текст - Конструктор запроса…"
- С помощью кнопки "Конструкторы - Конструктор запросов" на закладке "Макеты" из окна редактирования объекта
- С помощью пункта всплывающего контекстного меню "Конструктор запроса…", появляющегося при нажатии в тексте модуля правой клавиши мыши
- Верно все вышеперечисленное
- Верны ответы 1 и 3
- Разработчиками, так как необходимо знание языка запросов
- Квалифицированными пользователями без использования конфигуратора
- Верно все вышеперечисленное
- Нет верного ответа
Вопрос 04.46 экзамена 1С:Профессионал по платформе. На закладке "Таблицы и поля" конструктора запросов задают:
- Источники данных запросов, в качестве которых могут выступать реальные и виртуальные таблицы
- Набор полей из таблиц - источников данных запроса
- Поля в виде произвольного выражения
- Верны ответы 1 и 2
- Верно все вышеперечисленное
Вопрос 04.47 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вложенного запроса необходимо:
- Открыть закладку "Таблицы и поля". В командной панели над деревом "База данных" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
- Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
- Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
- В конструкторе запросов создать вложенный запрос нельзя
Вопрос 04.48 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вычисляемого поля необходимо:
- Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Изменить текущий элемент". В открывшемся окне добавить новое поле
- Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
- Открыть закладку "Объединения/Псевдонимы". В командной панели над списком полей нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
- Создать вычисляемое поле, можно только изменив текст запроса "вручную"
Вопрос 04.49 экзамена 1С:Профессионал по платформе. Для создания в запросе строк, сгруппированных с помощью агрегатных функций, на закладке "Группировка" конструктора запросов обязательно должны быть заполнены:
- Только список групповых полей. Указание суммируемых полей не обязательно
- Только список суммируемых полей, при этом остальные поля автоматически попадут в секцию СГРУППИРОВАТЬ ПО в тексте запроса
- Обязательным является указание как групповых, так и суммируемых полей
Вопрос 04.50 экзамена 1С:Профессионал по платформе. В конструкторе запросов условия на значения агрегатных функций можно накладывать:
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: объединяем наборы данных
Автор уроков и преподаватель школы: Владимир Милькин
На прошлом уроке мы познакомились с соединением наборов данных. Сегодня же мы научимся объединять различные наборы данных в один набор.
Ставим цель
- Создать новый отчёт, в котором будут выводиться закупки (дата, поставщик) и продажи (дата, клиент) одновременно.
- Для этого сделаем два отдельных набора данных с выборкой из таблиц документов "ПоступлениеЕды" и "ПродажаЕды", а затем объединим их в один набор.
Создаем новый отчет
Открываем базу "Гастроном" в конфигураторе и через главное меню "Файл->Новый. " создаём отчёт:
Вид документа - "Внешний отчет":
В форме нового отчёта указываем имя "Урок7" и нажимаем кнопку "Открыть схему компоновки данных":
Соглашаемся с именем макета по умолчанию:
Создаем первый набор данных
Создаём новый набор данных - запрос (через зелёный плюсик), выделяем его и вызываем конструктор запроса:
Делаем выборку из таблицы документов "ПоступлениеЕды" следующих полей:
Вот он, текст нашего запроса к таблице по закупкам:
Создаем второй набор данных
Выделяем мышкой пункт "Наборы данных".
. и добавляем ещё один набор данных - запрос:
Выделяем его и вызываем конструктор запроса:
Делаем выборку из таблицы документов "ПродажаЕды" следующих полей:
Текст запроса будет таким:
Сделаем имена более читабельными. Для этого двойным щелчком переименуем "НаборДанных1" в "Покупки" и поле "Дата" в "ДатаПокупки":
Второй же набор "НаборДанных2" переименуем в "Продажи", а поле "Дата" переименуем в "ДатаПродажи":
Мы получили два набора данных. В первом - информация по покупкам (дата покупки и поставщик), во втором- информация по продажам (дата продажи и клиент). Давайте попробуем теперь вывести всё это в отчет.
Проверяем результат
Переходим на закладку "Настройки" и нажимаем волшебную палочку для вызова конструктора:
Тип отчета - "Список. ":
Выбираем поля для отчёта из обоих наборов:
Сохраняем отчёт и формируем в режиме пользователя:
Получилось не совсем то, что ожидали. Получилось перекрёстное соединение одного набора данных с другим. А нам нужно именно объединение. Исправим.
Создаем объединение наборов данных
Для этого переходим на закладку "Наборы данных".
Снова выделяем мышкой пункт "Наборы данных".
. и добавляем туда набор данных - объединение:
Видим, что этот набор добавился и у него совершенно другая картинка (не таблица, как у двух других, а два объединяющихся круга):
Затем перетаскиваем мышкой наборы "Покупки" и "Продажи" в "НаборДанных1":
Вот это и значит, что теперь "Покупки" и "Продажи" будут не соединяться, а именно объединяться в отчёте.
Сохраним отчёт и сформируем в режиме пользователя:
Отлично. То, что надо.
А давайте зададимся целью объединить столбцы "Поставщик" и "Клиент" в один? И пусть этот новый столбец будет называться "Контрагент".
Для этого заходим на закладку "Наборы данных" и меняем имя поля "Поставщик" в наборе "Покупки" на имя "Контрагент":
Затем в наборе "Продажи" меняем имя поля "Клиент" на имя "Контрагент":
Переходим на закладку "Настройки", выделяем пункт "Отчет", переходим внизу на закладку "Выбранные поля", удаляем уже не существующие поля "Поставщик" и "Клиент" и перетаскиваем из первой колонки во вторую новое поле "Контрагент":
Должно получится вот так:
Готово
Сохраняем отчёт и проверяем в режиме пользователя:
Замечательно всё получилось.
Войдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Читайте также: