Имя: Пароль:
1C
1C 7.7
v7: нарушение ограничения primary key
Ø (Волшебник 20.09.2021 13:36)
0 OnePrg
 
20.09.21
11:15
База SQL

На копии удалил из регистра несколько измерений.
Объединением поставил на рабочую базу, теперь время от времени при перепроведении документов ругается на этот регистр и 1С-ка вылетает.

http://imagizer.imageshack.com/img923/7088/7k7H4C.png

Что я не так сделал?
Как это исправить?
1 SiAl-chel
 
20.09.21
11:19
(0) Тестирование и исправление в Конфигураторе со всеми галками сделай. И хорошо бы в SQL сделать DBCC CHECKDB.
https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15
2 SiAl-chel
 
20.09.21
11:22
(0) Удаление измерений регистра делает записи неуникальными, скорее всего из-за этого первичный ключ и стал неуникальным. Можно еще попробовать в дереве метаданных измерения между собой подвигать, потом вернуть ка было, чтобы при сохранении конфигурации запустилась реструктуризация, это может привести к пересчету первичного ключа.
3 ДенисЧ
 
20.09.21
11:23
Было
а, б, в, е
а, б, в, д

Последнее удаляем. Имеем две записи а,б,в. Вот и нарушение уникальности.
4 OnePrg
 
20.09.21
11:25
(1) CHECKDB обнаружил 0 ошибок размещения и 0 ошибок согласованности в базе данных
5 youalex
 
20.09.21
11:37
По хорошему надо бы отловить это "время от времени"
Если бы были дубли в существующих данных по новому составу PK, то реструктуризация бы не прошла с аналогичной ошибкой.
Значит скорее всего где-то надо изменить логику проведения документов (зачем удалил измерения - не спрашиваю)
7 Mikeware
 
20.09.21
11:40
(5) опередил.
надо отловить эту "время от времени", посмотреть, какой набор данных в этот момент пишется, и подумать...
впрочем, основная причина - в отношении радиусов...
14 SiAl-chel
 
20.09.21
12:11
(11) Нет, соглашусь. Чушь - удаление измерений регистров. Потому требуется пересчет итогов. ТиИ со всеми галками это и делает.
(12) Миша, не хами. Не стоит.
15 ДенисЧ
 
20.09.21
12:12
(14) "Чушь - удаление измерений регистров". Правильно. Давайте не будем удалять измерения.
Замечу - при удалении измерения регистра пересчёт сделается сам. При сохранении.
16 SiAl-chel
 
20.09.21
12:12
(4) Круто, чо. Только сначала-то ТиИ со всеми галками надо было сделать. Удаление метаданных всегда чревато.
17 Mikeware
 
20.09.21
12:13
(14) Пересчет итогов сделается автоматически при удалении. Но это еще ладно. Ты реально не видишь, что ограничения первичного ключа срабатывают на записи _движений_?
19 SiAl-chel
 
20.09.21
12:16
(15) А ты руку на отсечение дашь, что у автора не было какого-нибудь аппаратного или программного сбоя при реструктуризации и пересчете? Поэтому всегда с ТиИ и надо начинать.
(17) Вижу. А ты видишь, что разработчик 1С не влияет на формированиt PKey при создание записей движений в коде 1С? У него уже сейчас есть неуникальные первичные ключи в базе.
Закон Брукера: Даже маленькая практика стоит большой теории.