Добрый день.
Как из массива убрать дубли строк ? Дубли строк в данном случае это строки содержащие повторяющиеся значения только в одной колонке. При удалении необходимо оставить первую строку обрабатываемых дублей.

В образце необходимо удалить только жёлтую строку.
---
удаляйте причину, а не следствие.

Эта ТЗ откуда взялась ? Поди с запроса ? Вот текст запроса и исправляйте.
---
```1c
    КлючиПоискаДублей = "Характеристика";

    ТЗ_Ключи = ТЗ.СкопироватьКолонки(КлючиПоискаДублей);
    ТЗ_Ключи.Индексы.Добавить(КлючиПоискаДублей);

    СтруктураПоиска = Новый Структура(КлючиПоискаДублей);

    МассивУдалить = Новый Массив;

    Для Каждого Стр Из ТЗ Цикл
    ЗаполнитьЗначенияСвойств(СтруктураПоиска, Стр);
    Если ТЗ_Ключи.НайтиСтроки(СтруктураПоиска).Количество() > 0 Тогда
    МассивУдалить.Добавить(Стр);
    Иначе
    НоваяСтрока = ТЗ_Ключи.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
    КонецЕсли;
    КонецЦикла;

    Для Каждого Стр Из МассивУдалить Цикл
    ТЗ.Удалить(Стр);
    КонецЦикла;
```
---
Сортируем по этой колонке и когда делаем обход всех значений, то сравниваем текущее значение с предыдущим.
---
Добрый день!
Дубли убрать из массива или из таблицы значений ?
---
В моём случае из массива.
---
Если такой пример, где "уникальным" считается только колонка характеристик, а не все три, то можно обойти все строки циклом
"для каждого стр из ТЧ цикл" , создать соответствие до цикла , и в цикле проверять на наличие в соответствии такой характеристики, если её нет, то добавить, если есть то пропуск этой строки..
---
если её нет, то добавить, если есть то пропуск этой строки..
Так автору - не добавить надо, а удалить )))
---
я подразумевал что будет в итоге НоваяТЧ (копия колонок предыдущей) в которую будут добавляться только уникальные строки.. А отбираться всё это дело будет через соответствие.
Либо создать массивСтрокНаУдаление - в него добавлять строки из таблицы, если прям выпилить нужно из оригинальной тч
---
тогда, согласна. Но для выдачи оптимизированного предложения, хорошо бы, если ТС ответил бы на мой вопрос: из массива удалять или из ТЗ ? Решать задачу перебором очень неоптимально по ресурсам, предполагается же, что количество строк не 5-10...
---
Особо не принципиально выпилить из текущего массива или создать новый уже без дублей. Конечная цель избавиться от жёлтой строки, потому-что в ней повторилась Характеристика.
---
ну идея та же, можно воспользоваться соответствием. Либо если не важна производительность - создать таблицу с одной колонкой и в конце ТЗ.Свернуть("вашаКолонка");
---
Можно поподробнее, не уловил мысль.
---
какой из способов поподробнее ?)
---
Выбрать различные
из ТЗ
---
Создать новую ТЗ и добавлять туда строки предварительно проведя поиск дублей
---
удаляйте причину, а не следствие.

Эта ТЗ откуда взялась ? Поди с запроса ? Вот текст запроса и исправляйте.
---
Хорошая мысль. Спасибо. Так и сделал.
---
```1c
    КлючиПоискаДублей = "Характеристика";

    ТЗ_Ключи = ТЗ.СкопироватьКолонки(КлючиПоискаДублей);
    ТЗ_Ключи.Индексы.Добавить(КлючиПоискаДублей);

    СтруктураПоиска = Новый Структура(КлючиПоискаДублей);

    МассивУдалить = Новый Массив;

    Для Каждого Стр Из ТЗ Цикл
    ЗаполнитьЗначенияСвойств(СтруктураПоиска, Стр);
    Если ТЗ_Ключи.НайтиСтроки(СтруктураПоиска).Количество() > 0 Тогда
    МассивУдалить.Добавить(Стр);
    Иначе
    НоваяСтрока = ТЗ_Ключи.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
    КонецЕсли;
    КонецЦикла;

    Для Каждого Стр Из МассивУдалить Цикл
    ТЗ.Удалить(Стр);
    КонецЦикла;
```
---
Спасибо