Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Использование ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С

Зачастую, даже опытные программисты допускают методическую ошибку при использовании конструкций ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С 8. Рассмотрим подробнее чем различаются эти конструкции и как их правильно использовать.

объединить таблиц в запросе 1с

Конструкции ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С 8.3

Конструкция ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ объединяет два результата запроса в один. Т.е. результат выполнения двух запросов будет «слит» в один, общий.

Пример запроса для вывода всех документов поступлений и реализации:

ВЫБРАТЬ

РеализацияТоваровУслуг.Ссылка

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

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

ВЫБРАТЬ

ПоступлениеТоваровУслуг.Ссылка

ИЗ

Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

Запрос получит данные из двух таблиц и объединит их.

В чем же разница между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ

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

Настоятельно рекомендуется использовать ОБЪЕДИНИТЬ ВСЕ в запросах, где заведомо невозможно получения одинаковых строк. Это существенно повышает производительность – система не пытается группировать строки.

Читайте также — описание языка запросов 1С.

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 7 на “Использование ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С
  1. Ужас, разочаровывает что в 1С применены созвучные с SQL ключевые слова но их результат не предсказуем.

    Как следствие люди переходят на 1С пишут запросы. Вместо LEFT JOIN у них получается какой-то INNER JOIN.
    Да и сложно так писать запросы. «ОБЪЕДИНИТЬ ВСЕ» — что значит «все» даже не представляю. Теперь UNION называется сочетанием двух слов.

    И ещё весело что целое поколение «программистов» пишущих на 1С никогда не писали на других языках и даже не удивляются подобному странному поведению. Хотя новички вижу до некоторой поры верят что «ЛЕВОЕ СОЕДИНЕНИЕ» реально вернет либо NULL либо одну строку. Видимо приток этих программистов происходит из смежных языков где царит стандартизация.

    Ответить

    • Слово всё «ВСЕ» группирует результат запроса по совпадающим колонкам.

      Сколько людей — столько и мнений 🙂

      Язык запросов 1С — это не T-SQL и никто не говорит что оно одно и тоже.

      Не понял вашего замечания про ЛЕВОЕ СОЕДИНЕНИЕ и LEFT JOIN. Они ничем не отличаются в sql и 1С.

      Ответить

    • Все правильно человек говорит.

      Ответить

    • — «ОБЪЕДИНИТЬ ВСЕ» — что значит «все» даже не представляю.

      UNION ALL

      Ответить

    • Про «Левое соединение» вы написали какой-то бред. Я, конечно, в 1С8 пока ещё новичок и до этого работал с SQL, но пока ещё ни разу при использовании (Левого/Правого) Соединения не получал неожиданного для меня результата. Может дело в том, что вы просто не представляете, что творится в ваших таблицах?

      Ответить

  2. Автор первого комментария

    Ответить

  3. Язык запросов 1С — очень похож на t-sql.
    Left join в t-sql имеет такую же конструкцию и в 1C и называется Левое Соединение, более того, можно его и по английски написать Left join и 1С вас поймет…
    Слово всё «ВСЕ» НЕ группирует результат запроса по совпадающим строкам. А вот ОБЪЕДИНИТЬ — группирует, к тому же и способствует притормаживанию системы, при больших массивах данных.

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*