Имя: Пароль:
1C
 
Бизнес-процессы в 1С
🠗Ø (Волшебник 15.04.2025 14:12)
0 Калаген
 
15.04.25
13:38
Здравствуйте.
Помогите, пожалуйста, не стартует бизнес-процесс для перенаправления задачи в нетиповой конфигурации 1С.
Сделано всё по аналогии с первым документом. В первом стартует, во втором нет.
Код аналогичный.
Помогите разобраться, пожалуйста, в чём проблема. Код модуля объекта задачи привожу ниже. Если необходимо, предоставлю коды моделей бизнес-процессов.

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	ЗадачаБылаВыполнена = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Выполнена");
	Если Выполнена И ЗадачаБылаВыполнена <> Истина И НЕ РеквизитыАдресацииЗаполнены() Тогда
		
		ОбщегоНазначения.СообщитьПользователю(
			НСтр("ru = 'Укажите исполнителя задачи.'"),,,
			"Объект.Исполнитель", Отказ);
		Возврат;
			
	КонецЕсли;
	
	Если СрокИсполнения <> '00010101' И ДатаНачала > СрокИсполнения Тогда
		ОбщегоНазначения.СообщитьПользователю(
			НСтр("ru = 'Дата начала исполнения не должна превышать крайний срок.'"),,,
			"Объект.ДатаНачала", Отказ);
		Возврат;
	КонецЕсли;
	
КонецПроцедуры

Процедура ПриКопировании(ОбъектКопирования)
	
	Дата = ТекущаяДатаСеанса();

КонецПроцедуры


Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	Если НЕ Ссылка.Пустая() Тогда
		ИсходныеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, 
			"Выполнена, ПометкаУдаления, СостояниеБизнесПроцесса");
	Иначе
		ИсходныеРеквизиты = Новый Структура(
			"Выполнена, ПометкаУдаления, СостояниеБизнесПроцесса",
			Ложь, Ложь, Перечисления.СостоянияБизнесПроцессов.ПустаяСсылка());
	КонецЕсли;
		
	Если ИсходныеРеквизиты.ПометкаУдаления <> ПометкаУдаления Тогда
		БизнесПроцессыИЗадачиСервер.ПриПометкеУдаленияЗадачи(Ссылка, ПометкаУдаления);
	КонецЕсли;
	
	Если НЕ ИсходныеРеквизиты.Выполнена И Выполнена Тогда
		
		Если СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Остановлен Тогда
			ВызватьИсключение НСтр("ru = 'Нельзя выполнять задачи остановленных бизнес-процессов.'");
		КонецЕсли;
		
		// Если задача выполнена, то запишем в реквизит Исполнитель того
		// пользователя, который фактически выполнил задачу. Это нам потом
		// потребуется для отчетов. Такую запись делаем только в том
		// случае, если в базе было не выполнено, а в объекте стало выполнено.
		Если НЕ ЗначениеЗаполнено(Исполнитель) Тогда
			Исполнитель = Пользователи.АвторизованныйПользователь();
		КонецЕсли;
		Если ДатаИсполнения = Дата(1, 1, 1) Тогда
			ДатаИсполнения = ТекущаяДатаСеанса();
		КонецЕсли;
	ИначеЕсли НЕ ПометкаУдаления И ИсходныеРеквизиты.Выполнена И Выполнена Тогда
			ОбщегоНазначения.СообщитьПользователю(
				НСтр("ru = 'Эта задача уже была выполнена ранее.'"),,,, Отказ);
			Возврат;
	КонецЕсли;
	
	Если Важность.Пустая() Тогда
		Важность = Перечисления.ВариантыВажностиЗадачи.Обычная;
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(СостояниеБизнесПроцесса) Тогда
		СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Активен;
	КонецЕсли;
	
	ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Предмет);
	
	Если НЕ Ссылка.Пустая() И ИсходныеРеквизиты.СостояниеБизнесПроцесса <> СостояниеБизнесПроцесса Тогда
		УстановитьСостояниеПодчиненныхБизнесПроцессов(СостояниеБизнесПроцесса);
	КонецЕсли;
	
	Если Выполнена И Не ПринятаКИсполнению Тогда
		ПринятаКИсполнению = Истина;
		ДатаПринятияКИсполнению = ТекущаяДатаСеанса();
	КонецЕсли;
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УстановитьПривилегированныйРежим(Истина);
	ГруппаИсполнителейЗадач = БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(РольИсполнителя, 
		ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации);
	УстановитьПривилегированныйРежим(Ложь);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	// Заполнение реквизита ДатаПринятияКИсполнению.
	Если ПринятаКИсполнению И ДатаПринятияКИсполнению = Дата('00010101') Тогда
		ДатаПринятияКИсполнению = ТекущаяДатаСеанса();
	КонецЕсли;
	
	Если ДополнительныеСвойства.Свойство("ТолькоПроверка")
	   И ДополнительныеСвойства.ТолькоПроверка Тогда
		Выполнена = Ложь;
	КонецЕсли;
	
КонецПроцедуры

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
	
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ЗадачаОбъект.ЗадачаИсполнителя") Тогда
		ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения, 
			"БизнесПроцесс,ТочкаМаршрута,Наименование,Исполнитель,РольИсполнителя,ОсновнойОбъектАдресации," 
			+ "ДополнительныйОбъектАдресации,Важность,ДатаИсполнения,Автор,Описание,СрокИсполнения," 
			+ "ДатаНачала,РезультатВыполнения,Предмет");
		Дата = ТекущаяДатаСеанса();
	КонецЕсли;
	Если НЕ ЗначениеЗаполнено(Важность) Тогда
		Важность = Перечисления.ВариантыВажностиЗадачи.Обычная;
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(СостояниеБизнесПроцесса) Тогда
		СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Активен;
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Процедура УстановитьСостояниеПодчиненныхБизнесПроцессов(НовоеСостояние)
	
	НачатьТранзакцию();
	Попытка
		ПодчиненныеБизнесПроцессы = БизнесПроцессыИЗадачиСервер.БизнесПроцессыГлавнойЗадачи(Ссылка, Истина);
		Для Каждого ПодчиненныйБизнесПроцесс Из ПодчиненныеБизнесПроцессы Цикл
			БизнесПроцессОбъект = ПодчиненныйБизнесПроцесс.ПолучитьОбъект();
			БизнесПроцессОбъект.Заблокировать();
			БизнесПроцессОбъект.Состояние = НовоеСостояние;
			БизнесПроцессОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.БизнесПроцессыГлавнойЗадачи.
		КонецЦикла;	
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
КонецПроцедуры

// Определяет, заполнены ли реквизиты адресации: исполнитель или роль исполнителя
// 
// Возвращаемое значение:
//  Булево - возвращает Истина, если в задаче указан исполнитель или роль исполнителя.
//
Функция РеквизитыАдресацииЗаполнены()
	
	Возврат ЗначениеЗаполнено(Исполнитель) ИЛИ НЕ РольИсполнителя.Пустая();

КонецФункции

Процедура ПриЗаписи(Отказ)
	
	Если ТочкаМаршрута = БизнесПроцессы.ОбработкаДокументаКЭДО.ТочкиМаршрута.ДействиеВыполнитьЭтапПроцесса Тогда//это задача процесса обработки документа КЭДО
		
		БизнесПроцессы.ОбработкаДокументаКЭДО.ОбработкаЗаписиЗадачи(ЭтотОбъект, Отказ);
		
	ИначеЕсли ТочкаМаршрута = БизнесПроцессы.Согласование.ТочкиМаршрута.ДействиеСогласовать Тогда//это задача процесса согласования
		
		БизнесПроцессы.Согласование.ОбработкаЗаписиЗадачи(ЭтотОбъект, Отказ);
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли
1 Bigbro
 
15.04.25
13:36
ошибки то посмотрите в ЖР например
есть что-то?
2 Волшебник
 
15.04.25
13:39
(0) Это потому, что у Вас клиент не толстый, а нужен толстый
3 Ёпрст
 
15.04.25
13:39
(0) все не читал, нет прав
4 Калаген
 
15.04.25
13:40
Это смописка. Запускаю в толстом.
5 Калаген
 
15.04.25
13:41
(2) (3) (4) Это смописка. Запускаю в толстом.
6 Волшебник
 
15.04.25
13:41
(5) К самописке ещё должен прилагаться программист с отладчиком. Есть у Вас такой?
7 Калаген
 
15.04.25
13:43
(6) да это я
8 Волшебник
 
15.04.25
13:45
(7) Нет, это не Вы.
9 Калаген
 
15.04.25
13:45
(8) модет лучше совет дадите
10 Волшебник
 
15.04.25
13:46
(9) может лучше отладчик запустите и выясните причину?
11 Калаген
 
15.04.25
13:47
(10) самое первое что и делал.отладчиком бродил. хороший совет вот тольок придраться мне к нечему. если бы тлдак апомогла вряд ли бы писал бы сюда.
12 Волшебник
 
15.04.25
13:48
(11) Жалкий безграмотный неудачник
13 Bigbro
 
15.04.25
13:49
и докуда отладчик довел? где пропало понимание того что происходит?
14 Калаген
 
15.04.25
13:49
(12) (12) О! Гуру крутой пришел отладчиком он советует пройтись, гогда тот бессилен
15 Волшебник
 
15.04.25
13:49
(13) Он даже не нашёл точку входа, откуда стартует бизнес-процесс
16 Волшебник
 
15.04.25
13:50
(14) Иди работай!
17 Калаген
 
15.04.25
13:50
(13) довел то дотого что ошитбок нету. Док попадет в бизнесс процесс но задача не записиывается в регистр сведений и не прилетает.
18 Калаген
 
15.04.25
13:51
(16) извини пожалуйста матер
19 Калаген
 
15.04.25
13:51
(16) мастер
20 Волшебник
 
15.04.25
13:51
(17) Чушь собачья
21 Калаген
 
15.04.25
13:52
(15) а как в нее войти процедура при записи
22 Калаген
 
15.04.25
13:52
(15) или еть другая. я первый рзс бизнесс процессами  работаю.
23 Bigbro
 
15.04.25
13:53
(17) боюсь что вам нужна помощь того программиста который разрабатывал конфигурацию. вашего уровня явно недостаточно не только для исправления проблемы но и для ее внятного объяснения.
24 Волшебник
 
15.04.25
13:53
(22) ищите вызов метода Старт()
25 Калаген
 
15.04.25
14:08
(24) Спасибо вам огромное. Реузультат запроса возырвщал пустой запрос. Нужно быо заполнить справочник процессы кэдо. И этапы.Прошу прощения за глупый вопрос. Обещаюбыть внимательным и не позорить профессию програмитса
26 Волшебник
 
15.04.25
14:09
(25) А ещё научитесь нажимать Alt-R в Яндекс.Браузере, чтобы не писать так безграмотно:

27 Калаген
 
15.04.25
14:11
(26) у меня брузер эдгэ а нии йандикс броузир
28 Волшебник
 
15.04.25
14:12
(27) Да-да. И вообще Вы тупой бот. Мы понимаем.