Специфика современных версий учетных программ обуславливается использованием многоуровневого кода. Логично, что чем сложнее структура — тем выше вероятность возникновения внеплановых ситуаций, с которыми приходится сталкиваться рядовым пользователям конфигурации. В отдельных случаях даже сотрудники администрирующих служб предприятия не всегда способны сразу определить исходную причину появления неполадок, поэтому работа по устранению неудобств может занять немало времени. Одной из наиболее часто встречающихся проблем является классическая ошибка SDBL 1С, источники и способы устранения которой мы и рассмотрим в сегодняшнем обзоре.
Общее представление
Взаимодействуя с учетной программой, пользователи выполняют различные операции, каждая из которых, так или иначе, формирует запрос к базе данных. Создание нового документа, интеграция библиотеки, плановое обновление — во время любого из процессов есть вероятность получить в ответ уведомление от системы, свидетельствующее о том, что одна из логических цепочек была нарушена. Распространенный вариант — когда на экране появляется сообщение об ошибке SDBL 1С ожидается выражение (pos = 6) (а также 15, 57, 198, 250, 469, или любой другой номерной идентификатор).
Фактически это говорит о наличии технического сбоя, с которым чаще всего сталкиваются пользователи, самостоятельно обновляющие конфигурацию автоматическими средствами. Важно понимать, что при работе с программой (и в том числе при установке новых релизов) необходимо иметь определенный уровень навыков и знаний, достаточный для внесения изменений и управления функциональными возможностями платформы.
Впрочем, сильно переживать не стоит. Появление ошибки SDBL 1С еще не значит, что структура базы данных предприятия разрушена полностью — в большинстве случаев исправить проблему можно при помощи стандартного набора способов, реализовать которые под силу даже начинающим пользователям.
Причины возникновения
Один из главных факторов, о котором многие забывают в процессе работы с учетной системой — необходимость соответствия платформы и конфигурации обновления. То есть перед тем как начать использовать новый релиз, нужно создать условия, в которых он сможет нормально функционировать. Простейший вариант — доверить контроль за установкой профильному специалисту, который поможет избежать технических сбоев в программе.
Если говорить об уже упомянутой ранее ошибке SDBL 1С «ожидается выражение (pos = 144)» (или 48, 153, 13 — не столь принципиально), то в этом случае ключевым обстоятельством становится повреждение базы данных, обусловленное нарушением системных логических циклов. К числу распространенных причин возникновения, отмечаемых специалистами, относят не только применение устаревшей конфигурации или платформы, но также и проблемы, связанные с серверным кешем. Кроме того, всегда существует вероятность случайного запуска с некорректной учетной записи, не обладающей достаточным набором прав.
Чаще всего системные ошибки происходят в процессе очередного обновления БД, а также при обращении к ней — через запрос на добавление документов, во время тестовой проверки логической целостности, или же в иных ситуациях. Критической проблемой при установке расширений может стать и «некорректное использование LOCAL/GLOBAL в SET GENERATION», не позволяющее полноценно сохранить базу даже после выборочного удаления. Стоит отметить, что стандартное решение в виде перезагрузки программы обычно не помогает, поэтому для восстановления работоспособности придется воспользоваться альтернативными методиками.
Какие сообщения возникают
Уведомление о технических неполадках отражает специфику возникшей проблемы, и может появиться как во время обновления конфигурации, так и в процессе работы с обменом данных. Как правило, текст в информационном окне раскрывает специфику возникшей ошибки SDBL 1С: «не является именем поля», «ожидается идентификатор» или «выход за пределы размерности результата 1C», и т. д.
Встречаются и вспомогательные приписки, причем их количество зависит от конкретной неточности, допущенной в ходе сборки и настройки обновленного расширения:
-
предпринята попытка ввести неприемлемый тип значения «NULL»;
-
пропущена точка с запятой;
-
нарушение индексирования с полным текстом;
-
неоднозначное определение некоторого поля;
-
отсутствует выражение (pos =) — с различными числовыми идентификаторами в скобках.
Практика работы с типовыми конфигурациями показывает, что количество сообщений достаточно велико, и определенно выходит за рамки приведенного списка, в котором собраны только наиболее часто встречающиеся варианты.
Готовые решения для всех направлений
Ускорь работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.
Узнать больше
Мобильность, точность и скорость пересчёта товара в торговом зале и на складе, позволят вам не потерять дни продаж во время проведения инвентаризации и при приёмке товара.
Узнать больше
Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя.
Узнать больше
Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.
Узнать больше
Повысь точность учета имущества организации, уровень контроля сохранности и перемещения каждой единицы. Мобильный учет снизит вероятность краж и естественных потерь.
Узнать больше
Повысь эффективность деятельности производственного предприятия за счет внедрения мобильной автоматизации для учёта товарно-материальных ценностей.
Узнать больше
Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.
Узнать больше
Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.
Узнать больше
Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..
Узнать больше
Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.
Узнать больше
Показать все решения по автоматизации
Устранение ошибки SDBL 1С
Попытки справиться с возникающими проблемами самостоятельно не всегда заканчиваются одинаково успешно, поскольку в каждой отдельно взятой ситуации влияние оказывают разнообразные факторы — как в самой системе, так и за ее пределами.
В связи с этим главной рекомендацией специалистов является регулярное резервное копирование, позволяющее без особого труда восстановить исходные данные в случае наступления критических обстоятельств. Оптимальный график предусматривает не только ежедневное ночное создание копий, но также и дополнительное резервирование перед каждой значительной операцией, будь то обновление или закрытие периода. Автоматизированная архивация базы реализуется встроенным функционалом учетной программы, а восстановление из Конфигуратора занимает минимум времени, позволяя откатиться к рабочему состоянию практически без прерывания процесса.
Практически любая ошибка SDBL 1С — «недопустимый символ (pos = 40)», «пропущена точка с запятой», или «ожидается имя таблицы 21», может быть устранена путем выполнения несложного набора действий. Перечень доступных вариантов выглядит следующим образом:
-
Удаление кэшированных данных — как на пользовательском рабочем месте, так и на основном сервере, где произошел технический сбой. Для реализации процедуры очистки кэша достаточно закрыть учетную программу, открыть «Проводник», найти, выбрать и удалить набор папок из раздела «Application Data». Отличить нужные элементы проще всего по названию, которое выглядит как хаотичный набор символов — например, «ac5c8bm4-y65k-4s23-a9g8-2dcttp0b15da».
-
Использование функционала Конфигуратора, позволяющего провести тестирование и исправление информационной базы. В этом случае необходимо найти поврежденную ИБ, выбрать ее и перейти в раздел «Администрирование», после чего активировать встроенную функцию для теста и корректировки ошибок.
-
Перезагрузка сервера, на котором расположены программные приложения системы 1С. Самый простой вариант — включение и выключение всех взаимосвязанных SQL-сервисов, включая агент. Для выполнения задачи нужно зайти на нужный серверный источник, выделить агентскую службу, вызвать контекстное меню и остановить процесс. Аналогичные действия повторяем на SQL со служебными процедурами Server и Agent. Повторная активация осуществляется в обратном порядке.
-
Выгрузка БД в отдельный DT-файл с последующей повторной «заливкой». По сути, метод напоминает стандартную перезагрузку системы — структура записывается в файловом формате, что позволяет упорядочить проблемные разделы. Для выполнения процедуры достаточно открыть меню управления учетной программой, найти в категории «Администрирование» функцию «Выгрузить информационную базу», и после ее завершения выбрать опцию «Загрузить ИБ», используя сформированный файл.
-
Откат к последней резервной копии. Один из самых простых и доступных вариантов — конечно, в том случае, если архивирование данных проводится на регулярной основе, а не только перед закрытием периодов. Вообще, решение записывать текущее состояние перед каждым внесением изменений может избавить от большинства проблем, связанных с техническими сбоями. Даже если вы столкнетесь с уведомлением о том, что «ожидается имя поля», или получите ошибку «таблица 1С inforg не создана в новом поколении», источник которой не всегда понятен даже опытным пользователям — загрузка последней копии просто вернет систему к исходному состоянию. Для резервирования допускается использование как SQL MS, так и Конфигуратора учетной программы — через последовательную выгрузку файлов в уже упомянутом DT формате.
-
Обновление платформы через сайт информационно-технологического сопровождения разработчиков, доступный всем лицензированным пользователям продукта. Функционал портала ИТС позволяет установить последнюю редакцию, актуальную на момент обращения, инсталляция которой производится как на основной сервер, так и на рабочие места клиента.
Как правило, один из перечисленных методов позволяет добиться желаемого результата, устраняя проблему в работе учетной системы. В ситуациях, когда применить готовое решение так и не удалось, есть резервный вариант, отличающийся высокой вероятностью успешного исхода. Очистка в менеджере SQL 1С таблиц ConfigChngR и ExtProps, что за последние годы стало уже привычным способом восстановления для большинства специалистов, осуществляется стандартной командой Delete.
На что еще обратить внимание при устранении ошибок SDBL, и как реализовать рассмотренные методы? Сейчас разберемся.
Права доступа
Пожалуй, самая простая причина неполадок, которая тем не менее все еще встречаться на практике — попытка запустить систему через учетную запись, не обладающую соответствующими полномочиями. Убедитесь, что профиль для запуска выбран корректно, чтобы не провоцировать сбои собственными действиями.
Перезагрузка серверов 1С и SQL
Это один из простейших методов восстановления, единственным обязательным условием, для применения которого является выход всех пользователей из базы. Убедившись, что доступ открыт, зайдите на сервер и последовательно выключите агент программы Server и SQL-agent, после чего запустите их в обратном порядке.
Удаление кэшированных данных
Создание кэша представляет собой процесс буферизации информации, используемой базой чаще всего, и, как правило, относящейся к статичной категории. Кэширование позволяет ускорить программный цикл — так, если говорить об учетных системах, оптимизация затрагивает загрузку файлов конфигурации, исключая необходимость постоянного обращения к основному серверу. Однако на практике встречаются случаи некорректной обработки программным обеспечением подобных задач, что в конечном счете становится причиной неправильной работы платформы.
Перечень факторов, обуславливающих нарушение логических циклов, весьма обширен, и охватывает не только динамические обновления системной структуры, но и технические сбои программного или аппаратного характера. В некоторых случаях для устранения ошибки SDBL 1С «ожидается имя поля/таблицы (pos = 21, 45, 48…)» достаточно почистить кэш, сохраненный на сервере, либо на рабочем месте пользователя.
Стандартный путь к месту хранения кэшированных данных выглядит следующим образом:
-
«%userprofile%AppDataRoaming1C1Cv8» и «%userprofile%AppDataLocal1C1Cv8» — для операционных систем начиная с Windows 7.
-
«%userprofile%Local SettingsApplication Data1C1Cv8» и «%userprofile%Application Data1C1Cv8» — для тех, кто все еще продолжает работать на ХР.
Откройте каталог, расположенный по указанному адресу, выделите и удалите все хранящиеся в нем папки, имя которых представляет собой сгенерированный автоматически набор цифр и букв (вроде «abg7n8ty4-brt9r893-am…»). Стоит отметить, что во время чистки кэша нужно быть особенно внимательными, поскольку в директории также могут находиться поисковый индекс и журналы регистрации 1С, которые не требуют удаления.
Загрузка DT-файла
Этот метод может показаться немного странным, поскольку фактически не предполагает внесения каких-либо корректировок в основную структуру данных. Однако в действительности выгрузка БД в отдельный файл, сохраняемый в формате DT, с последующим обращением к ней же, нередко позволяет восстановить нормальную работу программы. Алгоритм достаточно прост — в режиме Конфигуратора нужно выбрать раздел «Администрирование», использовать опцию «Выгрузить ИБ» (указав каталог для сохранения), после чего повторно залить сформированную базу обратно в систему.
Тестирование и исправление
Еще одна удобная функция, доступная в режиме корректировки конфигурации — встроенный инструментарий, предназначенный для теста и внесения коррективов. В отдельных ситуациях может возникнуть проблема с запуском Конфигуратора — вместо этого можно воспользоваться специальной утилитой chdbfl.exe, представляющей собой упрощенный программный аналог с идентичным функционалом. Приложение находится в каталоге «bin», поэтому найти его не составляет особого труда — как через стандартный путь «C:Program Files (x86)1cv88.3bin», так и через опцию поиска, предлагаемую операционной системой.
Для использования программы достаточно указать расположение проблемной базы данных, и запустить цикл тестирования. При желании можно активировать опцию автоматического исправления выявленных ошибок — в противном случае утилита ограничится диагностикой, и сформирует перечень технических неполадок в отдельном реестре.
Обновление платформы
Еще одно простое решение, предусматривающее использование сайта технической поддержки разработчиков 1С. Скачайте дистрибутив актуального релиза, распакуйте архив и активируйте инсталлятор setup.exe — система обновится автоматически.
Очистка таблиц базы данных
Если ни один из вышеперечисленных способов не дал желаемого результата — остается вариант с удалением табличных значений БД, вызывающих появление ошибки, расположенных в каталогах ConfigChngR и ExtProps. Для этого применяется скрипт менеджера SQL, с указанием информационного раздела и командой delete from. В этом случае лучше всего обратиться к профильному специалисту, поскольку некорректное восстановление может привести к более серьезным последствиям.
Заключение
Автоматизация учетных процессов — важный аспект, позволяющий оптимизировать работу компании. Ошибки SDBL 1С встречаются достаточно часто, поэтому стоит заранее позаботиться об оперативном устранении возможных проблем. Мобильные решения, предлагаемые компанией «Клеверенс», гарантируют квалифицированную поддержку, а также помогут решить задачи, связанные с учетом данных на предприятии.
Количество показов: 7792
19.05.10 — 08:38
ну вот и приплыли,есть(или была) база на флэшке в NTFSом формате,работает с этой базой человека три,так вот не знаю что у них там произошло вчера(молчат как партизаны),запускаю базу просто щёлкаю мышкой в любое место вываливается месадж типа памяти недостаточно и все,в конфигураторе тоже самое говориться,запустил чекдб,нашел одну ошибку,мол DBSchema кривая,написано ошибка исправлена,запускаю снова базу и финиш Ошибка SDBL:Разрушена структура базы данных 1С:Предприятия. (pos=0) .чего курить?куда копать? сюда не отправлять http://www.gilev.ru/1c/81/restore/
1 — 19.05.10 — 08:40
а чуть не забыл :Зарплата и Управление Персоналом, редакция 2.5 (2.5.20.3) и 1С:Предприятие 8.1 (8.1.15.14)
2 — 19.05.10 — 08:40
(0) На флешке?
Прими соболезнования и больше так не делай.
3 — 19.05.10 — 08:41
вся ирония в том что именно вчера не был сделан бэкап,но почему?потому что флэшка на удаленном компе висит,но его умудрились выключить до того момента как начал делаться бэкап)))
4 — 19.05.10 — 08:42
на флэшке,а что это не лечиться?я не верю
5 — 19.05.10 — 08:43
(4) Не верь. У флешки — ограниченное число перезаписей. После этого она необратимо разрушается. База данных, с которой работают три человека (да даже и один), обеспечивает нужное число перезаписей быстро и надёжно.
Лечить нечего, флешка разрушена.
6 — 19.05.10 — 08:44
у флешки ограниченый ресурс циклов записи, пол года/год работы 1с и ФЛЕШКЕ конец.
как я понял есть позавчерашний архив — поднимай его, если он есть это не проблемма а всего-лишь мелкое недорозумение
7 — 19.05.10 — 08:44
как так? флэшка работает нормально.я же базу сейчас себе перекачал на жестак и там все манипуляции выше описанные делал.
8 — 19.05.10 — 08:47
(7) Если «нормально работает» — то в чём проблема?
Когда с разрушенной флешки скачивается база, то разрушенные блоки выглядят как аккуратные многочисленные нули вместо данных. Но база — скачивается.
9 — 19.05.10 — 08:49
я говорю флэшка работатет,а база нет,а вообще изначально вопрос задан вот это лечиться Ошибка SDBL или нет?и чем?
10 — 19.05.10 — 08:51
(9) Попробуй выгрузить/загрузить.
11 — 19.05.10 — 08:55
(10) у тебя всего 1 день потерян, ради этого даже не заморачивайся, востановление далеко не всегда возможно и совсем не дешего стоит,
штатно не лечится!
12 — 19.05.10 — 08:57
(11) У меня?
13 — 19.05.10 — 08:57
vde69 а как лечиться, если не штатно?в общих чертах можно
14 — 19.05.10 — 08:58
(12) у автора
———————
опс и у меня то-же
———————
опс и у тебя :))
15 — 19.05.10 — 08:58
в каталоге BIN найди утилиту CHDBFL и протестируй свою базу — покажет на ошибки или удаленные записи. Первый раз делай только тестирование, и поймешь — что потерял.
16 — 19.05.10 — 08:59
(13) разбирать компаунд на отдельные таблицы и ковырять уже их, степень разрушения зависит от того какие таблицы нагнулись
17 — 19.05.10 — 09:01
Sekho я же выше написал,так и делал)
vde69 судя по всему накрылась DBSchema,а какими инструментами?мне эта тема интересна,может ссылок дадите что почитать?
18 — 19.05.10 — 09:06
(17) сорри, упустил из виду
19 — 19.05.10 — 09:07
+(18) ты тест на флешке делал или уже на жестком диске?
20 — 19.05.10 — 09:07
уже на жестком
21 — 19.05.10 — 09:07
господи, этому баяну уже лет 8-9 …
именно тогда у меня друг одним из первых на это нарвался
22 — 19.05.10 — 09:08
Дикообразко подробней можно?
23 — 19.05.10 — 09:09
(17) тема сложная, и если ты не умеешь пользоватся поиском — значит она не для тебя…
в инете достаточно инфа, а вот хороших инструментов которыми можно правильно ковырять побитое — нету
я для себя хочу написать востановлялку, но стимул будет только когда притащать сложный случай на востановление.
24 — 19.05.10 — 09:09
да все уже рассказано в (5) но до тебя упорно не доходит
25 — 19.05.10 — 09:13
vde69, google по этому поводу выдает только рекламу,что вот заплати столько то и тд,в сети есть инфа только по 7.7,так что не надо мне тут про поиск,я прежде чем тему создавать,вначале поиск поюзал,просто никто не хочет делиться тем,чем он зарабатывает себе на хлеб(
Дикообразко,то что расказано выше противоречит тому,что говорит vde69…а я ему верю у него борода есть)восстановить можно и ради эксперимента я этим займусь,просто думал услышать толковых советов,от крутых спецов)))
26 — 19.05.10 — 09:15
крутые спецы прежде чем что то делать — думают…
это сопляки вечно в дерьмо попадают, а потом геройски оттуда вылазят
27 — 19.05.10 — 09:16
здесь ищи
http://www.flashboot.ru/
если не поможет, то только в морг
28 — 19.05.10 — 09:16
29 — 19.05.10 — 09:22
Дикообразко,к сожалению я не могу телепатически управлять пользователями)у меня тут и так есть куда попадать,кто ж теперь узнает кто выключил комп куда флэшка воткнута была,во время того как другие пользователи работали с базой?)
странно vde69 мне ссылчки дает,говорит что все возможно,а Дикообразко наоборот,все про морг,инь и янь какой то)))
30 — 19.05.10 — 09:26
у меня есть бэкап и до моих манипулиций,при запуске ошибка «недостатчно памяти»,может с ним что-нибудь штатное можно сделать,чтобы завелось?
31 — 19.05.10 — 09:28
(29) возможно далеко не всегда и сложная это тема.
просто я зарабатываю на востановление баз 7.7 и начал восьмерку ковырять в этом направление. По этому я отношусь к востановлению довольно оптимистически.
32 — 19.05.10 — 09:32
на днях поковыряю базу в общем,а точнее структуру,с этой стороны никогда к вопросу не подходил просто
33 — 19.05.10 — 09:48
Вот-вот. Просто подойди к решению вопроса — может быть станешь специалистом в этом вопросе и тогда поймешь почему молчат гуру :)) Успехов.
Koldun1
34 — 19.05.10 — 09:51
спасибо)
Зачем это надо
Все админы делятся на две категории:
1) те, которые делают бэкапы
2) те, которые будут делать бэкапы.
Как 2я категория становиться 1й категорией :).
В стандартной документации 1С не сказано про нештатную работу 1С:Предприятия. Во многих статьях рекомендуется использовать сервера с различными механизмами резервирования устройств, использовать источники бесперебойного питания и ДЕЛАТЬ РЕЗЕРВНЫЕ КОПИИ, храня их на отдельном носителе (от данных).
В действительности же, каждый из нас считает своим гражданским долгом сначала довести базу до невосстанавливаемого состояния и только потом (когда петух клюнет) что-то делать.
Методика
Ниже обобщил свой опыт помощи в таких случаях.
1. Зафиксируйте время возникновения ошибки на бумаге. (Это в дальнейшем поможет локализовать место изучения различных логов)
2. Запишите точный текст ошибки (а также номера релизов СУБД, 1С:Предприятие, конфигурации)
— если есть возможность сделать скриншот, сделайте
— пометьте, может ли быть это результатом рассинхронизации узлов базы
Вот некоторые возможные варианты текста ошибки:
Ошибка SDBL:
Разрушена структура базы данных 1С:Предприятия. (pos=0)
Произошла неизвестная ошибка на сервере 1С предприятие (80010108)
Server: Msg 945, Level 14, State 2, Line 1
Database ‘ db_zup’ cannot be opened because some of the files could not be activated.
Server: Msg 1813, Level 16, State 2, Line 1
Could not open new database ‘db_zup’. CREATE DATABASE is aborted.
В MS SQL Server база данных может оказаться со статусом «Suspect».
3. По горячим следам постарайтесь восстановить последовательность действий, приведшую к возникновению данной ошибки
— если будете вносить любые изменения в этот момент, сначало сделайте бэкап!
4. Предложите заказчику для расследования прислать на v8@1c.ru backup базы данных SQL сервера или dt-файл или архивную копию каталога для файлового варианта.
— это важно сделать сразу, так как это позволит в случаи отказа заказчиком предложить ему ПЛАТНЫЙ вариант Ваших работ
— для передачи в 1С надо предоставить зарегистрированный в 1С продукт и подписку на ИТС текущего месяца, сроки реакции в 1С не всегда быстрые
5. Поинтересуйтесь, какие резервные копии и другие узлы базы есть у Заказчика, чтобы можно было использовать для восстановления
— нас будет интересовать актуальность копии (возраст копии)
— для распределенных баз это может быть состав регистрируемой информации
— наличие dt-файла
6. Определите источник ошибки по 2 пункту.
— здесь чаще всего источником ошибки бывает MS SQL Server, однако надо внимательно прочитать текст, отдельно исследовать ошибки для PostgreSQL, так в последнем случае работа платформы отлажена конечно меньше
— часто в источнике ошибки уже заложен ответ
— в стандартной документации описан следующая возможная причина:
При старте 1С:Предприятие проверяет наличие в информационной базе таблицы
1. Config
2. ConfigSave
3. Files
4. Params
5. _YearOffset
6. DBSchema
и в случае отсутствия какой-нибудь из них выдается сообщение «информационная база разрушена».
— другой варинт описывает сотрудник 1С:
Такое сообщение об ошибке может быть выдано в случае, если отсутствует или содержит искаженные данные таблица DBSchema при условии, что имеются таблицы DBChanges и DBSchemaOG, или нет ни таблицы DBSchema, ни таблицы DBSchemaOG.
7. Поищите в Интернете и на этом форуме, и в этой статье решения для вашего случая
7.1 При разрушении базы в файловом варианте в каталоге C:Program Files1cv81bin есть утилита chdbfl.exe. Воспользуйтесь этой утилитой или попробуйте конвертировать в клиент-серверный вариант (если это возможно).
7.2 Для варианта с СУБД PostgreSQL попробуйте использовать команду pg_resetxlog, предварительно сделав резервную копию каталога DATA. Возможно PostgreSQL запустится, но часть данных может быть потеряна.
7.3 При обменах. В режиме предприятия сделать базу не подчиненной. Выгрузить из центральной конфигурации, загрузить ее в переферийную базу. Сделать переферийную базу опять подчиненной. Загрузить изменения конфигурации, которые были при обмене выгружены из центральной.
7.4 База со статусом «Suspect». Такой статус присваивается базе в случаи аварийного состояния. Часто такой причиной является неисправность Журнала транзакций (transaction log). Попытка подключить базу без логов ожидается примерно такое сообщение об ошибке:
Server: Msg 945, Level 14, State 2, Line 1
Database ‘ db_zup’ cannot be opened because some of the files could not be activated.
Server: Msg 1813, Level 16, State 2, Line 1
Could not open new database ‘db_zup’. CREATE DATABASE is aborted.
Решить эту ситуацию можно созданием новой базы с таким же именем и такими же по именам и расположению .mdf и .ldf файлами, укажите параметр базы autoclose = true, чтобы можно было не останавливать сервер целиком.
Теперь подменяем файл .mdf . Можно также использовать проверку физической целостности базы командой DBCC CHECKDB.
Если останавливали сервер, Стартуем, не обращаем внимания на статус базы
и в Query Analyzer выполняем:
Use master
go — разрешаем изменения в системных базах
sp_configure ‘allow updates’, 1 –- для 2000
reconfigure with override –- для 2000
go –- запоминаем значение
select status from sysdatabases where name = ‘имя базы’ –- для 2000
go –-изменяем статус нашей базы
update sysdatabases set status= 32768 where name = ‘<db_name>’ –- для 2000
alter database <db_name> set emergency –- для 2005
go
После рестарта SQL Server (в командной строке):
Net stop mssqlserver
Net start mssqlserver
база должна быть видна (в emergency mode).
Создадим новый Журнал транзакций и выполним полное тестирование
DBCC REBUILD_LOG(‘имя_базы’, ‘<имя нового лога с указанием полного пути>’)
GO
Use master
GO
sp_dboption ‘имя_базы’, ‘single_user’, ‘true’ –- для 2000
ALTER DATABASE <Имя БД> SET SINGLE_USER –- для 2005
GO
USE имя_базы
GO
DBCC CHECKDB(‘имя_базы’, REPAIR_ALLOW_DATA_LOSS)
/*ищет лог по старому пути. И если база уже перенесена на другую машину, то надо на время создать пустой лог в той же директории и на том же диске, что и был раньше. После восстановления его можно перенести (детач-аттач с новыми путями)*/
— Если Вам не удалось перевести базу в single user mode,
— то для проверки целостности данных можно попробовать dbo only mode
— для этого уберите «—» в строке ниже
— sp_dboption ‘<db_name>’, ‘dbo use only’, ‘true’
GO
sp_dboption ‘<db_name>’, ‘single_user’, ‘false’ –- для 2000
alter database <db_name> set multi_user –- для 2005
GO
USE master
GO — запрещаем изменения в системных базах
sp_configure ‘allow updates’, 0 –- для 2000
GO
7.5 Вариант отката к конфигурации базы данных. Ошибка устраняется открытием конфигуратора данных ключами запуска /RollbackCfg.
7.6 Проверенное лекарство для тяжелых случаем, когда не запускается конфигуратор или не открывается конфигуруция (только для СУБД MS SQL Server 2005):
USE [db_buh]
GO
DROP TABLE [dbo].[ConfigSave]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ConfigSave](
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO ConfigSave
SELECT * FROM Config
GO
где [db_buh] — имя базы
7.7 Смертельный номер, когда «убита» конфигурация, но она типовая или близко к типовой и известен ее номер.
— создаем чистую конфигурацию из типовой
— используем скрипт из 7.6, но вместо
SELECT * FROM Config
пишем
SELECT * FROM [база_источник]dbo.Config
— выполняем снова этот скрипт но уже не для [dbo].[ConfigSave], адл [dbo].[Config]
— выполняем реструктуризацию и реиндексацию
— выполняем обновление
— выполняем ТиС с очисткой битых ссылок
Работает ли это?
Пример, когда пункт 7.7 помог «в особо тяжелом» случаи в http://partners.v8.1c.ru/forum/thread…398#595398
Тут и сказочки конец, а кто слушал – будет делать бэкапы 🙂
См. также методику https://infostart.ru/public/391766/
ВНИМАНИЕ! ПЛАТНЫХ УСЛУГ ПО ВОССТАНОВЛЕНИЮ ДАННЫХ КОМПАНИЯ НЕ ОКАЗЫВАЕТ
Содержание
- Ошибка SDBL: Таблица или поле configversion не содержится в разделе FROM
- Почему возникает ошибка
- Убедитесь в наличии достаточных прав для запуска системы
- Обновите вашу конфигурацию (платформу) 1С
- Используйте инструмент «Тестирование и исправление».
- Выгрузите и загрузите файл Dt
- Перезагрузите сервер 1С
- Очистите кэш сервера 1С
- Очистите таблицы в менеджере SQL
- Заключение
- Ошибка SDBL 1С: как исправить некорректное использование local global в set generation
- Общее представление
- Причины возникновения
- Какие сообщения возникают
- Готовые решения для всех направлений
- Устранение ошибки SDBL 1С
- Права доступа
- Перезагрузка серверов 1С и SQL
- Удаление кэшированных данных
- Загрузка DT-файла
- Тестирование и исправление
- Обновление платформы
- Очистка таблиц базы данных
- Заключение
Ошибка SDBL: Таблица или поле configversion не содержится в разделе FROM
При выполнении каких-либо действий в системе 1С (открытии документа, установки библиотеки, обновлении БД и других смежных операций) пользователь может столкнуться с сообщением « Ошибка SDBL: Таблица или поле configversion не содержится в разделе FROM ». Обычно это связано с техническим сбоем в работе 1С, и лечиться рядом способов, описанных нами ниже. В данном материале мы разберём, в чём суть данной дисфункции, и как её исправить.
Почему возникает ошибка
Рассматривая нами ошибка SDBL является представительницей целого пула схожих ошибок с текстом « Таблица или поле не содержится в разделе FROM ». Такие ошибки обычно связаны с повреждением базы данных из-за различных причин, самой распространённой из которых является технический сбой в работе системы 1С.
Среди других причин ошибки SDBL также выделяют:
- Использование устаревшей конфигурации или платформы 1С;
- Проблемы с кешом сервера 1С;
- Запуск системы с недостаточными правами (к примеру, от имени учётной записи гостя вместо администратора) и другие причины.
Ошибка возникает при попытке обновления базы данных, добавления документа в базу данных, при тестировании базы данных на логическую целостность и других схожих случаях. При этом перезагрузка системы обычно никак не решает возникшую проблему.
Давайте рассмотрим, как исправить ошибку SDBL: Таблица или поле в вашей системе 1С.
Убедитесь в наличии достаточных прав для запуска системы
Первым делом убедитесь, что вы запускаете вашу систему с правами администратора. Недостаточный уровень прав может приводить к появлению различных проблем при работе с 1С.
Обновите вашу конфигурацию (платформу) 1С
Также проверьте, пользуетесь ли вы самой свежей версией платформы (конфигурации) 1С. При необходимости обновите вашу систему до самой свежей версии продукта. Это может помочь устранить ошибку SDBL с полем configversion в 1С.
Используйте инструмент «Тестирование и исправление».
Данный инструмент запускается переходом в конфигуратор, где в разделе «Администрирование» нужно выбрать опцию «Тестирование и исправление». Дождитесь окончания процедуры, после чего проблема может быть решена.
Исправьте ошибки в ваших базах данных
Выгрузите и загрузите файл Dt
Хорошие результаты в избавление от ошибки «поле configversion не содержится в разделе FROM» показал способ, состоящий в выгрузке и последующей загрузке файла Dt (архивной копии базы 1С). Для выгрузки базы зайдите в Конфигуратор, там выберите «Администрирование» , где нажмите на «Выгрузить информационную базу».
Для загрузки выгруженной ранее базы в систему вновь запустите «Конфигуратор», перейдите на вкладку «Администрирование», и в ней активируйте опцию «Загрузить информационную базу». Это может помочь избавиться от ошибки «SDBL: Таблица или поле configversion»
Перезагрузите сервер 1С
Для устранения дисфункции рекомендуем перезагрузить сервер 1С. Перезагрузка указанного сервера обычно выполняется автоматически на протяжении 3-5 минут при условии отсутствия у сервера подключенных пользователей.
Очистите кэш сервера 1С
В некоторых случаях исправить ошибку SDBL можно с помощью очистки кэша сервера 1С. Обычно кэш расположен по адресу:
Туда нужно перейти и удалить папки с генерированными именами. Учтите, что кроме кэша в данной папке могут находиться журналы регистрации, а также индекс полнотекстового поиска 1С.
Очистите таблицы в менеджере SQL
Также можно попробовать выполнить очистку таблиц таблицы _ConfigChngR и _ConfigChngR_ExtProps с помощью команды delete.
Заключение
В нашем материале мы разобрали причины ошибки «SDBL: Таблица или поле configversion не содержится в разделе FROM» и способы её устранения. Среди всех перечисленных альтернатив хорошую эффективность показал способ с выгрузкой файлов базы данных (файл с расширением Dt), с последующей их повторной загрузкой. Обычно после этого ошибка бывает устранена, и вы сможете пользоваться нормальным функционалом системы 1С.
Источник
Ошибка SDBL 1С: как исправить некорректное использование local global в set generation
Специфика современных версий учетных программ обуславливается использованием многоуровневого кода. Логично, что чем сложнее структура — тем выше вероятность возникновения внеплановых ситуаций, с которыми приходится сталкиваться рядовым пользователям конфигурации. В отдельных случаях даже сотрудники администрирующих служб предприятия не всегда способны сразу определить исходную причину появления неполадок, поэтому работа по устранению неудобств может занять немало времени. Одной из наиболее часто встречающихся проблем является классическая ошибка SDBL 1С, источники и способы устранения которой мы и рассмотрим в сегодняшнем обзоре.
Общее представление
Взаимодействуя с учетной программой, пользователи выполняют различные операции, каждая из которых, так или иначе, формирует запрос к базе данных. Создание нового документа, интеграция библиотеки, плановое обновление — во время любого из процессов есть вероятность получить в ответ уведомление от системы, свидетельствующее о том, что одна из логических цепочек была нарушена. Распространенный вариант — когда на экране появляется сообщение об ошибке SDBL 1С ожидается выражение (pos = 6) (а также 15, 57, 198, 250, 469, или любой другой номерной идентификатор).
Фактически это говорит о наличии технического сбоя, с которым чаще всего сталкиваются пользователи, самостоятельно обновляющие конфигурацию автоматическими средствами. Важно понимать, что при работе с программой (и в том числе при установке новых релизов) необходимо иметь определенный уровень навыков и знаний, достаточный для внесения изменений и управления функциональными возможностями платформы.
Впрочем, сильно переживать не стоит. Появление ошибки SDBL 1С еще не значит, что структура базы данных предприятия разрушена полностью — в большинстве случаев исправить проблему можно при помощи стандартного набора способов, реализовать которые под силу даже начинающим пользователям.
Причины возникновения
Один из главных факторов, о котором многие забывают в процессе работы с учетной системой — необходимость соответствия платформы и конфигурации обновления. То есть перед тем как начать использовать новый релиз, нужно создать условия, в которых он сможет нормально функционировать. Простейший вариант — доверить контроль за установкой профильному специалисту, который поможет избежать технических сбоев в программе.
Если говорить об уже упомянутой ранее ошибке SDBL 1С «ожидается выражение (pos = 144)» (или 48, 153, 13 — не столь принципиально), то в этом случае ключевым обстоятельством становится повреждение базы данных, обусловленное нарушением системных логических циклов. К числу распространенных причин возникновения, отмечаемых специалистами, относят не только применение устаревшей конфигурации или платформы, но также и проблемы, связанные с серверным кешем. Кроме того, всегда существует вероятность случайного запуска с некорректной учетной записи, не обладающей достаточным набором прав.
Чаще всего системные ошибки происходят в процессе очередного обновления БД, а также при обращении к ней — через запрос на добавление документов, во время тестовой проверки логической целостности, или же в иных ситуациях. Критической проблемой при установке расширений может стать и «некорректное использование LOCAL/GLOBAL в SET GENERATION», не позволяющее полноценно сохранить базу даже после выборочного удаления. Стоит отметить, что стандартное решение в виде перезагрузки программы обычно не помогает, поэтому для восстановления работоспособности придется воспользоваться альтернативными методиками.
Какие сообщения возникают
Уведомление о технических неполадках отражает специфику возникшей проблемы, и может появиться как во время обновления конфигурации, так и в процессе работы с обменом данных. Как правило, текст в информационном окне раскрывает специфику возникшей ошибки SDBL 1С: «не является именем поля», «ожидается идентификатор» или «выход за пределы размерности результата 1C», и т. д.
Встречаются и вспомогательные приписки, причем их количество зависит от конкретной неточности, допущенной в ходе сборки и настройки обновленного расширения:
предпринята попытка ввести неприемлемый тип значения «NULL»;
пропущена точка с запятой;
нарушение индексирования с полным текстом;
неоднозначное определение некоторого поля;
отсутствует выражение (pos =) — с различными числовыми идентификаторами в скобках.
Практика работы с типовыми конфигурациями показывает, что количество сообщений достаточно велико, и определенно выходит за рамки приведенного списка, в котором собраны только наиболее часто встречающиеся варианты.
Готовые решения для всех направлений
Ускорь работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.
Мобильность, точность и скорость пересчёта товара в торговом зале и на складе, позволят вам не потерять дни продаж во время проведения инвентаризации и при приёмке товара.
Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя.
Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.
Повысь точность учета имущества организации, уровень контроля сохранности и перемещения каждой единицы. Мобильный учет снизит вероятность краж и естественных потерь.
Повысь эффективность деятельности производственного предприятия за счет внедрения мобильной автоматизации для учёта товарно-материальных ценностей.
Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.
Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.
Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..
Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.
Устранение ошибки SDBL 1С
Попытки справиться с возникающими проблемами самостоятельно не всегда заканчиваются одинаково успешно, поскольку в каждой отдельно взятой ситуации влияние оказывают разнообразные факторы — как в самой системе, так и за ее пределами.
В связи с этим главной рекомендацией специалистов является регулярное резервное копирование, позволяющее без особого труда восстановить исходные данные в случае наступления критических обстоятельств. Оптимальный график предусматривает не только ежедневное ночное создание копий, но также и дополнительное резервирование перед каждой значительной операцией, будь то обновление или закрытие периода. Автоматизированная архивация базы реализуется встроенным функционалом учетной программы, а восстановление из Конфигуратора занимает минимум времени, позволяя откатиться к рабочему состоянию практически без прерывания процесса.
Практически любая ошибка SDBL 1С — «недопустимый символ (pos = 40)», «пропущена точка с запятой», или «ожидается имя таблицы 21», может быть устранена путем выполнения несложного набора действий. Перечень доступных вариантов выглядит следующим образом:
Удаление кэшированных данных — как на пользовательском рабочем месте, так и на основном сервере, где произошел технический сбой. Для реализации процедуры очистки кэша достаточно закрыть учетную программу, открыть «Проводник», найти, выбрать и удалить набор папок из раздела «Application Data». Отличить нужные элементы проще всего по названию, которое выглядит как хаотичный набор символов — например, «ac5c8bm4-y65k-4s23-a9g8-2dcttp0b15da».
Использование функционала Конфигуратора, позволяющего провести тестирование и исправление информационной базы. В этом случае необходимо найти поврежденную ИБ, выбрать ее и перейти в раздел «Администрирование», после чего активировать встроенную функцию для теста и корректировки ошибок.
Перезагрузка сервера, на котором расположены программные приложения системы 1С. Самый простой вариант — включение и выключение всех взаимосвязанных SQL-сервисов, включая агент. Для выполнения задачи нужно зайти на нужный серверный источник, выделить агентскую службу, вызвать контекстное меню и остановить процесс. Аналогичные действия повторяем на SQL со служебными процедурами Server и Agent. Повторная активация осуществляется в обратном порядке.
Выгрузка БД в отдельный DT-файл с последующей повторной «заливкой». По сути, метод напоминает стандартную перезагрузку системы — структура записывается в файловом формате, что позволяет упорядочить проблемные разделы. Для выполнения процедуры достаточно открыть меню управления учетной программой, найти в категории «Администрирование» функцию «Выгрузить информационную базу», и после ее завершения выбрать опцию «Загрузить ИБ», используя сформированный файл.
Откат к последней резервной копии. Один из самых простых и доступных вариантов — конечно, в том случае, если архивирование данных проводится на регулярной основе, а не только перед закрытием периодов. Вообще, решение записывать текущее состояние перед каждым внесением изменений может избавить от большинства проблем, связанных с техническими сбоями. Даже если вы столкнетесь с уведомлением о том, что «ожидается имя поля», или получите ошибку «таблица 1С inforg не создана в новом поколении», источник которой не всегда понятен даже опытным пользователям — загрузка последней копии просто вернет систему к исходному состоянию. Для резервирования допускается использование как SQL MS, так и Конфигуратора учетной программы — через последовательную выгрузку файлов в уже упомянутом DT формате.
Обновление платформы через сайт информационно-технологического сопровождения разработчиков, доступный всем лицензированным пользователям продукта. Функционал портала ИТС позволяет установить последнюю редакцию, актуальную на момент обращения, инсталляция которой производится как на основной сервер, так и на рабочие места клиента.
Как правило, один из перечисленных методов позволяет добиться желаемого результата, устраняя проблему в работе учетной системы. В ситуациях, когда применить готовое решение так и не удалось, есть резервный вариант, отличающийся высокой вероятностью успешного исхода. Очистка в менеджере SQL 1С таблиц ConfigChngR и ExtProps, что за последние годы стало уже привычным способом восстановления для большинства специалистов, осуществляется стандартной командой Delete.
На что еще обратить внимание при устранении ошибок SDBL, и как реализовать рассмотренные методы? Сейчас разберемся.
Права доступа
Пожалуй, самая простая причина неполадок, которая тем не менее все еще встречаться на практике — попытка запустить систему через учетную запись, не обладающую соответствующими полномочиями. Убедитесь, что профиль для запуска выбран корректно, чтобы не провоцировать сбои собственными действиями.
Перезагрузка серверов 1С и SQL
Это один из простейших методов восстановления, единственным обязательным условием, для применения которого является выход всех пользователей из базы. Убедившись, что доступ открыт, зайдите на сервер и последовательно выключите агент программы Server и SQL-agent, после чего запустите их в обратном порядке.
Удаление кэшированных данных
Создание кэша представляет собой процесс буферизации информации, используемой базой чаще всего, и, как правило, относящейся к статичной категории. Кэширование позволяет ускорить программный цикл — так, если говорить об учетных системах, оптимизация затрагивает загрузку файлов конфигурации, исключая необходимость постоянного обращения к основному серверу. Однако на практике встречаются случаи некорректной обработки программным обеспечением подобных задач, что в конечном счете становится причиной неправильной работы платформы.
Перечень факторов, обуславливающих нарушение логических циклов, весьма обширен, и охватывает не только динамические обновления системной структуры, но и технические сбои программного или аппаратного характера. В некоторых случаях для устранения ошибки SDBL 1С «ожидается имя поля/таблицы (pos = 21, 45, 48…)» достаточно почистить кэш, сохраненный на сервере, либо на рабочем месте пользователя.
Стандартный путь к месту хранения кэшированных данных выглядит следующим образом:
«%userprofile%AppDataRoaming1C1Cv8» и «%userprofile%AppDataLocal1C1Cv8» — для операционных систем начиная с Windows 7.
«%userprofile%Local SettingsApplication Data1C1Cv8» и «%userprofile%Application Data1C1Cv8» — для тех, кто все еще продолжает работать на ХР.
Откройте каталог, расположенный по указанному адресу, выделите и удалите все хранящиеся в нем папки, имя которых представляет собой сгенерированный автоматически набор цифр и букв (вроде «abg7n8ty4-brt9r893-am…»). Стоит отметить, что во время чистки кэша нужно быть особенно внимательными, поскольку в директории также могут находиться поисковый индекс и журналы регистрации 1С, которые не требуют удаления.
Загрузка DT-файла
Этот метод может показаться немного странным, поскольку фактически не предполагает внесения каких-либо корректировок в основную структуру данных. Однако в действительности выгрузка БД в отдельный файл, сохраняемый в формате DT, с последующим обращением к ней же, нередко позволяет восстановить нормальную работу программы. Алгоритм достаточно прост — в режиме Конфигуратора нужно выбрать раздел «Администрирование», использовать опцию «Выгрузить ИБ» (указав каталог для сохранения), после чего повторно залить сформированную базу обратно в систему.
Тестирование и исправление
Еще одна удобная функция, доступная в режиме корректировки конфигурации — встроенный инструментарий, предназначенный для теста и внесения коррективов. В отдельных ситуациях может возникнуть проблема с запуском Конфигуратора — вместо этого можно воспользоваться специальной утилитой chdbfl.exe, представляющей собой упрощенный программный аналог с идентичным функционалом. Приложение находится в каталоге «bin», поэтому найти его не составляет особого труда — как через стандартный путь «C:Program Files (x86)1cv88.3bin», так и через опцию поиска, предлагаемую операционной системой.
Для использования программы достаточно указать расположение проблемной базы данных, и запустить цикл тестирования. При желании можно активировать опцию автоматического исправления выявленных ошибок — в противном случае утилита ограничится диагностикой, и сформирует перечень технических неполадок в отдельном реестре.
Обновление платформы
Еще одно простое решение, предусматривающее использование сайта технической поддержки разработчиков 1С. Скачайте дистрибутив актуального релиза, распакуйте архив и активируйте инсталлятор setup.exe — система обновится автоматически.
Очистка таблиц базы данных
Если ни один из вышеперечисленных способов не дал желаемого результата — остается вариант с удалением табличных значений БД, вызывающих появление ошибки, расположенных в каталогах ConfigChngR и ExtProps. Для этого применяется скрипт менеджера SQL, с указанием информационного раздела и командой delete from. В этом случае лучше всего обратиться к профильному специалисту, поскольку некорректное восстановление может привести к более серьезным последствиям.
Заключение
Автоматизация учетных процессов — важный аспект, позволяющий оптимизировать работу компании. Ошибки SDBL 1С встречаются достаточно часто, поэтому стоит заранее позаботиться об оперативном устранении возможных проблем. Мобильные решения, предлагаемые компанией «Клеверенс», гарантируют квалифицированную поддержку, а также помогут решить задачи, связанные с учетом данных на предприятии.
Источник
Обычно ошибка SDBL происходит при сохранении и обновлении конфигураций в момент реструктуризации базы данных, а также во время работы обменов данными.
Окно с данной ошибкой 1С имеет дополнительное содержание. Типичные сообщения:
- Ожидается выражение (pos = ).
- Выход за пределы размерности.
- Поле таблицы не может принимать значение NULL.
- Ошибка при полнотекстовом индексировании.
- Попытка вставки значения недопустимого типа.
- Поле определено неоднозначно.
- Пропущена точка с запятой.
- В схеме базы данных нет таблицы с именем…
Исправление ошибки SDBL
Большая часть способов исправления связана с восстановлением нормальной работы Информационной Базы. Но иногда описанными способами решить проблему не получается, поэтому помните о самом лучшем, универсальном способе — регулярном резервном копировании.
Перезагрузка сервера 1С и SQL-сервера
Самый простой способ, при условии, что на текущий момент в базе никто не работает.
Зайдите на сервер и выключите следующие службы:
- «Агент сервера 1С»,
- «SQL Server»,
- «Агент SQL Сервера».
А затем запустите их обратно.
Очистка кэша на сервере и клиента, где проявилась ошибка
В некоторых случаях исправить ошибку SDBL можно с помощью очистки кэша сервера 1С.
Как правило кэш расположен по адресу:
- «%userprofile%Local SettingsApplication Data1C1Cv8» и «%userprofile%Application Data1C1Cv8» для Windows XP,
- «%userprofile%AppDataRoaming1C1Cv8» и «%userprofile%AppDataLocal1C1Cv8» для Windows 7 и выше.
Перейдите в данный каталог и удалить все папки с генерированными именами вида « dg7c8re4-b89r…». При удалении будьте внимательны — в этой директории может присутствовать индекс полнотекстового поиска 1С, а также журналы регистрации, их удалять не нужно.
Перезаливка базы из DT-файла
Иногда помогает, казалось бы, парадоксальный способ — выгрузка базы данных в файл формата DT, а затем загрузка его обратно.
Войдите в режим «Конфигуратор», выберите пункт меню «Администрирование» > «Выгрузить информационную базу» и выберите каталог для сохранения файла.
Затем через аналогично через меню «Администрирование» > «Загрузить информационную базу» загрузите его обратно.
Тестирование и исправление Информационной базы
Для тестирование и исправление Информационной базы: войдите в «Конфигуратор», выберите пункт меню «Администрирование» > «Тестирование и исправление».
В случаях, когда невозможно запустить конфигуратор, воспользуйтесь утилитой chdbfl.exe. Это упрощенная программа-аналог тестирования базы, функции, которая запускается в режиме конфигуратора. Расположена она в папке «bin» установленной технологической платформы, например, C:Program Files (x86)1cv88.3…binchdbfl.exe.
Пользоваться ей просто — указываете путь к файлу базы данных и ставите опцию, нужно ли сразу исправлять обнаруженные ошибки. Если нет — утилита только продиагностирует ИБ.
Обновление платформы до новой версии
В данном случае всё достаточно просто. Скачивает с сайта поддержки 1С дистрибутив свежей версии платформы, распаковываем и запускаем инсталятор setup.exe.
Очистка таблиц базы данных
В крайнем случае можно попробовать удалить таблицы БД, связанные с ошибкой — «dbo._ConfigChngR» и «dbo._ConfigChngR_ExtProps».
Производится это через менеджер SQL-скриптом вида:
use имя_базы_данных
delete from dbo ._ ConfigChngR
delete from dbo ._ ConfigChngR _ ExtProps
Помните, прямые SQL-запросы лучше доверить профессионалу, умеющему работать с SQL.
Какими методами восстанавливать разрушенные базы программы 1С:Предприятие 8,1
Зачем нужна эта статья
Есть такая очень правдивая шутка, мол, все администраторы делятся на 2 группы: одни делают бэкапы, а другие будут делать бэкапы. Обычно чем старше человек, тем больше вероятность того, что он принадлежит к первой категории. Впрочем, эта статья как раз и создана для того, чтобы читатель смог перейти в первую категорию
Стандартная документация программ 1С практически не затрагивает тему нештатной работы 1С:Предприятие; часто в этих статьях советуют использовать серверы с разными механизмами резервирования устройств, а также использовать источники бесперебойного питания; ну и, конечно же, иногда делать резервные копии, храня их на флешке, диске или дополнительных винчестерах
Но, как свидетельствует практика, большинство пользователей, и даже администраторов имеют привычку сначала испортить базу, а когда ее восстановить уже нельзя, как впрочем и данные в ней, тогда и кричат о помощи
Методы восстановления данных
Сейчас мы расскажем немного о том, как поступать в случаях, когда резервной копии нет, а база при этом повреждена
1) запишите на бумаге дату и время, когда появились ошибки; это поможет намного быстрее найти и исправить ошибку, когда, например, вы будете просматривать логии. Если не помните точное время, запишите хотя бы приблизительное, или временные рамки, когда, по вашему мнению, могли начаться глюки и ошибки
2) запишите туда же текст ошибки, причем максимально точный – каждый символ и число из этого текста. Также нужно записать номер релиза СУБД, версию программы 1С:Предприятие, и ее текущую конфигурацию
— если возможно, сделайте скриншота экрана, когда на нем высветилась ошибка;
— сделайте пометку, может ли это быть результатом рассинхронизации узлов базы, или нет;
Например, текст ошибки может быть таким:
Ошибка SDBL:
Разрушена структура базы данных 1С:Предприятия. (pos=0)
Или на английском:
Server: Msg 945, Level 14, State 2, Line 1
Database ‘ db_zup’ cannot be opened because some of the files could not be activated.
Server: Msg 1813, Level 16, State 2, Line 1
Could not open new database ‘db_zup’. CREATE DATABASE is aborted
Иногда в MS SQL Server база данных может иметь статус Suspect
3) пока еще все помните и все находится в действии, попробуйте восстановить последовательность действий, которые вы делали до этого, и которые возможно были причиной возникновения ошибки;
— если в этом момент будете вносить изменения, сначала обязательно сделайте копию;
4) предложите вашему заказчику прислать базы данных с SQL Server’а или dt-файл, или же архивную копию каталога на адрес v8@1c.ru ;
— это обязательно нужно делать сразу, ведь если заказчик откажется, можно предложить ему платную версию ваших работ;
— для передачи данных в 1С нужно предоставить продукт, зарегистрированный в 1С, а также подписку на ИТС в текущем месяце; учтите, что сроки реакции 1С бывают медленные;
5) спросите у заказчика, какие резервные копии у его есть, или какие другие узлы базы; в дальнейшем их можно будет использовать для восстановления
— обязательно обратите внимание на актуальность этих копий – когда они были сделаны;
— для распределенных баз может быть полезен состав информации, которая регистрируется;
— спросите Заказчика о наличии dt-файла
6) определяем то, что вызвало ошибку – это описано во втором пункте;
— обычно источник ошибки – это MS SQL Server, но все равно нужно внимательно читать текст, исследовать ошибки PostgreSQL отдельно от ошибок MS SQL Server;
— бывает, что ответ уже заложен в источнике ошибки;
— стандартная документация программ 1С описывает такую возможную причины:
При запуске 1С:Предприятие начинает проверять, есть ли в информационной базе таблицы следующие элементы: Config, ConfigSave, Files, Params, _YearOffset, DBSchema, и если какого-то не находит, выдает сообщение о том, что ИБ разрушена
Еще один вариант описан сотрудников компании 1С:
Сообщение об ошибке может появляться в случае, когда отсутствует или заполнена поврежденными данными таблица под названием DBSchema, если в ней есть таблицы DBChanges и DBSchemaOG, но таблицы DBSchema DBSchemaOG не находятся
7) всегда можно поискать в Интернете решение для любого конкретного случая, в том числе того, который случился у вас;
7,1) если разрушена база в файловом варианте, в папке C:Program Files1cv81bin можно найти утилиту под названием chdbfl.exe; используйте ее или попробуйте конвертирование в клиент-серверную версию; если это возможно, конечно;
7,2) В случае с СУБД PostgreSQL можно попробовать ввести команду pg_resetxlog, перед тем обязательно сделав резервные копии каталога DATA. Может быть, PostgreSQL таки запустится, но при этом потеряется часть данных;
7,3) При обменах данными. Войдя в режим предприятия, нужно сделать базу не подчиненной; далее выгрузите из центральной конфигурации и загрузите в периферийную базу, после этого снова сделайте периферийную базу подчиненной. Загружаем изменения в конфигурации, которые во время обмена были выгружены из центральной базы;
7,4) Когда найдены базы со статусом Suspect. Именно такой статус имеют базы, которые находятся в аварийном состоянии. Довольно часто причиной этого являются неполадки с журналом транзакций. Если попробовать подключить базу без журналов, может появиться такое сообщение про ошибку:
Server: Msg 945, Level 14, State 2, Line 1
Database ‘ db_zup’ cannot be opened because some of the files could not be activated.
Server: Msg 1813, Level 16, State 2, Line 1
Could not open new database ‘db_zup’. CREATE DATABASE is aborted
Для того чтобы решить такую проблему, можно создать новую базу с таким же именем, и аналогичными по имени и расположению файлами mdf и ldf; пропишите параметр базы autoclose в активное состояние, то есть введите autoclose = true
Тепер нужно подменить файл с расширением mdf. Можно также делать проверку физической целостности базы при помощи команды DBCC CHECKDB
Если сервер был остановлен, то сразу запускаем, не обращая внимания на статус базы, а в Query Analyzer выполняем такое:
Use master
go — позволяем изменять данные систeмных баз
sp_configure ‘allow updates’, 1 –- для 2000
reconfigure with override –- для 2000
go –- сохраняем значение
select status from sysdatabases where name = ‘имя базы’ –- для 2000
go –-изменяем статус данной базы
update sysdatabases set status= 32768 where name = » –- для 2000
alter database set emergency –- для 2005
go
После перезапуска SQL Server прописываем в командной строке следующее:
Net stop mssqlserver
Net start mssqlserver
База должна быть видимой, если работаем в режиме emergency mode
Дальше создаем новый Журнал транзакций и проводим полное тестирование вот так:
DBCC REBUILD_LOG(‘имя_базы’, ‘<имя нового Журнала транзакций с указанием полного пути к_нему>’)
GO
Use master
GO
sp_dboption ‘имя_базы’, ‘single_user’, ‘true’ –- для 2000
ALTER DATABASE <Имя БД> SET SINGLE_USER –- для 2005
GO
USE имя_базы
GO
DBCC CHECKDB(‘имя_базы’, REPAIR_ALLOW_DATA_LOSS)
/*Этот код ищет Журнал транзакций по старому пути. Если база уже находится на другом компьютере, то нужно создать временный пустой Журнал транзакций в той же папке и на том же диске, что и раньше. После восстановление можно его перенести
Если у вас не получилось перевести базу в singleusermode, то проверку целостности может получить сделать через dbo only mode, для этого просто уберите знак – в строке:*/
— sp_dboption », ‘dbo use only’, ‘true’
GO
sp_dboption », ‘single_user’, ‘false’ –- для 2000
alter database set multi_user –- для 2005
GO
USE master
GO — запрещаем изменения в системных базах
sp_configure ‘allow updates’, 0 –- для 2000
GO
7,5) Откат к конфигурации базы данных. Эта ошибка исправляется, если открыть конфигуратор данных с помощью ключей запуска /RollbackCfg;
7,6) При тяжелых случаях, когда не запускается конфигуратор, а то и конфигурация не открывается, можно использовать такое, но только для СУБД MS SQL Server 2005:
USE [db_buh]
GO
DROP TABLE [dbo].[ConfigSave]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ConfigSave](
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO ConfigSave
SELECT * FROM Config
GO
где [db_buh] — имя базы
7,7) наиболее тяжелый случай, когда конфигурация испорчен дальше некуда, но она является стандартной или похожа на стандартную, а также в случае если известен ее номер:
— создает чистую конфигурацию из стандартной;
— используем скрипт из пункта 7,6, но в нем вместо
SELECT * FROM Config
Прописываем SELECT * FROM [база_источник]dbo.Config
— снова выполняем скрипт, но не для [dbo].[ConfigSave], а теперь уже для [dbo].[Config];
— делаем реструктуризацию и реиндексацию
— делаем обновление;
— выполняем ТиС, но с очисткой испорченных ссылок
Работает ли все это?
Конечно, гарантий успешности этих мероприятий никто не дает, но уже многим людям данные советы помогли; но самый главный совет – регулярно делайте бэкапы!
Теги материала: база, 1с, бухгалтерия, предприятие, сломалась база, зависла база, повредилась база, не открывается база
54945
Руководитель Центра
сопровождения 1С
09 января 2019
Помощь 1С
Актуальность проверена: 26.01.2023
Получить консультацию
Бесплатно
Обслуживание 1С
Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ
Устранение блокировок в 1С
Исключение «простоев» сотрудников. Исключение «плохих» блокировок»
Различные конфигурации 1С из-за сложности кода, бывает, огорчают администраторов и пользователей ошибками. Многие из них легко устраняются, но существуют и те, что способны испортить достаточно «крови» ИТ-службам. Одна из таких ошибок известна в кругах специалистов по 1С под именем «Ошибка SDBL».
Исправление ошибки SDBL в 1С
Обычно сообщение об ошибке SDBL мы видим при обновлении конфигурации, сохранении изменений или работе обменов данными. Чаще всего сопровождаться она следующими сообщениями:
- Ошибка при полнотекстовом индексировании;
- Попытка вставки значения недопустимого типа;
- Поле таблицы не может принимать значение NULL;
- Ожидается выражение (pos = );
- Пропущена точка с запятой;
- Выход за пределы размерности;
- Поле определено неоднозначно.
Бесплатная
консультация
эксперта
Анна Викулина
Руководитель Центра
сопровождения 1С
Спасибо за Ваше обращение!
Специалист 1С свяжется с вами в течение 15 минут.
Также эта ошибка может сопровождаться и другими информационными сообщениями. Чтобы решить эту проблему, администраторы 1С для начала применяют достаточно простые решения:
- Очистка КЭШа на сервере и компьютере пользователя, где появилась ошибка. Необходимо выйти из 1С, найти все папки с названиями типа «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» в папке «Application Data» и удалить их;
- Перезагрузка сервера приложений 1С. Также может помочь включение и выключение всех связанных сервисов – SQL и его агента. Заходим на сервер, находим службу «Агент сервера 1С» и останавливаем ее с помощью контекстного меню. Аналогично поступаем со службами «SQL Server» и «Агент SQL Сервера» на сервере SQL. Затем включаем в обратной последовательности;
- Механизм «Тестирование и исправление ИБ», доступный в конфигураторе. В нужной информационной базе заходим в «Администрирование» — «Тестирование и исправление…» и запускаем процесс;
- Выгрузка базы данных в файл формата DT и загрузка его обратно в ту же информационную базу. Также выполняется в режиме конфигуратора через меню «Администрирование». Используются команды «Выгрузить информационную базу…» и «Загрузить информационную базу…»;
- Загрузка из резервной копии, если она сделана недавно. Резервные копии необходимо делать регулярно и дополнительно перед каждым серьезным действием с информационной базой. Резервные копии можно делать с помощью SQL MS или конфигуратора через выгрузку файла формата dt;
- Обновление платформы до более новой версии с официального портала ИТС. Необходимо скачать с сайта ИТС последний релиз платформы и установить на сервере и клиентских компьютерах.
Если все эти методы не дали результата, то для клиент-серверного варианта базы 1С можно попробовать очистить таблицы _ConfigChngR_ExtProps и _ConfigChngR. Делать это доверьте профессионалу, умеющему работать с MSSQL. В подавляющем большинстве случаев один из этих методов обязательно поможет. Если же ошибка осталась, и у вас нет резервной копии, следует обратиться к профессионалам за помощью.
Другие статьи по теме
Где скачать новый классификатор ОКОФ и как его загрузить в 1С 8.3 и 8.2
Понятие Общероссийского классификатора основных фондов знакомо всем специалистам, отвечающим по работе за учет объектов предприятия. ОКОФ разрабатывался для системной работы с фондами или, что в этом …
Почему 1С долго обновляется
Пользователям и администраторам знакома такая проблема: 1С от раза к разу обновляется все медленнее, до того, что это становится просто неприемлемо
Где скачать ФИАС и как его загрузить в 1С
Федеральная информационная адресная система (ФИАС) – федеральная государственная информационная система, обеспечивающая формирование, ведение и использование государственного адресного реестра
Содержание:
1. Возникновение ошибки SDBL
2. Устранение ошибки SDBL в 1С
Приветствую, коллеги! В данной статье будет рассмотрена знакомая и набившая оскомину многим специалистам 1С ошибка SDBL, а также возможные пути её устранения.
1. Возникновение ошибки SDBL
Ошибка SDBL возникает, когда происходит обновление конфигурации 1С:Предприятие или сохранение перемен. Также сообщение об ошибке может возникать при работе с обменами данных:
Рис. 1 Сообщения 1С об ошибке SDBL
Также к данным сообщениям часто есть одна или несколько приписок:
· была совершена попытка вставить значение с недопустимым типом;
· был совершён пропуск точки с запятой;
· имеет место ошибка, которая произошла при индексировании с полным текстом;
· некоторое поле имеет неоднозначное определение;
· не хватает выражения (pos =);
· совершён выход из размерностей;
· в поле таблицы используется невозможный тип значения «NULL».
Обратите внимание: есть вероятность, что при ошибке будут другие сообщения, не указанные выше!
2. Устранение ошибки SDBL в 1С
Устранить ошибку SDBL можно одним из способов, которые описаны ниже.
1. Сделать перезагрузку на сервере с приложениями для 1С 8.3. Далее может помочь, если включить и выключить все сервисы SQL и агентами SQL. Для этого потребуется зайти на сервер, выбрать «Агент сервера 1С» и при помощи контекстного меню приостановить работу. По аналогии сделаем с «Агентом SQL» и «SQL Server» для сервера SQL. Затем следует снова подключить их, но в обратной последовательности.
2. Выгрузить базу с данными в некоторый файл, который будет иметь расширение DT, а затем выгрузить её назад – в ту же базу с информацией. Аналогично будет исполняться для режима конфигуратора при помощи вкладки меню «Администрирование» – посредством использования команд «Загрузить информационную базу…» и «Выгрузить информационную базу…».
3. Можно попробовать очистить КЭШ внутри сервера и внутри компьютера пользователя в месте, где была обнаружена ошибка. Для этого потребуется закрыть 1С, далее совершить поиск по папкам, которые будут иметь имя вида «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» внутри папки с названием «Application Data», после их нахождения производим удаления данных папок.
4. Также можно обновить платформу на более современную версию (с главного портала – ИТС). Для выполнения данного действия скачиваем с ИТС новую платформу 1С 8.3 и устанавливаем ее на компьютерах клиентов и на сервере.
5. Рассмотрим еще один вариант – использование механизма «Тестирование и исправление информационных баз», который находится внутри конфигуратора. В необходимой базе переходим по пути: «Администрирование → Тестирование и исправление информационных баз», а далее запускаем процесс.
6. Совершим загрузку внутри копии, которая является резервной, если она была создана в недавнем времени. Замечание: обязательно часто делать резервные копии до любого важного действия с ИБ. Копии делаются посредством SQL MS или конфигуратора, при этом происходит выгрузка файла в формат dt.
Если ни один из вышеперечисленных способов не устранил ошибку SDBL, следует произвести очистку таблиц _ConfigChngR_ExtProps и _ConfigChngR. Однако для этого потребуется знания принципов работы MSSQL.
Специалист компании «Кодерлайн»
Айдар Фархутдинов