Имя: Пароль:
1C
Админ
Ошибка формата потока
,
0 Ышка
 
17.12.12
16:16
После выключения света полетела БД.

Все стандартные методы лечения ничего не дали, кроме chbdfl, который выводит следующее:
@@
Поврежден заголовок внутреннего файла <Индексы таблицы 'FILES'>
Повреждены данные таблицы 'FILES'
Повреждена таблица размещения внутреннего файла <Данные неограниченной длины таблицы 'V8USERS'>
Обнаружено рассогласование между данными и индексами таблицы 'V8USERS'
@@

после исправления, выводится следующее:
@@
Повреждены данные таблицы 'FILES'. Восстановлено 10 из 10 записей.. Потеряно 2 значений полей неограниченной длины
Повреждена таблица размещения внутреннего файла <Данные неограниченной длины таблицы 'V8USERS'>
@@

после исправления, так же вылетает окно с "ошибкой формата..."

Нашел в КЗ: Книга знаний: v8: Ошибка формата потока

поэтому вопрос: какой обработкой нужно обходить на предмет 0х1а и 0хffff ?

Появились ли иные способы востановления работоспособности баз с такой ошибкой?
1 Ышка
 
17.12.12
16:17
upd: база файловая
2 МихаилМ
 
17.12.12
16:37
надеюсь вариант базы до применения chbdfl сохранился.

как вариант инфостарта скачаваете обработка,
клторые умеют загружать данные, выгруженные Tool_1CD

или ищите awa15 и wde69.
они восстановлением файловых занимаются.
3 Ышка
 
17.12.12
17:00
"как вариант инфостарта скачаваете обработка,
клторые умеют загружать данные, выгруженные Tool_1CD"

вот-вот, я уже все таблицы выгрузил (получилось 579), но не знаю как их загрузить в бэкап полугодовалой давности, искал обработки, но чегото не могу найти нужную...
4 vde69
 
17.12.12
17:02
кроме Tool_1CD

есть еще проектик http://code.google.com/p/restoration-base-1c8/
5 МихаилМ
 
17.12.12
17:23
6 Ышка
 
19.12.12
13:01
Курю v8: Восстановление базы 1с http://infostart.ru/public/19734/,
пытаюсь допетрить как вылечить, то что показывает Tool_1CD:
-Ошибка получения объекта из блока. Блок не является объектом. Значение блока 0х23В9.
-Попытка чтения данных за пределами объекта. Номер блока объекта 0xFFFFFFFF.
-Ошибка чтения индексов. Индекс первого свободного блока за пределами файла индексов. Таблица FILES, длина файла индекса 0x0, индекс свободной страницы 0x0.

Самая последняя ошибка, насколько я понял из прочитанного и есть основная проблема. В бекапе длина индекса значится 12288.

т.е. мне нужно найти блок где находится данная таблица и поправить значение длины индекса.
Блок FILES нашел по адресу 0x2338, но заголовки блоков, что в сломанной, что в рабочей абсолютно одинаковы. Поэтому вопрос: где хранится информация о длине индекса?
7 vde69
 
19.12.12
13:18
база большая?

по сабжу
1. переименуй таблицу V8USERS (поменяй первый символ) на _8USERS, это таблица пользователей, ничего страшного в гибели ее нет... (востановить пользователей можно и потом, сначало нужно запустить базу)
2. после этого пройди chbdfl, она подрежит "FILES"

после этого можно пробовать подцепится к базе по COM и пытатся скопировать данные, (ком меньше отрабатывает при загрузке, шансов больше....)

если не поможет - могу глянуть (если архив не очень большей)
8 vde69
 
19.12.12
13:22
>>> Индекс первого свободного блока за пределами файла индексов

можно вообще поставить 0 (ставится в описании таблици, в самом конце описания), только в нех редакторе не пытайся, накосячишь

на картинке http://infostart.ru/upload/iblock/e43/w-1.jpg это заменить 424301 на 0 (только таблица другая)
9 Ышка
 
19.12.12
13:30
(7) вышли те же сообщения что и в сабже (только "V" заменилась на "_")

(8) дык и так 0 стоит
10 Ышка
 
19.12.12
13:33
(7) (9) Ааа! Стоп машина!
Я не понял что произошло, но база запустилась, и даже документы не побились
11 Ышка
 
19.12.12
13:33
я так понимаю нужно запустить ТиИ со сжатием?
12 vde69
 
19.12.12
13:35
(9) ну хз, смотреть нужно...

что-то ты не так делаешь
13 zladenuw
 
19.12.12
13:36
(10) бывало такое. но помогала пересоздание в списке базу.
14 Ышка
 
19.12.12
13:38
Это блин шаманство какое-то, я так и не понял, почему переименовав таблицу V8USERS, chdbfl вылечил базу (хотя ошибки были те же)
15 ptiz
 
19.12.12
13:39
(11) Сделай выгрузку в dt и загрузки в новую базу.
16 vde69
 
19.12.12
13:40
(10) если база запустилась


сначало сделай промежуточную копию

далее три варианта
1. делай перенос данных через хмл в пустую конфу

2. накатывать последнюю конфигурацию и последующее ТИС с режимом сжатия,

3. делать ТИС со всеми галками.


пробуй :)
17 vde69
 
19.12.12
13:41
(15) выгрузка скорее всего свалится...
18 Ышка
 
19.12.12
13:53
Зделал ТиИ со всеми галками, через выгрузку загрузил в чистую конфу. Вроде всё на месте, даже юзвери все остались.

P.S.Уважаемые гуру, может вы мне объясните как переименование таблицы помогло корректно вылечить базу!?
19 vde69
 
19.12.12
14:04
(18)после переименования таблицы 1с перестала к ней обращатся, таблица есть, но ее нет... фантом...

ну и раз таблицы нет, то 1с сама создала новую.
правда для меня загадка как пользователи остались?
20 vde69
 
19.12.12
14:06
(19)+ наверно ты имееш в виду пользователей из справочника а я о пользователях из конфигуратора :) тогда понятно!
21 awa15
 
19.12.12
14:09
(18)(19) Ошибка формата потока была в таблице v8users, поэтому, после переименования таблицы 1С перестала обращаться к битой таблице, ошибка исчезла и база запустилась. При отсутствующей таблице v8users 1С берет данные о пользователях из записи users.usr таблицы PARAMS. При любой попытке изменения пользователей таблица v8users создастся снова.
22 vde69
 
19.12.12
14:12
(21)не знал, хотя подозревал подобное, по этому в "нужных" случаях переименовывал "users.usr" на "_sers.usr".