Всем привет! Как можно реализовать программное создание задачи в 1С:Документооборот? Есть регистр сведений, там хранится информация о том, за каким пользователем какой отчёт закреплён. Допустим есть Отчёт и за ним закреплён Иванов Иван Иванович, ссылкой на карточку пользователя. Как можно программно создать на этого пользователя задачу?
По теме из базы знаний
- УФ: программное создание и копирование документов с использованием конструкций ДанныеФормыВЗначение, ЗначениеВДанныеФормы
- Программное создание шаблона универсального процесса согласования для ЕРП УХ
- Программное создание расширения
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- Программное создание элементов в форме при использовании расширения
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В какой-нибудь процедуре(Допустим при добавлении новой записи в регистр сведений, создавать задачу на ответсвенного в этой записи), просто создать задачу.
Как пример
НоваяЗадача = Задачи.УниверсальнаяЗадача.СоздатьЗадачу();
НоваяЗадача.БизнесПроцесс = ЭтотОбъект.Ссылка;
НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.СнижениеРисков.ТочкиМаршрута.Мероприятие;
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.Наименование = БизнесПроцессы.СнижениеРисков.ТочкиМаршрута.Мероприятие.НаименованиеЗадачи;
НоваяЗадача.Исполнитель = Элемент.Ответственный;
НоваяЗадача.СрокВыполненияЗадачи = Элемент.Срок;
НоваяЗадача.Описание = "Выполнение мероприятий: " + Элемент.Мероприятие + " по " + ПолучитьПредставлениеПредмета();
НоваяЗадача.Записать();
ПоказатьКак пример
(4) Можно еще добавить создание напоминания на созданную задачу
МенеджерЗаписиНапоминания = РегистрыСведений.НапоминанияПользователя.СоздатьМенеджерЗаписи();
МенеджерЗаписиНапоминания.ВремяСобытия = ТекущаяДата() + 10;
МенеджерЗаписиНапоминания.СрокНапоминания = ТекущаяДата() + 10;
МенеджерЗаписиНапоминания.СпособУстановкиВремениНапоминания = Перечисления.СпособыУстановкиВремениНапоминания.ВУказанноеВремя;
МенеджерЗаписиНапоминания.Пользователь = Элемент.Ответственный;
МенеджерЗаписиНапоминания.Источник = БизнесПроцесс.Ссылка;
МенеджерЗаписиНапоминания.Описание = БизнесПроцесс.Содержание;
МенеджерЗаписиНапоминания.ИнтервалВремениНапоминания = 0;
// Если нужно будет периодическое напоминание - написать здесь
//Если ТекущийОбъект.СпособУстановкиВремениНапоминания <> Перечисления.СпособыУстановкиВремениНапоминания.Периодически Тогда
Расписание = Неопределено;
//КонецЕсли;
МенеджерЗаписиНапоминания.Расписание = Новый ХранилищеЗначения(Расписание, Новый СжатиеДанных(9));
НаборЗаписей = РегистрыСведений.НапоминанияПользователя.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Пользователь.Установить(МенеджерЗаписиНапоминания.Пользователь);
НаборЗаписей.Отбор.Источник.Установить(МенеджерЗаписиНапоминания.Источник);
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
ЗанятоеВремя = НаборЗаписей.Выгрузить(,"ВремяСобытия").ВыгрузитьКолонку("ВремяСобытия");
Пока ЗанятоеВремя.Найти(МенеджерЗаписиНапоминания.ВремяСобытия) <> Неопределено Цикл
МенеджерЗаписиНапоминания.ВремяСобытия = МенеджерЗаписиНапоминания.ВремяСобытия + 1;
КонецЦикла;
КонецЕсли;
МенеджерЗаписиНапоминания.Записать();
Показать
Вот тут https://infostart.ru/public/1005623/ в примере обработчика бизнес процесса есть пример. Считаю, что создавать задачу без БП не совсем правильно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот