Category:

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


promo luckyea77 november 4, 2024 21:52 5
Buy for 10 tokens
В прошлом посте " Эпоха интеллекта" я публиковал эссе генерального директора OpenAI Сэма Альтмана. В нем Альтман пишет, что мы можем представить себе возможности создавать любое программное обеспечение, которое только можно представить, и многое другое. Недавно я с помощью нейросети создал…