Имя: Пароль:
1C
1С v8
Неуникальное значение в уникальный индекс.
0 Паланик
 
10.05.12
10:43
Вышла ошибочка при загрузке базы из дт файловой в скульную..., на форуме так или иначе проблема освещалась, судя по веткам, но причины у всех разные.


Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft OLE DB Provider for SQL Server: CREATE UNIQUE INDEX terminated because a duplicate key was found for object name 'dbo._InfoRg17385' and index name '_InfoR17385_ByDims_R'.  The duplicate key value is (0x01, 0x00000000, 0x00000000000000000000000000000000).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1


Пишу обработку с кодом

МассивИменМетаданных = Новый Массив();    
   МассивИменМетаданных.Добавить("РегистрыСведений");  
   
   Структура = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
   Структура.Сортировать("ИмяТаблицыХранения");  
   
   Структура.ВыбратьСтроку();

Получаю структуру, из которой вижу, что данная таблица - Рег сведений "ОбъектыИнформационныхБаз". Захожу туда и вижу таблицу, где перечислены все документы системы в первой колонке, во второй пусто. Долго листая, заметил, что некоторые объекты не обнаружены.

Это из-за них?
П.С.: УРБД когда-то было, теперь нет и не планируется, но периферийный узел не удалял из плана обмена. Может, убрать узел и вычистить этот регистр вообще?

Или ТиИ сделать с очищением ссылок на несуществующие объекты?
1 Defender aka LINN
 
10.05.12
10:50
Этот регистр не для УРБД.
Выгрузи его в файл, очисти, и после перевода восстанови
2 Паланик
 
10.05.12
10:52
(1) 1С не снабдило справкой этот РС, так что я хз, что хранится в этой таблице, по ресурсу подумал, что это что-то УРБДшное...
Кстати, забыл сказать, что конфа УПП 1.3.25, платформа 15.310

Что значит восстановить после перевода?
3 Паланик
 
10.05.12
10:57
Ааа... перевода в скуль? Дак она и так была в скуле, бухша на праздники выгрузила в дт, принесла домой, начала трахать перепроведением, восстановление сосотояние расчетов с контрагентами, ТиИ... и седня утром такая фигня при обратной загрузке в скуль.
4 Defender aka LINN
 
10.05.12
10:58
(2) Он для обменов со всякими УТ, БП и прочими ЗУПами
5 Паланик
 
10.05.12
10:59
И как понимать, что загружены не все данные? Так и понимать? Что в ней хранится, какие данные утеряны?)
6 Паланик
 
10.05.12
12:03
(4) Как быть в такой ситуации? ... В базе уже работают, которая загружена в sql, соответственно данные уже потеряны при загрузке? Значит выгружать и очищать регистр могу уже на скульной? И расскажи суть этой манипуляции... чтобы индекс восстановился? Почему ТиИ не смогла этого самостоятельно сделать?
7 Паланик
 
10.05.12
12:06
Или может вообще его очистить, обмены с другими конфами не делаем, да и нет их.
8 Паланик
 
10.05.12
13:15
Эту таблицу победил, потом выгрузил, загрузил - теперь другая ошибка:


Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft OLE DB Provider for SQL Server: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._ConstsChngR' and the index name '_ConstsChng_ByNodeMsg_RNB'. The duplicate key value is (0x0000000d, 0xb310e9655f4c5d3e43c905e5436f92c0, <NULL>, 0x072933926e1c6546aebff87869258f4c).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1


Как обычно смотрю что за таблица - РегистрацияИзмененийКонфигурации, мало что дало мне это. Смотрю эту табличку в скуле-  гляжу в книгу, а вижу фигу. Во всех полях <Binary data> кроме одного _MessageNo там 0 с NULL чередуется.

Чо, где порыцца, как подлечить?
9 Паланик
 
10.05.12
13:28
Люди, кто в SQL шарит, что делать -то? Может как-то средствами скуля реиндексировать эту таблицу?
10 Паланик
 
10.05.12
13:36
Копаюсь в индексе, в его свойствах, вижу команду New index... но вдруг это не то, что я думаю? Так же в опциях увидел свойство: Ignore duplicate values, галка не стоит соответственно. Я то на копии ковыряюсь, но хочется осмысленно что-либо делать)
11 Паланик
 
10.05.12
13:39
Rebuild index есть опция...
12 Паланик
 
10.05.12
14:17
Еще актуально...
13 Паланик
 
11.05.12
06:44
ап
14 skunk
 
11.05.12
06:49
нью - это создание нового индекса ... тебе нафих ненадо ...
игнор тоже ставить не надо ...
ребилд не поможет ...
15 skunk
 
11.05.12
06:51
(8)у тебя кей формируется не по нулл ... а по 4 полям ... и тебе надо найти запись у которой все 4 ключевых поля равны  is (0x0000000d, 0xb310e9655f4c5d3e43c905e5436f92c0, <NULL>, 0x072933926e1c6546aebff87869258f4c).
16 Паланик
 
11.05.12
07:00
(15) Я не вижу значения полей, пишет - <Binary data>, или как-то таблицу можно выгрузить или посмотреть в другом виде? В скуле не силен, ей богу.
17 Паланик
 
11.05.12
07:05
И что это за таблица такая РегистрацияИзмененийКонфигурации?
18 skunk
 
11.05.12
07:31
(17)там регистрируются изменения конфигруции для подчиненых узлов
19 Паланик
 
11.05.12
07:35
(18) Может вообще удалить все записи из таблицы? Как увидеть содержимое полей?
20 skunk
 
11.05.12
07:37
обычным запрос выбери данные прям в оснастке

select * from [имябазы].[имясхемы].[имятаблицы]
21 skunk
 
11.05.12
07:38
впринципе можно и удалить
22 Паланик
 
11.05.12
07:56
(20) Ага, сделал. Но там этих записей штук 20, как и других вариаций, они все по нескольку раз повторяются. И еще вопрос - табличку то я вывел, вижу поля, а как удалить то? Где вижу - удалить не могу, а где могу - не вижу...
23 Паланик
 
11.05.12
07:58
По номеру строк можно в принципе отловить, если там сортировка аналогичная, конечно)
24 skunk
 
11.05.12
08:06
вообщем медитируй ... для начало вот с этим попробуй разобраться http://support.microsoft.com/kb/139444/ru

если не получиться вот с этим http://msdn.microsoft.com/ru-ru/library/ms189245(v=sql.105).aspx
25 Паланик
 
11.05.12
09:01
(24) Спасибо за ссылки, в первой полезная инфа. Но сделал по другому. Удалил узел УРБД, т.к. уже не делаются, глянул в скуле - таблица очистилась. Выгрузил базу в дт, загрузил обратно в скуль - без ошибок! Спасибо всем за помощь)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.