7.7 помогите сделать ежедн. автом. выгрузку базы данных

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Зайка, 20 апр 2006.

  1. TopicStarter Overlay
    Зайка
    Offline

    Зайка

    Регистрация:
    20 апр 2006
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Очень нужно сделать автоматическую ежедневную выгрузку базы данных.
  2. Coder1C
    Offline

    Coder1C Слуга форума Команда форума Администратор

    Регистрация:
    10 фев 2006
    Сообщения:
    506
    Симпатии:
    31
    Баллы:
    54
    Делаешь ярлык на рабочем столе, примерно так:


    "C:\Program Files\1cv8\bin\1cv8.exe" config /S"Server2003SP1\Главная_2005"/N"Администратор"/P"72"/WA-/DumpIB"H:\SQL архивы\Выгрузка GL2005\выгрузка_главная.dt"


    можно привязать к планировщику заданий, для полной автоматизации.
  3. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Можно и так:

    файлик daily.bat для шедулера

    Код:
    xcopy t:bases.sqlbase*.* n:backupsDailybase*.* /E /C /R /Y /H
    n:CBINCV7S.EXE config /D t:bases.sqlbase  /NAdministrator /Ppassword /@n:backupsDailybase.ini
    winrar a -agDD-MM-YY-HH-MM -m5 -ep1 bases n:backupsdaily
    
    
    
    ini-файл base.ini
    Код:
    [General]
    Output=n:backupsDailylog.txt
    Quit=1
    CheckAndRepair=0
    UnloadData=1
    SaveData=1
    [CheckAndRepair]
    [UnloadData]
    UnloadToFile=n:backupsDailybase.zip
    IncludeUserDef=1
    
    
    
    На выходе получаем архив базы: выгруженная база + все файлы в папке с базой
    Название архива уникально - в нем(названии) присутствуют дата и время создания
  4. TopicStarter Overlay
    Зайка
    Offline

    Зайка

    Регистрация:
    20 апр 2006
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    :unsure: А можно и так сделать, чтобы всех пользователей выбило из базы, перед запуском пакетного режима?
  5. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    А база под sql или dbf-ная?
  6. TopicStarter Overlay
    Зайка
    Offline

    Зайка

    Регистрация:
    20 апр 2006
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    DBF база
  7. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    В принципе, неважно, на какой базе. Только что идея пришла в голову.
    Проверил - работает. У себя точно сделаю.

    В глобальном модуле:

    Код:
    Процедура ВыкинутьПользователяИзСистемы()
    Перем Час, Минута, Секунда;
    ТекущееВремя(Час, Минута, Секунда);
    Если (Час=23) и (Минута>00) Тогда
    ЗавершитьРаботуСистемы();    
    КонецЕсли;
    КонецПроцедуры
    
    
    
    И запуск её при начале работы системы с периодичностью 5 минут (300 секунд):

    Код:
    Процедура ПриНачалеРаботыСистемы()
    ОбработкаОжидания("ВыкинутьПользователяИзСистемы",300);
    КонецПроцедурыботыСистемы()
    
    
    


    Ну, а если поиздеваться, можно поставить проверки на имя пользователя, более точное время и т.п.
  8. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Кстати, продолжение идеи:

    перед выбросом делаем проверку на пользователя и какой-то флаг-константу, который править может только администратор - можно выкидывать конкретных пользователей почти в реальном времени не вставая со стула штатными средствами языка 1С. :unsure:
  9. TopicStarter Overlay
    Зайка
    Offline

    Зайка

    Регистрация:
    20 апр 2006
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    это все понятно, ч/з глоб. модуль - но у меня 8 баз. Некоторые базы обслуживаются другими программистами, я за всем уследить не могу. Хотелось бы попробовать другими средствами. Может знаешь как работает метод CloseLocalProcesses. Просто кроме языка 1с я не программирую не на одном языке, но очень необходимо обойтись тем что бы не затрагивать глоб. модуль. И еще один вопросик - (к ответу от 21.04.06) (UnloadToFile=n:\backups\Daily\base.zip) как сделать чтобы вместо base.zip получилось base20060421.zip
  10. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Пошаманим, подумаем :)

    Ко второму вопросу: боюсь, что это тяжело. Не уверен, что средствами 1С предусмотрено проставление даты/времени. Поэтому глубоко копать не стал и обошелся средствами winrar'а.
    Но вопрос тоже интересный - надо посоображать.
  11. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    К вопросу о выкидывании: наткнулся на скриптик. Завершает все процессы "1cv7s.exe" внутри домена.
    Кажется, это то, что Вам нужно?
    У меня отрабатывает. Запускать перед началом бэкапа.

    Взято здесь: script-coding.info

    Кстати, там же скрипт по копированию бэкапа в соответствующие папки по дням недели.

    Мне-то проще - все конфигурации, с которыми работаю, далеко не типовые, поэтому могу себе позволить и изменения в глобальном модуле... А про бухгалтерию просто помню.

    Вложения:

    • Processes1C.zip
      Размер файла:
      1,6 КБ
      Просмотров:
      11.165
  12. Гость
    Offline

    Гость Гость Гость

    Добрый день ;)
    Помагите пожалуйста, нужно сделать так, чтобы копии архивов базы сохранялись в отделюную папочку, знаю это можна реализовать батником, только как я пока не понял... Помагите студенту, буду рад услышать любые ответы :unsure:
  13. Гость
    Offline

    Гость Гость Гость

    У меня есть хороший написанный скрипт по архивам баз 1С (пакетный режим), недельное сохранение, кому интересно могу выслать
  14. TopicStarter Overlay
    Зайка
    Offline

    Зайка

    Регистрация:
    20 апр 2006
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    У меня есть хороший написанный скрипт по архивам баз 1С (пакетный режим), недельное сохранение, кому интересно могу выслать
  15. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Сама научилась и написала или взяла где? ;)
  16. АндрейК
    Offline

    АндрейК Гость Гость

    У меня 4 базы выгрузка происходит каждый день в заданое время + выгружаются в архив все Doc с сервера и все делает Гендальф Хрантиель 5 (Сервер) (1с совместимо) есть и локальная версия

    Можно организовать еще и сразу на на CD
    //c:\progra~1\winrar\winrar.exe u -r -sfx -rr2 -m5 -mdg -x*.cdx -x*.zip -agA C:\ARCHIV\db_ c:\1Cv77.Dat\DB
    del e:\*.* /y
    NeroCmd.exe --write --drivename D --real --tao --title ARCHIV --iso ARCHIV --iso-mode2 --close_session --detect_non_empty_cdrw C:\ARCHIV\*.* --force_erase_cdrw
    //
    Провере работает

    Если надо мой seismo@subr-sual.ru :unsure:
  17. Gloomer
    Offline

    Gloomer

    Регистрация:
    12 авг 2006
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    А где данную прогу можно скачать? Поискал в инете - прямых ссылок нет, производители хотят 140$
  18. Роман
    Offline

    Роман Гость Гость

    Делал так, может кому будет интересно, скрипт на моем компе, выкачивает базу с компа бухгалтера, запускается по шедулеру

    Код:
    */
    
    <?
    global dhost, shost, dir_name, destination;
    
    shost="//TRAD-Aquarium/1СBases/Account/Г"; //Откуда качаем
    dir="";  //Имя директории для скачивания
    dhost="//SRV/backup-1c/"; //Куда качаем
    dir_name=date("d.m.y"); //Получаем имя папки, состоящее из даты
    mkdir(dhost."/".dir_name); //Создаем на получателе папку
    destination=dhost."/".dir_name."/";
    
    copydir(shost,"");
    copydir(shost,"ExtDb");
    copydir(shost,"ExtForms");
    copydir(shost,"SYSLOG");
    copydir(shost,"NEW_STRU");
    
    function copydir(dir_str,d_name)
    {
    num=0;
    mkdir(GLOBALS["destination"]."/".d_name);
    copydir_temp=opendir(dir_str."/".d_name);
    while(file=readdir(copydir_temp)) {
    if((file != ".") && (file != "..")) {
    num++;
    copy(dir_str."/".d_name."/".file,GLOBALS["destination"].d_name."/".file);
    }
    }
    logs("Из d_name записано num файлов");
    }
    function logs(str)
    {
    log_file=fopen("c:/temp/backup.log","a+t");
    if(!log_file) echo("Error open log file");
    fwrite(log_file,date("d.m.y-H:i:s")." - strn");
    fclose(log_file);
    }
    ?>
    
    
  19. alexnoviy
    Offline

    alexnoviy

    Регистрация:
    3 окт 2006
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    А возможно ли сделать автоматическую выгрузку/сохранение только информационной базы?
    (аналогично как в конфигураторе "Администрирование" - "Сохранить данные..."/"Выгрузить данные")
    1С v7.7
  20. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Вы тему сначала читали или только последнее сообщение?
    Читайте сообщение от 21.4.2006, 15:03 Там как раз это и описано

Поделиться этой страницей