1с флаг без повторяющихся записей на закладке дополнительно конструктора запросов позволяет
Есть мастера, пишущие запросы текстом, но такие лентяи, как я сам, предпочитают всё-таки конструктор.
Хочется отметить приёмы, которые будут полезны для ленивых, но не очень опытных программистов:
- Не трогай то, что работает. При внесении правки в запрос независимо от того, является ли он пакетным, есть всегда ленивый приём. Мы на вкладке Пакет запросов копируем текущий и/или читай последний запрос. Далее в оригинале, который мы копируем, вставляем помещение всего его вывода во временную таблицу, как-нибудь её вразумительно обозвав. Например, РаботающаяКопияПередПравкой20190422
- Ленивая ссылка на пустое значение. К сожалению, мне неизвестно, как при помощи этого приёма получить предопределённое значение кроме одного этого случая с пустым значением. Предположим, у нас есть конструкция, в которой в условии, где должно стоять пустое значение. Ну например мы мышкой скопировали на вкладке условие значение таблицы, которое мы хотим проверить на заполненность или в выражении мы хотим преобразовать значение типа NULL в пустое значение указанного типа. В запросе вида
Для иллюстрации данного примера вставим ISNULL перед ВыработкаМатериалов.Номенклатура (Так эргономичнее, чем писать ЕСТЬNULL), а далее для получения пустого значения выделяем пустой участок и вызываем конструктор из конструктора и делаем в нём выборку объекта нужного типа. Теперь после возвращения в код основного запроса код у нас приобретает следующий вид
И нам остается только откорректировать полученный текст, приведя весь запрос к виду
то есть мы вызывали конструктор из конструктора для того, чтобы не набирать вручную Справочник.Номенклатура . Аналогичный приём работает для случаев, когда нам надо обратиться к заданному типу и использовать конструкции вида ССЫЛКА и ВЫРАЗИТЬ КАК
Практически точно такой же приём удобно использовать для конструкций вида РазностьДат и Между. Например, для запроса вида
при необходимости добавить поле с разностью дат вызываем конструктор, обращаясь к той же таблице и получая после вызова текст
который мы потом корректируем
и последний приём, который также может быть не вполне очевиден. Если Вы получаете на входе постановку вида "
Используя табличную часть "Материалы" документа "ПриходнаяНакладная" напишите текст запроса,
возвращающий сгруппированные сведения о закупках материалов:
Номенклатура - материал
Дата - дата покупки (без учета времени)
Сумма - сумма покупки
Количество - количество приобретения
Ассортимент - количество приобретенных позиций за дату (только для итогов, для детальных записей - 0), то первый же Ваш запрос должен выглядеть примерно так
и создаваться через редактирование уже, очевидно, не вызовом конструктора из конструктора, а вызовом из конструктора окошка для редактирования текущего запроса в виде текста.
Запросы в 1С обеспечивают табличный способ доступа к данным. Язык запросов заточен под удобное чтение и преобразование больших массивов информации; изменять данные с его помощью нельзя. Язык запросов - это отдельный язык, не являющийся частью встроенного языка 1С:Предприятие; он достаточно сходен с SQL.
Запрос всегда начинается с ключевого слова ВЫБРАТЬ; собственно кроме него в запросе может и не быть других ключевых слов, если секция ВЫБРАТЬ полностью описывает источник и результат запроса, например:
- группировка
- объединения разных таблиц-источников
- условия, ограничивающие выборку
- порядок представления результата
- расчет итогов по каким-либо полям
Запросы можно набирать просто вручную, но намного удобнее использовать специальный инструмент - конструктор запросов:
Рассмотрим далее вопросы экзамена по общим моментам табличной модели и запросов.
Вопрос 07.04 экзамена 1С:Профессионал по платформе. Для повышения скорости выполнения запроса необходимо:
- Задавать параметры большинства реальных таблиц
- Задавать параметры большинства виртуальных таблиц
- Вместо задания параметров у реальной или виртуальной таблицы использовать отбор, заданный конструкцией языка запросов "ГДЕ"
- Верны ответы 1 и 2
Верный ответ второй. Правильно параметризованный запрос работает с таблицей итогов регистра, а не с основной таблицей, такой способ доступа быстрее.
Вопрос 07.15 экзамена 1С:Профессионал по платформе. Можно ли, используя конструктор запроса, повлиять на порядок записей в результирующей таблице запроса?
- Нельзя
- Это можно сделать на закладке "Порядок"
- Это можно сделать на закладке "Объединения/Псевдонимы"
- Верны ответы 2 и 3
Правильный ответ четвертый. Закладка Порядок для этого предназначена очевидно; поля тут можно двигать стрелками, либо включить Автоупорядочивание (по основному представлению объекта):
На закладке Объединения/Псевдонимы также можно регулировать порядок полей:
Вопрос 07.34 экзамена 1С:Профессионал по платформе. При описании группировки в тексте запроса:
- Все поля должны делиться на те, по которым производится группировка, и на агрегатные функции (рассчитываемые поля)
- Все поля должны делиться на те, по которым производится группировка, на агрегатные функции (рассчитываемые поля) и на поля вложенных таблиц
- Чем выше определяется группировка, тем выше должно определяться поле в запросе
- Перечисленные ограничения не действуют
Правильный ответ второй. Вложенные таблицы не попадают ни в группируемые, ни в агрегируемые поля.
Вопрос 07.35 экзамена 1С:Профессионал по платформе. Левое внешнее соединение означает, что в результат соединения войдут:
Правильный ответ первый. Из левой таблицы будет выбрано все, из правой - только совпадающее по ключу с левой.
Вопрос 07.36 экзамена 1С:Профессионал по платформе. С помощью какой агрегатной функции можно узнать количество записей в результате запроса?
Правильный ответ второй - функция КОЛИЧЕСТВО, и в ней нужно специфицировать, по каким полям считать количество (в примере по всем).
Предлагаем рассмотреть инструмент, предназначенный для упрощения построения запросов в 1С. Он называется конструктором запросов. Как его запустить? Чем именно он помогает пользователю? Давайте разберемся вместе!
Для запуска конструктора запросов можно щёлкнув правой кнопкой мышь в любое место программного кода и выбрать «Конструктор запроса…».
Так же конструктор запроса используется в схеме компоновки данных при построении отчёта. Рассмотрим конструктор запросов на примере отчёта из статьи про СКД. Для этого в схеме компоновки данных нажимаем «Конструктор запроса…»
Вкладка «Таблицы и поля»
На этой вкладке мы выбираем поля значения которых нам надо получить в запросе. В левой части экрана представлены объекты конфигурации из которых можно получать данные (справочники, документы, регистры и тд.).
В центре расположены таблицы, которые мы выбрали для получения данных. Это могут быть как физические таблицы, так и виртуальные, вложенные запросы, временные таблицы и тд.
В правой части экрана расположены поля, которые мы выбрали в запрос.
Вкладка «Группировка»
На этой вкладке можно выбрать поля которые необходимо сгруппировать или суммировать. Группируемы поля необходимо добавить в поле «Группируемое поле», суммируемые поля в «Суммируемое поле».
Вкладка «Условия»
На данной вкладке мы задаем значения условий. В нашем примере необходимо было выбрать все элементы справочника «Номенклатура» имеющие определённый тип номенклатуры. В левой части экрана расположены поля которые можно выбрать для установления условия. Выбор производится двойным кликом. Или можно нажать кнопку «Добавить».
Вкладка «Дополнительно»
«Тип запроса» позволяет установить тип получаемого результата. Доступные варианты «Выборка данных», «Создание временной таблицы», «Уничтожение временной таблицы».
Вкладка «Объединения\псевдонимы»
На данной вкладке можно задать псевдонимы для выбранных нами полей. В случае, если у нас несколько запросов, то здесь же устанавливается объединение.
Вкладка «Порядок»
На данной вкладке можно выбрать порядок, по которому будет проходить сортировка результатов запроса.
Вкладка «Компоновка»
Служебная вкладка, определяющая поля СКД. Подробно её рассмотрим в отдельной статье.
Вкладка «Пакет запросов»
На данной вкладке отображаются все наши пакеты запросов.
Отдельно стоит упомянуть кнопку «Запрос», доступную на всех вкладках «Конструктора запросов». Она предназначена для просмотра и изменения текста запроса.
Конструктор запроса с обработкой результата
Разновидность конструктора запросов, используемая в программном коде.
Когда мы используем «Конструктор запроса», то необходимо самостоятельно записывать программный код для выполнения запроса и действий совершаемых с полученным результатом запроса. Для «Конструктора запроса с обработкой результат» программный код работы с запросом формируется автоматически.
Для запуска конструктора необходимо в любом месте программного кода кликнуть правой кнопкой мыши и выбрать из контекстного меню «Конструктор запроса с обработкой результата».
Первая вкладка «Конструктора запроса с обработкой результата» предназначена для выбора типа обработки. Мы можем выводить результат в табличный документ или диаграмму, или просто добавить код для обхода результата. Чаще всего выбирают значение «Обход результата».
Остальные вкладки «Конструктора запроса с обработкой результата» аналогичны «Конструктору запроса».
После завершения работы конструктора в программном коде появляется часть кода созданная «Конструктором запроса с обработкой результата». Она выделена комментариями «
Решать вопросы самостоятельно или пользоваться услугами специалистов?
Если в вашей компании есть достаточно компетентный человек, вы можете всегда можете поручить ему отвечать на все вопросы, связанные с 1С. Если же такого специалиста нет или ваши сотрудники заняты стратегическими задачами и отвлекать их будет нецелесообразно, лучше обратиться к сторонним специалистам.
Мы предлагаем услуги по сопровождению 1С , в рамках которого наши сотрудники смогут оперативно решать подобные и многие другие проблемы. Большой опыт работ и сертифицированные специалисты позволят обеспечить бесперебойную работу с программой, защиту информации и оптимизацию бизнес-процессов.
Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы наши сотрудники сориентировали по стоимости работ, подобрали оптимальное решение и рассказали, как начать сотрудничество. Ждем вас!
Список вопросов 1c :Профессионал Платформа 8.3 Глава 7
Навигация (только номера заданий)
0 из 48 заданий окончено
Информация
07. Табличная модель прикладного решения
Вы уже проходили тест ранее. Вы не можете запустить его снова.
Вы должны войти или зарегистрироваться для того, чтобы начать тест.
Вы должны закончить следующие тесты, чтобы начать этот:
Результаты
Вы набрали 0 из 0 баллов ( 0 )
Рубрики
При настройке ограничения доступа к данным допускается установка нескольких (по числу полей) ограничений:
- Для права "Чтение"
- Для права "Изменение"
- Для права "Добавление"
- Для права "Удаление"
- Для всех вышеперечисленных прав
- Для всех возможных прав
При настройке ограничения доступа к данным в качестве значений, по которым производится ограничения доступа к данным, могут использоваться:
- Только значения параметров сеанса
- Только данные из таблиц (запросов)
- Значения параметров сеанса и данные из таблиц (запросов)
- Только значения имеющие типы: Число, Строка, Булево, Дата
- Сначала заполнить раздел "Таблицы", а потом, выбирая нужные объекты из этого раздела, перенести их в раздел "Поля", используя двойной клик левой клавиши мыши
- Не заполняя раздел "Таблицы", сразу выбирать нужные объекты из таблиц - источников данных раздела "База данных", перенося их в раздел "Поля", используя технологию Drag & Drop. Раздел "Таблицы" заполняется автоматически
- Сначала заполнить раздел "Таблицы", а потом, выбирая нужные объекты из этого раздела, перенести их в раздел "Поля", используя кнопки на форме
- Верны ответы 1 и 3
- Верны ответы 1, 2 и 3
Для повышения скорости выполнения запроса необходимо:
- Задавать параметры большинства реальных таблиц
- Задавать параметры большинства виртуальных таблиц
- Вместо задания параметров у реальной или виртуальной таблицы использовать отбор, заданный конструкцией языка запросов "ГДЕ"
- Верны ответы 1 и 2
- Да, можно
- Да, можно, но только если в качестве источника данных выступает вложенный запрос
- Да, можно, но только если в качестве источника данных выступает виртуальная таблица
- Верны ответы 1 и 2
- Верны ответы 1 и 3
Вложенный запрос может использоваться:
- В качестве таблицы-источника данных
- В качестве операнда операций сравнения "В" или "НЕ В" при задании параметров виртуальной таблицы
- В качестве операнда операций сравнения "В" или "НЕ В" при задании конструкции языка запросов "ГДЕ"
- Верны ответы 1, 2 и 3
Можно ли, используя конструктор запроса, получить итоги по иерархии?
- Можно, если для группировочного поля указать тип итогов "Элементы и иерархия"
- Можно, если для группировочного поля указать тип итогов "Только иерархия"
- Верны ответы 1 и 2
- Нельзя
- С помощью двойного клика левой клавишей мыши на нужном поле в списке доступных полей
- Путем переноса нужного поля в список, используя технологию Drag & Drop
- Нажать кнопку "Добавить". Если условие произвольное, то текст условия можно ввести "вручную"
- Вызвав контекстное меню, выбрать в нем пункт "Добавить". Возможно использование произвольного выражения
- Верны все вышеперечисленные ответы
При соединении таблиц-источников данных в конструкторе запросов можно:
- Назначить соединение без указания условия связи
- Назначить соединение с указанием условия связи, причем это условие может быть только одно
- Назначить соединение с указанием условия связи, причем это условие может быть только простое
- Назначить необходимое количество соединений с указанием необходимого количества условий связи, причем эти условия могут быть как простые, так и произвольные
- Соединение таблиц-источников данных и связи между ними
- Объединение таблиц-источников данных и связи между ними
- Связи между полями таблицы, получаемой в результате выполнения запроса
- Связи между полями таблицы-источника данных и таблицы, получаемой в результате выполнения запроса
Создание соединения таблиц-источников данных в конструкторе запросов допускает:
- Соединение только двух таблиц-источников данных
- Соединение необходимого количества таблиц-источников данных
- Соединение только двух таблиц-источников данных, причем флажок "Все" обязательно должен быть проставлен хотя бы у одной из таблиц
- Соединение необходимого количества таблиц-источников данных, причем флажок "Все" обязательно должен быть проставлен хотя бы у одной из таблиц
- Что в результат запроса надо включить все доступные поля этой таблицы
- Что в результат запроса надо включить все записи этой таблицы
- Что в результат запроса надо включить все поля и все записи этой таблицы
- Что результат запроса будет сформирован с учетом всех условий, заданных для соединения таблиц-источников
- Задать список запросов. В результирующую выборку попадут записи всех указанных запросов
- Задать имена полей результирующей таблицы
- Задать имена таблиц-источников данных
- Верны ответы 1 и 2
- Верны ответы 1, 2 и 3
- Должно быть задано обязательно
- Может быть задано, если этого требует логика построения всего запроса
- Условие связи между запросами задать нельзя
Можно ли, используя конструктор запроса, повлиять на порядок записей в результирующей таблице запроса?
- Нельзя
- Это можно сделать на закладке "Порядок"
- Это можно сделать на закладке "Объединения/Псевдонимы"
- Верны ответы 2 и 3
- Нет, вид остальных разделов конструктора запросов остается без изменений
- Да, в конструкторе запросов появляется закладка "Связи"
- Да. Если заданы псевдонимы полей результирующей таблицы, то новые названия появляются на закладке "Порядок" в списке полей
- Да. При объединении запросов на ряде закладок (в том числе "Таблицы и поля") появляется возможность переключения между объединяемыми запросами
- Верны ответы 2 и 3
- Верны ответы 3 и 4
При создании запросов, участвующих в объединении, с помощью конструктора запросов обязательно ли у всех запросов должно быть одинаковое количество полей в списке выборки?
- Да. Поля результата запроса формируются по списку полей первого из объединяемых запросов, а поля остальных объединяемых запросов сопоставляются с полями результата
- Нет. Конструктор сам добавит в каждый запрос необходимое количество недостающих полей со значением NULL. Настроить соответствие добавленных конструктором полей и полей результата запроса можно на закладке "Объединения/Псевдонимы"
Читайте также: