Скрипты
Как известно, основная функция обновлятора - это обновление баз. Но многие, наверное, уже обратили внимание на дополнительную закладку "Скрипты", которая появилась в программе с начала 2016 года.
И если вы владеете навыками написания скриптов (2 варианта - пакетные cmd скрипты, и onescript, он же 1C), то сможете на этой закладке творить чудеса, не связанные напрямую с обновлением.
Если вы ещё не изучали начальную обучающую статью по скриптам в обновляторе - прошу вас сделать это прямо сейчас.
Задача
В этой статье рассмотрим как в группе файловых баз настроить регулярное (например, по ночам) и автоматическое обновление курсов валют и классификатора банков.
Сразу оговорюсь, что для этого база должна поддерживать возможность запуска этого процесса через внешнее соединение.
Для примера возьмём три файловые базы 1С:Бухгалтерия 3.0:
В каждой из этих баз есть регламентные задания для обновления курсов валют и классификатора банков:
Но так как базы файловые - наладить их регулярное фоновое выполнение крайне проблематично.
Пишем скрипт
Вот с этой задачей нам и поможет справиться обновлятор. Создадим при его помощи скрипт, который будет запускаться по ночам и выполнять код из этих двух регламентных заданий. Это позволит поддерживать актуальную информацию по курсам валют и банкам незаметно для пользователей.
Итак, поехали.
Для начала зайдём в регламентное задание "Загрузка курсов валют" и посмотрим какой метод из кода в нём вызывается:
Видим, что из общего модуля РаботаСКурсамиВалют вызывается экспортный метод ЗагрузитьАктуальныйКурс.
То же самое посмотрим для задания "Загрузка классификатора банков":
Здесь из модуля РаботаСБанками вызывается метод ЗагрузитьКлассификаторБанков.
Отлично, это вся информация, которая нам нужна.
Переходим в обновлятор на закладку "Скрипты":
Прежде всего выбираем базы для запуска.
Тип скрипта - OneScript.
В самом низу снимаем все галки.
Наконец, пишем такой код скрипта в процедуре Главная (об этой процедуре читайте здесь):
Процедура Главная() v8.РаботаСКурсамиВалют.ЗагрузитьАктуальныйКурс(); Сообщить("Актуальный курс валют загружен."); v8.РаботаСБанками.ЗагрузитьКлассификаторБанков(); Сообщить("Актуальный классификатор банков загружен."); КонецПроцедуры |
Предварительно зайдём в первую из баз, чтобы убедиться, что курс валют не актуален:
Видим, что курсы загружены только до 13 августа 2015 года. А сегодня - 26 февраля 2016.
Проверяем скрипт
Выполняем наш скрипт:
Вот отчёт:
Проверяем курсы валют в первой же базе:
Отлично, курсы загрузились вплоть до сегодняшнего дня.
Сохраняем скрипт в планировщик
Но нам нужно поставить эту задачу в планировщик, к примеру, на 2 часа ночи.
Нажимаем кнопку "Сохранить...":
Нажимаем "ОК":
И вот он - пакетный скрипт для запуска нашего скрипта. Более того обновлятор уже сам прописал его однократный запуск на 2 часа ночи на 26.02.2016 (согласно нашей галке при сохранении).
Чтобы сделать его запуск регулярным откроем задание в планировщике и изменим расписание на "ежедневно":
Готово.
Новая возможность
В последних версиях обновлятора выполнять регламентные задания из скриптов стало проще.
Для этого выбирает тип скрипта "Пакетный", а затем из меню "Обновлятор" выбираем пункт "Методы"-"Управление регламентными заданиями":
В открывшемся диалоге переходим на закладку "Запустить" и настраиваем задания, которые мы хотим запускать из скрипта:
Далее нажимаем кнопку "Запустить", в скрипт вставится вот такой текст:
Ну а дальше нам осталось только выбрать базы и сохранить этот скрипт в расписание - всё как и выше.