Востановление базы после неудачной конвертации Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD4391_TYPE’
Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD4391_TYPE’
- Описание
- Подробнее
Описание
Огромное спасибо awa //sale.itcity.ru/profile/13819/
Случилось так, что кто то решил обновить платформу 8.0-8.1, а копию базы не сделал, при конвертации базы вылетела ошибка «Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD4391_TYPE’». На этом конвертация и дальнейшая работа с базой была закончена. Возвращение на старую платформу ничего не дало, работа с базой завершалась сообщением «Конфигурация базы не соответствует …» . Кто будет конвертировать базу, позаботьтесь о резервной копии.
И так chdbfl.exeуспешно завершает свою работу и говорит, что ошибок не обнаружено, но каждая попытка конвертации завершается той же ошибкой, на регистре накопления «продажи».
Огромное спасибо awa, он подарил нам программку которая позволяет заглянуть в файл базы 1с.
Запускаем, открываем нашу базу и ищем поле «FLD4391_TYPE», цифры 4391 говорят нам о приблизительном номере таблицы, в котором зарылась наша ошибка
Находим таблицу и видим в ней первую запись с нулевыми значениями.
Теперь нам нужно исправить эту строку, я выбрал способ замены ее значений значениями из следующей строки.
Да для этого нам нужно узнать ее смещение, идем в меню опции и выбираем пункт меню «Отображать смещения в файле записей таблицы»
Переписываем адрес нашей строки 1D98D5AA, переходим на закладку описание и запоминаем длину записи, в моем случае она равна 163 байта
Далее мне понадобился Hex редактор для правки файла, я выбрал HexEditorNeo. Нашли нашу заспись по смещению 1D98D5AA
Далее все просто отсчитали 162 байта, скопировали следующие 162 байта в буфер и заменили ими нашу пустую строку.
Теперь осталось зайти в Tool_1CD.exe и посмотреть на нашу запись
Ну Это не совсем она, так как включена сортировка по индексу, но пустая запись исчезла.
… Еще пару подобных исправленных ошибок и конвертация завершилась успешно!!!