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