Вопрос →  1_) Можно ли восстановить файл базы данных и если да, то как?

0
Sajen
25.05.2018 20:13

Позавчера 23 мая 2018 года был повреждён файл базы данных.

Причиной повреждения явилось то, что в момент работы с файлом базы данных 1Cv8.1CD произошло отключение электричества компьютера. Приложение «1С: Деньги» было открыто. В нём было открыто окно Расход. Я закончил записывать свои расходы и нажал на кнопку «Учесть». Окно Расход закрылось и стало появляться главное окно приложения «1С:Деньги». Вот между моментами полного закрытия окна Расход и неполным появлением главного окна приложения (это список денежных операций ) и произошло отключение электричества. Наверное, происходила запись в базу данных о моих расходных операциях и в этот момент отключилась электроэнергия. Причиной отключения электроэнергии явился физический электронный таймер, который был запрограммирован на отключение электричества в заданное время (ночью не спать вредно для здоровья).

После запуска приложения "1С: Деньги" появляется окно 1 (см. файл Окно 1). А после выбора «Показать информацию …» появляется окно 2 (см. файл Окно 2).

У меня был резервная копия месячной давности. Пришлось использовать её и изменять остатки всех кошельков на текущие. Но все данные с 21 апреля до 23 мая 2018 пропали.

И ещё вопросы:

2_) Как можно настроить автоматическое закрытие приложения "1С:Деньги" в Windows 10 (можно ли использовать Планировщик заданий)?

3_) Какие вообще есть программы, которые могут приложение "1С:Деньги" закрывать автоматически в заданное время, например, за 10 минут до отключения физическим таймером компьютера?

4_) Если приложение "1С:Деньги" будет закрыто автоматически либо Планировщиком заданий в Windows 10, либо специальной программой, то может ли быть снова повреждён файл базы данных, при неблагоприятных условиях, как при отключении электричества?

+1
Важенин Владимир ( Российская Империя)
25.05.2018 21:11

Не пробовали chdbfl? Где то там:

C:\Program Files (x86)\1cv8\8.3.10.2561\bin\chdbfl

0
Сафонов Вадим ( Санкт-Петербург)
26.05.2018 19:54

Недавно попал в такую же ситуацию. Слава энергетикам, МТЗ, подстанции и персонально моему ИБП марки DEXP 1200 (теперь сослан блюсти ноут и телек с его приставкой). В "Справке", как и в этой конференции ничего не нашёл. Далее методом антинаучного тыка прошёл по следующей логической цепочке:

  • Программа открыта, но запись данных (вроде бы) должна была завершиться к моменту сбоя.
  • После восстановления подачи энергии загрузчик работает
  • Возможно есть вариант запуска с резервной копии базы (месячной давности)
  • Возможно есть файл сопровождения (сессионный), в котором пишется служебка, необходимая для корректного запуска - останова программы
  • Если такое есть, то это может быть в каталоге, где живёт база
  • Если такое есть, то оно перезаписывается при каждом запуске/останове программы.

Ну, вот я и открыл каталог (для вас это Dengi2Toshiba) и посмотрел на список файлов при открытой (с исп. резервной копии) программе и при выгруженной. Так были найдены файлы: 

  • 1Cv8.1CL
  • 1Cv8tmp.1CD
  • 1Cv8tmp.1CL

При нормальном завершении программы эти файлы закрываются и удаляются автоматически. После сбоя электроснабжения один из этих файлов (а может и все три) остаются "висеть" в каталоге при этом несут в себе ошибку. Программа при запуске видит наличие этих фалов. Собственно уже одного этого достаточно. А может она пытается читать из них информацию (в которой, как мы помним есть ошибка) и отказывает в продолжении. При этом пользователю выдаётся  окно (Ваш рис. "Окно 1.bmp") с заведомо неверной информацией. Фокус в том, что ваша база на самом деле ЖИВА и ЗДОРОВА.

РЕШЕНИЕ:

  • ОСТОРОЖНО!!!
    Не открывайте и не редактируйте поименованные выше файлы. Если они остались в каталоге базы их нужно просто удалить.
    
  • Временно переименуйте основной файл базы данных с 1Cv8.1CD в 1Cv8.1CD_РЕЗЕРВ
    Как именно переименовать - ваше дело, главное сделать так, чтобы позже можно было переименовать обратно и не ошибиться с символами.
    
  • Скопируйте резервный файл базы в основной каталог и переименуйте его в 1Cv8.1CD
    
  • Теперь запускаем 1С Деньги и выполняем вход до полного запуска программы. Для пущей важности можно просмотреть баланс (месячной давности) и успокоиться. НИ ЧЕГО НЕ ИЗМЕНЯЙТЕ В БАЗЕ. 
    
  • ВЫХОДИМ из 1С Деньги (молимся на ИБП, автомат в электрощитке, подстанцию и всю нашу энергетику)
    
  • ПРИ ВЫГРУЖЕННОЙ программе 1С Деньги
    Проверяем отсутствие в рабочем каталоге файлов: 
  • 1Cv8.1CL
  • 1Cv8tmp.1CD
  • 1Cv8tmp.1CL
  • Переименовываем файл резервной базы, как нам удобно, или (если вы не перемещали его, а именно скопировали в рабочий каталог) удаляем его из рабочего каталога.
    
  • Переименовываем файл рабочей базы в 1Cv8.1CD
    
  • Пробуем выполнить запуск 1С Деньги
    

Если вы всё сделали правильно и вам повезло - ВЫДЫХАЕМ!

Внимательно смотрим базу и радуемся, что не придётся восстанавливать все записи за месяц (если не больше). Удостоверившись в том, что всё нормально - бежим в магазин за виски и новым ИБП.

На будущее - больше так не делайте. При первых признаках энергетической катастрофы - выгружайте программу до падения Винды.

Если разработчики будут ругаться на предложенный алгоритм решения проблемы - с радостью приму конструктивную критику. А лучше внести все слова справедливого гнева непосредственно в документацию по программе. Всем будет легче.

 

 

Благодарствую вам за совет. Последовал вашему совету. Запустил файл chdbfl.exe в месте C:\Program Files (x86)\1cv8\8.3.11.2867\bin. Появилось окно «Проверка физической целостности файла БД». Выбрал имя файла БД, поставил флажок для исправления ошибок и нажал Выполнить. После этого повреждённый файл базы данных уже стал неповреждённым и успешно запустился. Окно 1 не появилось, а появилось главное окно приложения «1С: Деньги».

Файл базы данных был повреждён 23 мая 2018 года. Сначала я записал (нажал на кнопку «Учесть) данные о расходных операциях первого кошелька. При записи данных первого кошелька не было отключения электричества. Потом я пытался записать  данные о расходных операциях второго кошелька. При попытке записи данных второго кошелька и произошло отключение электричества. После исправления ошибок в приложении chdbfl.exe, в базе данных сохранились данные только первого кошелька, а данные второго кошелька не сохранились.

Снова ввёл данные второго кошелька в восстановленной базе данных за 23 мая 2018 года и другие данные на эту дату. Потом переписал из оказавшейся временной базы данных данные за 24 и 25 мая 2018 года и теперь у меня, потерянных данных нет.

Спасибо за совет. Но я уже успел успешно воспользоваться способом моего тёзки Важенина Владимира. ИБП конечно нужно при отключении электричества по независящим от компьютерщика обстоятельствам. Но физический таймер между электросетью и компьютером убирать не буду. В качестве уровня защиты настроил автоматическое резервное копирование при закрытии приложения «1С:Деньги» . Так, что в случае повторения подобной ситуации придётся снова восстановить файл базы данных методом Важенина Владимира или вашим. Ну, а если оба эти метода не сработают, то запущу последнюю резервную копию со свежими данными. Также можно ещё проработать вопросы 2, 3 и 4, как дополнительный уровень защиты.