19.06.2020 Карцев Кирилл 25712
Использование нескольких группировок в 1С 8.3

Содержание:

1.    Как использовать несколько группировок в одном запросе

2.    Примеры использования такого способа группировок в 1С 8.3

3.    Плюсы и минусы использования несколько группировок в одном запросе 


Начиная с платформы 8.3.16. 1030 появилась возможность использовать несколько группировок в одном запросе. Это – поддержка конструкции GROUPING SETS (группирующие наборы) из языка запросов SQL. 


1.    Как использовать несколько группировок в одном запросе


Визуально настройка выглядит следующим образом.




Появилась галка «Использовать несколько группировок в 1С 8.3». Ее включение позволяет добавить в запрос две и более группировок в одной выборке данных.


Это удобно, когда из одних и тех же данных нужно собрать несколько разных сгруппированных таблиц.


При использовании этой конструкции следует понимать, что набор суммируемых полей одинаковый для всех группировок. Различаться могут только поля группировки 1С. Если требуются разные поля суммирования, объединить их в один запрос с помощью GROUPING SETS не получится. То есть все-таки придется сделать несколько отдельных подзапросов.


Поля группировки 1С, не попадающие в текущую группу, принимают в значение NULL. 


2.    Примеры использования такого способа группировок в 1С 8.3 


Рассмотрим несколько примеров использования новой возможности 1С.


Первый пример – подсчет количества номенклатурных позиций в базе в разрезе видов и типов номенклатуры 1С.




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




В этом же запросе можно добавить еще одну группировку по виду и типу номенклатуры в 1С и получить все три набора данных одновременно в одной выборке.


Второй пример. Подсчет общих итогов по складу с разверткой по номенклатуре.

Имеем типовой регистр современной базы 1С – ТоварыНаСкладах.




Порядок: Склад, Номенклатура.



 

С помощью такой конструкции можно посчитать в 1С количество товара сначала по Складу, потом по номенклатуре и текущему складу. И нет необходимости делать выборку с группировкой, как приходилось делать ранее.


Записи полученной таблицу будут идти в следующем порядке:

      Склад 1 и Null – итог по текущему складу;

      Склад 1 и Номенклатура 1 – итог по складу и номенклатуре 1;

      Склад 1 и Номенклатура 2 – итог по складу и номенклатуре 2.


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


Третий пример. Подсчет общего итога.

Бывают ситуации, что в коде 1С:Предприятие нужно знать итог по полученной выборке.

В таких случаях заводили отдельную переменную и в нее выгружали Итог = ТаблицаВыборки.Итог(«ПолеСуммы»);


Теперь это можно сделать на уровне запроса вот таким образом:




Добавляем новую группировку без полей группировки.

Сортировка по полям Склад и номенклатура.


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


То есть разработчики 1С получили возможность получать итоговые данные в разрезе нескольких наборов в одной итоговой таблице с использованием только одного запроса. Например, можно с помощью трех наборов группировок, можно получить итоги в таком удобном виде: Общий итог, По Складу, по Складу и Номенклатуре:  



 

3.    Плюсы и минусы использования несколько группировок в одном запросе 


Плюсы

Какие же есть плюсы от использования новой конструкции в запросах?


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


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


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


Ограничения

У конструкции GROUPING SETS есть несколько ограничений:

1. Поддержка СУБД по версиям:

·         Oracle – начиная с версии 10.2 (кроме строковых полей);

·         PostgreSQL – начиная с версии 10.3;

·         IBM DB2 – начиная с версии 11;

·         MSSQL – начиная с версии 2008.


2. Набор суммируемых полей одинаковый для всех наборов группировок.

То есть одно поле может быть либо в поле одной из группировок, либо в «суммируемом поле».


Специалист компании ООО «Кодерлайн»

Карцев Кирилл

Наши проекты

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– ...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

Внедрение 1С:Управление торговлей
ООО «Амперсенд»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам;
- Управление отношениями с поставщиками;...

Внедрение «1С:Бухгалтерия 8 ПРОФ» в компании «Мостехника»
ООО «Мостехника»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Документооборот (ECM):
- Учет рабочего времени;
Управление персоналом и ка...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складскими запасами;
- Оформление заказов покупателей;
- Пла...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Филиал ГлавУпДК при МИД России фирма «Инпредкадры»
Филиал ГлавУпДК при МИД России фирма «Инпредкадры»

Отрасль:
Государственное управление

Внедренное типовое решение:
1С:Бухгалтерия

- Расчеты с контрагентами;
- Управленческий учет;
- Формирование отраслев...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение