|
Документооборот 3.0. Согласование программно (для синхронизации).
d4rkmesa, Morroc, Homer, mikecool, Волшебник, Доминошник, maxab72, bolder, rozz, Страждущий, CepeLLlka, Vstur, Смотрящий, DCKiller, denk32, okmail, Eiffil123, Timon1405, вым, RomaH, formista2000
| ☑ |
0
Morroc
28.11.24
✎
10:23
|
Привет. Ни у кого нет готового куска серверного кода, аналогичного нажатию "Согласовано"/"Не согласовано" в форме Документ.ДействиеЗадачи ? Или пните в правильном направлении, плз. Попробовал заполнить бизнеспроцесс/задачу исполнителя/документ.задача/действие задачи, вызывал выполнитьзадачу, закрытьзадачи, приизменениибп и прочее - полностью бп и задача не закрываются и на следующий этап согласование не уходит. Пройтись в отладчике от нажатия кнопки до конца... навскидку довольно тоскливо (
|
|
1
Волшебник
28.11.24
✎
10:25
|
А разве можно программно согласовывать задачи за людей? Это ж нарушение нулевого закона робототехники
|
|
2
Morroc
28.11.24
✎
10:30
|
У нас кругом ИИ же ) Это нужно для синхронизации с другой системой, где согласовывают этот конкретный этап.
|
|
3
Волшебник
28.11.24
✎
10:42
|
(2) Ну так пусть из той системы придут все объекты данных, которые были изменены и созданы.
|
|
4
Morroc
28.11.24
✎
10:52
|
Они не имеют прямого отношения к объектам 1С Документооборот. В документообороте запускается большой процесс согласования оплаты и договора, по нему на одном из этапов согласования в ERP формируется полузаполненная заявка на расход денежных средств в которой можно нажать ok или не ok, по завершению процесса прилетит уже полностью заполненная заявка и договор, но интересует именно промежуточный этап и получение этого ok.
|
|
5
denk32
28.11.24
✎
12:47
|
ВыполнениеЗадачСервер.ВыполнитьЗадачу(Задача, ПараметрыВыполнения)
Первый параметр сама задача.
Второй структура.
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("РезультатВыполнения", ок или не ок);
|
|
6
Morroc
28.11.24
✎
16:55
|
Чего-то не хватает. В общем процессе стрелка перепрыгнула на следующее "Действие Задачи" - "Обработка ...", которого раньше и не видно было и там оно подвисло, возможно его точно так же надо закрыть, но я пока попробую дойти до конца по штатному пути.
|
|
7
Homer
28.11.24
✎
16:54
|
В настройках обработки есть "правила эскалации". Найди код, который его выполняет.
|
|
8
Morroc
28.11.24
✎
17:54
|
Спасибо, гляну.
Пока вот так нормально завершилась задача, этап (БП обработки) и вся обработка (это было последнее согласование) с минимумом кода:
ДействияЗадач = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ДействиеЗадачи.Ссылка)
РезультатДействия = Справочники.РезультатыДействийЗадач.НайтиПоНаименованию("Согласовано");
ПараметрыВыполнения = РаботаСЗадачамиКлиентСервер.НовыйПараметрыВыполненияДействийЗадач();
ДанныеВыполнения = РаботаСЗадачамиВызовСервера.ВыполнитьДействиеЗадачи(
ДействияЗадач,
РезультатДействия,
ПараметрыВыполнения);
Документ.ДействиеЗадачи - тот документ из которого обычно открывается штатная форма согласования. В коде есть анализатор требования "интерактивности" обработки согласования и если возвращается ДанныеВыполнения.ТребуетсяИнтерактивноеДействие = Истина надо смотреть массив предупреждений, в этом случае согласование не прошло (у меня было обязательным к заполнению поле Комментарий - Документ.ДействиеЗадачи.РезультатДействияТекстом).
|
|