1с схема запроса добавить группировку
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путём непосредственного формирования нужного текста запроса в виде строки. А это не всегда удобно и зачастую очень громоздко.
Теперь во встроенном языке мы реализовали объектную модель схемы запроса. Вы можете создать пустую схему запроса конструктором и загрузить в неё имеющийся текст запроса. После этого отдельные элементы текста запроса будут доступны вам как свойства объектной модели.
На рисунке ниже стрелки показывают, в каких объектах встроенного языка будут доступны те или иные элементы простого запроса, загруженного в схему:
Редактирование текста запроса с помощью объектной модели позволяет вам проще и понятнее модифицировать имеющиеся запросы. Или даже создавать их во встроенном языке «с нуля». А затем просто получать готовый текст запроса из схемы методом ПолучитьТекстЗапроса().
Пример использования Схемы запроса
Похожие FAQ
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Что такое менеджер временных таблиц и как с ним работать? 11
В 1С есть такая замечательная вещь, как МенеджерВременныхТаблиц . Этот объект позволяет передавать временные таблицы из одного запроса в другой. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продо Как в запросе объединить несколько значений в один столбец отобрав по условию? 1
Бывают ситуации, особенно когда формируешь отчеты по проводкам, где надо вывести отчет по одному типу значений и эти значения могут быть в разных колонках регистра. В примере ниже, необходимо собрать отчет в разбивке по Номенклатурным группам. Про Курс по разработке и оптимизации запросов в 1С (Часть 1) 0
Часть 1. Основные конструкции языка запросов и их назначение • Назначение языка запросов • Структура запроса • Основные секции запроса и их назначение • Группировка результатов запроса • Фильтрация результатов запроса • Объединения и соединени Курс по разработке и оптимизации запросов в 1С (Часть 2) 0
Часть 2. Виды таблиц и их применение • Виды таблиц в запросах 1С • Реальные основные • Реальные дополнительные • Виртуальные • Временные • Применение виртуальных таблиц • Регистры сведений • Регистры накопления • Параметры виртуальных табли Посмотреть все в категории Запросы
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путём непосредственного формирования нужного текста запроса в виде строки. А это не всегда удобно и зачастую очень громоздко.
Теперь во встроенном языке мы реализовали объектную модель схемы запроса. Вы можете создать пустую схему запроса конструктором и загрузить в неё имеющийся текст запроса. После этого отдельные элементы текста запроса будут доступны вам как свойства объектной модели.
На рисунке ниже стрелки показывают, в каких объектах встроенного языка будут доступны те или иные элементы простого запроса, загруженного в схему:
Редактирование текста запроса с помощью объектной модели позволяет вам проще и понятнее модифицировать имеющиеся запросы. Или даже создавать их во встроенном языке «с нуля». А затем просто получать готовый текст запроса из схемы методом ПолучитьТекстЗапроса().
Пример использования Схемы запроса
Похожие FAQ
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Посмотреть все результаты поиска похожих
Еще в этой же категории
Значения NULL ( ЕСТЬ NULL и ЕСТЬNULL()) 48
NULL – отсутствующие значения. Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено. NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа. NULL значения появляются в 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 23
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 19
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Посмотреть все в категории Запросы
Конструктор запроса состоит из следующих закладок:
1. «Таблицы и поля» - на закладке три иерархических списка:
a. «База данных» - перечислены все доступные объекта, к которым можно сделать за-прос. Также кнопка «Отображать таблицы изменений» , с помощью которой можно получить доступ к таблицам изменений объектов ИБ, если они регистрируются для какого либо плана обмена.
b. «Таблицы» - список выбранных таблиц, к которым будет выполнен запрос. Также в этом окне можно удалить таблицу, переименовать или заменить таблицу, а также добавить внутренний запрос.
Для виртуальных таблиц можно назначать параметры, нажав на кнопку «Параметры виртуальных таблиц»:
Рекомендуется активно использовать параметры виртуальных таблиц для отборов по тем или иным измерениям, поскольку при этом увеличивается скорость выполнения запроса. В параметрах можно использовать внешние переменные, название которых предваряется знаком «&».
c. «Поля» - список полей, которые выбираются из таблиц. Также можно добавить вычисляемые поля, для этого при нажатии кнопки «Добавить» открывается конструктор произвольного выражения:
Слева окно с доступными в выражении полями. Справа подсказку используемых функций. Внизу конструируемое произвольное выражение. В выражениях можно использовать внешние параметры, для их обозначения используется знак «&», например: &Период, &ДатаНач
Нужно быть внимательным, если в окне будет набрано длинное и сложное выра-жение, в котором будет небольшая синтаксическая ошибка, то после нажатия кноп-ки «ОК» система выдаст предупреждение и закроет окно. Весь набранный код бу-дет потерян, поэтому рекомендую, если нет уверены в правильности выражения, то перед закрытием конструктора всегда сохраняйте содержимое в буфер обмена (Ctrl-C).
2. «Связи» - на закладке указываются связи между таблицами.
В таблице указываются связываемые таблицы, отношение между связываемыми таблицами и усло-вие связи. Если условие связи сложно, то можно указать некое вычисляемое выражение, при этом откроется конструктор произвольного поля.
3. «Группировка» - на закладке указываются, какие поля группируются, а какие агрегируются (суммируются).
4. Закладка «Условия» - перечисляются условия которые накладываются на запрос.
В условиях тоже можно писать сложные выражения с помощью конструктора простых выражения и ис-пользованием внешних переменных:
5. «Дополнительно»
Дополнительные параметры, накладываемые на запрос
6. «Объединения и псевдонимы»
На этой закладке можно назначать псевдонимы для полей , а также управлять запросами которые соединяется через конструкции «ОБЪЕДИНИТЬ» или «ОБЪЕДИНИТЬ ВСЕ»
7. «Порядок»
В каком порядке будут выводиться получаться результаты запроса
Внимание! В низу закладки можно видеть галочку «Автоупорядочивание» - в текущей версии 1С 8.1 в СКД она бесполезна, более того при установленной галочке при записи СКД выдает ошибку, так что ею пользоваться не стоит.
8. «Компоновка данных»
Закладка, в которой определятся служебные поля для СКД. Играет примерно такую же роль, что и закладка «Построитель отчета» в обычном конструкторе отчетов.
a. На закладке «Таблицы» - перечислены таблицы, используемые в запросе, можно указать обязательность включения таблицы в запрос, галочкой «Обязательная». Т.е. если никакие поля в выборку не попадают, то данная таблица в запросе вообще не участвует. Также можно указать параметры для таблиц.
В процессе настройки СКД, мы задаем, какие либо отборы, то все значения отборов будут подставлены в параметры виртуальных таблиц, что снова нам поможет оптимизировать и ускорить запрос.
b. На закладке «Поля» - перечислены поля и их псевдонимы, которые будут добавляться в список полей СКД.
c. «Условия» - в случае указания отборов в настройках СКД, все значения отборов будут добавляться как дополнительные условия, в условия можно также добавлять сложные выражения.
9. «Характеристики»
Закладка, не имеющая аналога в обычном конструкторе выходной фор-мы.
Даная закладка обеспечивает расширение работы запросов с характеристиками. Таблица на закладке состоит из нескольких полей:
a. «Тип значения» - тип для которого будут выбираться характеристики. Например если указать «СправочникСсылка.Номенклатура», то в запросе будут выбираться все характеристики для номенклатуры.
b. «Источник» - источник для свойств видов характеристик, может быть запрос или таблица. В данном поле мы можем написать запрос выборки только тех свойств, которые нам нужны.
c. «Список характеристик» - поле в котором указывается источник для свойств характери-стик. Чаще всего это план видов характеристик или запрос. Также нужно указать поля, которые отвечают за «Идентификатор», «Имя» и «Тип» свойства.
d. «Источник» - следующее поле, в котором указываем источник значений характеристик, тоже может быть или таблица или запрос.
e. «Значение характеристик» - таблица или запрос, которые получает значения характери-стик. Например, таблицей значений характеристик может служить регистр сведений «ЗначенияСвойствОбъектов». Мы также должны указать те поля из таблицы (или запро-са), что отвечают за «Объект», «Свойство» и «Значение» характеристики.
После редактирования запроса, текст запроса можно видеть в окне под список полей. Ниже галочкой «Автозаполнение» мы можем регулировать заполнение дополнительных параметров для полей определенных в запросе. Следует обратить внимание, что состав полей определяется только в самом запросе.
Смотрите так же:
Что такое СКД?
Создание отчетов на основе СКД
Конструктор схемы компоновки данных
Конструктор схемы компоновки данных - Закладка Набор данных - Запрос
Конструктор запросов схемы компоновки данных
Конструктор схемы компоновки данных - Закладка Набор данных - Объект
Конструктор схемы компоновки данных - Закладка Набор данных - Объединение
Конструктор схемы компоновки данных - Закладка Связи наборов данных
Конструктор схемы компоновки данных - Закладка Вычисляемые поля
Конструктор схемы компоновки данных - Закладка Ресурсы
Конструктор схемы компоновки данных - Закладка Параметры
Конструктор схемы компоновки данных - Закладка Макеты
Конструктор схемы компоновки данных - Закладка Вложенные схемы
Конструктор схемы компоновки данных - Закладка Настройки
Мы доработали конструктор запроса таким образом, что теперь он может работать в управляемом режиме в тонком клиенте, толстом клиенте и веб-клиенте. Раньше конструктор запроса не был доступен в режиме управляемого приложения.
Большинство действий в управляемом режиме выполняется так же, как и в «старом» конструкторе. Но есть и целый ряд доработок. Например:
- на некоторых вкладках мы изменили способ редактирования выражений (условия, суммарные поля, выражения для итоговых полей);
- запрос, уничтожающий временную таблицу, редактируется теперь на отдельной вкладке;
- для изменения текущего запроса и оператора мы используем выпадающие списки в нижней части формы, а не переключаем вкладки, как раньше.
Но самые большие изменения претерпела вкладка Связи. Теперь формирование связей происходит перетаскиванием таблиц одной на другую.
Работу конструктора запроса мы реализовали в немодальном режиме. Для этого мы добавили ему новый метод Показать(), который открывает немодальное блокирующее окно. А результат «конструирования» (текст запроса) платформа передаёт в процедуру, вызываемую после закрытия конструктора.
Объектная модель схемы запроса
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путём непосредственного формирования нужного текста запроса в виде строки. А это не всегда удобно и зачастую очень громоздко.
Теперь во встроенном языке мы реализовали объектную модель схемы запроса. Вы можете создать пустую схему запроса конструктором и загрузить в неё имеющийся текст запроса. После этого отдельные элементы текста запроса будут доступны вам как свойства объектной модели.
На рисунке ниже стрелки показывают, в каких объектах встроенного языка будут доступны те или иные элементы простого запроса, загруженного в схему:
Редактирование текста запроса с помощью объектной модели позволяет вам проще и понятнее модифицировать имеющиеся запросы. Или даже создавать их во встроенном языке «с нуля». А затем просто получать готовый текст запроса из схемы методом ПолучитьТекстЗапроса().
Обход результата запроса по группировкам доступен при использовании конструкции Итоги Итоговое поле> по Поля итогов> языка запросов.
При этом итоговые поля (суммы, количество), могут отсутствовать — производится просто группировка по нужным полям, либо по общим итогам — служебное поле «ОБЩИЕ»( флажок «Общие итоги»)
Конструктор запроса
Группировка добавляется на вкладке «Итоги», обратите внимание на флажок «Общие итоги», здесь же можно задать функцию итогов.
Не стоит путать функции группировки на вкладке «Группировки» с вкладкой «Итоги» (в общем случае для получения итогов группировка может не производится, либо производится по другому полю и с использованием другой функции) — это расчет итоговых показателей над готовой выборкой, а не группировка входных данных.
Не стоит использовать итоги, если в этом нет необходимости:
- это замедляет выполнение запроса
- при выборке доступны все поля запроса, но значение незадействованных на вкладке полей равно «Неопределено», что может быть не верно истолковано в процессе отладки и работы
Для использования механизма сводной таблицы платформы
- наоборот обязательно необходимы итоги запроса (определяет доступные поля группировки и ресурсы) иначе конструктор сводной таблицы будет пустым
В тексте запроса конструкция находится в нижней части:
Группировки могут быт вложенные, поэтому для выборки из запросов необходимо последовательно вызывать метод Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам).
Последняя группировка будет данными выборки, для которой вызов идет без параметра, либо с параметром ОбходРезультатаЗапроса.Прямой (по умолчанию).
Для примера, вывод результата произведем в табличный документ.
Чтобы вывести группировки в табличном документе, воспользуемся методом НачатьАвтогруппировкуСтрок(). После завершения вывода вызывается ЗакончитьАвтоГруппировкуСтрок() иначе группировка не сработает. Уровень группировки определяет второй параметр метода Вывести() табличного документа
Пример кода
Результат будет выглядеть вот так:
Для того, чтобы свернуть табличный документ можно вызывать метод ПоказатьУровеньГруппировокСтрок()
Избегай конкретных обещаний. Текст должен быть чарующе неопределенным.
— Первый закон Кросби о рекламе.
Читайте также: