Имя: Пароль:
1C
1С v8
Программное создание задачи
🠗 (Волшебник 24.09.2024 10:35)
0 JuixyJes
 
17.09.24
11:06
Всем привет) Кратенько опишу задачу. В расширении написан кусок кода, проверяющий срок действия договоров. Нужно в этом же куске кода создать задачу программно, по работе с внутренними документами.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВнутренниеДокументы.ВидДокумента КАК ВидДокумента,
		|	ВнутренниеДокументы.ДатаОкончанияДействия КАК ДатаОкончанияДействия,
		|	ВнутренниеДокументы.Создал КАК Создал,
		|	ВнутренниеДокументы.ВидДокумента.Родитель.Наименование КАК ВидДокументаРодитель,
		|	ВнутренниеДокументы.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
		|ГДЕ
		|	ВнутренниеДокументы.ВидДокумента.Родитель.Наименование ПОДОБНО ""%Договорная%""
		|	И ВнутренниеДокументы.Создал = &Создал
		|	И ВнутренниеДокументы.ДатаОкончанияДействия <= &ДатаОкончанияДействия";
	Запрос.УстановитьПараметр("Создал",Пользователи.ТекущийПользователь());
	Запрос.УстановитьПараметр("ДатаОкончанияДействия",ДобавитьМесяц(ТекущаяДата(),1));
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   	   НоваяЗадача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();   
   	КонецЦикла;


Вот, в ЦИКЛЕ нужно вызвать создание задачи. Предметом должен оказаться договор. Исполнителем - автор этого договора. Подскажите, каким образом создать задачу?
1 JuixyJes
 
17.09.24
11:10
Проблема в том, что код вызывается из общего модуля в расширении, то есть к объекту какому-либо не привязано. И вот как создать задачу в таком случае - не приложу ума.
2 Волшебник
 
17.09.24
11:08
НоваяЗадача.БизнесПроцесс = БП;
НоваяЗадача.Дата = Дата;
НоваяЗадача.Исполнитель = Пользователи.ТекущийПользователь(); 
...
НоваяЗадача.Записать();
3 youalex
 
17.09.24
11:22
+ ТочкаМаршрута (если нужно чтобы БП по маршруту шагал при завершении задачи)
4 JuixyJes
 
17.09.24
11:23
(2) А в БП что? У меня было вот это

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    НоваяЗадача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();  

    НоваяЗадача.БизнесПроцесс = БизнесПроцессы.ОбработкаВнутреннегоДокумента.СоздатьБизнесПроцесс();  
    НоваяЗадача.Исполнитель = ВыборкаДетальныеЗаписи.Создал;
    НоваяЗадача.Дата = ТекущаяДата();
    НоваяЗадача.Описание = "Напоминание о продлении срока договора";
    НоваяЗадача.Записать();
    КонецЦикла;
5 СвинТуз
 
17.09.24
11:25
(1)
Модуль нельзя в расширение затянуть?
6 СвинТуз
 
17.09.24
11:26
(0)
Ощущение, что не то это все.
Можно без расширений.
7 JuixyJes
 
17.09.24
11:31
(6) Нельзя. Все доработки необходимо вести исключительно в расширении.
8 СвинТуз
 
17.09.24
11:46
(7)
Это религия не позволяет?
А как религия смотрит на внешние обработки по расписанию?
9 JuixyJes
 
17.09.24
13:21
(8) Не религия, запросы клиента
11 Волшебник
 
17.09.24
13:27
ещё какие-то вопросы есть? тему можно закрыть?
12 JuixyJes
 
17.09.24
13:37
(11) Посмотри пожалуйста (4), там код, хочется узнать мнение, всё ли верно?
13 Волшебник
 
17.09.24
13:39
(12) Всё нормально. Можно запускать. Будет пара ошибок и неожиданный эффект, но Вы со всем справитесь. ЗАПУСКАЙТЕ!
14 JuixyJes
 
17.09.24
13:47
(13) Ошибка при вызове метода контекста (Записать)
{ОбщийМодуль.ОбщегоНазначения.Модуль(173)}:ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
{ОбщийМодуль.ОбщегоНазначения.Модуль(409)}:Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
{ОбщийМодуль.Контроль.Модуль(318)}:ВедущаяЗадача = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БизнесПроцесс, "ВедущаяЗадача");
{ОбщийМодуль.КонтрольСобытия.Модуль(72)}:Контроль.ЗаполнитьСтрокуКонтроляПоЗадаче(Источник);
{МДК_Доработки ОбщийМодуль.МДК_ПроверкаСрокаДоговоров.Модуль(32)}:НоваяЗадача.Записать();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
Неверный первый параметр Ссылка в функции ОбщегоНазначения.ЗначенияРеквизитовОбъекта:
Значение должно быть ссылкой или именем предопределенного элемента.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
15 Stepashkin
 
17.09.24
13:50
(14) Можете устранять.
16 Волшебник
 
17.09.24
14:29
(14) Пока всё идёт по плану
17 Stepashkin
 
17.09.24
14:50
(16) Нравится вам издеваться на такими чудо программистами?)
18 Волшебник
 
17.09.24
14:53
(17) А не надо перекладывать свою работу на форум
19 Stepashkin
 
17.09.24
15:17
(18) Как говорит мой отец: "Помочь - это сделать за другого." Искренне удивлялся таким людям, которые думают, что если они изучили "какие-то там курсы", то они сразу стали программистами.