bat-файл для копирования с FTP *.cfu и обновления 1С

Батник для загрузки с FTP файла обновления 1С (*.cfu), создания резервной копии и обновления 1С.

Пример батника для загрузки с 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%

Использование этого кода ТОЛЬКО на Ваш страх и риск. Специалист должен самостоятельно понимать его смысл и выполняемые действия.

2 Comments

  1. МимохожийОднако

    А некоторым нравится обновлятор

    Reply
  2. pyrkin_vanya

    (1)Да это по-старинке помнится мне делалось))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *