Подскажите как можно найти дубли ФИО в справочнике Сотрудники
Группировка по наименованию понятна, но не учитывает когда есть например:

Петров Иван Николаевич
Иван Николаевич Петров

это он не учтет, а хотелось бы найти все
---
Получаешь запросом все элементы справочника в таблицу. Добавляешь колонку в таблицу - ФИОДляСортировки, в цикле заполняешь его как описано выше по каждой строке таблицы.
Сортируешь таблицу по этой колонке.
Делаешь с этой таблицей все что душе угодно, например, выводишь на форму какой-нибудь обработки.
---
ищите по физическому лицу, оно должно быть одинаковое у всех сотрудников-дублей.
---
не берем стандартные базы, как вводная, есть просто справочник где наименование заносят ФИО
---
по одному строковому значению поиск дублей - не решаемая задача в общем случае, т.к. должен быть еще как минимум какой-то другой признак, по которому будет определен дубль, т.к.
1. полные тёзки существуют
2. есть всякие "оглы"/"ибн" и прочее
---
Разделить строку, отсортировать, соединить.

```1c
    Стр = "Петров Иван Николаевич";

    МассивСтрок = СтрРазделить(Стр, " ");

    СписокЗначений = Новый СписокЗначений;
    СписокЗначений.ЗагрузитьЗначения(МассивСтрок);
    СписокЗначений.СортироватьПоЗначению();

    МассивСтрок = СписокЗначений.ВыгрузитьЗначения();

    Стр = СтрСоединить(МассивСтрок, " ");
```
---
и что это даст для поиска дублей?
---
Группировку по одинаковому значению.
---
ФИО будут приведены к одинаковому порядку.
Вместо:
1) Петров Иван Николаевич
2) Иван Николаевич Петров
3) Николаевич Иван Петров
будет:
1) Иван Николаевич Петров
2) Иван Николаевич Петров
3) Иван Николаевич Петров
---
а у, скажем, Назаров Юрий Алексеевич или Юдин Басар Магомед оглы как будет выстроено ФИО?
---
А в данном конкретном случае это важно?
---
оратор в (2) и (7) предлагает выстраивать ФИО по значениям списка значения, формируемого через разделитель " ", что есть чушь в кубе
---
что есть чушь в кубе
Ну предложи свое решение, ты задачу-то понял хоть?
---
Не ФИО, а своебразный индекс для сравнения значений.
---
не ФИО, а просто отсортировать, чтобы одинаковый порядок был. Очень разумное предложение, но до тех пор, пока не будет ошибок при вводе.
Петеров Иван Аднреевич
если это это вручную забивается, то шансов на успех немного.
---
Это не ФИО, а строка для проверки дублей.
Для всех: Назаров Юрий Алексеевич, Юрий Алексеевич Назаров, Алексеевич Назаров Юрий, Назаров Алексеевич Юрий
будет одна строка: Алексеевич Назаров Юрий
---
ну и дальше что? в базе оно забито, скажем, как Юрий Алексеевич Назаров, Назаров Юрий Алексеевич, Назаров Юрий, Юрий Алексеевич - это 3 разных сотрудника
---
Задача была найти все одинаковые варианты, вы видимо какую-то другую решаете?
---
Соглашусь с коллегами, отсортировать части фио, и искать дубли по этой строке. Вполне себе нормальное решение, подходящее под описанную задачу.
---
а как это сделать запросом, что бы найти все?

если по конкретной ФИО то понятно, можно было и вхождение на разделенные ФИО в условие задать
можно и в цикле сравнить на (7)

просто если в полнотекстовом поиске указать "Иван Николаевич Петров" он выведет оба варианта, может как то можно это использовать
---
Получаешь запросом все элементы справочника в таблицу. Добавляешь колонку в таблицу - ФИОДляСортировки, в цикле заполняешь его как описано выше по каждой строке таблицы.
Сортируешь таблицу по этой колонке.
Делаешь с этой таблицей все что душе угодно, например, выводишь на форму какой-нибудь обработки.
---
идея, сейчас попробую
---
спасибо (22) , все получилось
---
Можно еще предложить к верхнему или нижнему регистру строки приводить, для единообразия. А то мало ли как там введено.
---
Не удержусь, наберите в DeepSeek promt:
В 1С Есть справочник пользователей там, в отдельных полях, хранятся: имя, фамилия и отчество. Иногда эти поля перепутаны. Как найти дубли пользователй. Например, Петров Иван Николаевич и
Иван Николаевич Петров - надо учитывать как одного и того же пользователя.

Сразу же выдает верную идею, но остальное ...
Словом, наслаждайтесь. Особенно доставляет попытка исправить получаемое, я на
"ВременнаяТаблица.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("Ссылка"));" сломался.
Зато раз 5 узнал, что абсолютно прав. :)

А по сути - можно через тз, и нормализацию каждой ОТДЕЛЬНОЙ триады в одной строке через выгрузку в список значений/сортировку/выгрузку в строку получить нормализованные ФИО, не теряя ссылку, далее очевидно.

Но надо не забывать, что так получим не дубли, а только подозрительные записи, как их различать, по условию задачи решению не поддается.
Например, Иванов как отчество и Иванов как фамилия, вполне себе вариант.
А вот спросить Марью Ивановну, а точно ли у нас работают два пафнутия, вполне себе вариант.
---
Зато раз 5 узнал, что абсолютно прав. :) Вы абсолютны правы! Нормализация особенно важна при слиянии данных из разных источников, где могут быть вариации написания одних и тех же сущностей.