Имя: Пароль:
1C
 
Как проще сделать уникализацию массива через универсальную коллекцию значений (массив)?
🠗 (Волшебник 19.04.2025 12:12)
0 program345
 
19.04.25
08:00
привет!

        ПараметрыЗапроса = НОВЫЙ массив;//массив заполнен значениями.

	ЧислоВхождений =0;
		
	Для каждого Элемент Из ПараметрыЗапроса Цикл
		
		Для каждого Элемент2 Из ПараметрыЗапроса Цикл
			
			Если Элемент = Элемент2 Тогда
			
				ЧислоВхождений = ЧислоВхождений +1;
				Если ЧислоВхождений>1 Тогда
				
					ПараметрыЗапроса.Удалить(ПараметрыЗапроса.Найти(Элемент2));
					ЧислоВхождений = 0;
					
				КонецЕсли;
			
			КонецЕсли;		
			
		КонецЦикла;			
		
	КонецЦикла;	








Создавать новый массив и делать типа:

Массив = Новый Массив;
Массив.Добавить("Какой-то элемент №0");
Массив.Добавить("Какой-то элемент №4");
Массив.Добавить("Какой-то элемент №1");
Массив.Добавить("Какой-то элемент №4");
Массив.Добавить("Какой-то элемент №2");
Массив.Добавить("Какой-то элемент №4");
Массив.Добавить("Какой-то элемент №3");
Массив.Добавить("Какой-то элемент №4");

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



ЗАПРЕЩЕНО!
1 laeg
 
19.04.25
07:13
Как вариант

Табло = Новый ТаблицаЗначений;
Табло.Колонки.Добавить("НашПараметр");
Табло.ЗагрузитьКолонку(ПараметрыЗапроса, "НашПараметр");
Табло.Свернуть("НашПараметр", "");
2 program345
 
19.04.25
07:14
(1) спасибо конечно, но про Таблицу Значений понятно, тут вопрос именно как это сделать через массив. ТЗ такое.
3 Андрюха
 
19.04.25
08:14
Функция БСП
ОбщегоНазначенияКлиентСервер.СвернутьМассив(Массив);
4 Волшебник
 
19.04.25
12:35
можно через Соответствие

Функция СвернутьМассив(пМассив)
	уник = Новый Соответствие;
	
	Для Каждого Значение Из пМассив Цикл
		уник[Значение] = Истина;
	КонецЦикла;
	
	Рез = Новый Массив;
	Для Каждого КлючЗначение Из уник Цикл
		Рез.Добавить(КлючЗначение.Ключ);
	КонецЦикла;
	
	Возврат Рез;
	
КонецФункции


p.s. Ветка утоплена, потому что автор что-то там нам запрещает...
AdBlock убивает бесплатный контент. 1Сергей