gifts2017

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

Опубликовал V ELISEEV (Elis_VP) в раздел Администрирование - Архивирование (backup)

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

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

 

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

Введение

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

 

"C:\Program Files\1cv82\%Bep1C%\bin\1cv8.exe"  DESIGNER
           /SSERVER1\Src
 /NАДМИН /P7913
 /DumpIBDump.dt
 /Visible

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

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


 

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

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

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

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

C:\MyDocs\1C\ПРАВКА\_АРХИВ_

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

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

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

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

  1. Запускаем из меню «Пуск» в режиме «Запуск программы» CMD
  2. Переходим к папке C:\Program Files\1cv82 командой (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:\1C\1C\Пустая"  @echo ^   ... копируем файлы:                                              .
      if Exist "I:\1C\1C\Пустая"  xcopy "I:\1C\1C\Пустая\*.*" "%dest%" /S
      if Exist "I:\1C\1C\Пустая"  @echo ^                                                                    .
:fi08

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

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


 

"C:\Program Files\1cv82\%Bep1C%\bin\1cv8.exe" DESIGNER
                /SSERVER1\%src%
 /NАДМИН /P7913
 /DumpIB%Dump%.dt
 /Visible

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


"C:\Program Files\1cv82\%Bep1C%\bin\1cv8.exe" DESIGNER

           /F%dest%

           /NАДМИН /P7913

           /RestoreIB%Dump%.dt

           /Visible

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


 

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

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

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

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

 

Рис.2

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

 

Рис.3

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

set APX=USLz

 

 

Рис. 4

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

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

@echo off
@CLS
@echo ^  ^[]-------------------------------------------------------------------------------^[]
@echo ^   ^| Создание архивов ВСЕХ информационных баз 1С 8.2                               ^|
@echo ^   ^|                                                                               ^|
@echo ^   ^| Дата:%DATE%  ^ ^ ^ ^                                          (с) ООО КрайСС  ^|
@echo ^  ^[]-------------------------------------------------------------------------------^[]
SET CPAM=Y
SET APXIB=I:\1C\Фирма 1С\1С 8.2\АРХИВ
SET LogS=C:\MyDocs\1C\_Log_.txt
SET ErrC=C:\MyDocs\1C\.Errors.cmd
SET OnErr=C:\MyDocs\1C\OnError.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:\MyDocs\1C\" goto fi07
   md "C:\MyDocs\1C\"
:fi07
if Exist "%LogS%"        DEL   "%LogS%"
@echo ^@echo Off                                                     >%ErrC%
@echo ^@echo.  ^>^>%LogS%    >>%ErrC%
@echo ^@echo ======================================================================================== ^>^>%LogS%    >>%ErrC%
@echo ^@echo.  ^>^>%LogS%    >>%ErrC%
@echo ^@echo  Работа над ошибками при "Создании архива 1С 8.2"                       (с) ООО КрайСС   ^>^>%LogS%    >>%ErrC%
@echo ^@echo.  ^>^>%LogS%    >>%ErrC%
@echo ^@echo ======================================================================================== ^>^>%LogS%    >>%ErrC%
@echo ^@echo.  ^>^>%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 ^   Путь к копии ИБ:  %APXIB%\
@echo ^  Путь к АРХИВУ ИБ:  D:\1C архив\АРХИВ 1С8\
@echo ^                                                                    .
 
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:\MyDocs\1C\Зик_Услуги                               

                  :  \\SERVER1\Install\1C\Фирма 1С\1С 8.2\АРХИВ\                             

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

        Версия 1С8:  8.2.16.352                              

----------------------------------------------------------------------------------------

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

----------------------------------------------------------------------------------------

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

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

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

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

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

----------------------------------------------------------------------------------------

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

----------------------------------------------------------------------------------------

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

 

Скачать файлы

Наименование Файл Версия Размер
Cmd-пакеты 49
.zip 750,94Kb
24.09.12
49
.zip 750,94Kb Скачать
Новая версия архива (УЖЕ с "выгонялкой") 52
.zip 754,70Kb
02.10.12
52
.zip 754,70Kb Скачать
Статья 9
.pdf 759,37Kb
24.09.12
9
.pdf 759,37Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Игорь Воронкин (Воронкин) 22.09.12 16:27
А чуть-чуть расширить описание обработки можно ???
Наименование архива, расширение и т.п....
2. Дмитрий Елисеев (w-divin) 22.09.12 18:59
а как обстоят дела с активными сессиями, фоновыми заданиями и т.п. ???
3. Сергей Захаров (zse) 23.09.12 13:40
Cobian Backup - дешево и сердито
МимохожийОднако; zhleonid8; +2 Ответить 2
4. Брест Беларусь (zhleonid8) 23.09.12 19:28
(3) zse, согласен, а ещё проще бат файл в назначенные задания
5. Дмитрий Елисеев (w-divin) 24.09.12 10:04
(3) zse
судя по скрину тут делается выгрузка средствами 1С
(4) zhleonid8
вопрос про активные сессии, фоновые задания и т.п. остался нераскрытым...
6. V ELISEEV (Elis_VP) 24.09.12 14:56
(1) Воронкин, Чуть-чуть расширил описание
Прикрепленные файлы:
Архив баз 1С8.pdf
7. V ELISEEV (Elis_VP) 24.09.12 14:59
(2) w-divin, Да. Вы правы!! Смотрите статью в прикрепленном файле. В этой пупликации описана идея. Рабочая, но идея
8. V ELISEEV (Elis_VP) 24.09.12 15:06
(4) zhleonid8, Так и сделано. Это - просто "ИДЕЯ". Для рабочей версии не хватает - "Выгонялкии 1С" для фоновых заданий. Пока на практике вынужден делать повтор для "сбойных" баз
9. Игорь Воронкин (Воронкин) 25.09.12 18:24
(6) Elis_VP, Спасибо за описание, но как пользовался другими автоматическими архиваторами, так и пока буду. Они логически закончены.
10. evgen1977 (musatov1c.ru) 29.09.12 16:36
Да выгонялка сюда бы очень не помешала. А идея хорошая. На мой взгляд архивирование лучше настраивать руками а не готовым инструментом. Хотя... В общем, Автору респект. Творческих и трудовых успехов :)
11. Vlad (KillHunter) 29.09.12 18:04
хороший вариант, автору респект!
12. V ELISEEV (Elis_VP) 02.10.12 10:25
(10) evgen1977, Добавил в новый вариант АРХИВА уже с выгонялкой
13. V ELISEEV (Elis_VP) 02.10.12 12:52
(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 - простое описание (добавил к этому сообщения)
Прикрепленные файлы:
Архив баз 1С8.pdf
14. evgen1977 (musatov1c.ru) 03.10.12 21:48
Ура. Отлично!!! Все, никаких программ. Только самостоятельная настройка. Обязательно попробую на клиенте :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа