Здравствуйте.
Есть готовый csv файл 500 строк "Старое значение" - "Новое значение"
Есть регистр сведений. В нём нужно заменить 500 строковых значений на новые.
Нужно пройтись по строкам файла и по каждой строке выполнить поиск по "Старое значение" в регистре сведений с последующей заменой на "Новое значение".

Хочу написать обработку. Но не знаю каким образом лучше. Есть более оптимальные способы чем код ниже?

```1c
    НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Значение.Установить(СтароеЗначение);
    НаборЗаписей.Прочитать();

    Для Каждого Запись Из НаборЗаписей Цикл
    Запись.Значение = НовоеЗначение;
    КонецЦикла;

    НаборЗаписей.Записать();
```
---
лучше всего это в консоли запросов сделать
загружаете туда вашу таблицу из СSV к ней запросом цепляете ваш регистр по Подобно
в итоге получаете результат
СтрокаРегистра.ВсеПоля, НеправильнаяСтрока, ПравильнаяСтрока

а дальше в каждой консоли есть режим обработки произвольного кода над результатом запроса.
в нем в цикле пробегаетесь по результату, получаете строку регистра с неправильной строкой
используете менеджер записи (или набора) меняете значение и записываете.
---
спасибо огромное за наводку. Очень быстро получилось с помощью консоли запросов из инструментов разработчика.
```1c
    ВЫБРАТЬ
    ТабЭксель.Новое,
    ТабЭксель.Старое
    ПОМЕСТИТЬ ВТТаб
    ИЗ
    &ТЗ КАК ТабЭксель
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение,
    ВТТаб.Новое
    ИЗ
    ВТТаб КАК ВТТаб
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ПО ВТТаб.Старое = ЗначенияСвойствОбъектов.Значение
```

```1c
    // В результате запроса должны присутствовать все измерения регистра
    МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаРезультата);
    МенеджерЗаписи.Прочитать();

    // Обработка менеджера записи
    МенеджерЗаписи.Значение = СтрокаРезультата.Новое;

    МенеджерЗаписи.Записать();
```

Там есть замечательная кнопка для параметра типа таблица значений "Получить -> из табличного документа".
Потом вкладка "Обработка строки результата" - установить текст - чтение и запись менеджера записи. Вставляется код из шаблона. Добавил только "СтрокаРезультата.Новое" и запустил. 5 сек и готово.
---
Значение - Измерение?

Придется еще и удалить "старые" значения, т.е. нужен НЗ по новому значению и по старому значению. По старому необходимо записать пустой НЗ.
---
Ресурс. ЗначенияСвойствОбъектов
---
в таком случае вам необходимо запросом получить все измерения и все ресурсы "старых" записей и просто присвоить новое значение в нужный ресурс, воспользовшись МенеджерЗаписи вместо НаборЗаписей.
---
лучше всего это в консоли запросов сделать
загружаете туда вашу таблицу из СSV к ней запросом цепляете ваш регистр по Подобно
в итоге получаете результат
СтрокаРегистра.ВсеПоля, НеправильнаяСтрока, ПравильнаяСтрока

а дальше в каждой консоли есть режим обработки произвольного кода над результатом запроса.
в нем в цикле пробегаетесь по результату, получаете строку регистра с неправильной строкой
используете менеджер записи (или набора) меняете значение и записываете.
---
спасибо огромное за наводку. Очень быстро получилось с помощью консоли запросов из инструментов разработчика.
```1c
    ВЫБРАТЬ
    ТабЭксель.Новое,
    ТабЭксель.Старое
    ПОМЕСТИТЬ ВТТаб
    ИЗ
    &ТЗ КАК ТабЭксель
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение,
    ВТТаб.Новое
    ИЗ
    ВТТаб КАК ВТТаб
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ПО ВТТаб.Старое = ЗначенияСвойствОбъектов.Значение
```

```1c
    // В результате запроса должны присутствовать все измерения регистра
    МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаРезультата);
    МенеджерЗаписи.Прочитать();

    // Обработка менеджера записи
    МенеджерЗаписи.Значение = СтрокаРезультата.Новое;

    МенеджерЗаписи.Записать();
```

Там есть замечательная кнопка для параметра типа таблица значений "Получить -> из табличного документа".
Потом вкладка "Обработка строки результата" - установить текст - чтение и запись менеджера записи. Вставляется код из шаблона. Добавил только "СтрокаРезультата.Новое" и запустил. 5 сек и готово.