ЭТО СТАТЬЯ ЕСТЬ в АРХИВЕ
Архив баз 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)
Поясним наши действия на этом рисунке:
- Запускаем из меню «Пуск» в режиме «Запуск программы» CMD
- Переходим к папке C:\Program Files\1cv82 командой (1)
- Набираем Dir (2) и смотрим (3)
- Записали (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