Имя: Пароль:
1C
1С v8
Попытка вставки неуникального значения в уникальный индекс
0 prog1Csww
 
20.11.18
19:38
Всем здравствуйте.
При проведении документа не своего авторства вылазит следующая ошибка

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(3430)}: Ошибка при вызове метода контекста (Записать)

по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._AccumRg6649" с уникальным индексом "_AccumRg6649_ByPeriod_TRN". Повторяющееся значение ключа: (ноя 16 4018  4:01PM, 0x00000091, 0x8295f298f5085f5811e8e926373a8e4b, 1).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1

Если я создаю документ то дает провести, чужие не получается провести.
Как исправить?
1 Сияющий в темноте
 
20.11.18
19:40
Структуру регистра в студию,и что в него пишется.
2 palsergeich
 
20.11.18
19:45
номер строки в обработке проведения не трогал?
3 palsergeich
 
20.11.18
19:47
Ибо если верить https://its.1c.ru/db/metod8dev/content/1590/hdoc
То есть подозрения что речь идет про этот индекс [ОРРХ | ОРНР1 +] Период + Регистратор + НомерСтроки (Кластерный)
4 palsergeich
 
20.11.18
19:49
Ну а единственное что в нем можно сломать - номер строки. Остальное одинаковое штатно
5 youalex
 
20.11.18
20:01
6 prog1Csww
 
20.11.18
20:08
(1) База 1С Рарус Торговый комплекс. Регистр накопления. Называется ОстаткиТоваровКомпании.
Измерения
-Склад компании
-Номенклатура
-Характеристика номенклатуры
Ресурсы
-Количество
-Резерв
-СуммаРозн
-СуммаРознУпр
и еще 5 реквизитов
Если Вы про эту структуру
если про SQL то (3) правильно написано
7 prog1Csww
 
20.11.18
20:27
(5) Запрос не выявил дублей
8 prog1Csww
 
20.11.18
20:27
(5) select * from  _AccumRg6649  Acc (NOLOCK)
inner join
(
select    
    _Period,
    _RecorderTRef,
    _RecorderRRef,
    _LineNo
from  _AccumRg6649 (NOLOCK)
group by
    _Period,
    _RecorderTRef,
    _RecorderRRef,
    _LineNo
having count(*) > 1
) doubles

ON doubles._Period        = Acc._Period AND
   doubles._RecorderTRef  = Acc._RecorderTRef AND
   doubles._RecorderRRef  = Acc._RecorderRRef AND
   doubles._LineNo        = Acc._LineNo
9 _Дайвер_
 
20.11.18
20:32
Перезагрузи машину, проверь еще раз, подобное у меня было, помогла перезагрузка, правда не надолго, потом пришлось платформу обновить на пару версий
10 prog1Csww
 
20.11.18
21:01
(2) Память дала сбой 1С стала ругаться на страницы памяти. Это серьезная ошибка которая может привести к потере целостности базы данных. Нужно делать CHECKDB, бла бла бла.

Сделали CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS единственное что. По другому никак.
11 rozer76
 
20.11.18
22:25
(10) память серверная была с ECC?
12 palsergeich
 
20.11.18
22:42
(10) Спасибо
13 youalex
 
21.11.18
00:06
(7) индекс удалял перед выполнением?
14 youalex
 
21.11.18
00:08
(13) зы. перед удалением - ПКМ по нему и что-то там типа "Создать скрипт ... Create" - чтобы руками потом не писать.
15 prog1Csww
 
22.11.18
02:58
(11) Не знаю. Какая уже разница.
16 prog1Csww
 
22.11.18
02:59
(13) Нет. Не удалял. Думаешь из-за того что битый индекс, то и запрос не выполняется корректно?
17 prog1Csww
 
22.11.18
03:01
(14) По правде говоря я побоялся индекс удалять, но теперь попробую
18 youalex
 
22.11.18
03:57
(16) Да. он по индексу ищет, а тебе нужно по записям.
19 prog1Csww
 
22.11.18
07:35
(11) Сейчас уже по другому сисадмин говорит
"Там ошибка в какой то таблице в SQL прячется и приводит к ошибке памяти на сервеах. Выглядит как аппаратная проблема, а на самом деле она программная."
Видно начальник его прижал