'*************************************************************************
' File: AE_1C_start.vbs
' Author: Romul Griffon
' Pre-author: Sml (//infostart.ru/profile/17760/) //infostart.ru/projects/2169/
'
' Проверяет получены ли автообмены (АО)
' по списку баз из файла AE_1C_bases_setup.lst (передаваемому в качестве параметра скрипта при его запуске)
' подгружает их и отправляет ответные АО
'*************************************************************************
Механизм работы АО:
1. Передаем в качестве параметра скрипту файл (например, AE_1C_bases_setup.lst) со строками,
каждая из которой опрделяет параметры АО для конкретной указанной в этой строке базы.Все параметры
в строке разделяются точкой с запятой.
Структура строки в файле следующая:
Входящий_zip_файл_для_АО;Исходящий_zip_файл_из_АО;Путь_к_базе_1С_с_завершающим_слешем;Логин_пользователя;Пароль_пользователя;Путь_к_пакетному_файлу_1С;Почтовый_адрес_получателя_исходящего_файла;Название_аккаунта_в_TheBat!_через_который_будем_отправлять
2. Приходит АО по почте. В качестве почтового клиента используется TheBat!. Файл с помощью сортировщика писем
сохраняется в выбранной папке (например, в той, в которой лежит сам скрипт-у меня так и сделано). Если
файл не пришел, скрипт переходит к след. базе.
3. TheBat! сортирует письмо с помощью сортировщика писем (нужно настроить правило сортировки) в нужную папку и
сохраняет файл АО в каталог (например, в той, в которой лежит сам скрипт)
4. Скрипт обрабатывает первую базу из файла (переданного в качестве параметра скрипту при запуске). Проверяет,
есть ли в реестре упоминание этой базы (прописана ли эта база в окне запуска 1С на локальной машине). Если
база не прописана, скрипт не запускает 1С и переходит к след. базе.
5. Если входящий АО найден и его дата новее исходящего файла (оставшегося с прошлой выгрузки этой базы),
то стартует 1С с пакетным файлом. В пакетнике прописано принять и выгрузить АО. Создается новый исходящий
файл (zip-архив).
6. Скрипт ждет завершения работы 1С с текущим пакетником и после завершения запускает отправку почты на адрес
отправителя с прикрепленным новым исходящим файлом через TheBat!. Ждет некоторое время для завершения отправки.
7. Далее, когда письмо отправлено, скрипт перемещает входящий файл в папку Incoming с указанием в его имени
даты и времени проведения АО.
8. Скрипт переходит к обработке строки со след. базой, указанной в файле. переданном в качестве параметра
при запуске скрипта.
9. ВСЕ ДЕЙСТВИЯ ЛОГИРУЮТСЯ В ЛОГ ТЕКУЩЕГО ЗАДАНИЯ!!!
10. После окончания обработки всех баз из списка все данные из лога ТЕКУЩЕГО ЗАДАНИЯ передаются в ГЛОБАЛЬНЫЙ
ЛОГ с сохранением тела глобального лога в количестве строк, указанных в файле settings.ini.
11. Глобальный лог сохраняется, временные логи удаляются (чтобы не маячили в папке лишний раз), скрипт
завершает работу, выводится сообщение об окончании работы скрипта, которое самостоятельно закрывается
через некоторое время.
Перед каждым запуском TheBat! скрипт проверяет, был ли TheBat! запущен на момент старта скрипта. Если почтовый
клиент был запущен перед стартом скрипта, то после получения или отправки файлов АО почтовый клиент не будет
закрыт скриптом, а продолжит свою штатную работу (вдруг вы его не выключаете вообще).
В процессе АО 1С сама создает свой собственный лог-файл, указанный в пакетном файле. Он не будет включен в
глобальный лог по причине возможного большого размера этого лога АО (в него пишутся все изменения, сделанные
в базе при АО). Если необходимо проконтролировать правильность проведения АО, смотрите этот лог-файл АО отдельно.
Если надо добавить еще одну базу, то прописываем ее в 1С (окно старта), добавляем при необходимости правило
сортировки в Бат, создаем пакетный файл АО для 1С и добавляем строку для этой базы в файл списка баз. Первые 2 АО
(туда-сюда) придется сделать руками, чтобы появились оба файла АО. // Это касается каждой отдельной базы
Создать ярлык на запуск скрипта можно, указав в строке "Объект":
%windir%\system32\wscript.exe //nologo "Путь_к_скрипту\AE_1C_start.vbs" "Путь_к_списку_баз\AE_1C_bases_setup.lst"
а в строке "Рабочая папка":
Путь_к_скрипту
, где:
Путь_к_скрипту, например, равен E:\1C_bases\Рабочие\1S-Exchange
Путь_к_списку_баз, например, равен E:\1C_bases\Рабочие\1S-Exchange\СписокБаз
Также можно создать Назначенное задание (обычно найти можно в Пуск-Все программы-Стандартные-Служебные-Назначенные задания),
указав требуемое расписание(-я) для запуска скрипта (у меня, напирмер, выставлено время старта Ежедневно в 7:00, выполнять
каждые 15 минут в течение 16 часов, что обеспечивает мне запуск скрипта каждые 15 минут с 7:00 до 23:00).
Скрипт вы получаете как есть, автор не несет ответственности за возможный ущерб от скрипта.
(выше приведено содержимое файла readme_AE_1C.txt, который включен в архив)