Вводная статья по обновлятору

  оглавление  Заставляем обновлятор читать базы из списка сервера 1с

Обновляем курсы валют и классификатор банков в группе баз при помощи Обновлятора-1с

Скрипты

Как известно, основная функция обновлятора - это обновление баз. Но многие, наверное, уже обратили внимание на дополнительную закладку "Скрипты", которая появилась в программе с начала 2016 года.

И если вы владеете навыками написания скриптов (2 варианта - пакетные cmd скрипты, и onescript, он же 1C), то сможете на этой закладке творить чудеса,  не связанные напрямую с обновлением.

Если вы ещё не изучали начальную обучающую статью по скриптам в обновляторе - прошу вас сделать это прямо сейчас.

Задача

В этой статье рассмотрим как в группе файловых баз настроить регулярное (например, по ночам) и автоматическое обновление курсов валют и классификатора банков.

Сразу оговорюсь, что для этого база должна поддерживать возможность запуска этого процесса через внешнее соединение.

Для примера возьмём три файловые базы 1С:Бухгалтерия 3.0:

В каждой из этих баз есть регламентные задания для обновления курсов валют и классификатора банков:

Но так как базы файловые - наладить их регулярное фоновое выполнение крайне проблематично.

Пишем скрипт

Вот с этой задачей нам и поможет справиться обновлятор. Создадим при его помощи скрипт, который будет запускаться по ночам и выполнять код из этих двух регламентных заданий. Это позволит поддерживать актуальную информацию по курсам валют и банкам незаметно для пользователей.

Итак, поехали.

Для начала зайдём в регламентное задание "Загрузка курсов валют" и посмотрим какой метод из кода в нём вызывается:

Видим, что из общего модуля РаботаСКурсамиВалют вызывается экспортный метод ЗагрузитьАктуальныйКурс.

То же самое посмотрим для задания "Загрузка классификатора банков":

Здесь из модуля РаботаСБанками вызывается метод ЗагрузитьКлассификаторБанков.

Отлично, это вся информация, которая нам нужна.

Переходим в обновлятор на закладку "Скрипты":

Прежде всего выбираем базы для запуска.

Тип скрипта - OneScript.

В самом низу снимаем все галки.

Наконец, пишем такой код скрипта в процедуре Главная (об этой процедуре читайте здесь):

Процедура Главная()
 
  v8.РаботаСКурсамиВалют.ЗагрузитьАктуальныйКурс();
  Сообщить("Актуальный курс валют загружен.");
 
  v8.РаботаСБанками.ЗагрузитьКлассификаторБанков();
  Сообщить("Актуальный классификатор банков загружен.");
 
КонецПроцедуры

Предварительно зайдём в первую из баз, чтобы убедиться, что курс валют не актуален:

Видим, что курсы загружены только до 13 августа 2015 года. А сегодня - 26 февраля 2016.

Проверяем скрипт

Выполняем наш скрипт:

Вот отчёт:

Проверяем курсы валют в первой же базе:

Отлично, курсы загрузились вплоть до сегодняшнего дня.

Сохраняем скрипт в планировщик

Но нам нужно поставить эту задачу в планировщик, к примеру, на 2 часа ночи.

Нажимаем кнопку "Сохранить...":

Нажимаем "ОК":

И вот он - пакетный скрипт для запуска нашего скрипта. Более того обновлятор уже сам прописал его однократный запуск на 2 часа ночи на 26.02.2016 (согласно нашей галке при сохранении).

Чтобы сделать его запуск регулярным откроем задание в планировщике и изменим расписание на "ежедневно":

Готово.

Новая возможность

В последних версиях обновлятора выполнять регламентные задания из скриптов стало проще.

Для этого выбирает тип скрипта "Пакетный", а затем из меню "Обновлятор" выбираем пункт "Методы"-"Управление регламентными заданиями":

В открывшемся диалоге переходим на закладку "Запустить" и настраиваем задания, которые мы хотим запускать из скрипта:

Далее нажимаем кнопку "Запустить", в скрипт вставится вот такой текст:

Ну а дальше нам осталось только выбрать базы и сохранить этот скрипт в расписание - всё как и выше.

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:



Вводная статья по обновлятору

  оглавление  Заставляем обновлятор читать базы из списка сервера 1с