1С 8.3 Различные элементы массивов
Данные > Примеры кода 1С > 1С 8.3 Массив
Перейти в раздел примеры кода 1С 8.3:
Выгружает в массив поле коллекции без дублей в 1С 8.3:
Функция ВыгрузитьРазличные(Коллекция,ИмяПоля)
Результат = Новый Массив;
Для Каждого ТекущийЭлемент Из Коллекция Цикл
ТекущееЗначение = ТекущийЭлемент[ИмяПоля];
Если Результат.Найти(ТекущееЗначение) = Неопределено Тогда
Результат.Добавить(ТекущееЗначение);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Результат = Новый Массив;
Для Каждого ТекущийЭлемент Из Коллекция Цикл
ТекущееЗначение = ТекущийЭлемент[ИмяПоля];
Если Результат.Найти(ТекущееЗначение) = Неопределено Тогда
Результат.Добавить(ТекущееЗначение);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция с помощью "Соответствие" сравнивает два массива и выводит те их элементы, которые не встречаются в обоих массивах, то есть выполняет операцию исключающего ИЛИ.
Различные элементы массивов (от пользователя gilev) в 1С 8.3:
Функция Исключающее_ИЛИ(Массив1N, Массив2N)
Результат = Новый Массив;
Соотв = Новый Соответствие;
Для Каждого ЭлементМассива Из Массив1N Цикл
Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
КонецЦикла;
Для Каждого ЭлементМассива Из Массив2N Цикл
Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
КонецЦикла;
Для Каждого ЭлементМассива Из Соотв Цикл
Если НЕ ЭлементМассива .Значение Тогда
Результат.Добавить(ЭлементМассива .Ключ)
КонецЕсли
КонецЦикла;
Возврат Результат
КонецФункции
Результат = Новый Массив;
Соотв = Новый Соответствие;
Для Каждого ЭлементМассива Из Массив1N Цикл
Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
КонецЦикла;
Для Каждого ЭлементМассива Из Массив2N Цикл
Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
КонецЦикла;
Для Каждого ЭлементМассива Из Соотв Цикл
Если НЕ ЭлементМассива .Значение Тогда
Результат.Добавить(ЭлементМассива .Ключ)
КонецЕсли
КонецЦикла;
Возврат Результат
КонецФункции
Аналогичная функция сравнивает два массива (в которых могут быть только даты!) и выводит те их элементы, которые не встречаются в обоих массивах, то есть выполняет операцию исключающего ИЛИ для дат.
Различные элементы (даты) массивов (от пользователя gilev) в 1С 8.3:
Функция Исключающее_ИЛИ_для_дат(Массив1N, Массив2N)
Результат = Новый Массив;
Строка1N = ЗначениеВСтрокуВнутр(Массив1N);
Строка2N = ЗначениеВСтрокуВнутр(Массив2N);
Для Каждого ЭлементМассива Из Массив1N Цикл
Если НЕ Найти(Строка2N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
Результат.Добавить(ЭлементМассива )
КонецЕсли
КонецЦикла;
Для Каждого ЭлементМассива Из Массив2N Цикл
Если НЕ Найти(Строка1N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
Результат.Добавить(ЭлементМассива )
КонецЕсли
КонецЦикла;
Возврат Результат
КонецФункции
Результат = Новый Массив;
Строка1N = ЗначениеВСтрокуВнутр(Массив1N);
Строка2N = ЗначениеВСтрокуВнутр(Массив2N);
Для Каждого ЭлементМассива Из Массив1N Цикл
Если НЕ Найти(Строка2N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
Результат.Добавить(ЭлементМассива )
КонецЕсли
КонецЦикла;
Для Каждого ЭлементМассива Из Массив2N Цикл
Если НЕ Найти(Строка1N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
Результат.Добавить(ЭлементМассива )
КонецЕсли
КонецЦикла;
Возврат Результат
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник