Запуск любой внешней обработки по расписанию

Часто хочется запустить внешнюю обработку по расписанию, но непонятно как бы это сделать не коцая конфигурацию, а оставив ее типовой.
Теперь это больше не проблема.

Если есть возможность редактировать регламентные задания — нет проблем редактируйте их
Статья для тех, кто не изменяет конфу.

Не исключаю вероятности, что многие уже знают об этих методах, но возможно кому-то всеже пригодится.
Итак
1 этап
Создаем ярлык для 1cv8.exe где бы она не находилась
дальше пишем параметры запуска в виде:
«C:Program Files1cv828.2.15.289in1cv8.exe» /IBName «Управление торговлей (демо)» /N «Федоров (администратор)»  /p «123456» /Execute «W:обработкиАвтозапускОбмена.epf»
где /IBName — Имя базы в списке при запуске
/N Имя пользователя
/P его пароль
/Execute путь и имя файла запускаемой обработки

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

НО
поскольку это делается по расписанию, нам скорее всего захочется чтобы обработка сделала свое грязное дело и не просто закрылась, а выключила 1с.
Это тем более не проблема.

Что мы делаем:
при запуске обработки естественно включится процедура
«ПриОткрытии» основной формы обработки
Вот в конец этой процедуры и надо просто добавить строку

ЗавершитьРаботуСистемы(Ложь);

 

А посклольку обработка внешняя — ее можно редактировать в конфигураторе без проблем

остается просто внести наш созданный в самом начале ярлык в стандартный шедулер виндовс, я так думаю это точно умеют все (кто не знает где это -пуск-панель управления-/если вид по категориям, то переключиться к классическому виду кнопкой переключение к классическому виду /-назначение задания)

 

В приложении пример такого ярлюка и обработка которая запустит обмен с сайтом по настройке «Обмен с WEB — сайтом (Товары и Заказы)» а потом выключит 1с.
обработка провелялась на «Управление торговлей», редакция 10.3 (10.3.16.1)

59 Comments

  1. Alex_Japanese_Student

    Попробуем, актуально для 10-ой торговли

    Reply ↓
  2. Skimen

    (1) А что в остальных конфах 1с есть более простой метод запуска по расписанию без редактирования самой конфы?

    Reply ↓
  3. Alex_Japanese_Student

    (2)

    в 11 ут есть шаблон регламентного задания — запуск дополнительных обработок

    в 10 ут нету

    Reply ↓
  4. Skimen

    (3) Спасибо, надо будет почитать….

    Reply ↓
  5. Alex_Japanese_Student

    (4)

    думается в новых версиях продуктов такая фича везде будет — и в бух 3.0 и в зарплате 3.0

    остается только дождаться

    Reply ↓
  6. janber

    Очень хорошо как пример для учебника и «информация к размышлению».

    На практике тут много подводных камней.

    В частности, реально запускать имеет смысл не любую внешнюю обработку,

    а только специально разработанную для пакетной обработки.

    Reply ↓
  7. agent007

    Молодец автор, за идею плюс.

    Reply ↓
  8. agent007

    Хотелось бы ещё от автора узнать, где полезна данная идея именно ему?

    Reply ↓
  9. Skimen

    (8) Поставщик просил ежедневно отчеты по эл почте высылать, вот я и придумал как от работы отлынить.

    Reply ↓
  10. Raminus

    полезная тема давно сам пользую.

    Reply ↓
  11. dmsoft

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

    Reply ↓
  12. Новиков

    (9) в последней БСП это реализовано уже 🙂

    Reply ↓
  13. Yashazz

    Идея баянная, подводных камней много.

    Или уж действительно надо делать пакетную обработку, эдакий «менеджер регламентных заданий», которая будет стартовать все остальные и рулить протоколом сделанного; или отдельные фоновые задания лепить и всё. Я уж думал, тут как раз такая обработка предложена.

    Кроме того, пароли имеют свойство меняться, важно это помнить.

    Reply ↓
  14. Oleg1708

    Да, да, да. И если пароли меняются автоматически. То буде проблема

    Reply ↓
  15. Sybr

    Вообще не любой обработки наверное, а той которая все свои процедуры выполняет при открытии. И в которую никакие параметры передавать не нужно.

    Reply ↓
  16. Skimen

    (13) Идея может и баянная но реализацию ее когда для себя искал — готовых решений нет… или может дашь ссылку?

    (15) Потенциально — любой, но как справедливо заметил Alex210 (6) на практике эту любую надо напильником доделывать.

    Reply ↓
  17. aximo

    вообще отличное и в тоже время простейшее решение.. усложнять ничего никогда не надо…

    и это яркий пример тому.

    Reply ↓
  18. Kuzya_brаtsk

    Спасибо автору, статья очень кстати 🙂 ПЛЮС

    Reply ↓
  19. jack_kkm

    (9) лень — движущая сила программиста 🙂

    Доходчиво описано.

    Reply ↓
  20. Масянька

    Спасибо автору статья правда полезная.Попробуемс

    Reply ↓
  21. Rustig

    спасибо за ликбез 🙂

    Reply ↓
  22. SiAl

    Пароль в командной строке задания легко прочитать. Это «минус».

    Потому советую сделать так.

    1. Сделать специального пользователя в Винде.

    2. Сделать специального пользователя в 1С, с отключенной авторизацией в 1С и включенной виндовс-авторизацией пользователя, созданного в п. 1.

    3. Задание в планировщике сделать от пользователя Винды из п.1 без указания пользователя 1С.

    Reply ↓
  23. Созинов

    (8) agent007,

    Я такой метод использую для восстановления последовательности, т.к. с помощью регламентных заданий не удалось добиться этого.

    (22) SiAl,

    При условии, что это обработки на подобии отправки email. Если это должно выполняться в ночное время, то это будет на сервере -> Естественно доступ к серверу ограничен (я надеюсь у всех). Хотя конечно вы правы — необходимо заботиться о безопасности.

    Reply ↓
  24. exciter

    попробовал этот метод

    через пару дней при запуске выдается сообщение «информационная база не зарегистрирована». Куда копать?

    Reply ↓
  25. Skimen

    (24) exciter, такое может быть если на сервере где SQL стоит сервис 1с предприятие не запущен…

    Reply ↓
  26. exciter

    (25) исключено! все запущено, базы прописаны верно

    после перезапуска службы (или даже сервера) ошибка не исчезает

    Reply ↓
  27. Skimen

    (26) Если вручную открыть 1с и зайти под этим пользователем на этом компе в этуже базу данных входит нормально?

    а если с другого компа под этим же пользователем в эту базу?

    Reply ↓
  28. exciter

    (27)если обычный ярлык запустить, то нормально.

    Обнаружил, что если запустить консоль администрирования и залогиниться в необходимую ИБ, то все отлично выполняется %) причем каких-либо зависших сеансов в консоли нет

    Reply ↓
  29. Skimen

    (28) а на другом компе запуск ярлыком с параметрами этой же базы прокатывает?

    Reply ↓
  30. Lava596

    (27)если обычный ярлык запустить, то нормально.

    Обнаружил, что если запустить консоль администрирования и залогиниться в необходимую ИБ, то все отлично выполняется %) причем каких-либо зависших сеансов в консоли нет

    Та же фигня, что такое, непонятно

    Reply ↓
  31. Skimen

    (30) Тогда даже не знаю.

    Попробовал у себя покоцать ярлык и список баз данных чтобы такую же ошибку получить — не получилось…

    Reply ↓
  32. hasp_x

    (8) я такой метод не первый год использую для загрузки курсов валют в 18.00

    Reply ↓
  33. Yury1001

    А можно я для 7.7 такую же мысль выложу, если вы не планировали и если ещё нету — я вроде не нашел?

    Reply ↓
  34. Boudybuilder

    Прикольное дело!

    Идеям нет предела!

    +++++++++++++++++++++++++++++++++++++++++++++

    Reply ↓
  35. Skimen

    (33) Можно, конечно.

    Я в 1с7 все равно не особо рублю.

    Reply ↓
  36. yoyoman

    Тоже подобным образом работают обмены.

    Reply ↓
  37. Misanets

    полезно было-бы в параметры запуска добавить /DisableStartupMessages

    А вообще читайте статью автора Chif13 http://infostart.ru/public/104654/ и не такое сможете реализовать

    Reply ↓
  38. Nucky

    У меня подобное не прокатило. Нужно было чтобы ночью делался отчет по количеству документов введенных пользователями. Утром вижу висящий процесс 1cv8.exe, с временем работы процессора 1 сек. Если просто запустить назначеное задание все отрабатывает на ура. Видимо 1С-ка не хватает выполненного входа в систему…

    Попробую через регламентные задания.

    Reply ↓
  39. AlexO

    Вообще все это костыли.

    Запускать 1с, в ней обработку, и все это запускать по виндовому планировщику — это как связать три палки за концы, и использовать их как мост.

    Что-то выдержит, но в основном — где-то цепочка оборвется и все провалится.

    Слишком много неизвестных — как пройдет авторизация «пользователя» в 1с, как запустится виндовая задача (и запустится ли вообще, или зависнет), как отработает 1с, закроется ли потом или тоже процес зависнет (а то и вся 1с-ка) по какой-либо причине до утра…

    В общем, мост из палок, связанных за концы.

    Делайте либо регламентные задания (которые на сервере 1с тоже любят «зависнуть» без причины), либо логгируйте хотя бы этапы запуска и выполнения — чтобы хотя бы знать, где не сработало….

    Reply ↓
  40. tormozit

    В продукте 2iS:Интеграция реализована подобная возможность.

    http://infostart.ru/public/145983/

    Reply ↓
  41. MrDen

    Делаю вот так http://infostart.ru/public/15995/.

    Не коцая конфигурацию, доволен!

    Reply ↓
  42. Petrovichka

    Статья хорошая, но у меня насущный вопрос:

    если перед выполнением в обработке необходимо заполнить некоторые реквизиты, куда это вписать?

    Reply ↓
  43. Skimen

    (43) В процедуру ПриОткрытии() самой обработки которую запускаете .

    Или (как вариант) запускать не напрямубю, а обрабкой http://infostart.ru/public/123151/ в которой переписан модуль обработки (строка 96 — дописано что заполнять).

    Reply ↓
  44. antares_of

    У 1с много чего стандартного есть, но все или очень каряво работает или нереально медленно. Поэтому говорю спасибо, надеюсь работает как положено.

    Reply ↓
  45. alekseies

    статья полезная.Можно попробовать …………..

    Reply ↓
  46. Rockman

    Спасибо за полезную статью.

    Reply ↓
  47. SaschaL

    Дествительно статья полезная. А что касается заполнения самой отработки то можно прописать дополнительную процедуру обработке и вставить её в прозудуру ПриОткрытии(), тут уже открывается простор для вашего творчества. Естественно что данная методика не панцея от всего, но часть рутинных задач она решать может без проблем.

    Reply ↓
  48. Astrey1C

    Спасибо. Буду пробывать. У меня схема такая: в 20:00 запускается обработка, которая выгоняет всех из базы, после этого запускается выгрузка информационной базы, а потом обмен с филиалами.

    Reply ↓
  49. v3rter

    Планировщик windows любит запускать задания от имени системной учетки system, под которой ни список баз не прописан в %appdata%
    oaming1C1CEStart , ни доступа к сетевым папкам. Отсюда 90% проблем.

    Reply ↓
  50. micha26

    Ни фига подобного — не прокатывает, сеанс на сервере 1Цэ висит и все. Никаких результатов.

    Reply ↓
  51. Skimen

    (51) micha26, а можно тест параметра сюда скопировать, может что-нить написано не так?

    Reply ↓
  52. micha26

    (52) да можно конечно

    @echo off
    chcp 1251 >nul
    «C:Program Files (x86)1cv8common1cestart.exe» Enterprise /S»ServerBase» /N»Юзер» /P»пасс» /Execute»E:CommandTest.epf»
    

    Права на папку есть. Windows Server 2012R2, запуск задания в планировщике из под админа, галочка с наивысшими правами стоит.

    Если батник руками запустить — то все отрабатывает, в обработке завершение сеанса 1С прописано — так же работает.

    Так же по совету товарищей и Инфостарта сделал скрипт vbs и конвертировал его в exe — та же фигня, ручной запуск — все работает, в планировщике — йух.

    Reply ↓
  53. SerSinelnik

    А что делать если сеанс и обработка запускаются, но пишет что установлен Безопасный режим. Выполнение операции запрещено?

    Reply ↓
  54. Nigelist

    (53) а почему вы через 1cestart.exe запускаете? В примере автор явно указал 1cv8.exe, он же толстый клиент. В крайнем случае я думаю можно запустить 1cv8c.exe — тонкий клиент.

    Reply ↓
  55. binx

    В УТ 11 (БСП 2.4 и выше) есть рассылка отчетов по расписанию, можно требуемые действия засунуть в доп. отчет.

    Reply ↓
  56. romanst82

    (53)

    Reply ↓
  57. romanst82

    (55) Для тех кто столкнулся с такой проблемой. В планировщике, в задаче на вкладке действия вместо ярлыка указываем путь «C:Program Files1cv828.2.15.289in1cv8.exe». Далее в поле «Добавить аргументы» пишем параметры /IBName «Управление торговлей (демо)» /N «Федоров (администратор)» /p «123456» /Execute «W:обработкиАвтозапускОбмена.epf. Всё работает как надо.

    Reply ↓
  58. user598323_svdok

    Добрый день, можно ли приспособить вашу разработку для внешних вызовов 1с 7.7 и выполнения заданий в ней по расписанию?

    Reply ↓
  59. MrDen

    Добрый день!

    Да, можно. Запуск 1С Планировщика можно настроить при запуске 1С 7.7 в конфигурации в разделе при старте системы. В самом планировщике прописать необходимые задачи. Я использую запуск 1С Планировщика под отдельным пользователем. Подробнее описано в руководстве.

    Reply ↓

Leave a Comment

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