Куда 1с сохраняет резервную копию при автоматическом обновлении
Случилось так, что взял я на поддержку порядка пятидесяти не типовых баз данных 1С, но с одинаковой конфигурацией. А базы эти расположены в разных городах, в разных часовых поясах, да на разных серверах. И чтобы сделать обновление, приходилось тратить много часов на то, чтобы слезно попросить пользователей выйти из базы, сделать резервную копию и накатить новую конфигурацию. Долго сказка сказывается, да не быстро дело делается. Решил я этот процесс автоматизировать.
Выковал я из стали BAT-файл, да вооружил им Шедулер серверный. А файл тот был следующего содержания:
BASE_NAME - Имя базы данных, используется в наименовании лог-файлов и файлов резервных копий.
CONNECT_STR - строка подключения к информационной базе. В случае файлового варианта должна выглядить так "File=""D:\1C_Base\МояБазаДанных"";" (обратите внимание на двойные кавычки). Для клиент-серверного варината "Srvr=""ИмяСервера"";Ref=""МояБазаДанных"";".
USER_NAME и USER_PWD - Соответственно логин и пароль пользователя под которым делается обновление. Полные права давать не обязательно, в типовых конфигурациях достаточно права администрирования.
START_FILE - Путь к программе 1С:Предприятие. Следует обратить внимание на то, что нужно обращаться к конкретному релизу (например, "C:\Program Files (x86)\1cv82\8.2.19.90\bin\1cv8.exe"), а не к файлу запускатору ("C:\Program Files (x86)\1cv82\common\1cestart.exe"). Дело в том, что этот файл запускает еще один новый процесс, а сам закрывается. В этом случае BAT-файл не будет дожидаться завершения каждого отдельного действия и запустить несколько версий 1С одновременно.
BACKUP_DIR - Путь для резервных копий. Имена файлов генерируются как ИмяБазыДанных_Год-Месяц-Число.
CF_DIR - Путь к файлу обновления 1Cv8.cf. Если файл в указанной директории есть, то начинается обновление, если нет - работа BAT-файла завершается.
LOG_DIR - Путь где будут храниться лог-файлы. Имена файлов генерируются как Год-Месяц-Число_ИмяБазыДанных.
Прошу прощения за английские слова. Проблема в том, что BAT-файл должен быть в кодировке 866 OEM, а лог программа 1С пишет в 1251 ANSI.
Итак, что делает скрипт.
1. Проверяет наличие файла обновления по указанному пути. Если файла нет, то скрипт завершается.
2. Убивает зависшие процессы: tskill *1cv8* /a /v
3. Завершает работу всех пользователей и блокирует базу для входа.
4. Если в текущую дату еще не делалась резерваная копия, то делает выгрузку данных.
5. Обновляет конфигурацию.
6. Обновляет информационную базы.
7. Разблокирует базу для входа пользователей.
Теперь я просто кладу вечером файл обновления в нужную папку, прихожу утром и, на всякий случай, проверяю логи, дабы убедиться, что все обновилось.
Итак, случилось непоправимое:
- Вы случайно удалили базу 1с (в том числе из корзины).
- Или произошёл сбой в базе и ни один из перечисленных мной способов не помог.
- И, наконец, самое главное - у вас по каким-то причинам резервные копии не создавались и восстановиться просто неоткуда.
Как говорят в таких случаях - приехали.
Не спешите паниковать - ещё не всё потеряно.
Ищем базу за нужное число в теневых копиях компьютера
Заходим в мой компьютер и открываем свойства диска, на котором хранится база (этот диск можно увидеть, выделив базу в окне запуска 1С):
В открывшемся диалоге переходим на закладку "Предыдущие версии":
Если здесь есть версия диска от нужного нам числа - мы спасены!
В этом случае выделяем эту версию и нажимаем кнопку "Открыть":
Откроется папка с данными этого диска за указанное число (у меня это копия на 28 июня):
Находим здесь папку с нашей базой и перетаскиваем её, например, на рабочий стол.
Подключаем эту папку как обычную базу 1С - вот инструкция.
Если вам не повезло с наличием теневой копии диска (или там нет копии за нужное число) переходим ко второму варианту.
Ищем временную резервную копию, созданную при обновлении базы
Одна из временных резервных копий, созданных 1С при обновлении базы, всё ещё может храниться во временной папке вашего компьютера. В этой статье я расскажу о том, как такую копию найти и извлечь.
Прежде всего находим временную папку нашего компьютера.
Для этого нажимаем комбинацию клавиш Win + R:
- Сначала нажимаем Win;
- Затем, не отпуская Win, нажимаем английскую букву R;
- и отпускаем обе клавиши.
Вот как выглядит кнопка Win:
В ответ на это у нас откроется диалог "Выполнить", у меня на Windows XP он выглядит так:
Печатаем в текстовое поле команду %temp% и нажимаем ОК:
В ответ на это компьютер откроет нам временную папку:
Нас прежде всего интересуют папки, которые начинаются с "1Cv8Update". Вот в одной из этих папок и может находиться резервная копия нашей базы.
Чтобы не просматривать их все (нам требуется самая последняя из резервных копий) сортируем папки по дате:
И начинаем просматривать сверху вниз (от наиболее поздних папок к наиболее ранним).
Заходим в каждую из папок, начинающихся с "1Cv8Update":
Резервная копия базы в этой папке будет выглядеть как файл с жёлтым значком, начинающийся с имени "1Cv8" и расширением ".1CD" (но его не всегда видно). У этого файла обычно самый большой размер из всех (в моём случае 752 мегабайта).
Справа от этого файла мы можем увидеть дату его создания. Если такой файл найден и дата создания нам подходит - это замечательная новость!
Теперь давайте определим резервную копию от какой базы мы нашли?
Для этого откроем файл "log. txt":
Вот он путь к папке базы, резервную копию которой мы нашли: X:\Базы 1С\ArendaDemo.
Если эта резервная копия нам не подходит (не та база или дата не та) - ищем дальше.
Но вот мы нашли наиболее подходящую - как из неё восстановить базу?
Для этого создаём в папке с базами 1с новую пустую папку, например, так:
В эту папку копируем файл "1Cv8. 1CD" из папки с резервной копией:
Меняем имя этого файла на "1Cv8" (если расширение .1CD у вас не было видно, то дописывать его и не надо):
Подключаем эту папку как обычную базу 1С - вот инструкция.
Ничего не помогло
Если же резервную копию найти не удалось - тоже не отчаиваемся (никогда не надо отчаиваться). Как говорится, безвыходных ситуаций не бывает:
- Если база была случайно удалена (в том числе из корзины) и с компьютером после этого не проводилось никаких операций - специалист при помощи специальных программ сможет найти и восстановить её с жёсткого диска. Это (если вообще возможно) должно стоить недорого. Только нужно звать специалиста не откладывая, пока удалённая база на жёстком диске не перезаписалась другими данными.
- Если база настолько повреждена, что не помогли советы отсюда, то хороший специалист также почти всегда сможет восстановить базу или вытащить из неё данные. Вот за это уже с вас могут попросить приличную сумму. И тут нужно соизмерять цену восстановления и цену потерянных данных. Здесь можно не торопиться и даже показать базу сразу нескольким специалистам.
Прошу вас - регулярно создавайте резервные копии ваших баз и документов. Насколько это важно понимаешь только вот в таких безвыходных ситуациях, подобно описанной в статье.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Периодически нужно обязательно делать резервную копию базы 1С:Бухгалтерия. Тогда, если что-то случится с базой - у вас будут варианты отката к прошлым версиям. Как это сделать?
Способ универсальный
1. Запустите базу 1С:Бухгалтерия 8.3 (редакция 3.0) в режиме конфигуратора:
2. Из меню выберите 'Администрирование'-'Выгрузить информационную базу. ':
3. Выберите место (например, 'Рабочий стол'), куда сохранять. Введите имя архива (принято указывать название базы и дату архивации):
4. Готово! На рабочем столе появился файл 'Конфетпром_18.10.2013.dt'. Это резервная копия из которой мы при необходимости сможем восстановить базу.
По возможности делайте резервную копию базы каждый день или хотя бы 2 раза в неделю.
При этом я хочу обратить ваше внимание на то, что фирма 1С не рекомендует использовать "выгрузку информационной базы в dt" как основной способ резервного копирования. Для файловых баз считается правильным архивация всей папки с базой. Я понимаю, что архивировать папку каждый раз вручную неудобно, поэтому ниже мы рассмотрим способ создания резервных копий при помощи моей программы Обновлятор-1С.
Способ правильный
Правильный способ подразумевает, как я написал выше, архивацию всей папки с базой (вернее файла данных базы с именем 1Cv8.1CD в этой папке).
Я покажу сейчас на примере моей программы Обновлятор-1С, но вы без труда найдёте ещё десяток подобных программ в интернете. Главное обратите внимание, что должен создаваться именно архив файла базы данных, а не просто dt выгрузка.
Для архивации базы из обновлятора:
1. Выделяем галкой нужную базу и нажимаем кнопку "Архивировать":
2. При этом обновлятор:
- сам выгонит пользователей из базы (если они там есть);
- сам сделает архив файла базы данных;
- сам правильно назовёт этот архив и положит в нужную папку к другим архивам;
- сам пустит пользователей обратно.
Ещё обновлятор позволяет настроить автоматическую очистку старых архивов, а также их защиту от вирусов-шифровальщиков.
И если мы откроем созданный архив по ссылке в отчёте, то увидим, что в архиве лежит именно файл базы данных.
. что нам и требовалось.
О восстановлении из резервных копий читайте в следующей статье.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Начиная с версии от 15 марта 2016 года в обновляторе появилась возможность делать резервное копирование для баз даже, если не найдено обновлений.
По умолчанию обновлятор создаёт резервную копию только перед непосредственным изменением базы (обновление, тестирование и прочие) или архивации, запущенной напрямую (вручную или по расписанию).
Для пользователей, которые всё же хотят, чтобы резервная копия базы создавалась при каждой попытке обновления базы инструкция ниже.
Переходим на закладку "Настройки программы" кнопка "Дополнительные настройки":
Здесь переходим на закладку "Обновление баз" и устанавливаем галку "Создавать резервную копию даже если не было обновлений":
Но что делать, если у нас есть доработанные базы, которые обновляем вручную? Как сделать так, чтобы обновлятор делал их резервную копию, но не пытался обновлять?
Очень просто. Заходим в свойства такой базы.
. и устанавливаем здесь галку "Эта база здесь только для архивации":
Всё. Эта база не будет обновляться, но будет участвовать в цикле обновления и соответственно архивироваться.
Осталось настроить обновление баз по расписанию и отправку отчётов на почту (статья).
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
В этой статье мы опишем порядок действий в случае, если автоматическое обновление прошло некорректно и база не открывается. Т.е. рассмотрим как восстановить базу 1С после неудачного автоматического обновления.
Где найти резервную копию базы 1С, созданную перед обновлением?
Искать необходимо на компьютере, с которого было запущено обновление
-
Если вы не меняли настроек создания копии по умолчанию, то найти куда сохраняется резервная копия, не составит труда:
- Для Windows XP:
- C:\WINDOWS\Temp
- Для Windows 7/8:
- C:\Users\%user%\AppData\Local\Temp
Как восстановить базу из резервной копии?
Если найденный файл является выгрузкой информационной базы (начинается со слова «backup»):
- Откройте базу в режиме Конфигуратор – Администрирование – Загрузить информационную базу… - выбираете найденный файл резервной копии и нажимаете Открыть – В появившемся диалоговом окне нажимаете Да – в следующем диалоговом окне нажимаете Нет
- Откройте базу в режиме Предприятие и проверьте, что восстановили нужную базу
Если найденный файл является Файловой информационной базой (начинается с «1С»):
- Создайте новую пустую папку в месте, которое легко будет найти
- Скопируйте в нее найденный файл
- Переименуйте файл в 1Cv8
- Откройте 1с, в списке информационных баз нажмите Добавить – Добавление в список существующей информационной базы – Далее – Введите произвольное наименование, чтобы не перепутать с другими базами в списке – Укажите созданную на 1 шаге папку – Далее – Готово
- Откройте созданную базу в режиме Конфигуратор – Администрирование – Выгрузить информационную базу… - задайте каталог, в который желаете сохранить выгрузку, назовите файл так, чтобы в дальнейшем не было проблем с его нахождением. Подождите, пока не появится уведомление «Выгрузка информационной базы в файл завершена»
- Откройте базу, которую необходимо восстановить в режиме Конфигуратор – Администрирование – Загрузить информационную базу… - выбираете созданный на предыдущем шаге файл и нажимаете Открыть – В появившемся диалоговом окне нажимаете Да – в следующем диалоговом окне нажимаете Нет
- Откройте базу в режиме Предприятие и проверьте, что восстановили нужную базу
Что делать, если не получается найти резервную копию?
В этом случае воспользуйтесь поиском по компьютеру, найти файлы можно по маске *.dt – для выгрузки информационной базы и *.1CD – для Файловая информационная база и из всех найденных файлов выбрать тот, что находится в нужной папке (1Cv8Update.ггММддччммсс)
Читайте также: