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