#0
by AndZa
Имеем базу бухгалтерия 7.7 (сильно переписанную) ~16Гб. После установки обновления мд.ника, база испортилась. (не возможно войти в конфигуратор. Т.е. симптомы как из темы (только праймари кей другой): При загрузке в монопольном режиме SQL ругается: Message: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2. Most significant primary key is ' 26RSB '. SQL State: 01000 Native: 3621 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has ben terminated. При загрузке в обычном режиме выскакивает ошибка: Нарушена структура индексного файла 1scrdoc. Запустите программу в монопольном режиме. Сейчас пробуем восстановить согласно совету в ссылке. Однако уверенности что это поможет нет. Есть ли еще какие либо советы как и что можно лечить. То что архивной базы нет (вернее архивы создавались, но они битые), это большая задница.. Самое что плохое, последняя рабочая копия это базы была в начале июля.. Это пипец..
#3
by ADirks
Цитата: Проблема такая: при обновлении конфигурации на этапе пересчёта перекрёстных ссылок 1С ругается "CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2" и умирает. Фишка в том, что она сначала напихивает записей в _1scrdoc, а потом уже создаёт уникальный индекс, который не желает создаваться, т.к. 1С неправильно заполнила таблицу. Не долго думая я залез в 1Cv7.DDS, нашёл там нужный индекс (CHILDID, MDID, PARENTVAL) и вырубил ему уникальность. После повторного запуска конфигуратора обновление завершилось прекрасно. Далее, таким вот запросом SELECT CHILDID, MDID, PARENTVAL, count(*) FROM _1scrdoc GROUP BY CHILDID, MDID, PARENTVAL FROM _1sjourn WHERE IDDoc IN определил, какие документы так жестоко ввели 1С в заблуждение (это оказались выписки). Нашёл эти документы в 1С и перепровёл. Удалил _1scrdoc, включил уникальность обратно, зашёл в 1С - всё зашибись, всё уникально. Вопрос: какого фига? Небольшое исследование показало следующее: в таблице проводок по этим выпускам в поле DocLineNo везде стояло 0, и в поле Date_Time_DocID время было ни разу не такое, как в документе. Но почему так получилось непонятно. После перепроведения всё стало нормально. Только тренируйся на копии сначала.
#4
by МихаилМ
а если дублей будет тысячи? напишите скрипт, который отбирает задвоенные в ВТ удаляет задвоенные и вставляет уникальные с наибольшим rowid из ВТ. естественно - в транзакции
#5
by Злой Бобр
Поднимите бекап (до обновления который), найдите там дубли и руцями посмотрите откуда ноги растут. После исправления дублей накатите обновление.
#7
by Chai Nic
Помню сталкивался с этой проблемой. В 1с есть баг, описанный в , когда время документа в ключевом поле в _1soper пишется неправильно. Перед обновлением, которое может вызвать пересчет ссылок, следует выполнять специальный прямой запрос, который исправляет таблицы. При обычной работе этот баг не проявляется никак, только при пересчете ссылок..
#8
by AndZa
Коллеги спасибо! На данный момент с помощью идей из моей первой ссылки в первом сообщении. Мои админы дописав чуть более хитрый скрипт, который удалил ~650 дублей. База заработала. Будем проверять что в базе есть, не полетело ли чего... согласен, нельзя ли было разработчикам 1С сделать более бронебойный алгоритм.. А так ковыряться в базе скульной, редко кто сможет восстановить.
#9
by ADirks
Если удаляли записи из crdoc - то не смертельно, но впоследствии могут быть неприятные глюки. Рекомендую синхронизировать поля DATE_TIME_DOCID во всех табличках с _1sjournal, и потом перезаполнить _1scrdoc (штатно).
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- 1cv8 SQL: Имя SQL сервера и имя SQL базы данных
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- 1C:V7 starter program (for SQL) - обнаружена ошибка. Че делать?
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: Прекращена работа программы 1c v7 starter program for sql
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- УПП: Как откорректировать затраты, по неправильно указанной статье затрат ?
- Не работает в тонком клиенте.,.
- Как задать межстрочный интервал в макетах 8.2
- ссылка на документ из общего модуля
- 1c 8 Модуль Объекта ПередУдалением "В данной транзакции уже совершались ошибки"
- БП 3.0 Корп. Почему забили на обмен с УТ11?
- Розница. На каких ФР можно печать чек по шаблону из 1С.
- УФ и проведение документа 8.3 интерфейс "Такси"
- Не выгружаются документы из УТ 10.3 в БП 2.0
- Редактирование отчета созданного на основе универсального
- Субподряды в 1С - реальность или нет?
- Какой выбрать MS SQL для 1С?
- {(1, 1)}: Ожидается выражение "ВЫБРАТЬ" //что ему не нравится?
- как получить данные из результата запроса к sqlite
- Помогите пожалуйста решать задачу в 1с v8.2 (массив и цикл)
- Макет итогов в СКД
- v7: Индексированная таблица
- remmina перестала подключаться к серверу 2003
- Условие "номенклатура без движения" для запроса
- Перебрать в цикле дерево значений на сервере УФ