Поиск дублей в таблице

// Проверка любой таблицы на повторяющиеся строки // Данную процедура лучше использовать в процедурах ПриЗаписи, ОбработкаПроведения, и т.п. // Тоесть в тех, где можно сделать отказ от выполениядальнейших дествий // Параметры: // ТЧ - можно указать "ТаблицуЗначений", либо "ТабличнуюЧасть" документа // Отказ - параметр "Отказ" или "Истина", "Ложь" Процедура ПоискДублейСтрокВТабЧасти(ТЧ, Отказ) Экспорт Если Тип(ТЧ) = Тип("ТаблицаЗначений") Тогда ТаблЗнач = ТЧ; Иначе ТаблЗнач = ТЧ.Выгрузить(); КонецЕсли; Отбор = Новый Структура(); Для каждого Стр Из ТаблЗнач Цикл Отбор.Очистить(); Для каждого Колонки Из ТаблЗнач.Колонки Цикл Если Колонки.Имя <> "НомерСтроки" Тогда Отбор.Вставить(Колонки.Имя, Стр[Колонки.Имя]); КонецЕсли; КонецЦикла; Строки = ТаблЗнач.НайтиСтроки(Отбор); Если Строки.Количество() > 1 Тогда Для каждого НайденныеСтроки Из Строки Цикл Если Строки.Найти(НайденныеСтроки) > 0 Тогда СтрокаСообщения = "Строка № " + Строки[0].НомерСтроки + " совпадает со строкой № " + НайденныеСтроки.НомерСтроки; СообщитьОбОшибке(СтрокаСообщения, Отказ, "Уберите задвоения строк!"); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры