Доброго времени суток!
Тема, давно знакомая многим, и на многих форумах писали об этой проблеме. А проблема заключается в следующем:
При поднятии версии платформы или режима совместимости выходит ошибка
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
Ошибка обновления конфигурации базы данных. Для одного ссылочного кода существует более одной таблицы в базе данных.
Имена таблиц с кодом 7289: DynListSettings, ErrorProcessingSettings
Имена таблиц с кодом 7291: Bots, ExtensionsInfo
Для исправления проблемы вы можете обратиться в службу технической поддержки.
В общем, расскажу, как решил и как боролся с этой проблемой. Итак, начнем.
Как-то давно была подобная проблема, не помню именно, какие таблицы, но тогда все решилось добавлением реквизита в регистры расчета. Решил попробовать и на этот раз так, но не тут-то было.
Начал искать, в чем проблема, нашел в конфигурации пару справочников, которые просто болтались в конфе и никак, нигде не участвовали, не имели реквизитов и, видимо, просто были добавлены кем-то когда то, удалил их, запустил ТиИ с реструктуризацией и, о чудо, помогло. Я довольный, думал, все, решил проблему, но при поднятии режима еще на одну выше опять та же ошибка. Начал копать глубже, начал смотреть саму структуру хранения. Нашел эти таблицы и ничего толкового не смог понять.
СтруктураХраненияБазыДанных = ПолучитьСтруктуруХраненияБазыДанных(); Для Каждого ЭлементСтруктуры Из СтруктураХраненияБазыДанных Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = СтрШаблон("ИмяТаблицыХранения: %1, Метаданные: %2", ЭлементСтруктуры.ИмяТаблицыХранения, ЭлементСтруктуры.Метаданные); Сообщение.Сообщить(); КонецЦикла;
Решил копать в сторону SQL. Раскрыв ветку с таблицами именно этой БД (условно БД1), нашел эти таблицы и решил попробовать удалить индексы таблицы, но тоже не помогло, пробовал пересоздать таблицы и тоже безрезультатно, скопировать с другой рабочей БД, но тоже самое.
Загрузил .cf в пустую БД (условно БД2) и попробовал там, и поднялось вообще без проблем. Значит, проблема в данных самой БД1. Решил перекинуть данные из БД1 в БД2, сначала пробовал средствами самой 1С. Перекинул, сверил итоги, вроде все норм. Думаю УРА!!!!, но стоило добавить какой либо реквизит, и все, ошибка. Решил перекинуть с самой SQL. Но опять тоже самое.
Пробовал выгрузить файлы конфигурации и там поискать что-то похожее на эти таблицы, но безрезультатно.
Я уже думал, все, осталось только срезать БД и перенести остатки, резать по середине года не целесообразно, если резать, то на стыке нового и старого года. Ну, значит, время еще есть, и можно еще побороться. Началась череда всяких попыток типа чистки кэша, перезагрузки .dt в новую БД, пересоздание таблиц и добавление записей в самой SQL, и вот уже когда руки опускались нашел обработку, правда, она платная, но все же она была куплена.
Запустил, вроде прошла норм, делаю ТиИ тоже без ошибок, поднимаю версию и на тебе, опять ошибка. Иду в SQl, нахожу эту таблицу и пересоздаю ее опять, и заново запускаю ТиИ. Прошло без ошибок, поднимаю версию, опять ошибка. Посидев и понаблюдав за ходом ТиИ, заметил, что ошибка выскакивает на пересчете итогов, решил добавить реквизит в регистр бухгалтерии и регистр накопления, запустил ТиИ и все норм прошло, обновился и тоже норм прошло. Поднимаю версию, и вот оно ЧУДО, все сработало. Удаляю добавленные реквизиты и обновляюсь, норм. Пробую добавить реквизиты в другие места, тоже норм, сам себе не верю, что получилось.
Думаю, раз уж помогло добавление реквизитов, думаю попробовать просто сразу добавить реквизиты и поднять версию, но нет, так не прокатило))).
Вывод надо через обработку потом в самой SQL, потом добавить реквизиты сделать ТиИ и потом норм будет.