Удалить повторяющиеся элементы массива. Удаляет повторяющиеся элементы массива.
// Удаляет повторяющиеся элементы массива.
//
Функция УдалитьПовторяющиесяЭлементыМассива(Массив, НеИспользоватьНеопределено = Ложь) Экспорт
ОписаниеТиповСправочники = Справочники.ТипВсеСсылки();
ОписаниеТиповДокументы = Документы.ТипВсеСсылки();
ОписаниеТиповПВХ = ПланыВидовХарактеристик.ТипВсеСсылки();
ОписаниеТиповПланыСчетов = ПланыСчетов.ТипВсеСсылки();
ОписаниеТиповПланыРасчета = ПланыВидовРасчета.ТипВсеСсылки();
Если ТипЗнч(Массив) = Тип("Массив") Тогда
УжеВМассиве = Новый Соответствие;
БылоНеопределено = Ложь;
КоличествоЭлементовВМассиве = Массив.Количество();
Для ОбратныйИндекс = 1 По КоличествоЭлементовВМассиве Цикл
ЭлементМассива = Массив[КоличествоЭлементовВМассиве - ОбратныйИндекс];
ТипЭлемента = ТипЗнч(ЭлементМассива);
Если ЭлементМассива = Неопределено Тогда
Если БылоНеопределено ИЛИ НеИспользоватьНеопределено Тогда
Массив.Удалить(КоличествоЭлементовВМассиве - ОбратныйИндекс);
Иначе
БылоНеопределено = Истина;
КонецЕсли;
Продолжить;
ИначеЕсли ОписаниеТиповСправочники.СодержитТип(ТипЭлемента)
ИЛИ ОписаниеТиповДокументы.СодержитТип(ТипЭлемента)
ИЛИ ОписаниеТиповПВХ.СодержитТип(ТипЭлемента)
ИЛИ ОписаниеТиповПланыСчетов.СодержитТип(ТипЭлемента)
ИЛИ ОписаниеТиповПланыРасчета.СодержитТип(ТипЭлемента) Тогда
ИДЭлемента = Строка(ЭлементМассива.УникальныйИдентификатор());
Иначе
ИДЭлемента = ЭлементМассива;
КонецЕсли;
Если УжеВМассиве[ИДЭлемента] = Истина Тогда
Массив.Удалить(КоличествоЭлементовВМассиве - ОбратныйИндекс);
Иначе
УжеВМассиве[ИДЭлемента] = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Массив;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
Удалить повторяющиеся элементы массива
Удалить повторяющиеся элементы массива
УдалитьНепроверяемыеРеквизитыИзМассива (БСП)
УдалитьПовторяющиесяСимволы (БСП)
УдалитьЗначениеИзМассива (БСП)