из командной строки заставить 1С:Предприятие сделать выгрузку базы данных
C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /F D:\УпрТорг /N ИмяПользователя /P Пароль /DumpIB c:\имя.dt
1) Как узнать что все прошло успешно? только наличием файла в указанной папке?
2) Можно ли как то прописать что бы конфигуратор открывался и был виден ход процесса?
Можно ли как то прописать что бы конфигуратор открывался и был виден ход процесса?
Надо заметить, что и в интерактивном режиме выгрузки конфигурации ни фига не видно хода процесса! Так что можно считать, что пункт 2) выполнен за отсутствием необходимости. Хотя, можно попытаться оценивать ход процесса по текущему размеру файла *.dt. Однако, и на этом пути лежат свои грабли. Дело в том, что файловый вариант начинает выгрузку данных в *.dt сразу после запуска процесса и выгружает, практически, равномерными порциями, а, вот, клиент-серверный вариант сначала готовит чего-то там у себя в мозгах, и на это уходит значительная доля времени, а потом "выстреливает" dt-хой в файл.
(1) Вы сделайте батник - в первой строчке запустите обработку, которая разорвет все соединения, а второй командой запустите выгрузку. Потому что не пойти выгрузка может только из-за наличия пользователей или зависших соединений. А так достаточно будет 1 раз убедиться в работоспособности.
(8) Ошибки в платформе и в конфигурации. Я встречался с такой ситуацией, когда dt выгружаются с описанием: "блокировка данных сессией". При этом указывает имя компьютера с которого запущен процесс выгрузки и гарантировано ни одного пользователя в сети нет. Так что чудес на этом свете много.
Да вот, хотя бы один из примеров: http://forum.infostart.ru/forum14/topic7631/
Правда при этом следует заранее продумать, как убедить к примеру главбуха, что сделать резервную копию было важнее чем ее оставленное на ночь перепроведение документов...
ИМХО лучше делать копии без обрубания пользоватей, в клиент-серверной базе средствами sql, в файловой - копированием и архивированием папки с базой. Или использовать блокировку соединений. При этом копия создастся только если удалось выгнать пользователей.
Вот, не помню кто из пользователей выкладывал пример батника:
set v8exe="C:\Program Files\1cv82\8.2.16.362\bin\1cv8.exe"
set DataBaseName="D:\1C\ЗУП"
set DataBase=/F %DataBaseName%
set AdminUser=/N AdminLogin /P AdminPassword
set FileInformation=D:\1C\error_backup.txt
set filebak="D:\1C\%date%.dt"
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /C"ЗавершитьРаботуПользователей" /Out%FileInformation% -NoTruncate /DisableStartupMessages
start "" /wait %v8exe% CONFIG %DataBase% %AdminUser% /DumpIB %filebak% /UC"КодРазрешения" /Out%FileInformation% -NoTruncate
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /C"РазрешитьРаботуПользователей" /UC"КодРазрешения" /Out%FileInformation% -NoTruncate /DisableStartupMessages
(4) Проверяй наличие файла *.dt и логи, как правильно отмечено было в (2). А для того, чтобы узнать, что что то делается, то проверять процессы. И опять, на этом пути лежат грабли. В файловом варианте процесс 1С-ки шуршит без перерыва, а в клиент-серверном - он молчит, он подготовит запрос для сервера 1С и молчит, а сервер наяривает. Поэтому в файловом варианте достаточно убедиться в активности процесса клиента 1С (и то как их выбрать, если не один процесс, а dt выгружается из одного, то какой?), а в клиент-сервном надо контролировать подключение к информационной базе из конфигуратора, есть там пара параметров подключения (не помню наизусть каких), которые при выгрузке dt постоянно меняются. Сам иногда пользуюсь таким способом, но так сказать, интерактивно.
Внешняя обработка должна рвать соединения. Запускается с таким параметром не конфигуратор, а предприятие.
То есть алгоритм такой - запускаем предприятие с /Execute, делаем задержку в несколько секунд, завершаем процесс, запускаем конфигуратор в режиме выгрузки.