1С ошибка sdbl

Ошибка SDBL Ожидается имя таблицы Pos 19.

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

Итак, эта ошибка, чаще всего возникает у пользователей типовых программ 1с, которые сами обновляют конфигурацию с помощью автоматического обновления. По всей видимости, непонимание того, как работает программа 1С и желание сэкономить на услугах программиста 1С, является главной причиной данной ошибки. Во время автоматического обновления пользователь не обращает внимание, что новый релиз должен работать на новой платформе и прежде, чем обновлять свою программу, нужно установить эту самую новую платформу для своей новой конфигурации. Если вы не поняли о чем было это предложение, то дальше читать не имеет смысла. Просто обратитесь к программисту 1С и позвольте сделать ему свою работу.

Как решается данная проблема? Здесь возможны варианты. Есть ли у вас есть копия базы, сделанная до обновления, то решение самое простое. Восстановитесь на старой платформе из этого архива, обновите платформу, потом обновите конфигурацию. Зайдите в конфигуратор и согласитесь со всем, что предложит программа.

Ошибка SDBL: Ожидается имя таблицы (pos=19)

Все должно заработать. Если, архива нет, то заказывайте бубен 🙂 придется плясать. Еще потребуется: новая платформа, причем платформа базовых версии не подойдет, cf файл — выгруженная конфигурация, обновленная до того же релиза, что и ваша не работающая программа, установочный комплект и все необходимые обновления.

Первое — нужно запустить базу данных 1С на старой платформе в режиме "Конфигуратор". Для этого меняем настройки при запуске, нажимаем изменить, нажимаем два раза "Далее", находим строчку "Версия 1С Предприятие" здесь ставим полный номер старой платформы, достаточно двух цифр после "8.2". Меня здесь цифры мы управляем на какой платформе запускать программу. Затем из конфигуратора открываем режим приложения. Программа ругнется, соглашаемся, после этого программа откроется. Если не откроется, готовьте CF файл. Он должен быть, обязательно того же релиза, и той же версии (корп, проф, базовой) что и ваша программа. Как получить CF? Берем установочный комплект, создаем новую базу(если есть шаблон, то сразу из шаблона) и обновляем до нужного релиза, т.е. ставим все обновления по порядку на новой платформе, потом делаем выгрузку конфигурации в файл. Описано подробно здесь.

Второе — теперь уже на обновленной платформе запускаем нашу базу в режиме конфигуратор. Соглашаемся с предложением конвертировать. Далее делаем загрузку конфигурации из файла, указав полученный CF — файл. По окончании остается сделать реструктуризацию таблиц. База восстановлена! При этом, ни один бит данных не будет потерян.

Трубицын Александр

Комментарии

Комментариев пока нет!



Оставить комментарий

Электонная почта на странице не отображается, нужна только для обратной связи.

Есть ошибки в 1С? Напишите — исправим!

Наши публикации



   YouAreEmpty

День добрый! Сегодня пользователи стали жаловаться что у них при создании СФ выданного стала падать 1С с ошибкой SDBL: поле fldXXXXX из таблицы DocumentXXX не может иметь значение NULL. Как оказалось проблема возникает только на этом сервере терминалов, на остальном все нормально. Чистка кэша у пользователей не помогла.

Ошибка SDBL: Ожидается имя таблицы (pos=69)

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

 
 

   Maxus43

сервер 1с там же стоит где ошибка?

   YouAreEmpty

(1) нет, сервер 1с крутиться на другом сервере

   YouAreEmpty

сорри за тавтологию

   Галахад

Похоже, недочистили.

   YouAreEmpty

(4) Так я заходил пользователем, у которого кэша вообще не было, проблема все равно оставалась

   YouAreEmpty

(5) Я имею ввиду Windows-пользователя

   Галахад

Может серверный кэш почистить?

   YouAreEmpty

(7) Как это сделать?

   Maxus43

(8) в папке srvinfo на сервере 1с, только осторожно. ну или удалить-добавить в консоли 1с сервера. Осторожно там делать надо, там и ЖР и настройки всякие

   Галахад

Точно не помню, надо у гугла спросить.

 
 

   MSII

Демонически обновляли?

   zva

(0) вы там часом не два независимых сервера 1С к одной базе подняли?

   Serginio1

v8: Кэш конфигурации на сервере приложений. Как почистить?

   YouAreEmpty

(11) Возможно, одинэсник который это поле вносил, обновлял демонически(не помнит уже).

   MSII

(14) Видел такую ошибку после ДО, помогло нормальное обновление (с реструктуризацией данных).

   Повелитель

Действительно похоже, на косяки динамического обновления.
Чистка кэша должна помочь.

   YouAreEmpty

(15) Как вариант, внести какое-л изменение и обновить базу?

   MSII

(17) Как вариант.

   Serginio1

(17) Для начала сравнить с конфигурацией БД

   Serginio1

Или выгрузить файл конфигурации из другой БД

   YouAreEmpty

(19) Сравнивал с конфигурацией БД, второе еще не пробовал. Сейчас попробую

   wms

(17)+100 и самое простое

   wms

причем изменение в этот объект т.е. с-ф

Попробуйте новый бесплатный сервис для быстрого анализа кода типовых конфигураций 1c-api.com

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

v8: После обновления БП ошибка SDBL ожидается имя таблицы pos 19

ошибка SDBL пропущена точка с запятой (pos=33)

Я
   ginard А теперь, уважаемые знатаки, внимание, вопрос! С помощью нижепреведенного кода (а можно и без его помощи) через минуту сообщите нам — какого черта?

Function Getz(m, k, r = Неопределено) s = 0;    if m.Количество() > 0 then
       if k < 0 then k1 = -1 else k1 = 1 endif;
       if k <> 0 then
t = 0; pr = m.РабочийЦентр; pw = m.Профессия; for each l in m do s = s + k1 * (l.ВремяПодготовки + k * l.ВремяИзготовления / TransEN(l.ЕдиницаНормирования)); if МежоперационноеВремя and t <> m.Количество() and l.РабочийЦентр = pr and l.Профессия = pw then if МежоперационныйФлажок then s = s + (ТГ.Часы — (l.ВремяИзготовления / TransEN(l.ЕдиницаНормирования)) % ТГ.Часы) * k; else s = s + ПолеМежоперационноеВремя * k; endif; endif;                if ВремяПереходаПоВидамРабот and l.Профессия <> pw and l.РабочийЦентр = pr then
if ФлажокВидовРабот then s = s + (s % ТГ.Часы); else s = s + ПолеПереходПоВидамРабот; endif; endif;                if МежцеховоеВремя and l.РабочийЦентр <> pr then
if МежцеховойФлажок then s = s + (s % ТГ.Часы); else s = s + ПолеМежцеховоеВремя; endif; endif; t = t + 1; pr = l.РабочийЦентр; pw = l.Профессия; enddo; endif; endif; return(s); endFunction Function Celebration(d) f = false; s = new Структура("ДатаКалендаря, Год"); s.ДатаКалендаря = d; s.Год = число(mid(s.ДатаКалендаря, 7, 4)); res = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.Получить(s); if res.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий then f = false else f = true endif; return(f); endFunction
Function Zap(t) og = дата("00010101"); pivot = og; f = Табель.Таб.Найти(t.ЭлементПлана.Родитель, "ЭлементПлана"); if f <> Неопределено then if f.Начало = og then pivot = zap(f) else pivot = f.Начало endif; else if t.ЭлементПлана.Родитель = ТекущаяТочка.Значение then pivot = Табель.Начало endif; endif; if pivot <> og then t.Начало = Shigan(t.ЭлементПлана, pivot); t.Окончание = pivot endif; return(t.Начало) endFunction
Function Shigan(ep, pivot) k = Getz(ep.НоменклатураСсылка.ТехнологическаяКарта.Маршрут, ep.КоличествоВходящего); n = k / ТГ.Часы; f = true; t = 0; d = НачалоДня(pivot); while f do if (not ТГ.Выходные) or (not Celebration(d)) then t = t + 1 endif; if t > n then f = false else d = d — 86400 endif; enddo; return(d); endFunction 
     ginard

Прошу прощения, есессно версия 8-я, забыл указать.

   smaharbA

понимаю когда скунки кодит по англицки, дак у того и все переменные англицкие…

   Михей

(2) ага

   ginard

Я все понимаю, оформление кода, стиль, все дела, но ошибка проблема явно кроется в другом. =)

   ЗлобнийМальчик

это новая мода такая  — мешать английские и русские слова???
я, наверное, чего то упустил в этой жизни(((

   hhhh

(1) переведи на русский язык, здесь же не полиглоты.

   Triumph

мда, действительно коряво написано )

   hhhh (4) SBDL — это в запросе.

запрос у тебя здесь один:

res = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.Получить(s); проверь переменную s.    MMF

мне периодически такую же блевотину приходится править в древней АБТ конфе. Повбывав бы

   ginard

Я, в свою очередь, повбывав бы всех тех, кто в принципе придумал писать код на русском языке.

Ошибка SDBL — способы решения

"Для Ъ = 1 до 10 цикл".

 
 

   MMF

(10) если бы в 1С-ке можно было бы писать одну букву лексемы латиницей, а другуй — кириллицей, обязательно появились бы мудозавры, которые бы так и делали. А кули? Защита!

   acidy ginard: +1 ;)Решил проблему?

Попробуйте новый бесплатный сервис для быстрого анализа кода типовых конфигураций 1c-api.com

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *