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

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

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

Не исключаю вероятности, что многие уже знают об этих методах, но возможно кому-то всеже пригодится.
Итак
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 не будет опубликован. Обязательные поля помечены *