baner

Работа

Запросы в 1С

Видеообучалки по конструктору  запросов

часть 1 https://www.youtube.com/watch?v=Awvv-cJ7sdg

часть 2 https://www.youtube.com/watch?v=q5jmxKCaFoA

Текстовый материал к обучалкам http://programmist1s.ru/opisanie-konstruktora-zaprosov-1s/

Чел говорит, что они "писали ручками" запросы в консоли запросов, а можно было эти запросы просто натыкать в конструкторе запросов.

Во второе окошко перетаскиваются объекты для раздела выбрать "ИЗ"". Для виртуальных таблиц можно задать параметры и условия.

Если запрос создается временную таблицу, то временные таблицы будут также видны в левом окошке как источники данных для последующих запросов.

В третье окошко копируются поля, которые необходимо "ВЫБРАТЬ".

 

Секция "УСЛОВИЯ" в конструктое - это секция ГДЕ в запросе.

 

Закладка "Группировка" - в верхней части поля, по которым просходит группировка. В нижней части указываются, по которым идет подсчет (суммирование, среднее, количество значений, количество различных, минимум, максимум (какая-либо агрегатная функция). Вид запроса показан на 3:33.

Закладка "Объединения/Псевдонимы". Обычные поля в левом столбце не выделены, а псевдонимы выделены жирным шрифтом. МОжно менять названия полей на псевдонимы в этой вкладе, запрос изменится автоматически.

Закладка "Связи" позволяет настроить соединения между таблицами.

Если выбираются данные из одной таблицы, то  вкладка "Связи" не отображается.

Если выбрать несколько таблиц-источников, по общим полям настраивается соединение.

- Галочки В(Все) -В(Все)  - означает полное соединие.

- Сброшенные галочки - означает внутреннее соединение.

- Одна из галочек даст правое (левое) соединение. Если выбрать ВСЕ справа, то в запрос будет левое соединение, просто исходные данные поменяются местами.

 

Урок 1, начиная 5-34, объясняет, как настроить "объединение" запросов.

Объединение - это слияние строк двух запросов в одну общую таблицу.

Соединение - это слияние столбцов из двух таблиц в одну общую таблицу.

 

 В комментах пишут: для ввода амперсанда (&) на клавиатуре нажимается Alt+3, затем 8.

 

На 7:22 во вкладке "Объединения/псевдонимы" копирует существующий запрос. (Есть такая возможность!) Новый запрос отображается на вкладке с правой части экрана. После условие во втором запросе модифицирует.

 "Без ду" - о чем там речь? 

Во вкладке "Условия" галочке в поле "Произвольное (условие)"  дает возможность указать произвольное условие (скажем, равенство значению перечисления). Если галочка не стоит, то выбранное значение будет восприниматься как параметр.

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

 

Вкладка "Упорядочивание"

можно выбрать конкретные поля для упорядочивания и порядок сортировки;

можно установить галочку "Автоупорядочивание".

 

 

Группировка в запросах. Ошибка "Поле не входит в группу"

Группировка в запросах НЕОБХОДИМА, чтобы по группировочным полям посчитать показатели:

суммa

максимум

минимум

среднее

количество

количество (различные ПОЛЕ).



Пример запроса с группировкой и получением суммы по полю:

ВЫБРАТЬ
	ОКС.Номенклатура КАК НоменклатураОКС,
	СУММА(ОКС.Количество) КАК КоличествоОКС
ПОМЕСТИТЬ ВТ_ПродажиОКС
ИЗ
	Документ.ОтчетКассовойСмены.Товары КАК ОКС
ГДЕ ОКС.Ссылка В(&ВыбранДокОКС)
СГРУППИРОВАТЬ ПО
ОКС.Номенклатура;

 

Если не сделать группировку, выйдет ошибка

Поле не входит в группу "ОКС.Номенклатура"

<<?>>ОКС.Номенклатура КАК НоменклатураОКС


В конструкторе запросов агрегатные функции доступны во вкладке "Группировка"

 

Вот детальная информация https://capitally.ru/1c-development/zaprosy/gruppirovka-v-zaprose/

В статье пишут:

"Допускается использование математических операторов над функциями группировки (+,*,/,-), а также конструкция ВЫБОР и поверх агрегата и внутри (в зависимости от потребностей)"

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

ВЫБРАТЬ
ОстаткиТМЦОбороты.Номенклатура,
СУММА(ОстаткиТМЦОбороты.СуммаОборот) КАК СуммаОборот,
СУММА(ОстаткиТМЦОбороты.КоличествоОборот) КАК КоличествоОборот,
ВЫБОР
КОГДА СУММА(ОстаткиТМЦОбороты.КоличествоОборот) = 0
ТОГДА 0
ИНАЧЕ СУММА(ОстаткиТМЦОбороты.СуммаОборот) / СУММА(ОстаткиТМЦОбороты.КоличествоОборот)
КОНЕЦ КАК СредняяЦена
ИЗ
РегистрНакопления.ОстаткиТМЦ.Обороты КАК ОстаткиТМЦОбороты "


Пример запроса, который в консоли отчетов 1С позволяет открывать  карточки номенклатуры из отчетов

Нужно в запросе вывести реквизит

Номенклатура.Ссылка КАК НоменклатураСсылка

Данное поле выводит в отчет основное представление справочника "Номенклатура" - Наименование номенклатуры.

Важно сделать псевдоним "НоменклатураСсылка", а не "Ссылка", т. к. ссылок много, и поле "Ссылка" не получится добавить в поле "Выбранные поля" для вывода отчета.

 

В консоли отчетов делать

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

Заменять названия колонок (длинные название исходных поле) на краткие читаемые в таблице исходных данных

В таблице исходных данных указывать форматирование данных (формат даты, минимальная и макс ширина колонок)

 

 

 

 

Ромин С.А.