Запуск процедур(ы) по времени (по планировщику или таймеру) в 8.3

11.07.18

Разработка - Инструментарий разработчика

Создание простейшего планировщика, который выполняет определённые действия в указанное по списку время.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПланировщикТаймер:
.epf 7,75Kb ver:1
0
0 Скачать (1 SM) Купить за 1 850 руб.

Создаём форму с реквизитами:

  1. таблица значений «ТблВыполнитьПоВремени» с колонками:
    Дата – обязательная колонка (в ней дата и время запуска)
    Параметр1 – колонки с параметрами необходимыми для выполнения процедуры
    Параметр2 - …
  2. «НомерТаймаута» тип Число 10,0
  3. Команды:
    «ВыполнитьПоВремени»
    «ВыполнитьПоВремениОткл»

Модуль формы:


#Область Планировщик

&НаКлиенте
Процедура ОбработатьОжидание()
	
	//Здесь текст вашей процедуры
	//...
	//Доступ к нужным параметрам через:
	//ТблВыполнитьПоВремени[НомерТаймаута].Параметр1
	ТекстСообщения = НСтр("ru = 'Выполняется прооцедура с параметром: "+ТблВыполнитьПоВремени[НомерТаймаута].Параметр1+" !'");
	ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
	//...
	
	ТекстСообщения = НСтр("ru = 'Выполнено задание назначенное на  "+ТблВыполнитьПоВремени[НомерТаймаута].Дата+" в "+ТекущаяДата()+" !'");
	ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
	
	НомерТаймаута = НомерТаймаута+1; //Передвигаемся на следующее задание
	
	Если НомерТаймаута < ТблВыполнитьПоВремени.Количество() Тогда //вычисляем время для выполнения следующего задания
		ПодключитьОбработчик(ВычислитьТаймаут(ТблВыполнитьПоВремени[НомерТаймаута].Дата)); //Запускаем следующее задание
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПодключитьОбработчик(вхВремя)
	
	Если вхВремя<1 Тогда
		вхВремя = 1;
	КонецЕсли;
	
	ПодключитьОбработчикОжидания("ОбработатьОжидание", вхВремя, Истина);//Подключаем обработчик один раз
	
	ТекстСообщения = НСтр("ru = 'Задание назначенное на "+ТблВыполнитьПоВремени[НомерТаймаута].Дата+" будет выполнено через "+вхВремя+" секунд!'");
	ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
	
КонецПроцедуры

&НаКлиенте
Функция ВычислитьТаймаут(вхДата)
	Если вхДата < ТекущаяДата() Тогда //Если время запуска уже прошло
		ТаймаутЗапуска = 1; //Тогда запуск через 1 секунду
	иначе
		ТаймаутЗапуска = вхДата - ТекущаяДата(); //Вычисляем колво секунд для запуска
	КонецЕсли;
	Возврат ТаймаутЗапуска;
КонецФункции

&НаКлиенте
Процедура ВыполнитьПоВремени(Команда) //Кнопка запуска
	Если ТблВыполнитьПоВремени.Количество()>0 Тогда
		НомерТаймаута = 0;
		ПодключитьОбработчик(ВычислитьТаймаут(ТблВыполнитьПоВремени[НомерТаймаута].Дата));
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьПоВремениОткл(Команда) //Кнопка прервать
	ОтключитьОбработчикОжидания("ОбработатьОжидание");
	ТекстСообщения = НСтр("ru = 'Выполнение заданий прервано!'");
	ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
КонецПроцедуры

#КонецОбласти

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

Добавил файл обработки, содержащей данный модуль.

Разрабатывалась и тестировалась:
1С:Предприятие 8.3 (8.3.9.2170)
Розница, редакция 2.2 (2.2.5.25)

запуск по планировщику планировщик таймер запуск по таймеру

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    179587    998    403    

953

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    21177    140    80    

140

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    19237    51    19    

83

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    13105    55    33    

72

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29403    101    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18767    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1903    2    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tailor_Made 12.07.18 10:10 Сейчас в теме
Интересная штука. Только не пойму одно - ты, как я понял, выложил весь код бесплатно, а "собраную" обработку за 1 стартмани? :)
Оставьте свое сообщение