Имя: Пароль:
1C
 
Интерактивная запись в независимый регистр сведений
0 rowvg
 
14.06.24
10:14
Зачем при интерактивном редактировании существующей записи независимого регистра сведений 1С последовательно пишет два набора записей (пустой и с реальными данными)? Разве нельзя запись данных в БД выполнить за один раз посредством оператора UPDATE?

UPDATE МойРегистрСведений
SET измерение1= значениейизмерения1, ресурс1 = значениересурса1, ...
WHERE (поиск записи по "старым" ключевым полям)
1 arsik
 
14.06.24
10:27
2 rowvg
 
14.06.24
10:42
(1) В статье говорится только о случае, когда изменены ресурсы или реквизиты. А я и про ключевые поля имею в виду.

Почему именно при интерактивной записи происходит запись двух наборов? Почему нельзя найти нужную запись по "старым" ключевым полям?
3 GenAcid
 
14.06.24
10:47
(2) Два набора пишутся при любой записи менеджером записи. Интерактивная запись делается менеджером записи. Все сходится. В 27 версии будет через апдейт.
4 rowvg
 
14.06.24
10:58
(3) Это не так. Если говорить о программной записи, то запись двух наборов происходит только тогда, когда мы считываем запись программно, то есть пишем
вот такой метод: МенеджерЗаписи.Прочитать();

Если не считываем, то записывается только один набор.
5 vde69
 
14.06.24
11:03
(2) при изменении ключего поля ты польбому не обойдешся 1 апдейтом, причина простая:

у тебя в регистре уже может существовать запись с НОВЫМИ ключами, и апдейт выдаст ошибку..
6 rowvg
 
14.06.24
11:55
(5) Согласен, тоже подумал об этом

Можно делать DELETE, затем INSERT, все в одной транзакции
7 rowvg
 
14.06.24
11:58
6+ Когда идет запись набора или не считанной менеджером записи записи скорее всего так и происходит. Надо в профайле проверить.
8 rozer76
 
14.06.24
12:10
9 rowvg
 
14.06.24
12:18
(8) Спасибо за ссылку!
Человек проделал колоссальную работу
10 GenAcid
 
17.06.24
09:19
(4) ок, но речь в (0) же про "интерактивное редактирование существующей записи". Т.е. она прочитана. Все еще сходится.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.