Добрый день! Проблема с записью в регистр сведений.
Код из внешней обработки:
Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Иванов Иван").ПолучитьОбъект();
НаборЗаписей = РегистрыСведений.КонтрагентыСведенияДляСписка.СоздатьМенеджерЗаписи();
НаборЗаписей.Контрагент = Контрагент.Ссылка;
НаборЗаписей.Прочитать();
Если НаборЗаписей.Выбран() Тогда
НаборЗаписей.Телефон = Контрагент.Телефон;
НаборЗаписей.Записать();
КонецЕсли;
Смотрю в отладке, нужная запись находится и в нужном месте меняется телефон. При выходе из обработки НаборЗаписей содержит нужные мне данные, но после завершения работы в регистре сведений остаются старые, не измененные данные. Что я делаю не так?
чтож вы все так любите менеджер записи? Нужно же через набор записывать, так быстрее и проще же:
НаборЗаписей = РегистрыСведений.КонтрагентыСведенияДляСписка.СоздатьМенеджерЗаписи();
НаборЗаписей.Отбор.Контрагент.Установить(Контрагент.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись из НаборЗаписей Тогда
Запись.Телефон = Контрагент.Телефон;
КонецЕсли;
НаборЗаписей.Записать();
Ctrl+F1 гласит что "РегистрСведенийМенеджерЗаписи.<Имя регистра сведений> (InformationRegisterRecordManager.<Имя регистра сведений>)" "Предназначен для интерактивной(!) работы с записью регистра сведений".
Как минимум при изменении измерения получается две записи.
Пользуйтесь набором записей.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший