В стандартном приложении много уникальных индексов включают в себя LineNum.
Судя по коду, изменяется перед вставкой только именно LineNum. Так что (если, конечно в модификации приложения нет других уникальных индексов по сравнению со стандартом), то большая вероятность, что вот это LineNum = -LineNum как раз и приводит к нарушению уникальности.
А тут уже варианты, которые нужно анализировать.
Возможно, что по строке уже отрабатывал этот код и получился дубль номера строк.
Возможно, что ошибочно где-то есть строка, в которую из-за каких-то ошибок записали ноль и -ноль по школьном математике дает тот же ноль.
Тут уже нужен больше не анализ кода, а анализ данных. На мой взгляд, стоит отфильтровать данные именно по номеру журнала и посмотреть что там до выполнения с номерами строк.
|