Объединение в запросах в языке 1С 8.3

Jul 08, 2022 17:20


/// Как объединить две таблицы в одну в 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С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up