Ошибка при проверке логической целостности
Есть файловая база БП 2.0 (2.0.65.48)
При проверке логической целостности платформой 8.3.8.2197 выдает две ошибки:
Ошибки не исправляются и при повторной проверке возникают вновь
Подскажите, кто знает, как можно их исправить. Других проблем с базой нет.
При проверке логической целостности платформой 8.3.8.2197 выдает две ошибки:
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Ошибки не исправляются и при повторной проверке возникают вновь
Подскажите, кто знает, как можно их исправить. Других проблем с базой нет.
По теме из базы знаний
- Логическая целостность журналов документов
- Часто встречающиеся ошибки 1С и общие способы их решения
- В процессе обновления информационной базы произошла критическая ошибка по причине: Ошибка SDBL: Тип поля Code несовместим с типом литерала STRING
- Ошибка формата потока расширения
- Восстановление базы или решение проблемы Ошибка СУБД: Microsoft SQL Server
Найденные решения
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
Конфигурация в порядке, поэтому таблицы config и configsave менять, наверное, нет необходимости.
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
(8)
Не помогло
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше
Может кто подскажет каким запросом и средствами MS SQL можно это сделать?
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Не помогло
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше
Может кто подскажет каким запросом и средствами MS SQL можно это сделать?
(8)
Не помогло
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит
табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше
Может кто подскажет каким запросом и средствами MS SQL можно это сделать?
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.
Не помогло
Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.
исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше
Может кто подскажет каким запросом и средствами MS SQL можно это сделать?
Ну если обращаться в поддержку франчи может получиться что пинать Вас будут пару недель либо по отделам в поисках того кто исправит либо так же будут писать разработчикам, а сроки реакции там оставляют желать лучшего.
Таблица Files содержит служебную информацию, например, о работе с хранилищем конфигурации.
Так что проще всего просто ее очистить средствами SQL и не гадать исправились там все ошибки или нет.
А ошибки в конфигурации несложно поправить с помощью cf файла такой же версии.
Таблица Files содержит служебную информацию, например, о работе с хранилищем конфигурации.
Так что проще всего просто ее очистить средствами SQL и не гадать исправились там все ошибки или нет.
А ошибки в конфигурации несложно поправить с помощью cf файла такой же версии.
Если база типовая - тогда. На сервере 1с разверните чистую базу такой же версии и средствами sql подмените таблицу config. Можно еще и configsave - в этих таблицах хранится конфигурация.
На копии само собой делайте)
Я сейчас не успеваю что то более подробное накидать, убегаю. Но в сети есть информация по восстановлению баз подменой этих таблиц. На инфостарте даже было.
На копии само собой делайте)
Я сейчас не успеваю что то более подробное накидать, убегаю. Но в сети есть информация по восстановлению баз подменой этих таблиц. На инфостарте даже было.
Конфигурация в порядке, поэтому таблицы config и configsave менять, наверное, нет необходимости.
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4
Ну по этой ошибке я так понял что ошибка в табличной части документа. Тут не имени ни идентификатора объекта нет - потому я и думаю что это ошибка в конфигурации. Ну либо получается во всех документах? Тогда в менеджере sql попробуйте открыть таблицу посмотрте что там вообще записано.
Столкнулся с сабжевой проблемой (0).
(16)
автор, зря не поделился формулой вычисления лишних записей =СЧЁТЕСЛИ($A$2:$A$10000;B2), мне бы сэкономило немного времени.
Далее, код удаления "лишних" записей в скрипте SQL:
Где 0x8CA0D017C29AAC7511E6E6BB9148A258 и 0x8CA0D017C29AAC7511E6E6BB9148A259 - похоже две битые ссылки из 13 строк табличной части.
Но, после манипуляций в конфигуратор так и не смог зайти (в файловом режиме заходит, но в нём нельзя провести манипуляции со строками). А из поправленной SQL-ной не могу выгрузить dt, так как не заходит в конфигуратор, выдавая сообщение
"Ошибка программного лицензирования. Неверный формат файла программного лицензирования
File=src\CryptoGeneralHelpers.cpp(207)."
Есть у кого идеи?
(16)
Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу.
автор, зря не поделился формулой вычисления лишних записей =СЧЁТЕСЛИ($A$2:$A$10000;B2), мне бы сэкономило немного времени.
Далее, код удаления "лишних" записей в скрипте SQL:
SEL ECT
[_Document196_IDRRef]
FR OM [Test].[dbo].[_Document196_VT4169]
WHERE _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A258)
or _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A259)
Где 0x8CA0D017C29AAC7511E6E6BB9148A258 и 0x8CA0D017C29AAC7511E6E6BB9148A259 - похоже две битые ссылки из 13 строк табличной части.
Но, после манипуляций в конфигуратор так и не смог зайти (в файловом режиме заходит, но в нём нельзя провести манипуляции со строками). А из поправленной SQL-ной не могу выгрузить dt, так как не заходит в конфигуратор, выдавая сообщение
"Ошибка программного лицензирования. Неверный формат файла программного лицензирования
File=src\CryptoGeneralHelpers.cpp(207)."
Есть у кого идеи?
(21) Точнее в коде выше выборка этих значений, само удаление такое:
USE [Test]
GO
DELETE FR OM [dbo].[_Document196_VT4169]
WH ERE _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A258)
or _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A259)
GO
Вообще, проблему битых ссылок решил в файловой базе без необходимости лезть в SQL.
Берём ирПортативный, ищем все строки ТЧ, находим битые ссылки вида <Объект не найден> (196:8ca0d017c29aac7511e6e6bb9148a258), берём обработку GUID82_w1c.epf, создаём документ, записываем, лезем в его движения - оттуда пытаемся вычислить реквизиты документа (например дату, время, склад и т.п.), вносим их в документ - записываем.
Берём ирПортативный, ищем все строки ТЧ, находим битые ссылки вида <Объект не найден> (196:8ca0d017c29aac7511e6e6bb9148a258), берём обработку GUID82_w1c.epf, создаём документ, записываем, лезем в его движения - оттуда пытаемся вычислить реквизиты документа (например дату, время, склад и т.п.), вносим их в документ - записываем.
Как уже написал Алексей Т. (CratosX) , проблема битых ссылок решается в файловой (не SQL) базе.
В похожем случае при исправлении обязательно выбираем режим "Добавлять)". Редактировать придётся эти добавленные элементы.
Если есть старый архив, возможно руками.
В похожем случае при исправлении обязательно выбираем режим "Добавлять)". Редактировать придётся эти добавленные элементы.
Если есть старый архив, возможно руками.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот