Ошибка sql таблица не найдена
Ошибка СУБД: Ошибка SQL: Таблица не найдена: _Reference. Как исправить?
Доброго времени суток, уважаемые читатели блога SoftMaker.kz. Сегодня мы поговорим, как побороть ошибку, возникающую
в файловой базе 1С при неправильном закрытии системы 1С:Предприятие, например при внезапном отключении света или
неправильной работе компьютера (работает и в случае, если
1С:Предприятие 8 установлено на MS SQL Server 2008 R2 Express).
Ошибка СУБД: Ошибка SQL: «Таблица не найдена: _Reference76» появлялась, когда производилось
тестирование и исправление информационной базы (ТиИ ИБ) при прохождении проверки логической целостности ИБ.
При попытке выгрузить ИБ Конфигуратор вылетал.
Проверка физической целостности файла 1Cv8.1CD с помощью утилиты chdbfl.exe
показало, что ошибок не обнаружено. Поэтому пришлось идти другим путём и получилось следующее:
Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С
В случае ошибки СУБД: Ошибка SQL: Таблица не найдена _Reference76 сразу становится ясно, что была удалена
таблица «_Reference76» и из названия ясно, что это какой-то справочник. Но как теперь определить,
к какому именно справочнику таблица «_Reference76» относится, чтобы попытаться её восстановить?
Для этого можно написать небольшую обработку для выяснения названия:
В результате работы обработки выяснилось, что таблица «_Reference76» относится к справочнику «Спецификации номенклатуры».
Обработку для поиска соответствия названия справочников конфигурации 1С и их внутренних таблиц можно скачать
отсюда.
Заменяем справочник «Спецификации номенклатуры» на новый
Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого выполним следующие действия:
- Изменим наименование справочника «СпецификацииНоменклатуры» на «ЯСпецификацииНоменклатуры».
Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт
«Свойства» и в поле «Имя» изменим наименование. - Теперь отсортируем справочники в дереве метаданных по имени. Нажмём правой кнопкой мыши
на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт
«Сортировать…». Cправочник «СпецификацииНоменклатуры» оказался в самом низу, нам это
пригодится в дальнейшем. - Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого нужна идентичная
конфигурация с неповреждённым справочником «Спецификации номенклатуры». Нужно открыть эту конфигурацию
в режиме «Конфигуратор» и выделить справочник «Спецификации номенклатуры» в дереве метаданных и
скопировать его (Ctrl+C).
«Конфигурация» | «Поддержка» | «Настройка поддержки». В дереве метаданных выберем справочник
«ЯСпецификацииНоменклатуры» и двойным щелчком мыши на справочнике откроем следующий диалог:
флажок «Установить для подчинённых объектов».
конфигурации выглядят следующим образом:
Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его
- Жмём правой кнопкой мыши на справочнике «ЯСпецификацииНоменклатуры» и в контекстном меню выбираем пункт
«Удалить». Появилось сообщение Конфигуратора: «Объект не может быть удален, так как на него имеются ссылки
в других объектах!»
Нажимаем на кнопку «ОК». В окне служебных сообщений видим список объектов, которые содержат в себе ссылки на
справочник «ЯСпецификацииНоменклатуры». Этот список поможет быстро заменить ссылки со справочника
«ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры». Приступим.
Чтобы заменить ссылки в объектах нажимаем на каждую строку списка двойным кликом.
Для примера возьмём первый элемент списка «ПодпискаНаСобытие.ПриУстановкеНовогоКодаСправочника.Источник»
После двойного клика на этом элементе, в дереве метаданных откроется объект и
в нём мы найдем ссылку на справочник «ЯСпецификацииНоменклатуры».
Два раза нажимаем левой кнопкой мыши, чтобы открыть свойство объекта, в котором содержится ссылка на
справочник «ЯСпецификацииНоменклатуры».
Как видно из вышеприведённого изображения в поле «Источник» содержится составной тип, в который входит и
справочник «ЯСпецификацииНоменклатуры». Заменим ссылку со справочника «ЯСпецификацииНоменклатуры»
на справочник «СпецификацииНоменклатуры» в диалоге редактирования составного типа данных.
Ссылка заменяется снятием флажка напротив справочника «ЯСпецификацииНоменклатуры» и
установкой флажка напротив справочника «СпецификацииНоменклатуры».
вышеприведённого списка.
Теперь новый справочник «СпецификацииНоменклатуры» ссылается на новую таблицу в базе 1С — _Reference6845.
Если в справочнике были какие-нибудь данные, то они уже уничтожены, поэтому нужно их восстановить.
Это можно сделать воспользовавшись советами статьи
Как выгрузить данные в идентичную конфигурацию 1С?
Если была удалена другая таблица, например _DOCUMENT, тогда нужно изменить обработку для поиска
соответствия названия документов конфигурации 1С и их внутренних таблиц, а шаги проделать те же самые.
Ошибки СУБД, SQL в 1С
Неточности СУБД базы данных (ошибка SQL) в программном продукте 1С: Предприятие 8
Данный материал будет полезен пользователям, столкнувшимся с неточностями в работе программных продуктов на платформе 1С: Предприятие 8.
Наличие большого количества сообщений пользователей (администраторов компаний, клиентов) с просьбой о содействии в ликвидации крупных ошибок СУБД базы данных (ошибка SQL) в программе 1С: Предприятие 8, стало причиной создания данной публикации.
На рисунке 1 приведен пример окна ошибки: Ошибка СУБД Ошибка SQL.
Почему возникают такие ошибки?
В первую очередь это обуславливается неправильной работой пользователей на местах с программами 1С. Экономия владельцев бизнеса на обучении своего персонала корректной работе с данным программным обеспечением, либо экономия на техническом оснащении, работа на устаревших компьютерах, применение близких к окончанию сроков эксплуатации жестких дисков через некоторое время могут вызвать крупные расходы. Неприятным результатом может стать простой бизнеса, а также утеря данных управленческого, бухгалтерского либо финансового учета.
Примеры источников ошибок в функционировании программ 1С и виды визуального выражения нарушения целостности БД (база данных):
аварийное завершение работы ОС с работающей программой 1С: Предприятие 8, в особенности во время формирования, проведения либо удаления файлов;
удаление и повреждение конфигурационных файлов в результате вмешательства со стороны пользователя либо техники;
приостановка процесса восстановления архивной информации;
отсутствие внешнего надежного напряжения питания;
присутствие файлов без нумерации, дат создания;
присутствие файлов с датой создания, которая не соответствует рядом стоящим файлам, к примеру, 2001 г. 01 ч. 01 мин. 01 с.;
присутствие операций без нумерации, дат создания;
недоступность ранее созданных файлов и операций;
отсутствие ссылок на объекты.
Таким образом, в первую очередь нужно завершить работу программы 1С.
После этого создайте копию БД (база данных) с повреждениями (для этого нужно сохранить базу в отдельный каталог на винчестере). Путь, ведущий к местонахождению БД (база данных), можно определить с помощью панели запуска 1С: Предприятие 8 внизу, найдите данный каталог на жестком диске и скопируйте его (смотрите рисунок 2).
Рисунок 2: Окно запуска 1С: Предприятие 8.
Далее протестируйте БД (база данных) на физическую целостность (на предмет «разрушения»). Чтобы это сделать, выполните переход к стандартной встроенной обработке 1С: Предприятие 8 по исправлению и тестированию неточностей – chdbfl.exe (загрузить для 1С: Предприятие 8). Данный документ должен присутствовать в каталоге с установленной программой 1С, найдите и выполните его запуск (смотрите рисунок 3).
Рисунок 3: Местонахождение документа chdbfl.exe.
Потом выбираем документ 1CV8.1 CD, который можно найти в каталоге нашей БД (база данных) с повреждениями, устанавливаем галочку «Исправлять обнаруженные ошибки» и жмем «Выполнить» (смотрите рисунок 4).
На проверку физической целостности документа БД (база данных) может уйти от 10 мин. до нескольких часов – это определяется объемом вашей БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
Рисунок 4: Окно проверки физической целостности документа информационной базы
После этого зайдите в режим конфигуратора (смотрите рисунок 5) и найдите в нем сервисную утилиту “Тестирование и исправление информационной базы” (смотрите рисунок 6).
Меню – Администрирование – Тестирование и исправление
Рисунок 5: Конфигуратор
Рисунок 6: Окно тестирования и исправления БД (база данных)
Выберите такие пункты, как:
Реиндексация таблиц информационной базы – функция восстановления табличной части БД (база данных).
Проверка логической целостности информационной базы – функция проверки логической целостности БД (база данных).
Проверка ссылочной целостности информационной базы – тестирование внутренних связей таблиц, которые устанавливает программа 1С: Предприятие 8, проверка фактического существования элементов данных со ссылками в полях записи таблиц.
Перерасчет итогов – выполнение полного перерасчета итоговых данных.
Переключатель ниже, выбор пункта «Тестирование и исправление».
Операция «Тестирование и исправление» может длиться от 10 мин. до нескольких часов – это определяется объемом БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
На следующем этапе закройте конфигуратор, откройте БД (база данных) в стандартном режиме и оцените произошедшие изменения с поврежденными файлами либо справочниками, сформируйте ключевые отчеты для сравнения. Если проблемы отсутствуют и все в порядке, смело продолжайте работу с БД (база данных). Если проблема с информационной базой все еще присутствует, приглашайте эксперта по 1С из обслуживающей компании «АйТи-Консалтинг», либо сразу обращайтесь в техническую поддержку 1С.
Внимательно изучите ситуацию, сделайте верные выводы: обеспечьте вашим работникам обучение корректной работе с программами 1С, купите новую технику на замену старой.
Если Вы слишком заняты и не можете тратить на это время, мы ждем Ваших обращений в сертифицированный центр обслуживания 1С — «АйТи-Консалтинг».