Имя: Пароль:
1C
 
Поле ExtID таблицы RefOpt не может принимать значение NULL
,
0 TormozIT
 
гуру
17.02.23
17:10
Есть такая беда у меня (8.3.20-23 в файловой и северной базе)
Ошибка SDBL:
Поле ExtID таблицы RefOpt не может принимать значение NULL
Возникает при вызове для любого справочника СправочникМенеджер.УстановитьОбновлениеПредопределенныхДанных()
Сама таблица RefOpt пустая. Поле ExtID очевидно платформой не заполняется, когда она в эту таблицу добавляет запись. В другой базе с похоже конфой такого поля в этой таблице нет.
Что это за поле такое?

Предполагаю, что какой то внешний идентификатор справочника или идентификатор расширения конфигурации.
Пробовал добавлять в базу расширение конфигурации. Проблема сохранилась.
Потом удалил расширение. Проблема сохранилась.
1 TormozIT
 
гуру
17.02.23
17:21
Запрос SDBL выглядит так
INSERT INTO RefOpt (MDID, PDUpdMode)
VALUES(0x4a676240814a4d4982bc4984cd7c7903, 1)

В нем очевидно не хватает 3-го имени поля (ExtID) и его значения (00000000-0000-0000-0000-000000000000)
2 rphosts
 
18.02.23
04:50
В порядке эксперимента: а если эту колонку таблицы удалить?
3 rphosts
 
18.02.23
04:51
+ (2) а ещё разрешить ему быть незаполненным
4 TormozIT
 
гуру
18.02.23
07:25
(2) Так ошибка то в модели БД (SDBL) возникает. Запрос до СУБД не доходит. Т.е. исключение вызывает 1Сный транслятор запроса модели базы данных в диалект СУБД.
5 TormozIT
 
гуру
18.02.23
07:26
Поднял в чистой базе+конфигурации режим совместимости до 8.2.22. Колонки ExtID появились в таблицах RefOpt и AccOpt.
Опустил режим совместимости на 8.3.15. Колонка ExtID исчезла в таблице RefOpt и осталась в таблице AccOpt. При этом вызов той функции по переключению настроек предопределенных для обоих типов метаданных проходит без ошибок.
6 TormozIT
 
гуру
18.02.23
07:27
Если в пустую базу+конфигурацию загрузить конфигурацию проблемной базы, то ошибка не воспроизводится. Т.е. она связана с содержимым одной из системных таблиц проблемной базы, но не только с конфигурацией.  При реструктуризации эта скверна сохраняется.
7 TormozIT
 
гуру
18.02.23
08:17
Выгрузка базы. Можно восстановить в серверную или файловую базу. При запуске откроется ИР. Открыть структуру хранения БД и там сразу будет отбор по таблицам OPT. ЧТобы вызвать ошибку можно в модуле обычного приложения раскомментировать строку.
https://drive.google.com/file/d/1A1zmunxwqKMVgMoQwe6B6oS5cQicquDX/view?usp=sharing
8 rphosts
 
18.02.23
09:08
(6) да, скверная фигня...
(7) вечером доберусь до компа - попробую поиграться.
9 TormozIT
 
гуру
18.02.23
10:18
Вычелили так.
1. Изменить режим совместимости на 8.3.20.
2. Обновить конфигурацию БД
3. Изменить режим совместимости на 8.3.16.
4. Обновить конфигурацию БД
10 TormozIT
 
гуру
18.02.23
10:20
Спасибо доктору https://t.me/OneC_Expert/71477
11 rphosts
 
18.02.23
12:45
(10) значит не судьба поковырять базу....
12 TormozIT
 
гуру
18.02.23
14:22
(11) ну 2 часа у тебя было =)
13 Franchiser
 
гуру
18.02.23
17:07
(10) а какой правильный ответ чтобы в чат попасть?
14 TormozIT
 
гуру
18.02.23
18:39
(13) Бобр
2 + 2 = 3.9999999999999999999999999999999...