Восстановление базы или решение проблемы Ошибка СУБД: Microsoft SQL Server

19.09.24

База данных - Администрирование СУБД

Публикация размещена исключительно в образовательных целях и подходит только для платформы версии 8.3.25.1257.
Использует недокументированные средства доступа к базе данных 1С. Прямое обращение к СУБД нарушает лицензионное соглашение,
может изменить поведение платформы, привести к разрушению базы данных, скомпрометировать данные,
а также привести к отказу в официальной поддержке Фирмы 1С.
Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

Введение

У клиента давно не обновлялась управленческая база, и настало время её обновить.

Конфигурация базы: Управление торговлей для Беларуси, редакция 3.4.7.155

Платформа: 1С:Предприятие 8.3.20.1789

Требовалось обновить конфигурацию до релиза 3.5.11.73.

Но последние релизы конфигурации требовали более новую версию платформы. На тот момент была актуальная версия платформы 1С:Предприятие 8.3.25.1257 (в конце будет ясно, что это и есть виновник). Список ошибок этого релиза не вызывал опасений. На сервере 1С была установлена вторая версия платформы. Сначала через хранилище была обновлена тестовая база и проведено функциональное тестирование доработок. Затем перенесли тестовую базу в базу, которая работает на 1С:Предприятие 8.3.25.1257. Ошибок не было выявлено и началось обновление рабочей базы.
Сразу установили на сервер только 1С:Предприятие 8.3.25.1257, сделали бекап и пошло обновление.

На последнем релизе обновления при реструктуризации базы, что-то пошло не так...
Конфигуратор вылетел с ошибкой, текст не удалось сохранить. После перезахода в конфигуратор не было выявлено каких-то проблем и обновление успешно установилось.

Пользователи начали работать и, казалось бы, все позади! Но после глобальных обновлений фирма 1С рекомендует провести ТИИ (функция тестирования и исправления информационных баз. Она позволяет найти и исправить ошибки, возникающие в программе, а также восстановить, если файл базы был поврежден. Чтобы запустить функцию ТИИ, необходимо открыть программу в режиме конфигуратора, открыть пункт меню “Администрирование», “Тестирование и исправление информационных баз”.).
И во время обслуживания были обнаружены ошибки:

1. Недопустимое имя объекта "dbo._RefSInf21806". Как на картинке Проверка логической целостности ИБ.

Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения.
HRESULT=80040E37, SQLSrvr: SQLSTATE=42S02, state=9, Severity=10, native=1088, line=1

2. Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Как на картинке Реиндексация таблиц ИБ.

Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения.
HRESULT=80040E37, SQLSrvr: SQLSTATE=42S02, state=9, Severity=10, native=1088, line=1

Анализ и решение

Первое предположение: дело в падении платформы во время обновления. От части возможно и так.

Провели расследование.

Согласно документации на ИТС, если у справочника есть предопределенные данные, то создается таблица проинициализированных областей (_RefSInf).

Нужно найти таблицу в СУБД. Открываем Microsoft SQL Server Management Studio и в копии базы таблица на месте, как на картинке Таблицы в MS SQL.

На тот момент не было инструментов для анализа и устранения подобного рода проблем.

Но была разработана обработка «Подключение к SQL из 1С 2.0», которая решит подобные проблемы в несколько кликов, рекомендую к использованию!

Теперь используя обработку, можно посмотреть в какой таблице 1С есть проблемы.

Вводим данные от СУБД (сервер, имя пользователя и пароль). Жмем кнопку "Соединить/Список БД".

Жмем кнопку "Таблицы" и ищем нашу таблицу "_RefSInf21806". В 1С - это таблица "Справочник.БанковскиеСчетаОрганизаций.ИнициализированныеПредопределенныеДанныеСправочника". Открываем в 1С Справочник.БанковскиеСчетаОрганизаций и смотрим предопределенные данные.

На удивление таблица пустая. Но ТИИ требует наличие этой таблицы в СУБД. В рабочей базе такой таблицы в СУБД нет. О чем мы и получили сообщения от Microsoft SQL Server.

Есть способ обхода. Зайти в конфигуратор добавить предопределенный элемент, обновить базу, затем удалить добавленный элемент и снова обновить базу. Т.к. таких таблиц было больше 1, то процесс представлялся трудоемким.

Параллельно было написано письмо в фирму 1С и позже стало понятно, что ошибку диагностировали:
Ошибка 60016376 и получено разрешение на использование обработки для исправления ошибки платформы 1С:Предприятие 8.3.25.1257, а также было найдено описание Ошибка 70087249

При тестировании и исправлении с проверкой логической целостности информационных баз, использующих разделение данных, ошибочно удаляются пустые таблицы предопределенных данных. Как следствие, при дальнейшей работе происходят ошибки СУБД, например, для таблицы справочника Не удалось найти объект "Acc.dbo._RefSInf19574", так как он не существует, или отсутствуют разрешения.

Способ обхода:

Восстановление базы или таблиц из бэкапа.

Точь в том наша ситуация. Все та же таблица "RefSInf". Следовательно нужно обновить платформу.
Установили 1С:Предприятие 8.3 (8.3.25.1374). Далее используя обработку скопировали таблицы из копии. Для этого выбираем нашу базу из списка баз, жмем кнопку "Копирование данных - Разница таблиц" и указываем базу, в который есть нужные таблицы. Алгоритм проанализирует список таблиц в обоих база и выберет те строки, где нету таблиц, и пометит их для выбора. Также можно вручную выделить строки таблиц, данные которых нужно скопировать из копии. Чтобы убрать из видимости лишние данные есть кнопка "Копирование данных - Очистить не выбранное". Теперь мы видим, что таблиц много. Исправляем всё нажатием кнопки "Копирование данных - Скопировать выбранную таблицу". После этого обязательно запустите ТИИ, потому что в процессе копирования таблицы её индексы не переносятся!!

Вывод

Как видим ошибки СУБД легко могут быть устранены.

В ручном режиме, трудоёмко, но решаемо! Но подобные проблемы, которые связаны с потерей данных, уже так нельзя решить в принципе.

Автоматический режим решения проблемы через обработку «Подключение к SQL из 1С 2.0» полностью подойдет для быстрого и эффективного устранения ошибок!
Важно! Используйте решение только для устранения ошибки платформы 1С:Предприятие 8.3.25.1257, чтобы не нарушать лицензионное соглашение!

P.S. Если материал вам помог, поблагодарите автора, поставив плюс! 

См. также

Администрирование СУБД Системный администратор Платформа 1С v8.3 Россия Бесплатно (free)

В очередной раз столкнулся с тем, что очередные обновления тонкого клиента 1С для Mac OS, загруженные с сайта обновления ПО 1С, не устанавливаются через стандартный инсталлятор и дают ошибку. Но можно все установить вручную без сторонних приложений. Описываю процесс ручной установки тонкого клиента для платформы 8.3.27.1559 на Маке с OS Sequoia 15.5.

02.06.2025    851    user1914479    11    

3

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В финальной статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на осенней конференции INFOSTART TECH EVENT 2024, рассказываем, чем может быть полезна информация, полученная из дампа.

27.05.2025    1432    it-expertise    0    

12

Администрирование СУБД Системный администратор Платформа 1С v8.3 Бесплатно (free)

Клиент-серверная архитектура 1С Предприятия 8.3 подразумевает работу в связке с так называемой системой управления базами данных (СУБД). Одной из самых распространённых и популярных до сих пор остается MS SQL Server.

19.05.2025    1349    Kostin1978    4    

4

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на конференции INFOSTART TECH EVENT 2024, рассмотрим, какую информацию содержат файлы дампа, чем она полезна и как ее анализировать.

14.04.2025    1365    it-expertise    7    

16

Администрирование СУБД Программист Платформа 1С v8.3 Бесплатно (free)

Где лежат данные идентификаторов, как прочитать, как поменять...

10.04.2025    1204    atdonya    0    

6

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Опубликовали первую статью по итогам доклада «Дамп – не приговор, а повод задуматься», с которым выступали на конференции INFOSTART TECH EVENT 2024.

25.03.2025    980    it-expertise    7    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Torin 859 19.09.24 17:18 Сейчас в теме
2. Xershi 1532 19.09.24 19:13 Сейчас в теме
(1) спасибо за оценку. С боем удалось опубликовать в образовательных целях.
shard; Torin; +2 Ответить
3. KOTzilla 24 20.09.24 04:43 Сейчас в теме
И обработка «Подключение к SQL из 1С 2.0» на модерации. Прям по лезвию ходите=)
4. Xershi 1532 20.09.24 09:16 Сейчас в теме
(3) сегодня должны одобрить.
5. Sashares 33 20.09.24 15:21 Сейчас в теме
6. Xershi 1532 21.09.24 00:46 Сейчас в теме
(5) тема закрытая суть изложите?
7. Sashares 33 21.09.24 10:20 Сейчас в теме
(6) На платформах 8.3.24 и 8.3.25 ниже версий 8.3.24.1667 и 8.3.25.1360 при тестировании и исправлении пропадают таблицы предопределенных элементов.

Рекомендуемый способ исправления:

Куприянов Сергей (1С, Москва)

Добрый день,
Восстановить из бэкапа удаленную таблицу.
Если бэкапа нет или подобная низкоуровневая операция проблематична - присылайте в службу тех поддержки базу (сюда продублируйте номер обращения), посмотрим, как еще можно восстановить.


Собственно, просто ссылка на обсуждение на партнерской конференции по данной проблеме.
8. Xershi 1532 21.09.24 11:26 Сейчас в теме
(7) дайте ссылку тогда на мою статью.
9. ILNIK 36 23.10.24 16:44 Сейчас в теме
Microsoft OLE DB Driver 19 for SQL Server: Недопустимое имя объекта "dbo._DataHistoryMetadataExtX1". Добавил документ в расширение и не обновляется база 8.3.24.1586
10. Xershi 1532 23.10.24 21:56 Сейчас в теме
(9) на последних 8.3.25 пробуйте. И очистить кэш стоит.
Оставьте свое сообщение