1С 8.3 Свернуть массив - Программист 1С Минск. Автоматизация бизнеса.

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

1С 8.3 Свернуть массив

Данные > Примеры кода 1С > 1С 8.3 Массив
Свертка Массива с помощью соответствия (пример №1) в 1С 8.3:
Процедура Свертка_Массива_через_Соответствие() Экспорт

   
МассивДляСвертки = Новый Массив;
   
МассивДляСвертки.Добавить(2);
   
МассивДляСвертки.Добавить(4);
   
МассивДляСвертки.Добавить(7); // Массив: (2, 4, 7)

   
СоответствиеДляСвертки = Новый Соответствие;
    Для Каждого
ЭлементМ Из МассивДляСвертки Цикл
       
СоответствиеДляСвертки.Вставить(ЭлементМ);
    КонецЦикла;

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

КонецПроцедуры
Свертка Массива с помощью доп.массива (пример №2) в 1С 8.3:
Процедура Свертка_Массива_через_доп_Массив() Экспорт

   
МассивДляСвертки = Новый Массив;
   
МассивДляСвертки.Добавить(2);
   
МассивДляСвертки.Добавить(4);
   
МассивДляСвертки.Добавить(7); // Массив: (2, 4, 7)

   
МассивДополнительный = Новый Массив;

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

   
Сообщить(СтрСоединить(МассивДополнительный, ","));
   
//  2, 4, 7

КонецПроцедуры
Свертка Массива с помощью ТЗ (пример №3) в 1С 8.3:
Процедура Свертка_Массива_через_ТаблицуЗначений() Экспорт

   
МассивДляСвертки = Новый Массив;
   
МассивДляСвертки.Добавить(2);
   
МассивДляСвертки.Добавить(4);
   
МассивДляСвертки.Добавить(7); // Массив: (2, 4, 7)

   
ТЗ = Новый ТаблицаЗначений;
   
ТЗ.Колонки.Добавить("ВыгружаемоеЗначение");

   
// Заполняем строки ТЗ (по количеству элементов массива)
   
Для А = 0 По МассивДляСвертки.ВГраница() Цикл
       
ТЗ.Добавить();
    КонецЦикла;

   
// Загружаем Массив в ТЗ и сворачиваем его
   
ТЗ.ЗагрузитьКолонку(МассивДляСвертки, "ВыгружаемоеЗначение");
   
ТЗ.Свернуть("ВыгружаемоеЗначение");
   
// Если нужно - сортируем
    //ТЗ.Сортировать("ВыгружаемоеЗначение");

    // Выгружаем ТЗ в Массив
   
МассивДляСвертки = ТЗ.ВыгрузитьКолонку("ВыгружаемоеЗначение");

   
Сообщить(СтрСоединить(МассивДляСвертки, ","));
   
//  2, 4, 7

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