Иногда, вследствие обменов или неосторожных действий, возникают проблемы не уникальности кодов групп или элементов справочников. При обновлении конфигурации выводятся предупреждения "Код справочника стал неуникальным:...".
Эта обработка предназначена для поиска и замены таких не уникальных (дублирующихся) кодов справочников уникальными. Обработка выполняет поиск дублирующихся кодов только для тех справочников, у которых установлен признак контроля уникальности кодов. При этом учитывается вариант серий кодов - если серии кодов должны быть уникальны во всём справочнике, то и дубли будут искаться во всём справочнике, если серии должны быть уникальны в пределах подчинения - то дубли ищутся в пределах подчинения родителю, если серии должны быть уникальны в пределах подчинения владельцу - то дубли ищутся в пределах владельцев.
Обработка заменяет дублирующиеся коды свободными кодами, беря их "снизу". То есть, если для справочника заняты коды "001", "004", "005" - то дублирующиеся коды будут заменены на "002", "003", "006" и так далее. В этом отличие обработки от применения метода "УстановитьНовыйКод()", который устанавливает код, следующий за максимальным - то есть берёт код "сверху".
Внимание!
Перед применением обработки рекомендуется сделать резервную копию базы!
Обработка не учитывает прикладную логику используемого решения - она просто ищет дубли кодов по описанным выше правилам и заменяет их на уникальные. Прежде, чем установить галочку "Исправлять коды", убедитесь, что в итоге данные будут согласованы и система будет работать "как надо".
Для строковых кодов обработка не учитывает возможные префиксы - коды ищутся в виде "[0-9][0-9]....[0-9]", соответственно длине кода справочника.