Объединение в запросах в языке 1С 8.3, 8.2 (в примерах)
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
2017-12-18T22:46:15+00:00<<< Основы Группировка Условия Упорядочивание Функции
<<< Итоги Соединение Объединение Параметры
См. урок для начинающих по объединениям языка запросов
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
/// Как объединить две таблицы в одну в 1с 8.3, 8.2 &НаСервере Процедура КакОбъединитьДвеТаблицыВОднуНаСервере() // Требования к объединяем таблицам: // - Одинаковое количество полей // Если соотв. друг другу поля в разных таблицах имеют // один и тот же тип, то результатирующее поле будет // также иметь этот тип. // Если же соотв. друг другу поля в разных таблицах имеют // разный тип, то результатирующее поле будет иметь // составной тип. // Объединим таблицу Вкусы и Цвета в одну. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование |ИЗ | Справочник.Вкусы | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Наименование |ИЗ | Справочник.Цвета" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как объединить больше двух таблиц в одну в 1с 8.3, 8.2 &НаСервере Процедура КакОбъединитьБольшеДвухТаблицНаСервере() // Очень легко. Для примера объединим сразу 3 таблицы: // Контрагенты, Номенклатура и Города. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование |ИЗ | Справочник.Контрагенты | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Наименование |ИЗ | Справочник.Номенклатура | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Наименование |ИЗ | Справочник.Города" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как оставить дубликаты в результате /// объединения таблиц в 1с 8.3, 8.2 &НаСервере Процедура КакОставитьДубликатыВРезультатеОбъединенияНаСервере() // По умолчанию (при использовании ключевого слова ОБЪЕДИНИТЬ) // все дубликаты (образованные из разных запросов) из результата // объединения удаляются. Если нужно оставить все строки - // используем ОБЪЕДИНИТЬ ВСЕ // Для примера объединим таблицу саму с собой так, чтобы дубликаты, // которые при этом неизбежно образуются остались в результате. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование |ИЗ | Справочник.Цвета | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Наименование |ИЗ | Справочник.Цвета" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как упорядочить объединение таблиц в 1с 8.3, 8.2 &НаСервере Процедура КакУпорядочитьОбъединениеТаблицНаСервере() // Нет смысла применять упорядочивание к отдельным таблицам // до их объединения. Упорядочивать (группировать, подводить итоги) // имеет смысл только конечный результат объединения. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование |ИЗ | Справочник.Номенклатура | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Наименование |ИЗ | Справочник.Цвета | |УПОРЯДОЧИТЬ ПО | Наименование УБЫВ" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как объединить таблицы с разным количеством полей /// в 1с 8.3, 8.2 &НаСервере Процедура КакОбъединитьТаблицыСРазнымКоличествомПолейНаСервере() // Нужно дописать недостающие поля и присвоить им // какие-то значения. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование, | Калорийность |ИЗ | Справочник.Номенклатура | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Наименование, | 0 |ИЗ | Справочник.Вкусы" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере |
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Объединение в запросах в языке 1С 8.3, 8.2 (в примерах)
<<< Основы Группировка Условия Упорядочивание Функции
<<< Итоги Соединение Объединение Параметры