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