Регистры сведений по режиму записи подразделяются на независимые регистры и регистры с подчинением регистратору. Программная работа с этими регистрами имеет различия, поэтому вначале определите какой регистр Вам нужно изменить.
К примеру, нам необходимо перезаписать курс валюты. В первом варианте мы установим курс валюты без анализа уже записанных данных:
Процедура УстановитьКурсВалюты(Период, Валюта, Курс, Кратность)
Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Запись.Период = Период;
Запись.Валюта = Валюта;
Запись.Курс = Курс;
Запись.Кратность = Кратность;
Запись.Записать();
КонецПроцедуры
Теперь, используя объект МенеджерЗаписи, мы перезапишем только курс валюты. Для этого сперва установим отбор по периоду и валюте и прочитаем данные из регистра сведений:
Процедура УстановитьКурсВалюты(Период, Валюта, Курс)
Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Запись.Период = Период;
Запись.Валюта = Валюта;
Запись.Прочитать();
Если Запись.Выбран() Тогда Запись.Курс = Курс;
Запись.Записать();
КонецЕсли;
КонецПроцедуры
С помощью функции Выбран() мы проверяем, считана запись или нет. Если запись существует (по установленному периоду и валюте) — мы устанавливаем новый курс.
Аналогичные действия можно выполнить с использованием объекта НаборЗаписей для изменения данных в регистре сведений:
Процедура УстановитьКурсВалюты(Период, Валюта, Курс)
Набор = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Набор.Отбор.Период.Установить(Период);
Набор.Отбор.Валюта.Установить(Валюта);
Набор.Прочитать();
Если Набор.Количество() Тогда Запись = Набор[0];
Запись.Курс = Курс;
Набор.Записать();
КонецЕсли;
КонецПроцедуры