helpf.pro
Регистрация
 0 
Распечатать

1С 8.x : В чем разница между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С

Цитата из справки 1С:
"По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные РАЗНЫМИ запросами, заменяются одной. Если требуется, чтобы были оставлены разные строки, необходимо указать ключевое слово ВСЕ."

Конструкция ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ объединяет два результата запроса в один.
Пример запроса для вывода всех документов Приход и Расход:
Код 1C v 8.х
 ВЫБРАТЬ
Расход.Ссылка
ИЗ
Документ.Расход КАК Расход

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
Приход.Ссылка
ИЗ
Документ.Приход КАК Приход


Конструкция ОБЪЕДИНИТЬ - соединяет два результата и группирует повторяющие строки,
А конструкция ОБЪЕДИНИТЬ ВСЕ - НЕ группирует автоматически строки результата.

Подробнее:
Порядок следования определяется порядком в списке полей в предложении ВЫБРАТЬ.
Количество полей можно изменить добавлением пустого фиктивного поля:
Код 1C v 8.х
 ВЫБРАТЬ
Приходная. Контрагент,
Приходная.Сумма,
0 КАК Менеджер
ИЗ
Документ.Приходная КАК Приходная
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Расходная.Контрагент,
Расходная.Сумма,
Расходная.Сотрудник
ИЗ
Документ.Расходная КАК Расходная


До некоторой степени, операции объединения и соединения прямо противоположны: при соединении у источников обязательно должен быть ключ (при объединении наличие ключа абсолютно не имеет значения), при соединении количество полей может быть произвольным (при объединении количество нолей должно совпадать и поля должны следовать в одном и то же порядке), при соединении природа данных в источниках может быть различна (при объединении связываются однотипные данные).

Смысл механизма
При объединении, фактически, выполняются два запроса, а потом их результаты объединяются в один общий. Конструкция ОБЪЕДИНИТЬ ВСЕ оставит в итоговом запросе только неповторяющиеся записи (то есть, результат её действия аналогичен использованию фразы РАЗЛИЧНЫЕ после выполнения объединения).

Назначение псевдонимов, упорядочивание и расчёт итогов выполняются после объединения и действуют на результирующую таблицу.
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 22510
 0 
Распечатать
Возможно, вас также заинтересует
ZIP-архив Разделить и Объединить Файл 0
При работе с большими объемами данных могут возникнуть проблемы при пересылке архивных файлов. Типичной такой ситуацией является ограничение некоторых почтовых серверов на размер сообщения - если письмо превышает...
Как в запросе объединить несколько значений в один столбец отобрав по условию? 1
Бывают ситуации, особенно когда формируешь отчеты по проводкам, где надо вывести отчет по одному типу значений и эти значения могут быть в разных колонках регистра. В примере ниже, необходимо собрать отчет в разбивке...
Как запросом получить таблицу Дат начиная с указанной 0
Результатом выполнения данного запроса будет таблица периодов начиная с указанной даты + 10 000 дней. Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ | ДОБАВИТЬКДАТЕ( НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КАК...
Как одним запросом выбрать документы всех видов? 0
Используя метаданные и возможность объединения запросов: Запрос=Новый Запрос; Текст=" " ; Для Каждого Документ Из Метаданные.Документы Цикл Текст=Текст+" ВЫБРАТЬ Ссылка ИЗ Документ." +Документ.Имя+" ОБЪЕДИНИТЬ " ; ...
Как получить все начисления в ЗУП за указанный период? 0
В ЗУПе при разработке отчетов или дополнительного функционала, частенько требуется получить базу начислений за указанный период начислений: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ...
Посмотреть все результаты поиска похожих
Комментарии
cons74
03.07.2016 16:29Комментарий: 1
cons74

Я так понимаю, в последнем предложении опечатка, должно быть ОБЪЕДИНИТЬ вместо ОБЪЕДИНИТЬ ВСЕ

"Конструкция ОБЪЕДИНИТЬ оставит в итоговом запросе только неповторяющиеся записи"

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.