Имя: Пароль:
1C
1С v8
Ошибка sql при добавлении записи в РС
0 laby1
 
01.02.17
15:28
Что делать, куда копать? Выдается ошибка:

{Документ.ВводИндивидуальныхГрафиковРаботыОрганизации.МодульОбъекта(1256)}: Ошибка при вызове метода контекста (Записать)
                        НаборГрафикиРаботыПоВидамВремени.Записать();
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRg20971" с уникальным индексом "_InfoR20971_ByProperty20990_RRTLRT". Повторяющееся значение ключа: (0x08, 0x0000013e, 0x8344001e6746938111e6d313486c12fa, 0x08, 0x000000f1, 0xacd7003018afa76b11dd7fc794e716ed, янв  1 4017 12:00AM, 0x01, 0x92a03be786f837b84e0e4debc6de75c8, янв  1 4017 12:00AM).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1
1 youalex
 
01.02.17
15:44
(0) найти дублирующиеся записи в НаборГрафикиРаботыПоВидамВремени

Локализовать проблему можно, посмотрев какие поля входят в индекс _InfoR20971_ByProperty20990_RRTLRT
и соответствие имен этих полей - именам в 1С.
ПолучитьСтруктуруХраненияБазыДанных() в  помощь (описания индексов она вроде тоже выдает, если нет то в EM можно посмотреть)
2 laby1
 
01.02.17
16:11
(1) Странно, в ТЗ по ПолучитьСтруктуруХраненияБазыДанных() почему-то нет РС НаборГрафикиРаботыПоВидамВремени
3 laby1
 
01.02.17
16:13
(2) о, нет, есть
4 laby1
 
01.02.17
16:15
ГрафикиРаботыПоВидамВремени :

НаборГрафикиРаботыПоВидамВремени = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей();
5 laby1
 
01.02.17
16:23
"InfoRg20971"    "РегистрСведений.ГрафикиРаботыПоВидамВремени"    "РегистрСведений.ГрафикиРаботыПоВидамВремени"    "Основная"
6 laby1
 
01.02.17
16:27
_Fld20989_TYPE        binary(1)    1    Нет    Нет
_Fld20989_RTRef        binary(4)    4    Нет    Нет
_Fld20989_RRRef        binary(16)    16    Нет    Нет
_Fld20972_TYPE        binary(1)    1    Нет    Нет
_Fld20972_RTRef        binary(4)    4    Нет    Нет
_Fld20972_RRRef        binary(16)    16    Нет    Нет
_Fld20973        datetime    8    Нет    Нет
_Fld20974        binary(1)    1    Нет    Нет
_Fld20975RRef        binary(16)    16    Нет    Нет
_Fld20976        datetime    8    Нет    Нет
7 laby1
 
01.02.17
16:30
А как же соответствие найти?
8 laby1
 
01.02.17
16:32
конец раб дня, завтра буду копать дальше!
9 laby1
 
02.02.17
09:37
Странно, ищу запись по ключу - не находит
10 laby1
 
02.02.17
09:38
Странно, ищу запись по ключу - не находит:

/****** Скрипт для команды SelectTopNRows из среды SSMS  ******/
SELECT [_Fld20972_TYPE]
      ,[_Fld20972_RTRef]
      ,[_Fld20972_RRRef]
      ,[_Fld20973]
      ,[_Fld20974]
      ,[_Fld20975RRef]
      ,[_Fld20976]
      ,[_Fld20977]
      ,[_Fld20978]
      ,[_Fld20979]
      ,[_Fld20980]
      ,[_Fld20981]
      ,[_Fld20982]
      ,[_Fld20983]
      ,[_Fld20984]
      ,[_Fld20985]
      ,[_Fld20986]
      ,[_Fld20987]
      ,[_Fld20988]
      ,[_Fld20989_TYPE]
      ,[_Fld20989_RTRef]
      ,[_Fld20989_RRRef]
      ,[_SimpleKey]
  FROM [УПП].[dbo].[_InfoRg20971]
  where _Fld20989_TYPE=0x08
    and _Fld20989_RTRef=0x0000013e
    and _Fld20989_RRRef=0x8344001e6746938111e6d313486c12fa
    and _Fld20972_TYPE=0x08
    and _Fld20972_RTRef=0x000000f1
    and _Fld20972_RRRef=0xacd7003018afa76b11dd7fc794e716ed
    and _Fld20973='янв  1 4017 12:00AM'
    and _Fld20974=0x01
    and _Fld20975RRef=0x92a03be786f837b84e0e4debc6de75c8
    and _Fld20976='янв  1 4017 12:00AM'


(строк обработано: 0)
11 Ёпрст
 
02.02.17
09:40
(10) вот это выкинь, для начала

and _Fld20973='янв  1 4017 12:00AM'
and _Fld20976='янв  1 4017 12:00AM'
12 Naf2017
 
02.02.17
09:40
это что за х..?

and _Fld20973='янв  1 4017 12:00AM'
13 youalex
 
02.02.17
09:52
(10) у тебя дубли, скорее всего, в самом наборе, который

НаборГрафикиРаботыПоВидамВремени = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей();
14 laby1
 
02.02.17
10:13
(11) Да пробывал - всё равно
15 laby1
 
02.02.17
10:19
(13) Нет записей в регистре по тем двум человекам, что бьёт ошибку в январе
16 youalex
 
02.02.17
10:57
ННМП
17 laby1
 
02.02.17
11:25
(16) чо? (15) вру, есть, но то показываются то нет. Удалил - провел - опять ...
18 laby1
 
02.02.17
12:02
Почему-то в РС записи есть, но не удаляются
19 laby1
 
02.02.17
12:06
Если по фамилии отбор делаю - то отображаются. По документу не отображаются...
20 laby1
 
02.02.17
12:08
Открываю запись для редактирования РС - там нули в значениях ...
21 laby1
 
02.02.17
12:31
Какие-то неубиваемые записи в РС ...
22 laby1
 
02.02.17
12:37
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ВводИндивидуальныхГрафиковРаботыОрганизации.МодульОбъекта(1256)}: Ошибка при вызове метода контекста (Записать)

по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRg20971" с уникальным индексом "_InfoR20971_ByProperty20990_RRTLRT". Повторяющееся значение ключа: (0x08, 0x0000013e, 0x8344001e6746938111e6d313486c12fa, 0x08, 0x000000f1, 0xacd7003018afa76b11dd7fc794e716ed, янв  1 4017 12:00AM, 0x01, 0x92a03be786f837b84e0e4debc6de75c8, янв  1 4017 12:00AM).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1
23 laby1
 
02.02.17
13:04
Вообще какая-то загадка.

Когда делаю запрос:
SELECT *
  FROM [УПП].[dbo].[_InfoRg20971]
  where _Fld20989_TYPE=0x08
    and _Fld20989_RTRef=0x0000013e
    and _Fld20972_RTRef=0x000000f1
    and _Fld20972_RRRef=0xacd7003018afa76b11dd7fc794e716ed
    and _Fld20972_TYPE=0x08

возвращает 355 строк (во всех строках _Fld20972_TYPE=0x08)

Убираю последнее условие. Сколько записей должно быть. Я так думал, что >=355. Нет - 190 записей!!! Фантастика ...
24 Ёпрст
 
02.02.17
13:06
(23) этот запрос где хоть пишешь ?
25 laby1
 
02.02.17
13:30
(24) SSMS
26 laby1
 
02.02.17
13:58
Попытался удалить записи в sql - пишет нарушен индекс

Делаю DBCC CHECKTABLE (_InfoRg20971) WITH DATA_PURITY

Пишет кучу сообщений:
Сообщение 2511, уровень 16, состояние 2, строка 1
Ошибка в таблице. Идентификатор объекта 33487248, идентификатор индекса 1, идентификатор секции 72057645693861888, идентификатор единицы распределения 72057645657292800 (тип In-row data). Неправильный порядок ключей на странице (1:877226), слоты 28 и 29.
Сообщение 2511, уровень 16, состояние 1, строка 1
Ошибка в таблице. Идентификатор объекта 33487248, идентификатор индекса 1, идентификатор секции 72057645693861888, идентификатор единицы распределения 72057645657292800 (тип In-row data). Неправильный порядок ключей на странице (1:1699899), слоты 10 и 11.

...

Сообщение 8937, уровень 16, состояние 1, строка 1
Ошибка в таблице. Идентификатор объекта 33487248, идентификатор индекса 1, идентификатор секции 72057645693861888, идентификатор единицы распределения 72057645657292800 (тип In-row data). Страница сбалансированного дерева (1:1699908) содержит два родительских узла (1:873207), слот 76 и (1:1699905), слот 51.
Результаты DBCC для "_InfoRg20971".
Имеется 7072103 строк на 145453 страницах для объекта "_InfoRg20971".
CHECKTABLE обнаружил 0 ошибок размещения и 151 ошибок согласованности в таблице "_InfoRg20971" (идентификатор объекта 33487248).
repair_rebuild - это минимальный уровень исправления для ошибок, найденных DBCC CHECKTABLE (УПП.dbo._InfoRg20971).
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
27 laby1
 
02.02.17
16:17
Ну всё, решил проблему, починил табличку из SSMS командой:
DBCC CHECKTABLE (_InfoRg20971, REPAIR_REBUILD)