Перевести бизнес-процесс на следующую точку маршрута програмно

1. Kudus 30.09.22 18:31 Сейчас в теме
Хочу програмно перевести бизнес процесс на следующую точку маршрута, Пишу вот такой код:

&НаКлиенте
Процедура Записать(Команда)
ИзменитьБизнесПроцесс();
КонецПроцедуры
&НаСервере
Процедура ИзменитьБизнесПроцесс()
Объект = Реквизит1.ПолучитьОбъект();
Объект.Контрагент = Контрагент;
ОбъектЗадача = Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
ОбъектЗадача.Выполнена = Истина;
Объект.Записать();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Реквизит1 = Параметры.БП;
Реквизит2 = параметры.Задача;
КонецПроцедуры

пишет ошибку:
Элемент не выбран
{ОбщаяФорма.ФормаДляЗадачи1.Форма(10)}:ОбъектЗадача = Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
{ОбщаяФорма.ФормаДляЗадачи1.Форма(3)}:ИзменитьБизнесПроцесс();

по причине:
Элемент не выбран
Найденные решения
4. zeltyr 567 03.10.22 06:06 Сейчас в теме
Во-первых, если платформа худо-бедно последняя, то нельзя называть пользовательский реквизит словом "Объект", т.к. это служебное слово и вы как-бы переопределяете объект формы, что неверно. Переименуйте на "ОбъектБП" хотя бы. Скорее всего поэтому словили ошибку.


Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();

Тут сразу 2 замечания:
1. Надо проверять заполнено ли поле "Ведущая задача. Если нет - смысл делать всё остальное?
2. У вас и так в реквизите лежит ссылка, в таком случае достаточно написать так:
Объект.ВедущаяЗадача.ПолучитьОбъект();



Ну и главное. Чтобы выполнить задачу есть специальный программный метод:
 ЗадачаОбъект.ВыполнитьЗадачу();


P.S. Запись объектов лучше завернуть в попытку, т.к. объект может и не записаться и надо об это корректно сообщить пользователю.
criptid; user705522_constantin_h; Kudus; ImHunter; +4 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. aka Любитель XML 30.09.22 18:58 Сейчас в теме
(1) наверное не заполнено поле ВедущаяЗадача. Да, и почему именно ведущую пытаетесь выполнить? По БП может быть +100500 задач...
3. Kudus 30.09.22 19:02 Сейчас в теме
(2)Не подскажете как получить ссылку именно на ту задачу, которую пользователь выберет в списке
5. zeltyr 567 03.10.22 06:10 Сейчас в теме
(3) Если работаете со списком, то там есть метод ВыделенныеСтроки.

Подробнее см.тема форума про выделенные строки
4. zeltyr 567 03.10.22 06:06 Сейчас в теме
Во-первых, если платформа худо-бедно последняя, то нельзя называть пользовательский реквизит словом "Объект", т.к. это служебное слово и вы как-бы переопределяете объект формы, что неверно. Переименуйте на "ОбъектБП" хотя бы. Скорее всего поэтому словили ошибку.


Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();

Тут сразу 2 замечания:
1. Надо проверять заполнено ли поле "Ведущая задача. Если нет - смысл делать всё остальное?
2. У вас и так в реквизите лежит ссылка, в таком случае достаточно написать так:
Объект.ВедущаяЗадача.ПолучитьОбъект();



Ну и главное. Чтобы выполнить задачу есть специальный программный метод:
 ЗадачаОбъект.ВыполнитьЗадачу();


P.S. Запись объектов лучше завернуть в попытку, т.к. объект может и не записаться и надо об это корректно сообщить пользователю.
criptid; user705522_constantin_h; Kudus; ImHunter; +4 Ответить
6. Kudus 05.10.22 11:54 Сейчас в теме
(4)Спасибо за помощь, получил объект по ссылке и воспользовался методом "ВыполнитьЗадачу"
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)