Всем привет. У меня приключилась беда и нужна ваша помощь.
Админ на работе решил переименовать папку с файловой базой 1с в тот момент когда в ней находились активные пользователи.
В результате этих действий нет возможности зайти в 1с ни в режиме конфигуратора, предприятия. Запускаешь 1с, она спрашивает, логин и пароль после ввода пишет "Ошибка формата потока". Обычно я не заморачиваюсь беру бекапы, но на эту базу, по сколько она чужая бекапов у меня соответственно нет.
Запускал chdbfl на базе, но она пишет, что "Ошибок не обнаружено".
Попробовал Tool_1CD.
В программе база открылась без проблем. Сделал тест формата потока, Программа обнаружила 3 ошибки ("Фактическая длинна файла отличается от указанной в таблице."). Все 3 ошибки в таблице PARAMS. Исправил ошибки исправлением таблицы, поставил длину 0. Но это к сожалению не помогло. При запуске все также ругается.
Попробовал сохранить конфигурацию через Tool_1CD. Создал новую базу и загрузил cf фаил.
Через Tool_1CD выдрал таблицу PARAMS, после чего потребовалось загрузить еще два десятка таблиц с данными которых не было в исходной конфигурации.
В конечном итоге после танцев с бубном база запустилась, размер вроде соответствует нормальному. Но база оказалась пустая :( Полагаю, что в новой таблице PARAMS нет связи со старыми таблицами.
Помогите плиз решить проблему.
Админ на работе решил переименовать папку с файловой базой 1с в тот момент когда в ней находились активные пользователи.
В результате этих действий нет возможности зайти в 1с ни в режиме конфигуратора, предприятия. Запускаешь 1с, она спрашивает, логин и пароль после ввода пишет "Ошибка формата потока". Обычно я не заморачиваюсь беру бекапы, но на эту базу, по сколько она чужая бекапов у меня соответственно нет.
Запускал chdbfl на базе, но она пишет, что "Ошибок не обнаружено".
Попробовал Tool_1CD.
В программе база открылась без проблем. Сделал тест формата потока, Программа обнаружила 3 ошибки ("Фактическая длинна файла отличается от указанной в таблице."). Все 3 ошибки в таблице PARAMS. Исправил ошибки исправлением таблицы, поставил длину 0. Но это к сожалению не помогло. При запуске все также ругается.
Попробовал сохранить конфигурацию через Tool_1CD. Создал новую базу и загрузил cf фаил.
Через Tool_1CD выдрал таблицу PARAMS, после чего потребовалось загрузить еще два десятка таблиц с данными которых не было в исходной конфигурации.
В конечном итоге после танцев с бубном база запустилась, размер вроде соответствует нормальному. Но база оказалась пустая :( Полагаю, что в новой таблице PARAMS нет связи со старыми таблицами.
Помогите плиз решить проблему.
По теме из базы знаний
Найденные решения
попробую описать весь алгоритм по действиям
1) выгрузить таблицы данных из нерабочей базы (Tools 1C) - Кнопка экспорт таблиц данных в отдельную папку
2) выгрузить служебные таблицы (V8Users , UsersWorkHistory, FrmDtSetting) ( кнопка экспорт текущей таблицы)
3) Создать чистую базу из cf файла выгруженного с помощью Tools 1CD
4) Экспортировать таблицы данных из рабочей базы в отдельную папку (экспорт таблиц данных)
5) Сопоставить таблицы из нерабочей базы с таблицами рабочей базы - заменить файл описания таблиц (descr) в нерабочей базе из рабочей - как это сделать решайте сами я лично делал через компоненту 1СLib
6) удалить таблицы из новой базы кроме некоторых служебных (Config,Configsave,params,Dbshema,ibVersion) - удобнее сделать через 1сlib
7) Импорт и создание таблиц в новой базе из таблиц данных неработающей базы с замененный файлом описания descr - Через tools 1cd кнопка импорт и создания таблиц
1) выгрузить таблицы данных из нерабочей базы (Tools 1C) - Кнопка экспорт таблиц данных в отдельную папку
2) выгрузить служебные таблицы (V8Users , UsersWorkHistory, FrmDtSetting) ( кнопка экспорт текущей таблицы)
3) Создать чистую базу из cf файла выгруженного с помощью Tools 1CD
4) Экспортировать таблицы данных из рабочей базы в отдельную папку (экспорт таблиц данных)
5) Сопоставить таблицы из нерабочей базы с таблицами рабочей базы - заменить файл описания таблиц (descr) в нерабочей базе из рабочей - как это сделать решайте сами я лично делал через компоненту 1СLib
6) удалить таблицы из новой базы кроме некоторых служебных (Config,Configsave,params,Dbshema,ibVersion) - удобнее сделать через 1сlib
7) Импорт и создание таблиц в новой базе из таблиц данных неработающей базы с замененный файлом описания descr - Через tools 1cd кнопка импорт и создания таблиц
(39) да , именно в обработке надо читать 2 файла получать их таблицы данных и по таблицам получать метаданные и сравнивать метаданные по наименованию. В обработке см. функцию "ПолучитьПредставлениеТаблицы" - вот ее немного надо переделать - она получает один параметр имя таблицы , и использует глобальную переменную FileDB , так вот если открываются 2 базы (FileBd1,FileBD2) от глобальной переменной стоит отказаться и передавать данный объект в качестве параметра этой функции
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Первоначальная нерабочая база осталась без ваших изменений ? Посмотрите через Tools_1CD там есть данные по таблицам ?
Можете выложить файл с вашей нерабочей базы(базы без ваших изменений ). Попробую один способ. Просто тут объяснять долго
Можете выложить файл с вашей нерабочей базы(базы без ваших изменений ). Попробую один способ. Просто тут объяснять долго
Да в базе не какие изменения не делал. Только на копии. По таблицам полазил данные присутствуют. Не уверен полноте конечно.
Какая версия платформы? Попробуйте вначале обновить платформу, и запустить с нее так, чтобы никто в ней еще не сидел
Если описывать - то это долго . В двух словах - тебе нужны 2 инструмента -tools 1СD и 1СLib - можно найти на инфостарте.
Суть такова - так как повреждена таблица Params - восстанавливать ее нету смыла. Поэтому таблицы данных необходимо перенести в другую базу. Но проблема в том что описание таблиц в двух разных базах разное , Как решить - так как таблица Params потеряна , необходимо исправить описание таблиц в испорченной базе. Через tools_1CD - надо экспортировать таблицы данных . Таблицы выгружаются в 4 или 5 файлов (Descr,Index,root,Data,Blob) описание таблиц содержится в файле Descr. Вот его то и надо заменить таким же файлом только из рабочей базы такой же конфигурации и таково же релиза.
Суть такова - так как повреждена таблица Params - восстанавливать ее нету смыла. Поэтому таблицы данных необходимо перенести в другую базу. Но проблема в том что описание таблиц в двух разных базах разное , Как решить - так как таблица Params потеряна , необходимо исправить описание таблиц в испорченной базе. Через tools_1CD - надо экспортировать таблицы данных . Таблицы выгружаются в 4 или 5 файлов (Descr,Index,root,Data,Blob) описание таблиц содержится в файле Descr. Вот его то и надо заменить таким же файлом только из рабочей базы такой же конфигурации и таково же релиза.
Но так как таблиц много и наименование таблиц будут отличаться необходимо как-то сопоставить эти таблицы. При скачивании компоненты 1cLib в поставку входит обработка по демонстрации работы с этой компонентой. Обработка позволяет читать структуру файла 1сd выгружать , удалять и восстанавливать таблицы. Еще один плюс этой обработке она имеет доступ к метаданным файлам и может по имени таблицы определить объект метаданных. т.е. с помощью этой обработки есть возможность сопоставить имена таблиц , с таблицами базы , а если знать что например таблице поврежденной базе _ACC16 соответствует таблица рабочей базы _ACC19 , то опять же средствами 1с можно скопировать нужный файл из одной папки в другую.
(12) в принципе да основная сложность в замене , поэтому 1cLib необходимо немного исправить код в зависимости от требуемой операции . Сам код не сложен , просто делается по образу и подобию кода который в обработке (разобраться не составит труда)
Блин так не честно что бы скачать надо абонемент брать. Согласен, что любая работа должна соответствующие оплачиваться. Но полторы за одну программу. ;)
Но опять же это еще не все . Остается последний этап , перенос таблиц в рабочую базу. Так как база рабочая уже имеет таблицы , их надо сначала удалить - опять же можно воспользоваться 1cLib (А точнее обработкой к ней) , но удалять нужно не все таблицы ( в данном случае необходимо оставить таблицы Config,ConfigSave,Params,DBShema,IBVersion,File) а из нерабочей взять такие таблицы как _systemSetting,RepValSetting,CommonSetting,_repsetting,_frmdtSetting,_DynListSetting,_OdataSetting ,_UsersWorkHistory, _Users ) и после того как ты все это соберешь(т.е. таблицы данных+служебные ) в одной папке .Через Tools_1CD - делаешь импорт и создание таблиц. Если все правильно сделал у тебя получиться полностью рабочая база с новой таблицей Params
Вы уже дали достаточно подробный мануал. Конечно отсутствие опыта доставит мне геморроя. Надеюсь что все получится
на той неделе пришлось пару раз этим способом исправлять пару базы , конечно не с потерянной таблицей params , но там свои были приколы. Но общий смысл идеи перенос таблиц. По моим подсчетам это должно сработать
Читаю про таблицы. И я начинаю понимать что у меня большей части таблиц про которые ты говоришь попросту нет :(
Прикрепленные файлы:
у тебя таблицы не отсортированны , некоторых таблиц может не быть самый лучший способ посмотреть системные таблицы - создать чистую базу без конфигурации и открыть в tools 1cd откроется минимальный состав служебных таблиц. Опять же надо смотреть что за конфигурация но если честно смущает количество таблиц всего 51 таблица .
посмотрите в tools 1cd проверка состава таблиц .. хотя если файл dbNames в таблице Params поврежден проверку не пройдет
В общем итоге ,переносите системные таблицы какие есть из перечисленных мною ( в вашем случае это V8Users , UsersWorkHistory, FrmDtSetting, Далее загружаете ваш cf в новую базу ,через обработку компоненты 1clib открываете файл этой базы удаляете все таблицы данных (а так же системные таблицы которые выгружали из старой базы V8Users , UsersWorkHistory, FrmDtSetting ) кроме таблиц config.configsave, params,dbChema и если будут такие таблицы как _systemSetting,_RepValSetting,CommonSetting,_repsetting то их временно лучше оставить
теперь нужно для каждой таблицы подменить описание таблиц данных т.е. заменить файл descr в нерабочей базы - таким же файлом только уже рабочей базы
(39) да , именно в обработке надо читать 2 файла получать их таблицы данных и по таблицам получать метаданные и сравнивать метаданные по наименованию. В обработке см. функцию "ПолучитьПредставлениеТаблицы" - вот ее немного надо переделать - она получает один параметр имя таблицы , и использует глобальную переменную FileDB , так вот если открываются 2 базы (FileBd1,FileBD2) от глобальной переменной стоит отказаться и передавать данный объект в качестве параметра этой функции
попробую описать весь алгоритм по действиям
1) выгрузить таблицы данных из нерабочей базы (Tools 1C) - Кнопка экспорт таблиц данных в отдельную папку
2) выгрузить служебные таблицы (V8Users , UsersWorkHistory, FrmDtSetting) ( кнопка экспорт текущей таблицы)
3) Создать чистую базу из cf файла выгруженного с помощью Tools 1CD
4) Экспортировать таблицы данных из рабочей базы в отдельную папку (экспорт таблиц данных)
5) Сопоставить таблицы из нерабочей базы с таблицами рабочей базы - заменить файл описания таблиц (descr) в нерабочей базе из рабочей - как это сделать решайте сами я лично делал через компоненту 1СLib
6) удалить таблицы из новой базы кроме некоторых служебных (Config,Configsave,params,Dbshema,ibVersion) - удобнее сделать через 1сlib
7) Импорт и создание таблиц в новой базе из таблиц данных неработающей базы с замененный файлом описания descr - Через tools 1cd кнопка импорт и создания таблиц
1) выгрузить таблицы данных из нерабочей базы (Tools 1C) - Кнопка экспорт таблиц данных в отдельную папку
2) выгрузить служебные таблицы (V8Users , UsersWorkHistory, FrmDtSetting) ( кнопка экспорт текущей таблицы)
3) Создать чистую базу из cf файла выгруженного с помощью Tools 1CD
4) Экспортировать таблицы данных из рабочей базы в отдельную папку (экспорт таблиц данных)
5) Сопоставить таблицы из нерабочей базы с таблицами рабочей базы - заменить файл описания таблиц (descr) в нерабочей базе из рабочей - как это сделать решайте сами я лично делал через компоненту 1СLib
6) удалить таблицы из новой базы кроме некоторых служебных (Config,Configsave,params,Dbshema,ibVersion) - удобнее сделать через 1сlib
7) Импорт и создание таблиц в новой базе из таблиц данных неработающей базы с замененный файлом описания descr - Через tools 1cd кнопка импорт и создания таблиц
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот