База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С 8.3 отправить задачу пользователю и после неё выполнить другую?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 17 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
11 ноября 2025 в 0:45 #34155
OdineskiУчастник1с 8.3 как отправить задачу пользователю на определенное время, после которого будет выполнена другая задача
-
11 ноября 2025 в 0:45 #34156
Odin — ОдинэсникУчастникДля реализации сценария в 1С 8.3, когда нужно отправить задачу пользователю на определённое время, а после её выполнения автоматически создать и выполнить другую задачу, можно использовать механизм фоновых заданий и объектов «Задачи» (если используется подсистема задач) или регламентные задания с программным управлением.
### Общий алгоритм решения:
1. **Создать первую задачу с указанием времени исполнения и назначить её пользователю.**
2. **Отслеживать выполнение первой задачи (например, по событию или по статусу).**
3. **После успешного выполнения первой задачи программно создать и запустить вторую задачу.**—
### Пример реализации на встроенном языке 1С (упрощённый):
#### 1. Создание и отправка первой задачи пользователю на определённое время
1С (Код)1234567891011Процедура СоздатьЗадачуПользователю(Пользователь, ВремяВыполнения)НоваяЗадача = Задачи.Задача.СоздатьЗадачу();НоваяЗадача.Дата = ВремяВыполнения; // Время, когда задача должна быть выполненаНоваяЗадача.Ответственный = Пользователь;НоваяЗадача.Наименование = "Первая задача";НоваяЗадача.Описание = "Выполнить первую задачу";НоваяЗадача.Статус = Задачи.СтатусыЗадач.Выполняется;НоваяЗадача.Записать();КонецПроцедуры#### 2. Отслеживание выполнения задачи и создание второй задачи
Отслеживание можно реализовать несколькими способами:
— Через обработчик событий изменения статуса задачи (если используется подсистема задач).
— Через регламентное задание, которое периодически проверяет статус задачи.
— Через фоновые задания с программной логикой.Пример проверки и создания второй задачи:
1С (Код)12345678910111213141516171819202122232425262728Процедура ПроверитьИСоздатьВторуюЗадачу()Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬЗадачи.Ссылка КАК ЗадачаИЗЗадачи.Задача КАК ЗадачиГДЕЗадачи.Наименование = &ИмяПервойЗадачиИ Задачи.Статус = &СтатусВыполнена";Запрос.УстановитьПараметр("ИмяПервойЗадачи", "Первая задача");Запрос.УстановитьПараметр("СтатусВыполнена", Задачи.СтатусыЗадач.Выполнена);Результат = Запрос.Выполнить();Если Результат.Пустой() = Ложь Тогда// Создаем вторую задачуНоваяЗадача = Задачи.Задача.СоздатьЗадачу();НоваяЗадача.Дата = ТекущаяДата();НоваяЗадача.Ответственный = Пользователь; // Можно указать нужного пользователяНоваяЗадача.Наименование = "Вторая задача";НоваяЗадача.Описание = "Выполнить вторую задачу после первой";НоваяЗадача.Статус = Задачи.СтатусыЗадач.Выполняется;НоваяЗадача.Записать();КонецЕсли;КонецПроцедуры—
### Вариант с регламентными заданиями и фоновыми заданиями
Если задачи — это не объекты подсистемы задач, а обработка, которую нужно выполнить в определённое время, то можно:
— Создать регламентное задание, которое запустит первую обработку в нужное время.
— В конце первой обработки программно создать и запустить второе регламентное или фоновое задание.Пример создания фонового задания:
1С (Код)1234// Создание фонового задания для выполнения процедурыФоновоеЗадание = МенеджерФоновыхЗаданий.СоздатьЗадание("ИмяОбщегоМодуля", "ИмяПроцедуры", Параметры);ФоновоеЗадание.ДатаВыполнения = ВремяВыполнения;ФоновоеЗадание.Запустить();В конце выполнения первой процедуры можно программно создать и запустить второе фоновое задание.
—
### Рекомендации
— Для задач с участием пользователей лучше использовать подсистему «Задачи» с назначением ответственных.
— Для автоматических обработок — регламентные и фоновые задания.
— Для контроля статуса задач используйте события или периодическую проверку.
— В файловом варианте работы для автоматического запуска регламентных заданий необходимо обеспечить работу планировщика (см. методВыполнитьОбработкуЗаданий()).—
### Итог
— Создайте первую задачу с нужным временем и ответственным.
— Отслеживайте её выполнение (через события или периодическую проверку).
— После выполнения первой задачи программно создайте и запустите вторую.—
Рекомендую посмотреть здесь:
https://helpf.pro/faq8/view/867.html
https://infostart.ru/1c/articles/341698/
https://helpf.pro/faq8/view/81.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.