Ошибка при проверке логической целостности

1. василий иванович (scorp1) 5 06.01.17 08:21 Сейчас в теме
Есть файловая база БП 2.0 (2.0.65.48)
При проверке логической целостности платформой 8.3.8.2197 выдает две ошибки:

Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4


Ошибки не исправляются и при повторной проверке возникают вновь
Подскажите, кто знает, как можно их исправить. Других проблем с базой нет.
Найденные решения
8. drim87 - (drim87) 08.01.17 23:08 Сейчас в теме
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.

Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.

Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
16. василий иванович (scorp1) 5 10.01.17 10:47 Сейчас в теме
Конфигурация в порядке, поэтому таблицы config и configsave менять, наверное, нет необходимости.
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
Остальные ответы
5. Максим Б (Xershi) 330 06.01.17 09:06 Сейчас в теме
(1) скорее всего ссылка слетела. Выгрузка в ДТ работает?
7. василий иванович (scorp1) 5 08.01.17 12:26 Сейчас в теме
(5) выгрузка не работает:

Нарушение целостности информационной базы.
Ошибка в размере файла 1d748980-248d-4f48-a467-23fe2d86ab01.pfl при выгрузке таблицы Files
Ожидаемое значение 0, значение в таблице 112163
10. Максим Б (Xershi) 330 09.01.17 00:55 Сейчас в теме
(7) если есть тулз 1С с возможностью редактировния, то через нее можно попробывать поправить.
Если нет, то можно сделать полную выгрузку в чистую базу.
ТИИ не все ошибки может исправить, рекомендую если есть ИТС написать еще в поддержку!
13. василий иванович (scorp1) 5 10.01.17 09:01 Сейчас в теме
(10)Toolz 1CD нет, подскажите где взять?
18. Максим Б (Xershi) 330 10.01.17 13:56 Сейчас в теме
9. Armando Armando (Armando) 1385 09.01.17 00:15 Сейчас в теме
(1) (7) Можно воспользоваться tool 1cd для поиска и удаления этих записей.
Или отправляйте базу в ТП 1С. Ждать от 3 дней до бесконечности.
2. Константин Рыбаков (pyrkin_vanya) 323 06.01.17 08:30 Сейчас в теме
Попробуйте сделать тестирование с созданием ссылок.
3. василий иванович (scorp1) 5 06.01.17 08:31 Сейчас в теме
4. lefthander lefthander (lefthander) 06.01.17 09:03 Сейчас в теме
Есть еще утилита для проверки файловой базы, лежит в катилоге bin. Может она поможет
6. василий иванович (scorp1) 5 08.01.17 12:21 Сейчас в теме
(4) утилита ошибок не находит
8. drim87 - (drim87) 08.01.17 23:08 Сейчас в теме
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.

Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.

Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии
12. василий иванович (scorp1) 5 10.01.17 09:00 Сейчас в теме
(8)
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.


Не помогло


Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.


исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит

Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4



Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии


табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше

Может кто подскажет каким запросом и средствами MS SQL можно это сделать?

14. василий иванович (scorp1) 5 10.01.17 09:02 Сейчас в теме
(8)
Попробуй выгрузить базу под платформой 8.3.6.2041 или ниже
Попробуй протестировать под этой же платформой. Выгрузи и загрузи чистую базу под новой платформой.



Не помогло


Если с выгрузкой не поможет:
Загрузи dt в базу на ms sql и очисти таблицу files.


исправление записи в таблице files помогло (найти запись не сложно - исправил то значение которое было на ожидаемое) - теперь выгрузка идет, но проверка логической целостности не проходит

Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1 
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4 



Искать на ms sql где именно хранится табличная часть для документа ты замучаешься. Потому если типовая попробуй выполнить сравнение и объединение с конфигурацией поставщика или cf такой же версии


табличную часть найти не проблема, проблема найти те записи которые не относятся к главной таблице
Документов ПоступлениеТоваровУслуг в базе порядка 10 000 штук, и документов СписаниеСРасчетногоСчета не меньше

Может кто подскажет каким запросом и средствами MS SQL можно это сделать?
11. drim87 - (drim87) 09.01.17 09:23 Сейчас в теме
Ну если обращаться в поддержку франчи может получиться что пинать Вас будут пару недель либо по отделам в поисках того кто исправит либо так же будут писать разработчикам, а сроки реакции там оставляют желать лучшего.


Таблица Files содержит служебную информацию, например, о работе с хранилищем конфигурации.
Так что проще всего просто ее очистить средствами SQL и не гадать исправились там все ошибки или нет.
А ошибки в конфигурации несложно поправить с помощью cf файла такой же версии.
15. drim87 - (drim87) 10.01.17 10:13 Сейчас в теме
Если база типовая - тогда. На сервере 1с разверните чистую базу такой же версии и средствами sql подмените таблицу config. Можно еще и configsave - в этих таблицах хранится конфигурация.
На копии само собой делайте)
Я сейчас не успеваю что то более подробное накидать, убегаю. Но в сети есть информация по восстановлению баз подменой этих таблиц. На инфостарте даже было.
CratosX; scorp1; +2 Ответить
16. василий иванович (scorp1) 5 10.01.17 10:47 Сейчас в теме
Конфигурация в порядке, поэтому таблицы config и configsave менять, наверное, нет необходимости.
С помощью SQL Server Management Studio нашел таблицы с документами и табличными частями документов. Выгрузил в Ексель и по полю _DocumentХХХ_IDRRef нашел лишние записи, которые не относятся не к одному документу. Эти лишние записи удалил.
Теперь тестирование идет и выгрузка идет.
drim87 - огромное спасибо за подсказку с SQL Server
19. Максим Б (Xershi) 330 10.01.17 13:58 Сейчас в теме
(16) у вас же файловая база. Или я чего не не дослышал или не знаю?)
20. василий иванович (scorp1) 5 10.01.17 16:34 Сейчас в теме
(19) База файловая.
Решение найдено, всем спасибо
17. drim87 - (drim87) 10.01.17 12:32 Сейчас в теме
Проверка логической целостности. Документы. ПоступлениеТоваровУслуг. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 1
Проверка логической целостности. Документы. СписаниеСРасчетногоСчета. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество - 4


Ну по этой ошибке я так понял что ошибка в табличной части документа. Тут не имени ни идентификатора объекта нет - потому я и думаю что это ошибка в конфигурации. Ну либо получается во всех документах? Тогда в менеджере sql попробуйте открыть таблицу посмотрте что там вообще записано.
21. Алексей Т. (CratosX) 101 07.02.17 17:38 Сейчас в теме
Столкнулся с сабжевой проблемой (0).
(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)."

Есть у кого идеи?
22. Алексей Т. (CratosX) 101 07.02.17 18:32 Сейчас в теме
(21) Точнее в коде выше выборка этих значений, само удаление такое:
USE [Test]
GO

DELETE FR OM [dbo].[_Document196_VT4169]
       WH ERE   _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A258)
			or _Document196_IDRRef = CONVERT(varchar,0x8CA0D017C29AAC7511E6E6BB9148A259)

GO
23. Алексей Т. (CratosX) 101 07.02.17 20:36 Сейчас в теме
Вообще, проблему битых ссылок решил в файловой базе без необходимости лезть в SQL.
Берём ирПортативный, ищем все строки ТЧ, находим битые ссылки вида <Объект не найден> (196:8ca0d017c29aac7511e6e6bb9148a258), берём обработку GUID82_w1c.epf, создаём документ, записываем, лезем в его движения - оттуда пытаемся вычислить реквизиты документа (например дату, время, склад и т.п.), вносим их в документ - записываем.
24. Елена Царева (citicat) 116 07.02.17 20:51 Сейчас в теме
Как уже написал Алексей Т. (CratosX) , проблема битых ссылок решается в файловой (не SQL) базе.
В похожем случае при исправлении обязательно выбираем режим "Добавлять)". Редактировать придётся эти добавленные элементы.
Если есть старый архив, возможно руками.
Оставьте свое сообщение