Имя: Пароль:
1C
1С v8
v8: Загрузка в SQL базу.
0 lesstat
 
20.07.12
14:04
Есть ДБФ База нужно перевести ее на SQL, база оттестирована, выгрузка проходит нормально но при загрузке выходит такое сообщение:

Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft OLE DB Provider for SQL Server: Операция CREATE UNIQUE INDEX прервана, так как обнаружен повторяющийся ключ для имени объекта "dbo._Document210_VT5229" и имени индекса "_Documen210_VT5229_IntKeyInd". Повторяющееся значение ключа: (0x00000000000000000000000000000000, 0x00000000).
HRESULT=80040E2F, SQLSrvr: Error state=1, Severity=10, native=1505, line=1


нашел что таблица Documen210_VT5229 это списание товаров ТЧ Товаров, как и какими средствами можно исправить эту ошибку?
1 Джордж1
 
20.07.12
14:05
А сделать ТиС на файловой базе не вариант?
2 lesstat
 
20.07.12
14:05
База УТ 10.3  на платформе 8.1
3 lesstat
 
20.07.12
14:05
(1) написано же что оттестирована
4 lesstat
 
20.07.12
14:06
Я и имел ввиду ТиС
5 МихаилМ
 
20.07.12
14:16
в ddl триггере отключите индекс

после загрузки
найдите задвоения уберите (сверните, удалите...)

включите индекс и перестройте.
6 lesstat
 
20.07.12
14:23
(5) а можно поподробней как это сделать?
7 lesstat
 
20.07.12
14:29
(5) это как то в SQL можно отключить?
8 МихаилМ
 
20.07.12
14:37
вот еще подсказка
для тех, кто не умеет пользоваться поиском в интернете.

http://yandex.ru/yandsearch?text=v8%3A+(0x00000000000000000000000000000000%2C+0x00000000)&lr=213&site=forum.mista.ru
9 эцп
 
20.07.12
14:49
10 lesstat
 
23.07.12
07:28
чем можно открыть таблицу на которую ругается?
11 lesstat
 
23.07.12
08:04
чем открыть таблицу и грохнуть левые записи Tool_1C дает только просмотреть?
12 lesstat
 
23.07.12
08:36
народ, что нет никаких редакторов, можно только посмотреть на таблицу?
13 lesstat
 
23.07.12
11:03
ап
14 DarkWater
 
23.07.12
11:21
Я в подобной ситуации обошёлся без открытия таблиц. В 1С в отладчике посмотрел, что это за объект при помощи ПолучитьСтруктуруХраненияБазыДанных(). Оказалось, что это таблица регистрации плана обмена регистра, который я вообще не использую. Удалил регистр из плана обмена и всё. Посмотри, что это у тебя за документ, может его вообще целиком грохнуть можно в крайнем случае.
15 Жан Пердежон
 
23.07.12
11:24
гы

ДБФ, 8.1, ТиС
16 lesstat
 
23.07.12
12:12
(14) я же писал в первом посте что это документ списания
17 sapphire
 
23.07.12
12:17
(15) Тоже улыбнуло :)
18 lesstat
 
24.07.12
08:35
Как  отключить у конкретной таблицы dll тригеры, если их там вообще нет, загрузка падает на этой таблице
19 lesstat
 
24.07.12
08:37
ПолучитьСтруктуруХранениябазыДанных() Выдало Метаданные: Документ.СписаниеТоваров.ТабличнаяЧасть.ТоварыНазначение:ТабличнаяЧасть
как здесь можно очистить пустые значения?
20 МихаилМ
 
24.07.12
10:26
(19)

напишите обработку поиска дублирующихся строк в базе с файловым хранением .

лучше сразу для всех ТЧ и регистров тк проблемы могут быть множественными.

перепешите наборы данных с удалением строк тч и движений регистров с нулевыми строками
+
сверните задублированные.

естественно с контролем, что не изменятся движения

в простом случае помогает перезапись документов. но лучше проконтролировать.

учтите проблему нехватки памяти для таблиц размером близким к 4 гб.
21 Черников
 
24.07.12
10:45
(0) А саму SQL базу  пробовал открывать? Иногда она открывается. Тогда находишь различие в учете с файловой и корректируешь. У меня раза два такое случалось.
22 lesstat
 
24.07.12
11:34
(20) как напрямую обратиться к ТЧ, можете пример показать?
23 lesstat
 
24.07.12
11:35
(21) после таблицы на которой спотыкается загрузка данных никаких нет
24 lesstat
 
25.07.12
12:29
(20) можете пример показать хотя бы для конкретной ТЧ
25 МихаилМ
 
26.07.12
09:13
еще один способ решения проблнмы

распаковать DT файл программой DTManager

удалить строки 0x00000000000000000000000000000000, 0x00000000

запаковать.
26 Serg_1960
 
26.07.12
09:25
Зачем такие сложности? Автор уже установил точное местонахождение ошибки. Осталось только ему чуток напрячься и посмотреть из каких полей состоит этот ключ. В ключе - реквизиты ТЧ. Запрос на уникальность по реквизитам индекса - ипроблема автора решена.
27 МихаилМ
 
26.07.12
09:28
(26)
написано не только для автора, но и
для тех , у кого проблема будет в будущем
28 МихаилМ
 
26.07.12
09:30
+27
последний вариант - самый простой. не требует знаний запросов, записи без подписок ...
29 Serg_1960
 
26.07.12
09:33
Проблему можно решить, используя структуру хранения данных и не прибегая к сомнительным сторонним обработкам. Имхо.
30 МихаилМ
 
26.07.12
09:41
(29)
каждый решает согласно своей квалификации
для одних сомнительно одно - для других другое.

мне например проще ddl триггеры состряпать

а кому-то - обработку написать

а комуто - найти обработку в интернете

или технологические решения, как в (8)  

а совсем ...  проще в текстовике найти и удалить "не правильные строчки"


Как видите, решений много какие из них "сомнительныйе" каждый решит сам.
31 Serg_1960
 
26.07.12
09:58
(30) Согласен. "Если специалист владеет только одним методом и имя ему - молоток, то для него все проблемы - гвозди" :( не помню кто сказал :)

Перефразирую: если знаком с инструментом DTManager - используй. Но сомневаюсь что автор им владеет -потому и назвал "сомнительным", ибоестьриск окончательно уделать базу.

PS: сорри, тс, за off
32 lesstat
 
26.07.12
16:57
да  много разных методов, но я пошел наверное самым извращенным, в tool_1C посмотрел на пустые(они же повторяющиеся ссылки) смещение, открыл CD файл в hex редакторе, нашел там по смещениям эти ссылки и забил туда (в первые байты) разные числа, сохранил, ВУАЛЯ проблема с повторяющимеся индексами решена
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой