Уведомления
Очистить все

Как удалить дубли (повторяющиеся значения) из массива в 1С?

1 Записи
1 Пользователи
0 Likes
7,078 Просмотры
65-150 Okolokompa Форум
(@kalininalex)
Reputable Member
Присоединился: 4 года назад
Записи: 160
Создатель темы  

Удаляем дубли из массива в 1С:

Способ 1

&НаСервере
Функция УдалитьДублиИзМассива(Массив)
	
	ИндексТекущегоЭлемента = 0; 
	ВсегоЭлементов = Массив.Количество(); 
	
	Пока ИндексТекущегоЭлемента < ВсегоЭлементов Цикл 
		ИндексСледующегоЭлемента = ИндексТекущегоЭлемента + 1; 
		Пока ИндексСледующегоЭлемента < ВсегоЭлементов Цикл 
			Если Массив[ИндексСледующегоЭлемента] = Массив[ИндексТекущегоЭлемента] Тогда 
				Массив.Удалить(ИндексСледующегоЭлемента); 
				ВсегоЭлементов = ВсегоЭлементов - 1; 
			Иначе 
				ИндексСледующегоЭлемента = ИндексСледующегоЭлемента + 1; 
			КонецЕсли; 
		КонецЦикла; 
		ИндексТекущегоЭлемента = ИндексТекущегоЭлемента + 1; 
	КонецЦикла;
	
	Возврат Массив;  
	
КонецФункции

Способ 2

&НаСервере
Функция УдалитьДублиИзМассива(Массив) 
	
	ТЗ = Новый ТаблицаЗначений;
	ТЗ.Колонки.Добавить("Наимен");
	
	Для f = 1 по Массив.Количество() Цикл
		ТЗ.Добавить();
	КонецЦикла;
	
	ТЗ.ЗагрузитьКолонку(Массив,"Наимен");
	ТЗ.Свернуть("Наимен");
	Массив = ТЗ.ВыгрузитьКолонку("Наимен");
	
	Возврат Массив; 
	
КонецФункции

 


   
Цитата
Поделиться: