Имя: Пароль:
1C
1С v8
ЗУП. Как найти и удалить неуникальные записи в РС?
0 dnab
 
30.03.20
08:42
При обновлении с 3.1.10 на 3.1.13 обнаружились неуникальные записи в регистре сведений ДанныеИспытательногоСрокаСотрудников. Как найти и исправить?
ТиИ ничего не нашло.
Ошибка такая:
Процедура "ИспытательныйСрокСотрудников.ОбновитьДатуЗавершенияИспытательногоСрокаСотрудниковПриемНаРаботу" обработки данных завершилась с ошибкой:

{ОбщийМодуль.ДлительныеОперации.Модуль(648)}: Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRgSL32439" с уникальным индексом "_InfoRgSL32439_1". Повторяющееся значение ключа: (0, 0xbf190050568f3d2411e8cac9bb81eb4e, 0xbf190050568f3d2411e8cac9356d3481).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1


Технические подробности:
Ошибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента с идентификатором e4599e5e-a233-4e09-a5ae-71a68b0f2556 по причине
{ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(107)}: Ошибка при вызове метода контекста (Записать)
    НаборЗаписей.Записать(Замещать);
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRgSL32439" с уникальным индексом "_InfoRgSL32439_1". Повторяющееся значение ключа: (0, 0xbf190050568f3d2411e8cac9bb81eb4e, 0xbf190050568f3d2411e8cac9356d3481).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1


См. также журнал регистрации.
    ВызватьИсключение ТекстОшибки;
1 dnab
 
30.03.20
14:13
Решение:
Есть двойные приемы на работу, которые почему-то проведены, либо не проведены но с движениями.
Выявляются обработкой "Проведение документов" из все функции-стандартные. Я запускал за весь период базы по документам Прием на работу. Обработка выдаст список проблемных физлиц.
По ним смотрим в журнале кадровых документов проблемные доки и групповой обработкой устанавливаем реквизит проведение (в опциях  ставим что без контроля). Потом вручную отменяем проведение
2 dmpl
 
30.03.20
14:54
у вас что-то с базой не то. Регистр сведений на уровне платформы обеспечивает уникальность по сочетанию его измерений. Появление данной ошибки SQL - это звоночек вам, что база битая.
3 dnab
 
30.03.20
14:58
(2) понятно что должен обеспечивать. Но вот не обеспечил. Баг релиза платформы или что-то еще. Но решение выложил, может быть кому-то еще поможет.
4 dnab
 
30.03.20
14:59
Всего 2 приема таких. Так что проблема не коронавирус
5 dmpl
 
30.03.20
15:09
(3) Это может быть вершина айсберга. Например, может у вас индекс не соответствует структуре метаданных. Или еще какая скрытая проблема. Хотя даже просто с индексом шутить не стоит, ведь отбор часто идет по индексу. А раз выскакивает ошибка SQL - значит система при каких-то условиях НЕ ВИДИТ эти записи. Она считает, что их нет, и пытается еще раз добавить. Тут, естественно, первый же вопрос - а чего она еще не видит?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой