Ошибка 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  — надо искать объект с пустыми полями. Справочник небольшой и я его увидел сразу.

И теперь главный вопрос — что делать. В данном случае на справочник ссылались два помеченных на удаление документа, так что решение было очевидно.

10 Comments

  1. GreenDragon

    Описано решение проблемы в серверном варианте. Что делать пользователям в файловом варианте? Крайне «куцая» публикация

    Reply
  2. mie24

    (1) GreenDragon, запустите Тестирование и исправление из Конфигуратора, установив флаги Проверка ссылочной и логической целостности.

    Для Серверного варианта тоже должно помочь.

    Reply
  3. NoRazum

    Столкнулся с такой же проблемой в файловом варианте. 1c_tool с возможностью редактирования. Еще бубем и все заработало.

    Reply
  4. ToJIuK

    Подскажите как при помощи 1c_tool исправить данную ошибку ??? ТИС не помогает именно при тестировании и выходит данная ошибка.

    Также параллельно с ней появляется «ошибка формата потока » подскажите как быть куда копать ?

    Reply
  5. psa247

    Обнаружена такая же проблема в файловой варианте БП 2.0. Тестирование и исправление не помогает.

    Reply
  6. psa247

    Искал проблемные следующим образом: в листере тотал коммандера открыл базу, поиском задал имя поля (без нижнего подчеркивания). когда спозиционировался поиск на данное поле листая вверх определил ближайшее объявление объекта, в моем случае это оказался Reference17 (справочник банковские счета) и Reference60. Ну а дальше, как вариант — через консоль запросов выбрать из этих справочников все значения содержащие NULL и по ситуации действовать

    Reply
  7. alexey_kurdyukov

    А у меня имя поле _NUMBER, но в шапках документа я не нашел пустого номера…

    Reply
  8. 1cmax

    (6) Ага спасибо, помогло! Только использовал Winhex. а потом уже удалил запись через 1c_tool

    Reply
  9. TODD22

    Сегодня на одной базе была такая же ошибка. Помогло ТиИ.

    Reply
  10. xioxao

    Добрый день, сегодня обнаружил такую же проблему в БП 3.0 при обновлении вылезла гадость такая, помогло ТИИ

    Reply

Leave a Comment

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