Массивы и коллекции / Множества

//Отдельного типа множества в 1С нет,
//его роль играет Соответствие: значимы
//ключи, а значение везде Истина
Первое = Новый Соответствие;
Первое.Вставить(1Истина);
Первое.Вставить(2Истина);
Первое.Вставить(3Истина);

Второе = Новый Соответствие;
Второе.Вставить(3Истина);
Второе.Вставить(4Истина);
Второе.Вставить(5Истина);

//Объединение: ключи обоих множеств
Объединение = Новый Соответствие;
Для Каждого Элемент Из Первое Цикл
    Объединение.Вставить(Элемент.КлючИстина);
КонецЦикла;
Для Каждого Элемент Из Второе Цикл
    Объединение.Вставить(Элемент.КлючИстина);
КонецЦикла;
//Объединение = [1, 2, 3, 4, 5]

//Пересечение и разность считаются одним
//обходом: они отличаются только веткой
Пересечение = Новый Соответствие;
Разность = Новый Соответствие;
Для Каждого Элемент Из Первое Цикл
    Ключ = Элемент.Ключ;
    Если Второе.Получить(Ключ) = Истина Тогда
        Пересечение.Вставить(Ключ, Истина);
    Иначе
        Разность.Вставить(Ключ, Истина);
    КонецЕсли;
КонецЦикла;
//Пересечение = [3]
//Разность = [1, 2]

Части = Новый Массив;
//Порядок обхода словаря не определён,
//у вас он может оказаться другим
Для Каждого Элемент Из Объединение Цикл
    Части.Добавить(Строка(Элемент.Ключ));
КонецЦикла;
Сообщить(СтрСоединить(Части, ", "));