Здравствуйте!
Пыталась написать батничек на копирование БД 1С. Получилось что-то типа:
chcp 1251
"C:\Program Files\7-Zip\7z.exe" a -t7z "I:\Архив\База 1С7.7\backup77-Ъte%.7z" -mx3 " E:\Базы\База 1С7.7" -ssw
@echo off
pause
Проблема в одном: архив, полученный таким способом в 10 раз превышает размер архива, полученного через стандартные средства сохранения данных: Конструктор-Сохранить данные.
Заметила, что последний сохраняет лишь файлы с определенным расширением. Т. е. для восстановления данных ему нужны лишь определенные типы файлов? В таком случае, как подкорректировать батничек так, чтобы он сохранял файлы по "маскам" или, в идеале, в теневом режиме копировал через конструктор 1С?
Другие языки программирования и технологии
Теневое резервное копирование 1C v7,7
Такое «теневое копирование» годится только когда с базой никто не работает. Если же с базой кто-то работает – данные попавшие в архив будет несогласованные – пользователь в момент копирования поменял файл DH1234 и _1SJOURN, а архиватор уже упаковал только один из файлов.
С такого архива нельзя восстановиться.
Стандартное средство «сохранить» запишет в архив необходимый минимум - *.dbf (данные) ; *.md, *.dd (конфигурация) и папка userdef (пользователи) . Этого достаточно для восстановления (первый запуск монопольно) . Но при условии, что с базой в момент копирования никто не работает.
А еще бы неплохо сохранить внешние отчеты (папка ExtForms).
Полноценное копирование – выгрузка данных; может запускаться скриптом.
отличие пунктов меню Конфигуратора "Сохранить данные" и "Выгрузить данные"
Сам пользуюсь таким:
* Выгрузит через Режим Конфигуратора штатными средствами "Выгрузить", архив положит в нужную папку, имя файла = дата-время.
* Надо чтобы все вышли из базы.
@echo off
rem Надо установить только следующие значения:
rem arh - путь к папке и имя файла выгрузки без расширения ".zip"
rem base - путь к базе 1С.
rem instr - файл настроек выгрузки 1С (Формируется автоматически. Только задай имя. )
rem out - журнал выгрузки 1С.
rem user - пользователь базы 1С под которым запускается выгрузка данных.
rem pas - его пароль.
rem ВСЕ ПУТИ И ИМЕНА ФАЙЛОВ - ТОЛЬКО АНГЛИЙСКИМИ БУКВАМИ И ЦИФРАМИ или в кодировке 866.
set bname=База
set bpath=I:\Архив\База 1С7.7\backup77\
set obpath=E:\Базы\База 1С7.7\
set user=Администратор
set pas=Пароль
set arh=%bpath%%bname%_
set obase=%obpath%%bname%\
set base=%obpath%%bname%\
set instr=Unload%bname%.txt
set out=Reg%bname%.txt
set d=Ъte: =%
set d=%d:.=-%
set t=%Time%
set t=%t::=.%
set t=%t:,=.%
set t=%t: =0%
set d=%d%=%t%
rem copy /Y "%obase%usrdef\users.usr" "єse%usrdef\users.usr"
rem формируем файл с настройкой выгрузки из 1С
if "%STDOUT_REDIRECTED%" == "" (
set STDOUT_REDIRECTED=yes
cmd.exe /c %0 %* >%instr%
exit /b %ERRORLEVEL%
)
echo [General]
echo Output=%~dp0%out%
echo Quit=Y
echo UnloadData=Y
echo [UnloadData]
echo UnloadToFile=%arh%
echo IncludeUserDef=Y
rem выгружаем
"C:\Program Files\1Cv77\BIN\1CV7s.exe" CONFIG /SQL /L"%user%" /D"єse%" /U"%~dp0" /N"%user%" /P"%pas%" /@"%~dp0%instr%"
rem переименовываем
move /Y "%arh%.zip" "%arh%%d%.zip"
exit
С такого архива нельзя восстановиться.
Стандартное средство «сохранить» запишет в архив необходимый минимум - *.dbf (данные) ; *.md, *.dd (конфигурация) и папка userdef (пользователи) . Этого достаточно для восстановления (первый запуск монопольно) . Но при условии, что с базой в момент копирования никто не работает.
А еще бы неплохо сохранить внешние отчеты (папка ExtForms).
Полноценное копирование – выгрузка данных; может запускаться скриптом.
отличие пунктов меню Конфигуратора "Сохранить данные" и "Выгрузить данные"
Сам пользуюсь таким:
* Выгрузит через Режим Конфигуратора штатными средствами "Выгрузить", архив положит в нужную папку, имя файла = дата-время.
* Надо чтобы все вышли из базы.
@echo off
rem Надо установить только следующие значения:
rem arh - путь к папке и имя файла выгрузки без расширения ".zip"
rem base - путь к базе 1С.
rem instr - файл настроек выгрузки 1С (Формируется автоматически. Только задай имя. )
rem out - журнал выгрузки 1С.
rem user - пользователь базы 1С под которым запускается выгрузка данных.
rem pas - его пароль.
rem ВСЕ ПУТИ И ИМЕНА ФАЙЛОВ - ТОЛЬКО АНГЛИЙСКИМИ БУКВАМИ И ЦИФРАМИ или в кодировке 866.
set bname=База
set bpath=I:\Архив\База 1С7.7\backup77\
set obpath=E:\Базы\База 1С7.7\
set user=Администратор
set pas=Пароль
set arh=%bpath%%bname%_
set obase=%obpath%%bname%\
set base=%obpath%%bname%\
set instr=Unload%bname%.txt
set out=Reg%bname%.txt
set d=Ъte: =%
set d=%d:.=-%
set t=%Time%
set t=%t::=.%
set t=%t:,=.%
set t=%t: =0%
set d=%d%=%t%
rem copy /Y "%obase%usrdef\users.usr" "єse%usrdef\users.usr"
rem формируем файл с настройкой выгрузки из 1С
if "%STDOUT_REDIRECTED%" == "" (
set STDOUT_REDIRECTED=yes
cmd.exe /c %0 %* >%instr%
exit /b %ERRORLEVEL%
)
echo [General]
echo Output=%~dp0%out%
echo Quit=Y
echo UnloadData=Y
echo [UnloadData]
echo UnloadToFile=%arh%
echo IncludeUserDef=Y
rem выгружаем
"C:\Program Files\1Cv77\BIN\1CV7s.exe" CONFIG /SQL /L"%user%" /D"єse%" /U"%~dp0" /N"%user%" /P"%pas%" /@"%~dp0%instr%"
rem переименовываем
move /Y "%arh%.zip" "%arh%%d%.zip"
exit
Сергей Шевченко
Так и получают "Мудреца"? Пишут что попало????Не знаете - не пишите.
Сергей Шевченко
И все же, как будет выглядеть скрипт..? Как показать ему самому запускать конфигуратор, ввести соответствующие логин/пароль, выполнить сохранение и, в соответствии с предложенной Вами статьей, выгрузку данных?
Похожие вопросы
- Нужен акт сверки для 1с V7.7 торговля и склад
- Помогите создать резервную копию ОС
- Насколько безопасно хранение данных на флешке?? Я храню все резервные данные с моего ноута на флешке 32 гб!
- Как Win 7 научить не спрашивать права администратора при установке софта и копировании файлов???
- Копирование файлов по сети через *.bat (см.вн.)
- я скачал ArtMoney SE v7.37 теперь как взломать и поставить деньги много много подробно плиз ну плиз если я такой тупой
- У меня exe файл, там текст, но он защищен от копирования как мне можно скопировать этот текст?
- Как запретить копирование ссылок в буфер обмена при копирование текста с сайтов?
- С++, как вызвать конструктор копирования из другого класса?
- Как понять правельно "Программист 1C" ?