Ошибка SQL: Запись значения NULL в поле, не допускающее NULL
При запуске тестировани и исправления появляется сообщение:
В процессе обновления информационной базы произошла критическая ошибка по причине: Ошибка СУБД:
Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD891RREF’ по причине:
Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD891RREF’
- Описание
- Подробнее
Описание
Ошибка появляется как в файловом, так и в серверном варианте запуска программы.
В SQL
Узнаем имя проблемной таблицы
Use DB_NAME
SELECT TABLE_NAME
FROM information_schema.COLUMNS
WHERE COLUMN_NAME LIKE ‘%_FLD891RREF%’
В моем случае это _Reference61
Узнаем имя объекта в 1с. Просто останавливаемся с отладчике, в табло выводим результат ПолучитьСтруктуруХраненияБазыДанных(). Через Ctrl+F находим объект в 1с. В моем случае это был справочник КБК. Так и предполагалось, т.к. когда тестирование прервалось, в окне сообщений последняя запись была об этом типе объекта.
Ищем проблемный элемент
Select * from _Reference61
Where _FLD891RREF IS NULL
В моем случае сплошные NULL — надо искать объект с пустыми полями. Справочник небольшой и я его увидел сразу.
И теперь главный вопрос — что делать. В данном случае на справочник ссылались два помеченных на удаление документа, так что решение было очевидно.
