Имя: Пароль:
1C
1С v8
Изменить запись в регистре сведений
0 Nzzzz
 
29.07.20
11:09
Доброго времени суток!
Как программно изменить реквизит в записи регистра сведений?
Не понимаю, нужно сначала как то же получить объект?(т.к. буду изменять)
1 Василий Алибабаевич
 
29.07.20
11:12
(0) Для РС объекта не существует. Вместо него набор записей. Вот его и корректируй.
2 Nzzzz
 
29.07.20
11:14
мНаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
//делаю отборы
мНаборЗаписей.Отбор.Фамилия.Установить(СокрЛП(МассивКолонок.Получить(2).Получить(строкаТП)));
// читаю, что есть в базе
мНаборЗаписей.Прочитать();

Но этого не достаточно для того, чтобы изменить
3 Василий Алибабаевич
 
29.07.20
11:24
(2) Конечно недостаточно. Потом нужно еще что-то вроде такого :

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

мНаборЗаписей.Записать();
4 Nzzzz
 
29.07.20
11:31
(3) Спасибо!
5 Nzzzz
 
29.07.20
11:32
Только не понимаю зачем создавать набор, если мне нужно существующий изменить..
6 Nzzzz
 
29.07.20
11:32
(5) Первая строка "мНаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();"
7 del123
 
29.07.20
11:42
Набор это, грубо говоря, таблица, в которую ты получаешь нужные записи регистра, изменяешь их и записываешь обратно.
8 Nzzzz
 
29.07.20
11:53
(7) Спасибо
9 D_E_S_131
 
29.07.20
13:37
(5) Не нравится набор? Меняй через менеджер записи. :)
10 Ц_У
 
29.07.20
13:42
мНаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
мНаборЗаписей.Записать();

И все, нет проблем.
Не благодари!
11 Rovan
 
гуру
29.07.20
14:26
(0) но главное - помни,
программная запись регистра без отборов стирает ВСЕ данные в нем !!
12 Ёпрст
 
29.07.20
14:52
(11) ага, а запись по отбору..тоже стирает. только с отбором
:)