Из файловой в sql - ошибка

25. juliaа2007 16.02.11 16:21 Сейчас в теме
Помогите пожалуйста не могу разобраться
Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Попытка вставки неуникального значения в уникальный индекс: Microsoft OLE DB Provider for SQL Server: Cannot insert duplicate key row in object '_AccntRegED22503' with unique index '_Accnt22503_ByPeriod_TRNRN'. HRESULT=80040E2F, SQLSrvr: Error state=3, Severity=E, native=2601, line=1
Как найти индекс, и что нужно сделать чтобы загрузка пошла?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
26. fedors 25.10.12 14:24 Сейчас в теме
Столкнулся с аналогичной проблемой. После апгрейда на 2.0.40.11. Слетели настройки параметров учета.
Изменить нельзя - duplicate index. По "ОК" - пытается вставить в счет Субконто и вылетает. Тестирование/исправление, выгрузка в файловую и обратно - результат тот же.
Сработало так - выгрузил в файловую. Сменил настройки учета. "оперции"-"Управление итогами" поставил по всем регистрам. Тестирование/исправление со всеми проверками и перерасчетами. Выгрузка обратно в SQL.
27. prohorp 33 23.08.16 07:09 Сейчас в теме
Здравствуйте.
Была вот такая ошибка:

Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._InfoRg6197" и индекса с именем "_InfoRg6197_ByDims_RR". Повторяющееся значение ключа: (0x00000000000000000000000000000000, 0x801b6cf049ca867f11e0a09867e92527).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1

Решилось тестированием/исправлением в файловой базе.
Сначала тестирование/исправление со всеми галками запускал.
Затем еще раз запускал чисто проверка логической/ссылочной целостности с очисткой пустых значений.
Прикол в том что на 4-й раз только у меня из базы убрались все ошибки.
Прилагаю принт-скрин настроек тестирования/исправления
Прикрепленные файлы:
28. igyo 105 13.10.09 13:00 Сейчас в теме
Здравствуйте, пожалуйста! Очень прошу! Очень нужно! Уже не знаю что делать...

При загрузке из dt в sql базу возникает ошибка:

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

Я так понимаю пустые ссылки где-то в регистре сведений. Подскажите как полечить, обработачка модет готовая есть или код...
30. igyo 105 13.10.09 13:13 Сейчас в теме
Это я уже читал но воспользваться не смог... видно мозгов не хватает :(
Поконкретнее что-нить подскажите пожалуйста
31. Altair777 644 13.10.09 13:15 Сейчас в теме
(3) это читали?

Что делать?

1. Если проблема загрузкой базы данных, то:

1.1. Если Вы делаете загрузку (используйете dt-файл) в базу MS SQL Server, то при создании базы перед загрузкой укажите смещение дат - 2000.



Если уже база создана со смещением 0, то создайте новую с 2000.

1.2. Если есть возможность в файловом варианте работать с базой, то выполните Тестирование и Исправление, а также Конфигурация - Проверка конфигурации - Проверка логической целостности конфигурации + Поиск некорректных ссылок.

1.3. Если нет файлового варианта, попробуйте загрузить из DT в клиент-серверный вариант с DB2 (который менее требователен к уникальности), и затем выполнить Тестирование и Исправление, а также Конфигурация - Проверка конфигурации - Проверка логической целостности конфигурации + Поиск некорректных ссылок.

1.4. Для локализации проблемы можно определить данные объекта, загрузка которого не удалась. Для этого надо включить во время загрузки трассировку в утилите Profiler или включите запись в технологический журнал событий DBMSSQL и EXCP.

1.5. Если доступна узел (планы обменов), то выполнить обмен. Можно также дополнительно перед обменом выполнить пункт 2.3.5
32. igyo 105 13.10.09 13:21 Сейчас в теме
1.1 база сделана со смещением
1.2 сделано

пункт 1.4 можно поподробнее.

2.3.5 Сделать индекс субд не уникальным. Заксриптовать индекс с помощью Management Studio.
Далее удалить текущий индекс, скорректировать текст и создать скриптом неуникальный индекс.


На словах просто, а как сделать?
33. igyo 105 13.10.09 14:21 Сейчас в теме
10:15.3061-2142770,DBMSSQL,2,process=rphost,p:processName=trade102,t:clientID=15,t:applicationName=Designer,t:computerName=OFFICE-SERVER,t:connectID=5,Usr=Воинов И. А.,Trans=0,dbpid=55,Sql='cre ate index [_AccumR4222_ByDims5082_TR] on [_AccumRegTotals4222] (_Period, _Fld4206RRef)'
10:33.6050-0,EXCP,3,process=rphost,p:processName=trade102,t:clientID=15,t:applicationName=Designer,t:computerName=OFFICE-SERVER,t:connectID=5,Usr=Воинов И. А.,Exception=DataBaseException,Descr="Попытка вставки неуникального значения в уникальный индекс:
Microsoft OLE DB Provider for SQL Server: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccumRegTotals4445' and the index name '_AccumR4445_ByDims_TRRRRR'. The duplicate key value is (Jan  1 2001 12:00AM, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000).
HRESULT=80040E2F, SQLSrvr: Error state=1, Severity=10, native=1505, line=1
"
10:33.7300-160361,DBMSSQL,2,process=rphost,p:processName=trade102,t:clientID=15,t:applicationName=Designer,t:computerName=OFFICE-SERVER,t:connectID=5,Usr=Воинов И. А.,Trans=0,dbpid=55,Sql='create unique clustered index [_AccumR4445_ByDims_TRRRRR] on [_AccumRegTotals4445] (_Period, _Fld4438RRef, _Fld4439RRef, _Fld4440RRef, _Fld4441RRef, _Fld4442RRef)'
10:33.7460-0,EXCP,2,process=rphost,p:processName=trade102,t:clientID=15,t:applicationName=Designer,t:computerName=OFFICE-SERVER,t:connectID=5,Usr=Воинов И. А.,Exception=DataBaseException,Descr=Ошибка загрузки информационной базы. В информационную базу загружены не все данные


Для локализации проблемы можно определить данные объекта, загрузка которого не удалась.

Вот смотрю и ничего не вижу...
34. Gilev.Vyacheslav 1912 13.10.09 14:21 Сейчас в теме
35. Gilev.Vyacheslav 1912 13.10.09 14:22 Сейчас в теме
проблемный индекс _AccumR4445_ByDims_TRRRRR
36. Gilev.Vyacheslav 1912 13.10.09 14:23 Сейчас в теме
а поскольку таблица dbo._AccumRegTotals4445
это итоги регистра накопления
37. igyo 105 13.10.09 15:00 Сейчас в теме
точно! AccumRegTotals4445 - это итоги РегистрНакопления.ТоварыНаСкладах
38. Gilev.Vyacheslav 1912 13.10.09 15:03 Сейчас в теме
отсортируйте запрос к основной таблице по номенклатури и складу, видимо есть пустые значения в таблице
раз в итоги подпадает
ищите строки с отбором по Jan 1 2001 12:00AM
39. igyo 105 13.10.09 15:06 Сейчас в теме
Ну посмотрел я видюшку, так мелко - ваще ничего не разобрать - увидел только куда идти, а вот как сам скрипт написать... не силен я совсем в sql. Опять прошу помощи!
40. Gilev.Vyacheslav 1912 13.10.09 15:10 Сейчас в теме
41. Gilev.Vyacheslav 1912 13.10.09 15:11 Сейчас в теме
по поводу видюшки, не пробовали включить "=", т.е. улучшенное качество
42. igyo 105 13.10.09 15:12 Сейчас в теме
в 1Ске запрос или в SQL?

извиняюсь конечно, но туго понимаю...
43. igyo 105 13.10.09 15:15 Сейчас в теме
(14) так ну увидел что там есть, только нет правой части экрана, не вижу чем там заканчиваются строки.. Можете сюда кинуть текст запроса?
44. igyo 105 13.10.09 15:29 Сейчас в теме
45. Gilev.Vyacheslav 1912 13.10.09 15:29 Сейчас в теме
вам нафиг не нужен тот запрос,
вам нужен метод из видео, как сделать скрипт индекса
46. Gilev.Vyacheslav 1912 13.10.09 15:31 Сейчас в теме
а вообще предлагаю посетить курсы и там подробно разобрать подобные ситуации подробно как следует
http://www.gilev.ru/1c/mssql/kurs.htm так как судя по всему дело пахнет тотальным обучением
47. igyo 105 13.10.09 15:38 Сейчас в теме
жаль конечно, но я в 5000 километров :)
48. igyo 105 15.10.09 05:41 Сейчас в теме
Вот таким запросом получил все поля - которые я думаю нужно удалить
SELECT *
from dbo._AccumRegTotals4445
where _Fld4438RRef = 0x00000000000000000000000000000000 and _Fld4439RRef = 0x00000000000000000000000000000000

_Fld4438RRef - склад
_Fld4439RRef - номенклатура

Получил результат из 83 строк.
Тут все поля таблицы имеют 0x00000000000000000000000000000000

Опять таки прошу помощи - как сделать чтоб этот
delete from dbo._AccumRegTotals4445
where _Fld4438RRef = 0x00000000000000000000000000000000 and _Fld4439RRef = 0x00000000000000000000000000000000

скрипт отрабатывался при загрузке dt в SQL ?

Я думаю это решит проблему, или я не прав?
49. Gilev.Vyacheslav 1912 15.10.09 20:26 Сейчас в теме
(21) Зачем вы пишите запрос на sql, напишите в консоли запросов на 1С
и там спокойно удалите
50. igyo 105 22.10.09 04:17 Сейчас в теме
Спасибо за помощь, поправил базу в 1С и в SQL все прекрасно загрузилось!
51. dvv01 120 29.10.09 08:57 Сейчас в теме
Была аналогичная ошибка.
1. Отбери все документы с датой < 1753 г - это нулевая дата в SQL (e меня была дата 0209г)
2. Выполни пересчет итогов (Операции/Пересчет итогов - для кокого-то резистра не расчитаны итого)
все будет ок.
52. Aparatus 17 05.07.19 13:11 Сейчас в теме
До сих пор подобная шляпа. Помогло троекратное Тии + Проверка конфигурации + Загрузка базы в болванку со смещением в 0. Ругнулось, но загрузилось = победа.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот