Имя: Пароль:
1C
 
Создание с нуля файла 1SUIDCTL.DBF
0 cathode
 
04.09.07
13:42
Господа, просветите, пожалуйста, темного человека.
Досталась файловая база Комплексной 7.7 с поврежденными таблицами.  Во всех глючных таблицах повреждения были в районе первых 1-2 Кб. Содержимое почти всех таблиц удалось восстановить при помощи предыдущего архива (очень старого), hex-редактора и чьей-то матери. За исключением одной: 1SUIDCTL.DBF. Там как раз повреждения получились во всех записях. По наивности, я думал, что при пересчете служебных данных содержимое таблицы будет восстановлено, но, похоже, придется ее восстанавливать руками.
Кто-нибудь может подсказать:
1) как быстро восстановить содержимое оной таблицы (алгоритм или куски кода - было бы вообще шоколадно);
2) MAXID какой таблицы должен быть в строке с TYPEID = 0 (остальные ID вроде бы ясны).
3) где можно найти подробную документацию по данной таблице.
Прошу прощения за беспокойство.
1 ТелепатБот
 
гуру
04.09.07
13:42
2 cathode
 
04.09.07
13:45
(1) Не в тему :(
3 larabelle
 
04.09.07
13:53
Нужно именно данные этой базы восстановить, или нужна чистая база на основе этой покоцанной?
4 cathode
 
04.09.07
13:58
Именно данные восстановить. Можно сказать, что они на данный момент уже восстановлены, но в отсутствие правильно сформированной таблицы UIDов, добавление новых данных невозможно.
5 FreeFin
 
04.09.07
14:04
Можно побредить? Ну и ладно.)
Грохнуть совсем 1SUIDCTL. Зайти в конфигуратор, отключить уникальности (сброс галочки Контроль уникальности) со всех справочников. Сохраниться, а дальше, если повезет, проставить уникальности по-старому. Здесь возможны затыки на неуникальность, но тоже беда не большая, с отключенным контролем, запускать 1С и перекодировать (это не больно) неподдатливый справочник, и проставить уникальность по-новому.
6 cathode
 
04.09.07
14:07
(5) Не проканает. Уникальность в справочниках влияет на возможность дублирования поля CODE (пользовательский код в таблицах справочников), а вышеозначенная табличка используется для генерации поля ID (36-ричный сериал нумбер в каждой объектной табличке).
7 FreeFin
 
04.09.07
14:15
(6) Нуи чо из этого следует? Отключай проверку=открывай возможность дублирования, этож не "внутренний ИД" куда оно денется... И только-то, что дополнительно. В УРБД=вооще вещь лишняя, потому как серавно дублируются (если код-число оставлять, а на текст неохото). Попробуй, имхо,  должно получится.
8 cathode
 
04.09.07
14:53
Немного поиграл с копией базы. В конечном итоге выяснилось, что данная таблица, если она пуста, не влияет на генерацию новых IDов - просто по соответствующему типу берется максимальный ID и к нему добавляется единица, что потом и записывается в 1SUIDCTL.DBF для последующего использования. Таким образом, вопрос можно считать исчерпанным.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн