|
|
|
Бизнес-процессы в 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) Да-да. И вообще Вы тупой бот. Мы понимаем.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |