Вход | Регистрация

1С:Предприятие ::

Метки: 

Перезапись значения в РегистреСведений

Я
   leoshko84
 
01.02.18 - 10:48
Есть регистр "ЗначенияСвойствОбъектов", в нем измерения -Объект, Свойство и ресурс-Значение.

Хочу переписать значение:
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); 
        НаборЗаписей.Отбор.Объект.Установить(Выборка.Ссылка);
        НаборЗаписей.Отбор.Свойство.Установить(Свойство);
        НаборЗаписей.Прочитать();
        
        НоваяЗапись = НаборЗаписей.Добавить();
        НоваяЗапись.Объект=Выборка.Ссылка;
        НоваяЗапись.Свойство=Свойство;
        НоваяЗапись.Значение = выборка.Ссылка.БрендИнтернетМагазин; 
        
        НаборЗаписей.Записать(Истина);

Пишет запись с такими ключевыми полями существует.
 
  Рекламное место пустует
   hhhh
 
1 - 01.02.18 - 10:50
(0) НаборЗаписей.Прочитать();  выкинь
   Стэн5
 
2 - 01.02.18 - 10:53
Вы ее читаете НаборЗаписей.Прочитать();
а потом добавляете новую с запись с такими же измерениями, необходимо эту переписать
   FIXXXL
 
3 - 01.02.18 - 10:55
(1) или добавь .Очистить() :)
   Serg_1960
 
4 - 01.02.18 - 11:05
А ещё можно выбросить Добавить() и оставить Прочитать() и изменить. Не знаю зачем, честно говоря, но - можно :)
   Малыш Джон
 
5 - 01.02.18 - 11:07
(0) Перед тем как добавить запись в набор, проверь, вдруг там такая уже есть. Тогда надо не добавлять новую запись, а брать найденную и работать с ней.

НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); 
        НаборЗаписей.Отбор.Объект.Установить(Выборка.Ссылка);
НаборЗаписей.Отбор.Свойство.Установить(Свойство);
НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество()>0 Тогда 
   Запись = НаборЗаписей[0];//т.к. отбор по всем измерениям, то запись может быть только одна, если она есть

Иначе
   Запись = НаборЗаписей.Добавить();
   Запись .Объект=Выборка.Ссылка;
   Запись .Свойство=Свойство;
КонецЕсли;
Запись.Значение = выборка.Ссылка.БрендИнтернетМагазин; 
НаборЗаписей.Записать(Истина);
   Serg_1960
 
6 - 01.02.18 - 11:11
Да и вообще, тут через СоздатьМенеджерЗаписи() работаь проще.


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует