|
Не работает метод Записать() в регистр сведений |
☑ |
0
Niang
28.08.19
✎
08:15
|
Добрый день! Проблема с записью в регистр сведений.
Код из внешней обработки:
Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Иванов Иван").ПолучитьОбъект();
НаборЗаписей = РегистрыСведений.КонтрагентыСведенияДляСписка.СоздатьМенеджерЗаписи();
НаборЗаписей.Контрагент = Контрагент.Ссылка;
НаборЗаписей.Прочитать();
Если НаборЗаписей.Выбран() Тогда
НаборЗаписей.Телефон = Контрагент.Телефон;
НаборЗаписей.Записать();
КонецЕсли;
Смотрю в отладке, нужная запись находится и в нужном месте меняется телефон. При выходе из обработки НаборЗаписей содержит нужные мне данные, но после завершения работы в регистре сведений остаются старые, не измененные данные. Что я делаю не так?
|
|
1
butterbean
28.08.19
✎
08:22
|
чтож вы все так любите менеджер записи? Нужно же через набор записывать, так быстрее и проще же:
НаборЗаписей = РегистрыСведений.КонтрагентыСведенияДляСписка.СоздатьМенеджерЗаписи();
НаборЗаписей.Отбор.Контрагент.Установить(Контрагент.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись из НаборЗаписей Тогда
Запись.Телефон = Контрагент.Телефон;
КонецЕсли;
НаборЗаписей.Записать();
|
|
2
Uzyf
28.08.19
✎
08:26
|
(1) А это не то же самое ты написал?
|
|
3
Uzyf
28.08.19
✎
08:26
|
(0) Попробуй Записать(Истина)
|
|
4
butterbean
28.08.19
✎
08:27
|
(2)+ сорри, там конечно же не СоздатьМенеджерЗаписи(), а СоздатьНаборЗаписей()
|
|
5
rphosts
28.08.19
✎
08:28
|
(0) внутрь условия-то заходит?
|
|
6
Niang
28.08.19
✎
08:47
|
Разобрался. Перед изменением телефона в регистре, я перезаписывал этот телефон в самом контрагенте. Проблема решилась записью Контрагент.Записать().
|
|
7
Ботаник Гарден Меран
28.08.19
✎
08:49
|
Ctrl+F1 гласит что "РегистрСведенийМенеджерЗаписи.<Имя регистра сведений> (InformationRegisterRecordManager.<Имя регистра сведений>)" "Предназначен для интерактивной(!) работы с записью регистра сведений".
Как минимум при изменении измерения получается две записи.
Пользуйтесь набором записей.
|
|