Есть алгоритм
Запрос=новый Запрос();
Запрос.Текст="ВЫБРАТЬ
| НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка
|ИЗ
| Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
|
|СГРУППИРОВАТЬ ПО
| НоменклатураПрисоединенныеФайлы.ВладелецФайла,
| НоменклатураПрисоединенныеФайлы.Ссылка";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
а=1;
Пока Выборка.Следующий() Цикл
Если а=1 Тогда
ПЭ=Выборка.Ссылка.Наименование;
а=а+1;
продолжить;
КонецЕсли;
Если Выборка.Ссылка.Наименование="" Тогда
Продолжить;
КонецЕсли;
Если ПЭ=Выборка.Ссылка.Наименование Тогда //совпадение
Сообщить(Выборка.Ссылка.ВладелецФайла);
текЭлемент=Выборка.Ссылка.ПолучитьОбъект();
текЭлемент.Удалить();
ВЫБРАТЬ
ТаблицаСлева.ВладелецФайла КАК ВладелецФайла,
ВЫБОР
КОГДА ТаблицаСлева.Ссылка < ТаблицаСправа.Ссылка
ТОГДА ТаблицаСлева.Ссылка
ИНАЧЕ ТаблицаСправа.Ссылка
КОНЕЦ КАК СсылкаСлева,
ВЫБОР
КОГДА ТаблицаСлева.Ссылка > ТаблицаСправа.Ссылка
ТОГДА ТаблицаСлева.Ссылка
ИНАЧЕ ТаблицаСправа.Ссылка
КОНЕЦ КАК СсылкаСправа
ИЗ
Справочник.НоменклатураПрисоединенныеФайлы КАК ТаблицаСлева
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК ТаблицаСправа
ПО (ТаблицаСлева.ВладелецФайла = ТаблицаСправа.ВладелецФайла)
И (ТаблицаСлева.Ссылка <> ТаблицаСправа.Ссылка)
И (ТаблицаСлева.Наименование ПОДОБНО ТаблицаСправа.Наименование)
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА ТаблицаСлева.Ссылка < ТаблицаСправа.Ссылка
ТОГДА ТаблицаСлева.Ссылка
ИНАЧЕ ТаблицаСправа.Ссылка
КОНЕЦ,
ВЫБОР
КОГДА ТаблицаСлева.Ссылка > ТаблицаСправа.Ссылка
ТОГДА ТаблицаСлева.Ссылка
ИНАЧЕ ТаблицаСправа.Ссылка
КОНЕЦ,
ТаблицаСлева.ВладелецФайла
УПОРЯДОЧИТЬ ПО
ВладелецФайла,
СсылкаСлева
ИТОГИ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СсылкаСправа)
ПО
ВладелецФайла,
СсылкаСлева
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший