Господа программисты. Не судите строго, я новичок в написании обработок. Подскажите. Есть база в которой содержится много одинаковых наименований номенклатуры. Нужно добавить к одинаковым любой символ. Что бы получилось. Допустим для примера из Кукла Кукла Кукла получилось Кукла Кукла1 Кукла11
Нашел обработку которая добавляет всем позициям символы, как бы добавить только к одинаковым????? Если кто знает. Покажите как добавить код в эту обработку.

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Родитель = &Родитель
    | ИЛИ Номенклатура.Родитель.Родитель = &Родитель
    | ИЛИ Номенклатура.Родитель.Родитель.Родитель = &Родитель
    | ИЛИ Номенклатура.Родитель.Родитель.Родитель.Родитель = &Родитель
    | ИЛИ Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель = &Родитель";

    Запрос.УстановитьПараметр("Родитель",Номенклатура);
    Результат = Запрос.Выполнить().Выгрузить();
    Н=0;
    Для Каждого Стр из Результат Цикл
    Если НЕ Стр.Ссылка.ЭтоГруппа Тогда
    Н=Н+1;
    Спр = Стр.Ссылка.ПолучитьОбъект();
    Спр.Наименование = Спр.Наименование + СокрП(ЧтоДописать);
    Попытка
    Спр.Записать();
    Исключение;
    Сообщить("Неудача " + Стр.Ссылка);
    КонецПопытки;
    КонецЕсли;
    КонецЦикла;
    Предупреждение("Готово!");
    КонецПроцедуры
```
---
вот как пример.

```1c
    Процедура ПереименоватьОдинаковыеНазванияНоменклатуры()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Наименование КАК Наименование
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
    | ПО (Номенклатура.Наименование = Номенклатура2.Наименование)
    |
    |СГРУППИРОВАТЬ ПО
    | Номенклатура.Ссылка |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(Номенклатура.Наименование) > 1";

    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
    Возврат;
    КонецЕсли;

    СопоставлениеИмен = Новый Соответствие();

    Выборка = РезультатЗапроса.Выбрать();

    Пока Выборка.Следующий() Цикл
    Если СопоставлениеИмен[Выборка.Наименование] = Неопределено Тогда
    СопоставлениеИмен[Выборка.Наименование] = Выборка.Наименование;
    Иначе
    СопоставлениеИмен[Выборка.Наименование] = " + СопоставлениеИмен[Выборка.Наименование] + "1";
    Спр = Выборка.Ссылка.ПолучитьОбъект();
    Спр.Наименование = СопоставлениеИмен[Выборка.Наименование];
    Спр.Записать();
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```

Только не учитывается ситуация, когда новое имя уже есть в базе. Т.е. при замене Кукла на Кукла1 не проверяется наличие имени Кукла1 в базе.
---
Только не пойму как применить, в обработку вставляю, не работает.
Как и куда вставляете?
В обработке просто вызвать эту процедуру. Для УФ обязательно на сервере.
В запросе небольшая ошибка была. Лишний последний символ в "| Номенклатура.Ссылка | "
Прикладываю обработку.
Если номенклатуры много, то выполняться может достаточно долго.
---
вот как пример.

```1c
    Процедура ПереименоватьОдинаковыеНазванияНоменклатуры()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Наименование КАК Наименование
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
    | ПО (Номенклатура.Наименование = Номенклатура2.Наименование)
    |
    |СГРУППИРОВАТЬ ПО
    | Номенклатура.Ссылка |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(Номенклатура.Наименование) > 1";

    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
    Возврат;
    КонецЕсли;

    СопоставлениеИмен = Новый Соответствие();

    Выборка = РезультатЗапроса.Выбрать();

    Пока Выборка.Следующий() Цикл
    Если СопоставлениеИмен[Выборка.Наименование] = Неопределено Тогда
    СопоставлениеИмен[Выборка.Наименование] = Выборка.Наименование;
    Иначе
    СопоставлениеИмен[Выборка.Наименование] = " + СопоставлениеИмен[Выборка.Наименование] + "1";
    Спр = Выборка.Ссылка.ПолучитьОбъект();
    Спр.Наименование = СопоставлениеИмен[Выборка.Наименование];
    Спр.Записать();
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```

Только не учитывается ситуация, когда новое имя уже есть в базе. Т.е. при замене Кукла на Кукла1 не проверяется наличие имени Кукла1 в базе.
---
Спасибо, за ответ. Только не пойму как применить, в обработку вставляю, не работает. В произвольный алгоритм тоже ошибка
 {(1,8)}: Ожидается последовательность операторов
       <<?>>Процедура ПереименоватьОдинаковыеНазванияНоменклатуры()
---
Только не пойму как применить, в обработку вставляю, не работает.
Как и куда вставляете?
В обработке просто вызвать эту процедуру. Для УФ обязательно на сервере.
В запросе небольшая ошибка была. Лишний последний символ в "| Номенклатура.Ссылка | "
Прикладываю обработку.
Если номенклатуры много, то выполняться может достаточно долго.