В процессе обновления информационной базы произошла критическая ошибка по причине: Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец таблицы ".dbo."; в столбце запрещены значения NULL. Ошибка в INSERT.
Описание ошибки:
Столкнулся с ошибкой при выполнении процедуры Тестирование и исправление... на этапе реструктуризации таблиц информационной базы. База клиент-серверная. 1С: Управление торговлей 10.3.31. Платформа 1С: Предприятие 8.3.9 Найденные решения: Сложно сказать, что посчастливилось, но все же ошибка преследовала меня в базе не единожды. Но по своей сути каждая последующая формулировка "В процессе обновления информационной базы произошла критическая ошибка..." отличалсь в причине и решении незначительно. С такой ошибкой столкнулся, если быть откровенным, впервые, но интернет в принятии решения устранения ошибки сильно не помог, кроме вот этого обсуждения на форуме Как удалить строки содержащие NULL в таблице где NULL недопустимо. Зацепок решения не было. Но все же решение было найдено. Читаем... ниже. Итак, начнем с первого факта возникновения ошибки при выполнении тестирования и исправления базы данных на этапе реструктуризации таблиц базы данных. Кнопка "Подробно...": Полный текст ошибки: Если взглянуть скрином ранее, то нельзя упустить из виду подсказку, оставленую программой в левом нижнем углу окна программы, в строке состояния, о том, что выполнение реструктуризации прервалось на справочнике "Банковские счета". В базе справочник имел более 3х с половиной тысяч элементов, поэтому сходу было сложно понять, в каком из них скрывается ошибка. Была написана простая обработка, которая просто должны была обойти все элементы справочника и перезаписать их. Надежда была на то, что запись проблемного элемента завершиться ошибкой. Исполняемый код обработки прост: Запрос = Новый Запрос; Предположение было оправдано. Ошибка при записи возникла. Теперь было понятно, элемент с каким кодом может быть причиной критической ошибки в процессе обновления информационной базы. Это оказался элемент справочника, у которого не был заполнен ни одни реквизит, так что мне даже не удавалось пометить такой элемент на удаление. Дальше была написана простая обработка для удаления выбранного элемента справочника без проверки ссылочной целостности. Элемент был удален. Тестирование и исправление было запущено повторно. Но уже вскоре после запуска процедуры в режиме реструктуризация таблиц базы мен ожидала идентичная ошибка, но уже связанная со справочником "Организации". Новый текст ошибки отличался лишь немногим, названием таблицы и именем столбца: По опыту предыдущей инцидента уже казалось понятным, что в справочнике у какого-то элемента не заполнены данные. Так и оказалось. Проблемный элемент справочника был найден мгновенно и в этом случае повезло больше элемент можно было пометить на удаление, был помечен и удален с помощью "Удаление помеченных объектов". Тестирование и исправление было запущено в третий раз. Но и этот раз не обошелся без "критической ошибки в процессе обновления информационной базы". Текст третьей ошибки: Но и в этот раз программа оставила подсказку, что проблема содержится в записях справочника "ТипыЦенНоменклатурыКонтрагентов". Удалить проблемные элементы справочника пришлось программно с помощью все той же, указанной выше простой обработки непосредственного удаления без проверки ссылочной целостности. И в итоге очередной запуск, уже четвертый по счету, в режиме "Реструктуризация таблиц информационной базы" в рамках тестирования и исправления завершился успешно.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу. 31-10-2018 Журавлев А.С. (Сайт azhur-c.ru) |
|
|||||||||||||
Copyright 2013-. Azhur-c.ru
ИП Журавлев Александр Сергеевич ИНН 667000271590 ОГРНИП 312667014300041 |