не заполняется предмет в задаче согласования

1. hoyo 22.02.18 13:56 Сейчас в теме
Доброго дня.
Есть процесс согласования, в котором два предмета: Основной - ВнутреннийДокумент и Заполняемый - Контрагент. Процесс сделан схемой, до задачи Согласование стоит квадратик обработки, в нём этот заполняемый предмет заполняется. Но в результате в процессе этот предмет заполнен, а в задаче Согласовать отображается незаполненный предмет. Почему так? Я так понимаю, предметы копируются из процесса в момент создания задачи Согласование, а в этот момент предмет заполнен уже.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user700035_6550355 29 22.02.18 14:31 Сейчас в теме
(1) Скриншот прикрепите, а то так не понятно что не так
3. hoyo 22.02.18 15:00 Сейчас в теме
Скрин задачи во вложении. Там видно что предмет у задачи не заполнен. Хотя у процесса он обработкой заполнился ещё до того, как процесс по схеме дошёл до создания этой задачи.
Прикрепленные файлы:
4. hoyo 27.02.18 15:17 Сейчас в теме
Что самое странное, если эту задачу согласовать, то следующая за ней задача создаётся с заполненным предметом! Вот скрин процесса. В квадратике "добавить контрагента в предметы" как раз заполняется предмет "Контрагент" у процесса. Задача "Согласовать повышение уровня контрагента" создаётся с незаполненным предметом, а задача "Согласовать 2" - уже с заполненным. WTF?
Прикрепленные файлы:
5. sergathome 4 27.02.18 15:48 Сейчас в теме
здаётся мне, что на схеме как "Согласование" обозначены отнюдь не задачи, а стандартный процесс конфы... Со всеми вытекающими. Предметы между процессами автоматом копировать никто не обещал... ;))
6. hoyo 27.02.18 16:14 Сейчас в теме
То есть - не обещал? А как вы будете например договор согласовывать тогда? Делается у процесса предмет - внутренний документ. И потом во всех подпроцессах, согласования, утверждения и т.д. он копируется автоматом, чтобы его сразу в задаче было видно.
Опять же, в приведённом примере во второй процесс "Согласование" копируется нормально. "На первый-второй второй процесс рассчитайсь!", блин.
7. sergathome 4 28.02.18 09:37 Сейчас в теме
Не блин, а смотрите обработчики своего "согласования". Оно ж у вас какое-то типа комплексное или вообще самописное. Точно никакая доработка не выполнялась, процесс сами рисовали ?
8. hoyo 28.02.18 14:22 Сейчас в теме
С чего вы взяли что "Согласование" у меня комплексное или самописное? Самое обычное. Рисуется квадратик на схеме, открывается выбор типа процесса, там выбирается "Согласование", указывается ровно 1 согласующий, срок 1 день и всё, записать и закрыть. Обработчиков именно согласования нет никаких, да и как там можно повесить обработчик? Код выполняется только в квадратике Обработки с названием "Добавить контрагента в предметы".
Процесс рисовал сам. Код Обработки простой как три копейки:

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

Если РезЗапр.Количество() > 0 Тогда
	ИмяПредмета = Справочники.ИменаПредметов.найтиПоНаименованию("Контрагент");
	Мультипредметность.ЗаписатьПредметБизнесПроцесса(Процесс.Ссылка, ИмяПредмета, РезЗапр[0].Контр);
	ПроцОб = Процесс.Ссылка.ПолучитьОбъект();
	ПроцОб.Записать();
КонецЕсли;
Показать


Последних двух строк сначала не было, я подумал, может не записываются изменения в процессе до создания задача Согласование, вотнул принудительную запись. То же самое.
9. Vladimir45 90 21.10.19 14:31 Сейчас в теме
Первый предмет идет как основной, второй как заполняемый.
Процедура создания второго на основании первого, и запись его в предметы комплексного процесса.

Документооборот 8 КОРП, редакция 2.1 (2.1.14.4)


ПредметОснование = Процесс.Предметы[0].Предмет;

НовыйПредмет = Справочники.Мероприятия.СоздатьЭлемент();
НовыйПредмет.Заполнить(ПредметОснование);
НовыйПредмет.Записать();

Процесс.Предметы[1].Предмет = НовыйПредмет.Ссылка;

РаботаСБизнесПроцессами.ЗаписатьПроцесс(Процесс,
	"ЗаписьСОбновлением_Предметов_ПредметовЗадач_Проекта_ОбщегоС­пискаПроцессов_РабочихГруппПредметов_РабочихГруппПроцессов_Д­опРеквизитовПоПредметам");
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот