Создание архива информационной базы

Архив баз 1С8 — это очень просто. Нажал на иконку и архив готов. В папке архива — всегда до 90 версии с указанием даты записи. И все это — простой набор cmd-пакетов.

ЭТО СТАТЬЯ ЕСТЬ в АРХИВЕ 

 

Архив баз 1С8 — это очень просто!?

Введение

Создать архив баз данных в 1С7.7 было очень просто с помощью программки LockAndCopy Алексея Калядина из ООО «Активные Торговые Технологии» г. Москва. В 1С8  этот фокус не проходит: нет DBF-файлов, поэтому нужно пользоваться для создания архива командой:

 

"C:Program Files1cv82\%Bep1C%in1cv8.exe"  DESIGNER
           /SSERVER1Src
 /NАДМИН /P7913
 /DumpIBDump.dt
 /Visible

где         SERVER1 – имя кластера серверов 1С:Предприятие 8,
              Src         - имя информационной базы в кластере,
              АДМИН   - пользователь 1С8 с правами администратора базы
              7913      - его пароль для доступа базе 1С
              Dump.dt  - файл с архивом базы 1С с сервера,

А для записи локальной копии базы на Ваш ПК из файла  Dump.dt следующей командой:


 

"C:Program Files1cv82\%Bep1C%in1cv8.exe"  DESIGNER
               /FDest  
/NАДМИН /P7913
/RestoreIBDump.dt
/Visible
 
где      Dest      - имя папки локальной копией информационной базы на ПК,
           АДМИН    - пользователь 1С8 с правами администратора базы
           7913      - его пароль для доступа базе 1С
           Dump.dt  - файл с архивом базы 1С с сервера,

Эти две команды — ОСНОВА пакета cmd-файлом для создания архивов баз данных (см.файл Save_C8.cmd )

Настройка пакета Save_C8.cmd

После сохранения пакета на Ваш ПК его нужно разархивировать в любую папку. У нас это папка

C:MyDocs1CПРАВКА\_АРХИВ_

Затем открываем файл Save_C8.cmd и находите следующие две строки

SET APXIB=\SERVER1Install1CФирма 1С1С 8.2АРХИВ
SET Bep1C=8.2.16.352

В первой строке после символа «=» указываем путь к папке архиву на сервере. В этой папке будем хранить последнюю копию архива. А во второй – номер версии из названия папки с 1С8 (Смотри Рис. 1)

Поясним наши действия на этом рисунке:

  1. Запускаем из меню «Пуск» в режиме «Запуск программы» CMD
  2. Переходим к папке C:Program Files1cv82 командой (1)
  3. Набираем Dir (2) и смотрим (3)
  4. Записали (3) и набрали Exit

PS.  Это один из способов определить нужный нам номер версии. Есть куча других, но указал этот – работает всегда и везде.

 

Рис. 1

Если у Вас НЕ на всех машинах, где будет использоваться этот пакет, ЕСТЬ диск D:,  то заменить эго в файле на C: НО ЛУЧШЕ, КОГДА архив баз 1С на отдельном диске

Далее находим строки, где формируется ПУСТАЯ база 1С8 для локальной копией информационной базы на ПК при ее отсутствии:


if Exist "%dest%" goto fi08
     @echo Создаем папку %dest%  ...
      md "%dest%"
      if Exist "I:1C1CПустая"  @echo #k8SjZc9Dxk   ... копируем файлы:                                              .
      if Exist "I:1C1CПустая"  xcopy "I:1C1CПустая*.*" "%dest%" /S
      if Exist "I:1C1CПустая"  @echo #k8SjZc9Dxk                                                                    .
:fi08

Заменить путь к пустой базе 1С папка «I:1C1CПустая» на сервере на Вашу папку с ПУСТОЙ базой. Если не знаете, как сделать ПУСТУЮ базу, то скопируйте из архива. ЭТОТ КУЧОК ИЗ СЕМИ СТРОК  НУЖЕН для создания папки под копию базы на ПК-архиве.

 И ПОСЛЕДНИЙ ШАГ ПО НАСТРОЙКЕ ПАКЕТА Save_C8.cmd – указать имя (в файле АДМИН) и пароль (7913) администратора баз данных 1С  плюс имя кластера 1С(SERVER1). Т.е. нужно заменить эти параметры своими в следующих строках (Смотрите синтаксис этих команд во введении)


 

"C:Program Files1cv82\%Bep1C%in1cv8.exe" DESIGNER
                /SSERVER1\%src%
 /NАДМИН /P7913
 /DumpIB%Dump%.dt
 /Visible

Это одна строка пакета без переноса строк создает АРХИВ


«C:Program Files1cv82\%Bep1C%in1cv8.exe» DESIGNER

           /F%dest%

           /NАДМИН /P7913

           /RestoreIB%Dump%.dt

           /Visible

А это вторая строка пакета для создания копии базы на ПК из файла АРХИВА


 

Создание рабочих пакетов

В папке с файлом Save_C8.cmd Вы можете найти файл с примером создания  архива ЗАРПЛАТЫ для фирмы ООО «Услуги» _ЗиК_Услуги_ООО.cmd.   Поясним назначение переменных этого пакета и где можно найти информацию:

@echo off
set src=USLZ2010
set Dump=ЗиК_Услуги
set Dest=C:MyDocs1CЗик_Услуги
set APX=USLz
 
call Save_C8 %1

Первая строка —  отключения режима отображения на экране информации о работе пакета  Вторая строка указано имя информационной базы в кластере 1С из настройки базы (Смотри Рис.2)

 

Рис.2

Третья строка указывает имя папки на Вашем ПК, где будет храниться копия рабочей базы

 

Рис.3

В четвертой строке указан префикс архива Вашей базы в папке-архиве

set APX=USLz

 

 

Рис. 4

Создаете нужное Вам количество  cmd-файлов с и ВСЕ ГОТОВО

Указанные пакеты копируем в нужное место на ПК и пишем последний cmd-файл,  если баз   1С очень много. И этот файл уже указываем в планировщике заданий.

@echo off
@CLS
@echo #k8SjZc9Dxk  #k8SjZc9Dxk[]-------------------------------------------------------------------------------#k8SjZc9Dxk[]
@echo #k8SjZc9Dxk   #k8SjZc9Dxk| Создание архивов ВСЕХ информационных баз 1С 8.2                               #k8SjZc9Dxk|
@echo #k8SjZc9Dxk   #k8SjZc9Dxk|                                                                               #k8SjZc9Dxk|
@echo #k8SjZc9Dxk   #k8SjZc9Dxk| Дата:%DATE%  #k8SjZc9Dxk #k8SjZc9Dxk #k8SjZc9Dxk #k8SjZc9Dxk                                          (с) ООО КрайСС  #k8SjZc9Dxk|
@echo #k8SjZc9Dxk  #k8SjZc9Dxk[]-------------------------------------------------------------------------------#k8SjZc9Dxk[]
SET CPAM=Y
SET APXIB=I:1CФирма 1С1С 8.2АРХИВ
SET LogS=C:MyDocs1C\_Log_.txt
SET ErrC=C:MyDocs1C.Errors.cmd
SET OnErr=C:MyDocs1COnError.cmd
 
if Exist "%ErrC%"        DEL   "%ErrC%"
if Exist "%OnErr%"       DEL   "%OnErr%"
 
PushD C:
if Exist "C:MyDocs" goto fi06
   md "C:MyDocs"
:fi06
if Exist "C:MyDocs1C" goto fi07
   md "C:MyDocs1C"
:fi07
if Exist "%LogS%"        DEL   "%LogS%"
@echo #k8SjZc9Dxk@echo Off                                                     >%ErrC%
@echo #k8SjZc9Dxk@echo.  #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo ======================================================================================== #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo.  #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo  Работа над ошибками при "Создании архива 1С 8.2"                       (с) ООО КрайСС   #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo.  #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo ======================================================================================== #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
@echo #k8SjZc9Dxk@echo.  #k8SjZc9Dxk>#k8SjZc9Dxk>%LogS%    >>%ErrC%
PopD
 
PushD D:
if Exist "D:1C архив" goto fi09
   md "D:1C архив"
:fi09
if Exist "D:1C архивАРХИВ 1С8" goto fi11
   md "D:1C архивАРХИВ 1С8"
:fi11
PopD
 
@echo #k8SjZc9Dxk   Путь к копии ИБ:  %APXIB%
@echo #k8SjZc9Dxk  Путь к АРХИВУ ИБ:  D:1C архивАРХИВ 1С8
@echo #k8SjZc9Dxk                                                                    .
 
if Not Exist "D:1C архивАРХИВ 1С8*.dt" goto error
  @echo Создаем копию ИБ : ...
  call Run_CMD _Авт_ККСС_ОАО
  call Run_CMD _Авт_КрайСС_ООО
  call Run_CMD _Бух_ККСС_ОАО
  call Run_CMD _Бух_ККСС_ООО
  call Run_CMD _Бух_КрайСС_ООО
  call Run_CMD _Бух_Крусар_ООО
  call Run_CMD _Бух_Услуги_ООО
  call Run_CMD _ЗиК_ККСС_ОАО
  call Run_CMD _ЗиК_ККСС_ООО
  call Run_CMD _ЗиК_КрайСС_ООО
  call Run_CMD _ЗиК_Крусар_ООО
  call Run_CMD _ЗиК_Услуги_ООО
  call Run_CMD _Тор_ККСС_ОАО
  call Run_CMD _Тор_ККСС_ООО
 
  if Exist "%ErrC%"        @rename "%ErrC%" OnError.cmd
 
  goto End
:error
  echo Ошибка программы или выход по требованию пользователя
:end
:Test_end

Выводы

Хотел коротко о главном – а получилось на 6 листах

Плюсы

1)       Просто – все делаем с помощью средств 1С и ОС MS Windows

2)       Можно создать  задание планировщику

3)       Есть отчет о ходе создания архива (Смотри ниже)

Минус

 Один,  но большой: НЕТ «выгонялки» для пользователей и фоновых заданий и т.п.

Планы

Написать и отладить примерно такой скрипт «выгонялку» на VBScript (Смотрите  идею у  Олега Филиппова в статье http://comol.livejournal.com/1614.html)

‘ Скрипт  удаляет Все  сеансы 1С

‘ Идея: Олег Филиппов

 

 Dim Connector

 Dim Agent

 Dim Cluster

 Dim WorkingProcess

 Dim Memory

 Dim Sessions

 Dim Session

 Dim iDuration

 

 Set Connector = CreateObject(«V82.COMConnector»)

 Set Agent = Connector.ConnectAgent(«tcp://1c8»)    ‘Имя сервера

 Set Cluster = Agent.GetClusters()(0)     ‘1 кластер в сервере

 Agent.Authenticate Cluster, «», «» 

 

 Set WorkingProcess = Agent.GetWorkingProcesses(Cluster)(0)  ‘1 Рабочий процесс в кластере

 

  Sessions = Agent.GetSessions(Cluster)

  For i = LBound(Sessions) To UBound(Sessions)

   Set Session = Sessions(i)    

   Agent.TerminateSession Cluster, session  

  next

 

Структура файла отчета  

========================================================================================

  Создание архива информ.баз 1С 8.2                                     (с) ООО КрайСС      

========================================================================================

 

    ПАРАМЕТРЫ ЗАПРОСА                                     

—————————————————————————————-

   Имя ИнфБазы 1С8:  USLZ2010                                 

     Файл выгрузки:  ЗиК_Услуги                               

   Путь к копии ИБ:  C:MyDocs1CЗик_Услуги                               

                  :  \SERVER1Install1CФирма 1С1С 8.2АРХИВ                             

    Архив базы 1С8:  USLz                                 

        Версия 1С8:  8.2.16.352                              

—————————————————————————————-

   ОПИСАНИЕ ВЫГРУЗКИ                                                                   

—————————————————————————————-

Создаем файл выгрузки ЗиК_Услуги …                     

Заменили имя файла на ЗиК_Услуги.dt0                           

Копируем файл ЗиК_Услуги в папку \SERVER1Install1CФирма 1С1С 8.2АРХИВ …          

Создаем копию ИБ в C:MyDocs1CЗик_Услуги из файла ЗиК_Услуги …     

Создаем архив  USLz_000.22.09.2012 …               

—————————————————————————————-

<<< Готово >>>    АРХИВ  ЗиК_Услуги                                                   

—————————————————————————————-

  Дата:22.09.2012  Время:21:55:41,75    

 

14 Comments

  1. Воронкин

    А чуть-чуть расширить описание обработки можно ???

    Наименование архива, расширение и т.п….

    Reply
  2. w-divin

    а как обстоят дела с активными сессиями, фоновыми заданиями и т.п. ???

    Reply
  3. zse

    Cobian Backup — дешево и сердито

    Reply
  4. zhleonid8

    (3) zse, согласен, а ещё проще бат файл в назначенные задания

    Reply
  5. w-divin

    (3) zse

    судя по скрину тут делается выгрузка средствами 1С

    (4) zhleonid8

    вопрос про активные сессии, фоновые задания и т.п. остался нераскрытым…

    Reply
  6. Elis_VP

    (1) Чуть-чуть расширил описание

    Reply
  7. Elis_VP

    (2) w-divin, Да. Вы правы!! Смотрите статью в прикрепленном файле. В этой пупликации описана идея. Рабочая, но идея

    Reply
  8. Elis_VP

    (4) zhleonid8, Так и сделано. Это — просто «ИДЕЯ». Для рабочей версии не хватает — «Выгонялкии 1С» для фоновых заданий. Пока на практике вынужден делать повтор для «сбойных» баз

    Reply
  9. Воронкин

    (6) Elis_VP, Спасибо за описание, но как пользовался другими автоматическими архиваторами, так и пока буду. Они логически закончены.

    Reply
  10. musatov1c.ru

    Да выгонялка сюда бы очень не помешала. А идея хорошая. На мой взгляд архивирование лучше настраивать руками а не готовым инструментом. Хотя… В общем, Автору респект. Творческих и трудовых успехов 🙂

    Reply
  11. KillHunter

    хороший вариант, автору респект!

    Reply
  12. Elis_VP

    (10) evgen1977, Добавил в новый вариант АРХИВА уже с выгонялкой

    Reply
  13. Elis_VP

    (9) Игорь. Я Вас не понял?

    ДОБАВИЛ НОВЫЙ ЧУТОК ДОРАБОТАННЫЙ ВАРИАН АРХИВА с выгонялкой

    ПОКА ОПИСАНИЯ — НЕТ (Нет времени)

    Состав АРХИВА

    _1_Save_1C8.cmd — пакет для первой попытки создать АРХИВ 1С

    _2_ON_ERROR.cmd — вторая попытка уже удалением USERов из 1С

    _ЗиК_Услуги_ООО.cmd — пример описания базы данных (У нас таких пакетов — 14)

    CloseDB.vbs — скрит для удаления USERов из 1С

    Run_CMD.cmd — постенький доп пакет (не требует настройки)

    Save_C8.cmd — ЯДРО ПАКЕТА

    Архив баз 1С8.pdf — простое описание (добавил к этому сообщения)

    Reply
  14. musatov1c.ru

    Ура. Отлично!!! Все, никаких программ. Только самостоятельная настройка. Обязательно попробую на клиенте 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *