/// Как объединить две таблицы в одну в 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-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки