Если добавить униклаьный индекс, то при обновлении записи 1С будет формировать запрос на UPDATE по полю, которое есть в униклаьном индексе.
Вот содержимое файла 1cv7.ddx:
X=SC31 %#Доп. индекс
X=SC31 %I=IX1C_SC31_KodIdent | |1 |SP34 |0
Создается уникальный индекс по полю SP34.
После чего пытаемся обновить запись (отредактировать элемент) и смотрим на запрос, вот он:
exec sp_executesql N'Update SC31 set ID=@P1, PARENTID=@P2, CODE=@P3, DESCR=@P4, ISFOLDER=@P5, ISMARK=@P6, VERSTAMP=@P7, SP33=@P8 where SP34=@P9',N'@P1 varchar(9),@P2 varchar(9),@P3 varchar(10),@P4 varchar(25),@P5 tinyint,@P6 bit,@P7 int,@P8 varchar(10),@P9 varchar(10)',' 1 ',' 0 ','0000000001','eryserhdfhdghfdjhdfj',2,0,5,'dfsh ','5675675474'
как видно условие "where SP34=@P9", если же индекс сделать не униклаьным, тогда запрос становиться таким:
exec sp_executesql N'Update SC31 set ID=@P1, PARENTID=@P2, CODE=@P3, DESCR=@P4, ISFOLDER=@P5, ISMARK=@P6, VERSTAMP=@P7, SP33=@P8, SP34=@P9 where ROW_ID=@P10',N'@P1 varchar(9),@P2 varchar(9),@P3 varchar(10),@P4 varchar(25),@P5 tinyint,@P6 bit,@P7 int,@P8 varchar(10),@P9 varchar(10),@P10 int',' 1 ',' 0 ','0000000001','dfhdhdfh',2,0,2,'dfsh ','36457e567 ',1
как видно условие "where ROW_ID=@P10". Теперь когда вы вдруг поменяете поле SP34, то оно никак не сохраниться потому как условие фомриурется уже по отредактированному значению. Но еще хучже, когда вдруг в системме уже есть значение и проапдейтится запись совсем не та что надо (в том числе и ID).