Имя: Пароль:
1C
 
Восстановление удаленных строк документа
0 Gimalaj
 
20.12.06
19:00
Удалена куча строк табличной части документа.
Восстанавливаю удаленные записи в dbf-файле табличной части документа.
Результат-ноль...
Подскажите, может есть какие-то особенности?
1 smaharbA
 
20.12.06
19:06
а индексировать кто будет ? да ид может быть (скорее всего) убит
2 Gimalaj
 
20.12.06
19:07
Записать();
Переиндексировать();
и прочее применял.
3 Gimalaj
 
20.12.06
19:07
Если можно, то поподробнее про ID
4 smaharbA
 
20.12.06
19:08
А дак ты из само эсины ? ид - то хоть есть в восстановленных записях? и каким докам эти ид принадлежат - учел ?
5 ildus
 
20.12.06
19:10
(0) кто удалял тому по шапке и заставить восстанавливать вручную
6 Gimalaj
 
20.12.06
19:11
А кроме как из 1С, как ещё можно?
ИД есть у всех документов.
7 Gimalaj
 
20.12.06
19:15
(5) Удалял родной брат директора...
Кроме того, самому интересно, почему не выходит...
8 у лю 427
 
20.12.06
19:59
щас опишу... подожди 10 минут...
9 у лю 427
 
20.12.06
20:41
похоже, уже не нужно...
10 Flika
 
20.12.06
20:45
(9) а ты бы действительно описал?
11 у лю 427
 
20.12.06
21:13
щас опишу..
12 Змеюка
 
20.12.06
21:17
Если можно, поподробнее...
13 zalex
 
20.12.06
21:24
(0) А руками быстрее...
14 у лю 427
 
20.12.06
21:37
В 1С не используется механизм, применяемый в дБазе и в фоксе...

Помеченные на удаление в режиме Предприятие - это отметка 1С (спец поле), а не признак в ДБФ файле, который используют другие системы.

После удаления помеченных на удаление (во завернул) в запись ставится ИМЕННО признак удаления, как это принято в фоксе.

А вот дальше начинаются различия. Фокс такую запись НИКОГДА НЕ ИСПОЛЬЗУЕТ, и такая запись будет висеть в файле до момента РЕГЛАМЕНТНОЙ процедуры сжатия базы.
Поэтому в нем ДО МОМЕНТА РЕГЛАМЕНТА всегда можно отменить удаление.... чтобы не делали до регламента...

1С такие записи ПОВТОРНО ИСПОЛЬЗУЕТ (сцуко).... что видно из структуры индесов в ДБФ...

Удалив строки в документе - мы помечаем их на удаление (пометка, аналогичная фоксу). Создав новый документ в фоксе, мы старые записи не тронем. Создав новый документ (такого же вида) в 1С - мы можем в силу повторного использования помеченных на удаление просто попасть на то же самое физическое место  в файле и .... приплыть...

Если после удаления строк в документе СРАЗУ зайти в дбф с табличными частями этого документа - мы увидим ВСЕ удаленные строки...
Но если мы создадим 1-2 новых документа такого же вида (или даже просто добавим строки в другие документы этого вида) - мы помеченных на удаление записей НЕ УВИДИМ. Они перепишутся....

Следствие 1 - в системах на ФОКСЕ процедура сжатия базы - регламентная!!!
В 1С можно годами дбф не сжимать - они сами перезаполняются... и утаптываются...

Следствие 2 - в (0) не удалось восстановление в силу того, что с базой уже поработали и перетерли удаленную инфу...
15 Flika
 
20.12.06
21:45
Доступно и всерьез
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн