Пример батника для загрузки с FTP файла обновления 1С (*.cfu), создания резервной копии и обновления 1С.
Использование: каждый может по-своему применить его. У меня запускается задание Windows с запуском этого батника.
Моя конфигурация самописная на поддержке. Но не думаю, что типовые чем-то отличаются, ибо обновления одинаковые.
Для работоспособности используется cURL.
cURL — свободная (распространяемая по лицензии MIT), кроссплатформенная служебная программа командной строки для копирования файлов по различным протоколам с синтаксисом URL, автором которой является Daniel Stenberg. Программа cURL может автоматизировать передачу файлов или последовательность таких операций. Например, это хорошее средство для моделирования действий пользователя в веб-обозревателе.
Программа поддерживает протоколы: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, File: , LDAP а также POP3, IMAP и SMTP. Также cURL поддерживает сертификаты HTTPS, методы HTTP POST, HTTP PUT, загрузку на FTP, загрузку через формы HTTP.
Полный код батника:
rem установиим переменные с адресом FTP, логином и паролем
rem ********Адрес FTP***********
set URLFTP=192.168.1.1
rem ********Логин и пароль FTP***********
set loginpassFTP=ftp_user:ftp_passwod
rem ********Папка на FTP для текущего отделения***********
set FTPLocation=test
rem ********Логин и пароль к 1С***********
set User="Admin"
set Password="123456"
rem ********Путь к папке с логами и бекапами***********
set LogLocation=D:1CLog\r
set BackupLocation=D:1CBackup\r
rem ********На случай, если нужно будет создать папки с текущей датой. Тогда заменить предыдущие строки на эти***********
rem set LogLocation=D:1CLog\%VDATE%\r
rem set BackupLocation=D:1CBackup\%VDATE%\r
rem ********Все имена необходимо указывать на английском языке***********
rem ********Устанавливаем переменные дата для создания папок***********
@chcp 1251
set VDATE=%date%
rem ********Устанавливаем переменные дата и время. Т.е. дата и время разбираются на части. Затем собираются и составляется по кускам***********
set VDATETIME=%DATE: =0% %TIME: =0%
for /f "tokens=1-7 delims=/-:., " %%a in ( "%VDATETIME%" ) do (set VDATETIME=%%a.%%b.%%c_%%d_%%e)
rem *****************1 ЭТАП*********************
rem забираем с FTP-сервера файл обновления
d:1Ccurl.exe ftp://%loginpassFTP%@%URLFTP%/Update/Update.cfu -o d:1CUpdateUpdate.cfu
rem *****************2 и 3 ЭТАП*********************
rem ********Прописываем путь к файлу. К папке COMMON писать нельзя. Почему то не работает***********
set EnginePath="C:Program Files1cv88.3.3.687in1cv8.exe"
rem ********Путь к файлу с обновлением***********
set CfuLocation="D:1CUpdateUpdate.cfu"
rem ********Путь к папке с базой, если она файловая конечно же. Если серверная, то приписать имя кластера и поменять параметр конфига на S. CONFIG /S***********
set Cluster="D:1CBase"
rem ********Если требуется создать папки с датой, то просто разкомментировать***********
rem MD "D:1CBackup\%VDATE%"
rem MD "D:1CLog\%VDATE%"
rem ********Указать имя базы как в окне выбора информационной базы. Можно по русски. По какой то причине school_46 не проканал(((((***********
set BaseName=TD_SPP
rem ********Делаем бекап базы***********
start "" /wait %EnginePath% CONFIG /F %Cluster%/%BaseName% /N %User% /P %Password% /DumpIB %BackupLocation%%FTPLocation%_%BaseName%_%VDATETIME%.dt /Out %LogLocation%%FTPLocation%_%BaseName%_%VDATETIME%_Backup.log
rem ********Копируем лог бекапа и сам бекап на FTP***********
d:1Ccurl.exe -T "%LogLocation%%FTPLocation%_%BaseName%_%VDATETIME%_Backup.log" ftp://%URLFTP%/Log/ --user %loginpassFTP%
d:1Ccurl.exe -T "%BackupLocation%%FTPLocation%_%BaseName%_%VDATETIME%.dt" ftp://%URLFTP%/Backup/ --user %loginpassFTP%
rem ********Выполняем обновление***********
start "" /wait %EnginePath% CONFIG /F %Cluster%/%BaseName% /N %User% /P %Password% /UpdateCfg %CfuLocation% /UpdateDBCfg /Out %LogLocation%%FTPLocation%_%BaseName%_%VDATETIME%_Update.log
rem ********Копируем лог обновления на FTP***********
d:1Ccurl.exe -T "%LogLocation%%FTPLocation%_%BaseName%_%VDATETIME%_Update.log" ftp://%URLFTP%/Log/ --user %loginpassFTP%
Использование этого кода ТОЛЬКО на Ваш страх и риск. Специалист должен самостоятельно понимать его смысл и выполняемые действия.
А некоторым нравится обновлятор
(1)Да это по-старинке помнится мне делалось))