Ошибка sdbl вложенный результат в запросе вложенном в in

Найти разницу между ТЗ и справочником.

Я
   Kongo2019

06.02.20 — 15:48

Доброго.

Найти разницу между ТЗ и справочником.

Есть ТЗ, в ней два поля,

есть справочник, в нем два аналогичных по типу реквизита.

Необходимо найти разницу.

То что есть в ТЗ но нет с справочнике, ТЗ здесь главная.

Никак не соображу какое условие в запросе сделать.

Сравнение по двум полям.

Может кто решал такую задачу?

   vicof

1 — 06.02.20 — 15:50

условие на не равно поставить

   Kongo2019

2 — 06.02.20 — 15:52

А фиг тама.

Работает только первый раз.

Потом выдает все на все.

   DTX 4th

3 — 06.02.20 — 15:54

А как сейчас выглядит запрос?

   Ненавижу 1С

4 — 06.02.20 — 15:54

левое соединение по равенству и условие на Ссылка ЕСТЬ NULL

   H A D G E H O G s

5 — 06.02.20 — 15:56

ВЫБРАТЬ

ТЗ.Поле1,

ТЗ.Поле2

ИЗ

ТЗ

ЛевоеСоединение

ТЗ.Поле1=Спр.Поле1 и

ТЗ.Поле2=Спр.Поле2

Где Спр.Поле1 ЕСТЬ NULL

   Garykom

6 — 06.02.20 — 15:57

(4) А вот мне больше нравится правое соединение (можно же справочник взять слева а ТЗ справа) и хочешь сказать не выйдет?

   Kongo2019

7 — 06.02.20 — 15:57

(3) ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ПОМЕСТИТЬ НоменклатураДата

ИЗ

    &НоменклатураДата КАК НоменклатураДата

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ИЗ

    Справочник.Партия КАК Партия

        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураДата КАК НоменклатураДата

        ПО (НоменклатураДата.Номенклатура <> Партия.Номенклатура)

            И (НоменклатураДата.ДатаПартии <> Партия.ДатаПартии)

   Ненавижу 1С

8 — 06.02.20 — 15:57

(6) я не против, но конструктор запроса любит левое

   Garykom

9 — 06.02.20 — 15:57

(5) Скосячил

   Garykom

10 — 06.02.20 — 15:58

(8) Пофиг на конструктор, главное чтобы sql сервер любил

   H A D G E H O G s

11 — 06.02.20 — 16:01

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ПОМЕСТИТЬ НоменклатураДата

ИЗ

    &НоменклатураДата КАК НоменклатураДата

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ИЗ

    НоменклатураДата КАК НоменклатураДата

        ЛЕВОЕ СОЕДИНЕНИЕ  Справочник.Партия КАК Партия

        ПО (НоменклатураДата.Номенклатура = Партия.Номенклатура)

            И (НоменклатураДата.ДатаПартии = Партия.ДатаПартии)

ГДЕ Партия.Номенклатура ЕСТЬ NULL

   pechkin

12 — 06.02.20 — 16:03

(10) Любителям правых соединений — отдельный котел

   Garykom

13 — 06.02.20 — 16:05

Я бы так наверно

[/1C]

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии,

    Партия.Ссылка

ИЗ

    НоменклатураДата КАК НоменклатураДата

        ЛЕВОЕ СОЕДИНЕНИЕ  Справочник.Партия КАК Партия

        ПО (НоменклатураДата.Номенклатура = Партия.Номенклатура)

            И (НоменклатураДата.ДатаПартии = Партия.ДатаПартии)

ГДЕ Партия.Ссылка ЕСТЬ NULL

[/1C]

Но почему хз

   Kongo2019

14 — 06.02.20 — 16:07

(11) Что-то пусто на выходе.

   Kongo2019

15 — 06.02.20 — 16:08

(13) То же не сработало.

   piter3

16 — 06.02.20 — 16:09

(15) Хм,что бы до 100 ветки не доходить,а сам глазами видел в базе нужные входные данные?

   Garykom

17 — 06.02.20 — 16:10

(15) Убери условие

ГДЕ Партия.Ссылка ЕСТЬ NULL

И глянь что выводит

   Kongo2019

18 — 06.02.20 — 16:12

(16) Выдел.

   Garykom

19 — 06.02.20 — 16:13

(18) У всех ссылка заполнена?

   Kongo2019

20 — 06.02.20 — 16:15

(17)Пусто, Пусто, Элемент из справочника.

Весь справочник.

Сейчас кеш почищу

   Garykom

21 — 06.02.20 — 16:19

(20) Ты чего то скосячил, при левом из (13) должна выводиться вся ТЗ и к каждой строчке подбираться из справочника или пусто.

Никаких пустых Номенклатура и ДатаПартии не должно быть

   Kongo2019

22 — 06.02.20 — 16:21

(21)Согласен.

Да вот блин три строчки, косяка не вижу.

   Kongo2019

23 — 06.02.20 — 16:32

(21) Нашел косяк. Соединение было неправильно.

   Kongo2019

24 — 06.02.20 — 16:37

Теперь пофигу есть условие или нет.

Теперь выводится

Номенклатура, дата, пустое полк

и так вся ТЗ.

походу с датой что-то не так.

В запросе дата так — 11.09.2015 0:00:00

а в реквизите просто — 11.09.2015

   H A D G E H O G s

25 — 06.02.20 — 16:43

(24) ну там секунды не показываются

   H A D G E H O G s

26 — 06.02.20 — 16:43

или тупо строка небось

   pechkin

27 — 06.02.20 — 16:45

(26) если выборка пуста, то получаетс все партии есть

   Kongo2019

28 — 06.02.20 — 16:45

(26)Нет. В реквизите  тип — дата, состав дата — дата. То бишь в реквизите времени нет.

может поэтому?

   Said_We

29 — 06.02.20 — 16:46

Даты приведи к началу периоду НАЧАЛОПЕРИОДА(ДатаПартии , ДЕНЬ)

   Said_We

30 — 06.02.20 — 16:46

Обе даты

   Kongo2019

31 — 06.02.20 — 16:46

(27) Выборка вот сейчас тупо выводить мое ТЗ. и пустое поле Ссылка.

   Said_We

32 — 06.02.20 — 16:50

(31) Так такое условие и поставил

ГДЕ Партия.Ссылка ЕСТЬ NULL

   Kongo2019

33 — 07.02.20 — 09:12

(32) Ну так какое порекомендовали такое и вставил.

   Kongo2019

34 — 07.02.20 — 09:13

(29) Ну получается. Даже с одной

Неверные параметры «НАЧАЛОПЕРИОДА»

И НАЧАЛОПЕРИОДА(<<?>>НоменклатураДата.ДатаПартии, День) = Партия.ДатаПартии

   catena

35 — 07.02.20 — 09:23

(34)Не дата в таблице, видимо

   Kongo2019

36 — 07.02.20 — 09:31

(35) Ну да, это я делал в консоли, пакет инструменты разработчика.

Загнал в код, ошибки нет.

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

   crasler

37 — 07.02.20 — 09:31

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ПОМЕСТИТЬ НоменклатураДата

ИЗ

    &НоменклатураДата КАК НоменклатураДата

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ИЗ

    НоменклатураДата КАК НоменклатураДата

ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)

   В (ВЫБРАТЬ Номенклатура, ДатаПартии ИЗ Справочник.Партия)

   Kongo2019

38 — 07.02.20 — 09:33

Вот писание мой ТЗ, может тут косяк?

тзНоменклатураДата = Новый ТаблицаЗначений;

тзНоменклатураДата.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

тзНоменклатураДата.Колонки.Добавить(«ДатаПартии», Новый ОписаниеТипов(«Дата»));

   Kongo2019

39 — 07.02.20 — 09:40

(37) Это ты что-то жесткое предложил.

Получаю окошко.

Ошибка SDBL:

Вложенный результат в запросе, вложенном в IN

И две кнопки

Завершить работу, Перезапустить.

   crasler

40 — 07.02.20 — 09:47

(39) А так

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ПОМЕСТИТЬ НоменклатураДата

ИЗ

    &НоменклатураДата КАК НоменклатураДата

;

ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ПОМЕСТИТЬ Партия ИЗ Справочник.Партия КАК А

;

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ИЗ

    НоменклатураДата КАК НоменклатураДата

ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)

   В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ Партия КАК А)

   Kongo2019

41 — 07.02.20 — 09:50

(40) Таблица не найдена «Партия»

В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ <<?>>Партия КАК А)

   crasler

42 — 07.02.20 — 09:57

(41) А так, менеджер временных таблиц установлен?

(39) А так

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ПОМЕСТИТЬ НоменклатураДата

ИЗ

    &НоменклатураДата КАК НоменклатураДата

;

ВЫБРАТЬ А.Номенклатура, А.ДатаПартии

ПОМЕСТИТЬ Партии

ИЗ

    Справочник.Партия КАК А

;

ВЫБРАТЬ

    НоменклатураДата.Номенклатура,

    НоменклатураДата.ДатаПартии

ИЗ

    НоменклатураДата КАК НоменклатураДата

ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)

   В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ Партии КАК А)

   Said_We

43 — 07.02.20 — 10:01

(34) Тебе написали в (35) что не дата у тебя там. Посмотри что. Какой тип?

   Kongo2019

44 — 07.02.20 — 10:04

(43) Дата, проверил.

в (38) описание моей ТЗ.

   catena

45 — 07.02.20 — 10:06

(36)Давай итоговый запрос на данный момент и еще раз внятно, чего хочешь.

   Said_We

46 — 07.02.20 — 10:07

(44) Картинку покажи, где видно что дата.

   1Сергей

47 — 07.02.20 — 10:09

(44) а в справочнике?

   Kongo2019

48 — 07.02.20 — 10:17

Блин, какая-то магия.

Текущий запрос

«ВЫБРАТЬ

                   |    НоменклатураДата.Номенклатура,

                   |    НоменклатураДата.ДатаПартии

                   |ПОМЕСТИТЬ НоменклатураДата

                   |ИЗ

                   |    &НоменклатураДата КАК НоменклатураДата

                   |;

                   |

                   |////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ

                   |    НоменклатураДата.Номенклатура КАК Номенклатура,

                   |    НоменклатураДата.ДатаПартии КАК ДатаПартии,

                   |    Партия.Ссылка

                   |ИЗ

                   |    НоменклатураДата КАК НоменклатураДата

                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партия КАК Партия

                   |        ПО НоменклатураДата.Номенклатура = Партия.Номенклатура

                   |            И (НАЧАЛОПЕРИОДА(НоменклатураДата.ДатаПартии, ДЕНЬ) = НАЧАЛОПЕРИОДА(Партия.ДатаПартии, ДЕНЬ))

                   |ГДЕ

                   |    Партия.Ссылка ЕСТЬ NULL»;

Добавил только

Партия.Ссылка и все заработало.

Почему так?

   Kongo2019

49 — 07.02.20 — 10:18

(47) В реквизите  тип — дата, состав дата — дата. То бишь в реквизите времени нет

   Said_We

50 — 07.02.20 — 10:32

(49) Дата со временем и дата без времени, это в общем случае две разные даты.

   Kongo2019

51 — 07.02.20 — 10:36

(50) Логично, но блин начал запрос корено работать не тогда когда я дата привел к одному.

А добавил поле.

Партия.Ссылка

   Said_We

52 — 07.02.20 — 10:42

(52) А если сейчас убрать, то перестанет работать?

   Kongo2019

53 — 07.02.20 — 10:50

(52) Ага, выводит всю мою ТЗ.

   catena

54 — 07.02.20 — 10:55

(53)Не верю. Скрин покажи

   Kongo2019

55 — 07.02.20 — 11:00

(54) Сам в шоке. Чего скрин показать?

   Kongo2019

56 — 07.02.20 — 11:01

(13) Мне вот тут тоже так предлагали делать.

   Said_We

57 — 07.02.20 — 11:03

(55) В СКД делаешь или в консоле обычной?

   Kongo2019

58 — 07.02.20 — 11:06

(57)В консоли давал ошибку см на (34). Поэтому я сделал обработку, вынес туда этот кусок, и выводил результат через Сообщить.

   Said_We

59 — 07.02.20 — 11:09

Ошибка могла быть из-за ТЗ. Как её в консоль запихивал?

   Kongo2019

60 — 07.02.20 — 11:13

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

Я понял, что она там как текст грузилась. Поэтому и ушёл код в обработке отлаживать.

   Said_We

61 — 07.02.20 — 11:24

(60) Если как текст, то поэтому и дата это совсем не дата. Поэтому и не отработало НАЧАЛОПЕРИОДА().

Для теста можно было несколько строк загнать руками в консоле в ВТ «НоменклатураДата»:

ВЫБРАТЬ &Номенклатура1 как Номенклатура, ДатаВремя(2020,2,7) КАК ДатаПартии Поместить НоменклатураДата

Объединить все &Номенклатура2, ДатаВремя(2020,1,4)

Объединить все &Номенклатура3, ДатаВремя(2019,12,17);

  

Kongo2019

62 — 07.02.20 — 11:49

(61) Об этом я не подумал. Спасибо.

Содержание:

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.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Исправление ошибки SDBL в 1С 8.3


Современные версии 1С имеют многоуровневые код, который порой становится причиной разного рода ошибок. Они доставляют неудобства не только обычным пользователям конфигураций, но и сотрудникам служб администрирования. Большинство сбоев можно устранить без особых проблем, но встречаются и такие, что требуют от администраторов консолидации всех знаний и умений. Рассмотрим одну из самых «популярных» ошибок, которую в  принято обозначать как «Ошибка SDBL».

Закажите звонок на сайте, чтобы получить бесплатный анализ вашей базы данных на наличие ошибок. 



Как она проявляется?


Как правило, подобный сбой происходит в процессе обновления конфигурации, а также тогда. когда мы пытаемся сохранить изменения, либо при обмене данных. Обычно об «Ошибке SDBL» сигнализируют такие сообщения:

  1. Ошибка при полнотекстовом индексировании;

  2. Недопустимый тип вставки значения;

  3. Табличные поля не принимают значение NULL;

  4. Происходит пропуск точки с запятой;

  5. Вышли за пределы размерности;

  6. Поле определено неоднозначно.

SDBL Выход за пределы размерности результата.JPG




Это лишь небольшой перечень сообщений, которые отображаются при возникновении рассматриваемой проблемы.


Как исправить ошибку SDBL в программах 1С?


Перед любыми действиями обязательно сделайте резервную копию базы данных.

Существует алгоритм простых действий, позволяющий устранить сбой без особых усилий:

1. Провести очистку кэша на рабочем месте пользователя и на сервере, где возник сбой. Для этого следует выйти из программы, выбрать и удалить папки, в названии которых есть примерно такой набор символов: «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» (папка «Application Data»).

2. Перезагрузить сервер, где установлены приложения 1С. Как вариант — включить и выключить все связанные сервисы SQL и его агента. Процесс проходит так: зайти на сервер, найти службу «Агент сервера 1С» и остановить ее через контекстное меню. Подобное проделать со службами «SQL Server» и «Агент SQL Сервера» на сервере SQL. После чего активировать все в обратном порядке.

3. В конфигураторе внедрено «Тестирование и исправление ИБ». Суть такова: выбрать поврежденную информационную базу, зайти в «Администрирование», далее «Тестирование и исправление…» и активировать процесс.

4. Еще один способ: выгрузить базу в файл формата DT, затем загрузить его в ту же базу. Т.е. в режиме конфигуратора открыть меню «Администрирование». Активировать функцию «Выгрузить информационную базу…» и «Загрузить информационную базу…».

5. Если есть «свежая» резервная копия, то загрузить ее. Кстати, резервные копии рекомендуем делать регулярно, а в случае, когда планируются работы по изменению базы, следует сформировать их еще раз. Есть два основных способа резервирования: через SQL MS или конфигуратор с помощью выгрузки файла в формате dt.

6. Еще один достаточно действенный способ — обновить платформу через сайт ИТС до самой актуальной версии на сегодняшний день. Для этого выгрузить с портала ИТС «свежую» платформу и установить ее на сервер и на клиентские рабочие места.



Возможно, возникнет ситуация, когда все выше названные варианты устранения проблемы не помогут. В таком случае есть еще один надежный способ. В клиент-серверной базе 1С необходимо очистить таблицы _ConfigChngR_ExtProps и _ConfigChngR.


Но, все же советуем пригласить для этого сложного процесса специалиста, который имеет опыт работы с MSSQL. 

Отзывы о компании

  • Сивелькина С. В.

    ПАО «НИКО-БАНК» выражает свою благодарность за оперативную и грамотную работу.
    В условиях постоянно меняющегося законодательства Банк заинтересован иметь полную и актуальную номативную базу. Это обеспечивается использованием Банком справочно-нормативной системы «Гарант». 

    Безусловным плюсом в работе компании «МастерСофт» является быстрое реагирование сотрудников при предоставлении документов по запросу Банка, принятых до обновления справочно-правовой системы.

  • Мордвинцев С. П.

    Коллектив компании «АЭРОПОРТ ОРЕНБУРГ» выражает благодарность за взаимовыгодное сотрудничество с МастерСофт-ИТ. Оперативная поставка антивирусных программ Dr. Web обеспечила надежную защиту нашей компьтерной сети.

    Особая благодарность сотрудникам Департамента продаж СЦ ИТ за профессиональный подход в решении всех возникающих задач.

  • Ряховская Н. А.

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

  • Кетерер Т. М.

    Главный бухгалтер муниципального бюджетного учреждения дополнительного образования «Дворец творчества детей и молодёжи» Кетерер Татьяна Михайловна выражает благодарность специалистам МастерСофт:
    «Я хотела бы объявить благодарность вашим сотрудникам. Работает с нами по программе «1С: Бухгалтерия бюджетного учреждения 8» непосредственно Шевлягина Юлия.

    Так же огромная благодарность за отзывчивость, терпение и квалифицированную, своевременную помощь Набокиной Олесе и Ерёменко Татьяне (они нас сопровождают по программе «Зарплата и Кадры»).


    Им очень с нами тяжело, но они терпеливо продолжают сотрудничать. С вами очень надёжно. Конечно же наши ошибки есть и без вас мы бы вообще о них не знали и в суде, наверное, судились бы. А сейчас мы решаем вопросы…».

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

многоуровневый код сайта

Общее представление

Взаимодействуя с учетной программой, пользователи выполняют различные операции, каждая из которых, так или иначе, формирует запрос к базе данных. Создание нового документа, интеграция библиотеки, плановое обновление — во время любого из процессов есть вероятность получить в ответ уведомление от системы, свидетельствующее о том, что одна из логических цепочек была нарушена. Распространенный вариант — когда на экране появляется сообщение об ошибке SDBL 1С ожидается выражение (pos = 6) (а также 15, 57, 198, 250, 469, или любой другой номерной идентификатор).

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

структура базы данных

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

Причины возникновения

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

Если говорить об уже упомянутой ранее ошибке SDBL 1С «ожидается выражение (pos = 144)» (или 48, 153, 13 — не столь принципиально), то в этом случае ключевым обстоятельством становится повреждение базы данных, обусловленное нарушением системных логических циклов. К числу распространенных причин возникновения, отмечаемых специалистами, относят не только применение устаревшей конфигурации или платформы, но также и проблемы, связанные с серверным кешем. Кроме того, всегда существует вероятность случайного запуска с некорректной учетной записи, не обладающей достаточным набором прав.

ошибка sdbl pos 6

Чаще всего системные ошибки происходят в процессе очередного обновления БД, а также при обращении к ней — через запрос на добавление документов, во время тестовой проверки логической целостности, или же в иных ситуациях. Критической проблемой при установке расширений может стать и «некорректное использование LOCAL/GLOBAL в SET GENERATION», не позволяющее полноценно сохранить базу даже после выборочного удаления. Стоит отметить, что стандартное решение в виде перезагрузки программы обычно не помогает, поэтому для восстановления работоспособности придется воспользоваться альтернативными методиками.

Какие сообщения возникают

архивация бд

Уведомление о технических неполадках отражает специфику возникшей проблемы, и может появиться как во время обновления конфигурации, так и в процессе работы с обменом данных. Как правило, текст в информационном окне раскрывает специфику возникшей ошибки SDBL 1С: «не является именем поля», «ожидается идентификатор» или «выход за пределы размерности результата 1C», и т. д.

Встречаются и вспомогательные приписки, причем их количество зависит от конкретной неточности, допущенной в ходе сборки и настройки обновленного расширения:

  • предпринята попытка ввести неприемлемый тип значения «NULL»;

  • пропущена точка с запятой;

  • нарушение индексирования с полным текстом;

  • неоднозначное определение некоторого поля;

  • отсутствует выражение (pos =) — с различными числовыми идентификаторами в скобках.

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

уведомление о технических неполадках

Готовые решения для всех направлений

Склады

Ускорьте работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.

Узнать больше

Магазины

Мобильность, точность и скорость пересчёта товара в торговом зале и на складе, позволят вам не потерять дни продаж во время проведения инвентаризации и при приёмке товара.

Узнать больше

Маркировка

Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя

Узнать больше

E-commerce

Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.

Узнать больше

Учреждения

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

Узнать больше

Производство

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

Узнать больше

RFID

Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.

Узнать больше

ЕГАИС

Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.

Узнать больше

Сертификация

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

Узнать больше

Инвентаризация

Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.

Узнать больше

Показать все решения по автоматизации

Устранение ошибки SDBL 1С

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

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

проблемы с базой данных

Практически любая ошибка SDBL 1С — «недопустимый символ (pos = 40)», «пропущена точка с запятой», или «ожидается имя таблицы 21», может быть устранена путем выполнения несложного набора действий. Перечень доступных вариантов выглядит следующим образом:

  1. Удаление кэшированных данных — как на пользовательском рабочем месте, так и на основном сервере, где произошел технический сбой. Для реализации процедуры очистки кэша достаточно закрыть учетную программу, открыть «Проводник», найти, выбрать и удалить набор папок из раздела «Application Data». Отличить нужные элементы проще всего по названию, которое выглядит как хаотичный набор символов — например, «ac5c8bm4-y65k-4s23-a9g8-2dcttp0b15da».

  2. Использование функционала Конфигуратора, позволяющего провести тестирование и исправление информационной базы. В этом случае необходимо найти поврежденную ИБ, выбрать ее и перейти в раздел «Администрирование», после чего активировать встроенную функцию для теста и корректировки ошибок.

  3. Перезагрузка сервера, на котором расположены программные приложения системы 1С. Самый простой вариант — включение и выключение всех взаимосвязанных SQL-сервисов, включая агент. Для выполнения задачи нужно зайти на нужный серверный источник, выделить агентскую службу, вызвать контекстное меню и остановить процесс. Аналогичные действия повторяем на SQL со служебными процедурами Server и Agent. Повторная активация осуществляется в обратном порядке.

  4. Выгрузка БД в отдельный DT-файл с последующей повторной «заливкой». По сути, метод напоминает стандартную перезагрузку системы — структура записывается в файловом формате, что позволяет упорядочить проблемные разделы. Для выполнения процедуры достаточно открыть меню управления учетной программой, найти в категории «Администрирование» функцию «Выгрузить информационную базу», и после ее завершения выбрать опцию «Загрузить ИБ», используя сформированный файл.

  5. Откат к последней резервной копии. Один из самых простых и доступных вариантов — конечно, в том случае, если архивирование данных проводится на регулярной основе, а не только перед закрытием периодов. Вообще, решение записывать текущее состояние перед каждым внесением изменений может избавить от большинства проблем, связанных с техническими сбоями. Даже если вы столкнетесь с уведомлением о том, что «ожидается имя поля», или получите ошибку «таблица 1С inforg не создана в новом поколении», источник которой не всегда понятен даже опытным пользователям — загрузка последней копии просто вернет систему к исходному состоянию. Для резервирования допускается использование как SQL MS, так и Конфигуратора учетной программы — через последовательную выгрузку файлов в уже упомянутом DT формате.

  6. Обновление платформы через сайт информационно-технологического сопровождения разработчиков, доступный всем лицензированным пользователям продукта. Функционал портала ИТС позволяет установить последнюю редакцию, актуальную на момент обращения, инсталляция которой производится как на основной сервер, так и на рабочие места клиента.

Как правило, один из перечисленных методов позволяет добиться желаемого результата, устраняя проблему в работе учетной системы. В ситуациях, когда применить готовое решение так и не удалось, есть резервный вариант, отличающийся высокой вероятностью успешного исхода. Очистка в менеджере SQL 1С таблиц ConfigChngR и ExtProps, что за последние годы стало уже привычным способом восстановления для большинства специалистов, осуществляется стандартной командой Delete.

На что еще обратить внимание при устранении ошибок SDBL, и как реализовать рассмотренные методы? Сейчас разберемся.

Права доступа

Пожалуй, самая простая причина неполадок, которая тем не менее все еще встречаться на практике — попытка запустить систему через учетную запись, не обладающую соответствующими полномочиями. Убедитесь, что профиль для запуска выбран корректно, чтобы не провоцировать сбои собственными действиями.

Перезагрузка серверов 1С и SQL

Это один из простейших методов восстановления, единственным обязательным условием, для применения которого является выход всех пользователей из базы. Убедившись, что доступ открыт, зайдите на сервер и последовательно выключите агент программы Server и SQL-agent, после чего запустите их в обратном порядке.

Удаление кэшированных данных

ошибка sdbl 1c

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

Перечень факторов, обуславливающих нарушение логических циклов, весьма обширен, и охватывает не только динамические обновления системной структуры, но и технические сбои программного или аппаратного характера. В некоторых случаях для устранения ошибки SDBL 1С «ожидается имя поля/таблицы (pos = 21, 45, 48…)» достаточно почистить кэш, сохраненный на сервере, либо на рабочем месте пользователя.

Стандартный путь к месту хранения кэшированных данных выглядит следующим образом:

  • «%userprofile%AppDataRoaming1C1Cv8» и «%userprofile%AppDataLocal1C1Cv8» — для операционных систем начиная с Windows 7.

  • «%userprofile%Local SettingsApplication Data1C1Cv8» и «%userprofile%Application Data1C1Cv8» — для тех, кто все еще продолжает работать на ХР.

Откройте каталог, расположенный по указанному адресу, выделите и удалите все хранящиеся в нем папки, имя которых представляет собой сгенерированный автоматически набор цифр и букв (вроде «abg7n8ty4-brt9r893-am…»). Стоит отметить, что во время чистки кэша нужно быть особенно внимательными, поскольку в директории также могут находиться поисковый индекс и журналы регистрации 1С, которые не требуют удаления.

Загрузка DT-файла

устранение проблем базы 1с

Этот метод может показаться немного странным, поскольку фактически не предполагает внесения каких-либо корректировок в основную структуру данных. Однако в действительности выгрузка БД в отдельный файл, сохраняемый в формате DT, с последующим обращением к ней же, нередко позволяет восстановить нормальную работу программы. Алгоритм достаточно прост — в режиме Конфигуратора нужно выбрать раздел «Администрирование», использовать опцию «Выгрузить ИБ» (указав каталог для сохранения), после чего повторно залить сформированную базу обратно в систему.

Тестирование и исправление

Еще одна удобная функция, доступная в режиме корректировки конфигурации — встроенный инструментарий, предназначенный для теста и внесения коррективов. В отдельных ситуациях может возникнуть проблема с запуском Конфигуратора — вместо этого можно воспользоваться специальной утилитой chdbfl.exe, представляющей собой упрощенный программный аналог с идентичным функционалом. Приложение находится в каталоге «bin», поэтому найти его не составляет особого труда — как через стандартный путь «C:Program Files (x86)1cv88.3bin», так и через опцию поиска, предлагаемую операционной системой.

сбой при обновлении конфигурации

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

Обновление платформы

Еще одно простое решение, предусматривающее использование сайта технической поддержки разработчиков 1С. Скачайте дистрибутив актуального релиза, распакуйте архив и активируйте инсталлятор setup.exe — система обновится автоматически.

Очистка таблиц базы данных

Если ни один из вышеперечисленных способов не дал желаемого результата — остается вариант с удалением табличных значений БД, вызывающих появление ошибки, расположенных в каталогах ConfigChngR и ExtProps. Для этого применяется скрипт менеджера SQL, с указанием информационного раздела и командой delete from. В этом случае лучше всего обратиться к профильному специалисту, поскольку некорректное восстановление может привести к более серьезным последствиям.

Заключение

Автоматизация учетных процессов — важный аспект, позволяющий оптимизировать работу компании. Ошибки SDBL 1С встречаются достаточно часто, поэтому стоит заранее позаботиться об оперативном устранении возможных проблем. Мобильные решения, предлагаемые компанией «Клеверенс», гарантируют квалифицированную поддержку, а также помогут решить задачи, связанные с учетом данных на предприятии.

Количество показов: 9872

55681

Анна Викулина

Руководитель Центра
сопровождения 1С

09 января 2019

Помощь 1С

Актуальность проверена: 04.06.2023

Получить консультацию
Бесплатно

Обслуживание 1С

Обслуживание 1С

Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ

Устранение блокировок в 1С

Устранение блокировок в 1С

Исключение «простоев» сотрудников. Исключение «плохих» блокировок»

Различные конфигурации 1С из-за сложности кода, бывает, огорчают администраторов и пользователей ошибками. Многие из них легко устраняются, но существуют и те, что способны испортить достаточно «крови» ИТ-службам. Одна из таких ошибок известна в кругах специалистов по 1С под именем «Ошибка SDBL».

Исправление ошибки SDBL в 1С

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

  • Ошибка при полнотекстовом индексировании;
  • Попытка вставки значения недопустимого типа;
  • Поле таблицы не может принимать значение NULL;
  • Ожидается выражение (pos = );
  • Пропущена точка с запятой;
  • Выход за пределы размерности;
  • Поле определено неоднозначно.
Рис.1 Исправление ошибки SDBL в 1С
Рис.1 Исправление ошибки SDBL в 1С

Бесплатная
консультация
эксперта

Анна Викулина

Руководитель Центра
сопровождения 1С

Спасибо за Ваше обращение!

Специалист 1С свяжется с вами в течение 15 минут.

Также эта ошибка может сопровождаться и другими информационными сообщениями. Чтобы решить эту проблему, администраторы 1С для начала применяют достаточно простые решения:

  1. Очистка КЭШа на сервере и компьютере пользователя, где появилась ошибка. Необходимо выйти из 1С, найти все папки с названиями типа «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» в папке «Application Data» и удалить их;
  2. Перезагрузка сервера приложений 1С. Также может помочь включение и выключение всех связанных сервисов – SQL и его агента. Заходим на сервер, находим службу «Агент сервера 1С» и останавливаем ее с помощью контекстного меню. Аналогично поступаем со службами «SQL Server» и «Агент SQL Сервера» на сервере SQL. Затем включаем в обратной последовательности;
  3. Механизм «Тестирование и исправление ИБ», доступный в конфигураторе. В нужной информационной базе заходим в «Администрирование» — «Тестирование и исправление…» и запускаем процесс;
  4. Выгрузка базы данных в файл формата DT и загрузка его обратно в ту же информационную базу. Также выполняется в режиме конфигуратора через меню «Администрирование». Используются команды «Выгрузить информационную базу…» и «Загрузить информационную базу…»;
  5. Загрузка из резервной копии, если она сделана недавно. Резервные копии необходимо делать регулярно и дополнительно перед каждым серьезным действием с информационной базой. Резервные копии можно делать с помощью SQL MS или конфигуратора через выгрузку файла формата dt;
  6. Обновление платформы до более новой версии с официального портала ИТС. Необходимо скачать с сайта ИТС последний релиз платформы и установить на сервере и клиентских компьютерах.

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

Другие статьи по теме

Где скачать новый классификатор ОКОФ и как его загрузить в 1С 8.3 и 8.2

Где скачать новый классификатор ОКОФ и как его загрузить в 1С 8.3 и 8.2

Понятие Общероссийского классификатора основных фондов знакомо всем специалистам, отвечающим по работе за учет объектов предприятия. ОКОФ разрабатывался для системной работы с фондами или, что в этом …

Почему 1С долго обновляется

Почему 1С долго обновляется

Пользователям и администраторам знакома такая проблема: 1С от раза к разу обновляется все медленнее, до того, что это становится просто неприемлемо

Где скачать ФИАС и как его загрузить в 1С

Где скачать ФИАС и как его загрузить в 1С

Федеральная информационная адресная система (ФИАС) – федеральная государственная информационная система, обеспечивающая формирование, ведение и использование государственного адресного реестра

Понравилась статья? Поделить с друзьями:
  • Ошибка sdbl в таблице нет поля
  • Ошибка sdbl в таблице reference нет вложенной таблицы
  • Ошибка sdbl в таблице document
  • Ошибка sdbl identity не допустимо в union
  • Ошибка save os при установке windows 10