1С 8.3 Различные элементы массивов - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Различные элементы массивов

Данные > Примеры кода 1С > 1С 8.3 Массив
Перейти в раздел примеры кода 1С 8.3:
Выгружает в массив поле коллекции без дублей в 1С 8.3:
Функция ВыгрузитьРазличные(Коллекция,ИмяПоля)

   Результат = Новый Массив;
   Для Каждого ТекущийЭлемент Из Коллекция Цикл
       ТекущееЗначение = ТекущийЭлемент[ИмяПоля];
       Если Результат.Найти(ТекущееЗначение) = Неопределено Тогда
           Результат.Добавить(ТекущееЗначение);
       КонецЕсли;
   КонецЦикла;

   Возврат Результат;

КонецФункции
Функция с помощью "Соответствие" сравнивает два массива и выводит те их элементы, которые не встречаются в обоих массивах, то есть выполняет операцию исключающего ИЛИ.
Различные элементы массивов (от пользователя gilev) в 1С 8.3:
Функция Исключающее_ИЛИ(Массив1N, Массив2N)

   Результат = Новый Массив;
   Соотв = Новый Соответствие;

   Для Каждого ЭлементМассива Из Массив1N Цикл
       Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
   КонецЦикла;

   Для Каждого ЭлементМассива Из Массив2N Цикл
       Соотв[ЭлементМассива] = ?(Соотв[ЭлементМассива] = Неопределено, Ложь, Истина)
   КонецЦикла;

   Для Каждого ЭлементМассива Из Соотв Цикл
       Если НЕ ЭлементМассива .Значение Тогда
           Результат.Добавить(ЭлементМассива .Ключ)
       КонецЕсли
   КонецЦикла;

   Возврат Результат

КонецФункции
Аналогичная функция сравнивает два массива (в которых могут быть только даты!) и выводит те их элементы, которые не встречаются в обоих массивах, то есть выполняет операцию исключающего ИЛИ для дат.
Различные элементы (даты) массивов (от пользователя gilev) в 1С 8.3:
Функция Исключающее_ИЛИ_для_дат(Массив1N, Массив2N)

   Результат = Новый Массив;
   Строка1N = ЗначениеВСтрокуВнутр(Массив1N);
   Строка2N = ЗначениеВСтрокуВнутр(Массив2N);

   Для Каждого ЭлементМассива Из Массив1N Цикл
       Если НЕ Найти(Строка2N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
           Результат.Добавить(ЭлементМассива )
       КонецЕсли
   КонецЦикла;

   Для Каждого ЭлементМассива Из Массив2N Цикл
       Если НЕ Найти(Строка1N, Формат(ЭлементМассива ,"ДФ=ГГГГММДДЧЧммсс")) Тогда
           Результат.Добавить(ЭлементМассива )
       КонецЕсли
   КонецЦикла;

   Возврат Результат

КонецФункции
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 19.07.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому