|
Получение данных из формы задачи | ☑ | ||
---|---|---|---|---|
0
shadow1337
28.10.19
✎
17:48
|
У меня есть бизнес-процесс МойБизнесПроцесс, задачей которого является ЗадачаМоегоБизнесПроцесса.
У задачи ЗадачаМоегоБизнесПроцесса есть форма ФормаЗадачиБП, на которой расположено поле ИсторияВыполненияЗадач. Это поле наполняется определенным текстом ТекстЗадачи, который является результатом выполнения функции ФормированиеТекстаВФорму. Мне нужно создать запрос, в котором будет один столбец, содержащий все тексты ТекстЗадачи из всех ЗадачаМоегоБизнесПроцесса. Но я не понимаю, как это реализовать. Была идея создать столбец Комментарии в Вычисляемых Полях СКД, но функцию из формы задачи нельзя достать. Разве что переносить эту функцию в Общие Модули, но все равно не лучшая идея. Какие еще есть варианты? |
|||
1
ам794123
28.10.19
✎
17:57
|
(0) только в глобальный общий модуль, или запросом создать временную таблицу, имитирующую работу этой функции для каждой задачи.
|
|||
2
Михаил Козлов
28.10.19
✎
18:20
|
Поле ИсторияВыполненияЗадач привязано к реквизиту формы?
Может быть это реквизит бизнес-процесса? |
|||
3
Михаил Козлов
28.10.19
✎
18:21
|
(2) Виноват: не к реквизиту формы, а к реквизиту задачи.
|
|||
4
shadow1337
28.10.19
✎
20:29
|
(2) Поле ИсторияВыполненияЗадач привязано к реквизиту ИсторияВыполненияЗадач, который есть у формы. У бизнес-процесс такого реквизита нет (если я правильно понимаю, что это реквизит формы):
http://ipic.su/img/img7/fs/Skrinshot(28.1572283703.jpg |
|||
5
Михаил Козлов
28.10.19
✎
20:37
|
Но ведь эта история (или то, из чего она формируется) где-то хранится (в реквизите задачи или бизнес-процесса)?
Функция ФормированиеТекстаВФорму из каких данных формирует текст? |
|||
6
shadow1337
28.10.19
✎
22:01
|
Функция ФормированиеТекстаВФорму находится в модуле формы. Внутри функции происходит следующее:
1) Сначала выполняется запрос, который берет из задачи ПроверкаДоговоров нужные реквизиты. В переменную РезультатЗапроса заносится тип данных Выборка. 2) В цикле Пока РезультатЗапроса.Следующий() формируется текст, причем Функция СклонениеВНужныйПадеж - функция из другого бизнес процесса, Функция ФункцияИзТойЖеФормы - функция, которая находится в том же модуле формы задачи, что и искомая функция ФормированиеТекстаВФорму Текст заносится в переменную ТекстЗадач, т.е. ТекстЗадач = РезультатЗапроса.Реквизит1 + СклонениеВНужныйПадеж(РезультатЗапроса.Реквизит1) + ФункцияИзТойЖеФормы(РезультатЗапроса.Ссылка). 3) При выходе из цикла получаем получаем ИсторияВыполненияЗадач = ТекстЗадач |
|||
7
shadow1337
28.10.19
✎
22:01
|
(5)
|
|||
8
shadow1337
28.10.19
✎
22:49
|
(5) Не вижу реквизита ИсторияВыполненияЗадач ни в БП, ни в задаче. Только в форме задачи.
|
|||
9
FIXXXL
29.10.19
✎
08:37
|
>1) Сначала выполняется запрос, который берет из задачи ПроверкаДоговоров нужные реквизиты.
отсюда и пляши бери текст запроса и кастомизируй под свою задачу |
|||
10
catena
29.10.19
✎
09:06
|
>>Разве что переносить эту функцию в Общие Модули, но все равно не лучшая идея.
Почему? А если завтра понадобится изменить алгоритм формирования текста, менять и на форме и в отчетах - идея лучше? |
|||
11
shadow1337
29.10.19
✎
10:03
|
(9) (10) Проблема в том, что запрос берет данные из определенной задачи, которая связана с определенным бизнес-процессом.
В функцию ФормированиеТекстаВФорму передается ссылка на бизнес-процесс. Эта ссылка относится к бизнес-процессу, который мы сами и выбираем в форме. Т.е. открыли задачу, выбрали бизнес-процесс и уже в зависимости от выбранного функция выполняется, формирует текст. Но мне ведь нужно, чтобы запрос взял все задачи, а каждая задача связана с определенным БП. То есть я не могу скопировать эту функцию в общий модуль, чтобы потом передать в вычисляемые поля, т.к. функция принимает один из БП, который мы выбираем в форме, а мне нужны данные из всех. |
|||
12
FIXXXL
29.10.19
✎
11:39
|
(11) ну напиши свою функцию
|
|||
13
shadow1337
29.10.19
✎
11:52
|
(12) Да, но тогда вот такой вопрос:
В функции ФормированиеТекстаВФорму в качестве параметра передается Объект.БизнесПроцесс.Ссылка, в этом поле собственно и находится нужный бизнес-процесс. Если я буду писать функцию в общем модуле, как мне нужно передать этот параметр? Как правильно написать? |
|||
14
hhhh
29.10.19
✎
11:55
|
(13) ну, имя функции, а в скобках имя параметра.
|
|||
15
FIXXXL
29.10.19
✎
11:56
|
(13) к примеру
Функция ФормированиеТекстаВФорму(БП = неопределено) КонецФункции и внутри запроса анализируешь параметр &БП ВЫБОР КОГДА &БП = Неопределено ТОГДА ИСТИНА ИНАЧЕ ТвойПараметрОтбора = &БП |
|||
16
shadow1337
29.10.19
✎
12:16
|
(15) Все равно не понял, вот смотрите (перед этим уточню, что у задачи ЗадачаМоегоБизнесПроцесса есть реквизит БизнесПроцесс)
В форме вот так:
Если я напишу такую же функцию в общем модуле, только будет вот так: Функция ФормированиеТекстаВФорму(БизнесПроцесс = Неопределено)
Разве что-то получится тогда вообще? |
|||
17
catena
29.10.19
✎
12:52
|
(16)Тебе же в (15) показали, как в функции обработать, чтоб работало и для одного и для всех.
|
|||
18
shadow1337
29.10.19
✎
12:59
|
(17) да я видел, но все равно не могу понять, как под свой фрагмент кода подкорректировать :(
|
|||
19
hhhh
29.10.19
✎
13:21
|
(18) так наверно
Если БизнесПроцесс = Неопределено Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаМоегоБизнесПроцесса.Ссылка, | ЗадачаМоегоБизнесПроцесса.Наименование, | ЗадачаМоегоБизнесПроцесса.Комментарий |ИЗ | Задача.ЗадачаМоегоБизнесПроцесса КАК ЗадачаМоегоБизнесПроцесса | "; Иначе Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаМоегоБизнесПроцесса.Ссылка, | ЗадачаМоегоБизнесПроцесса.Наименование, | ЗадачаМоегоБизнесПроцесса.Комментарий |ИЗ | Задача.ЗадачаМоегоБизнесПроцесса КАК ЗадачаМоегоБизнесПроцесса |ГДЕ | ЗадачаМоегоБизнесПроцесса.БизнесПроцесс = &БизнесПроцесс"; Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс); КонецЕсли; |
|||
20
shadow1337
29.10.19
✎
14:17
|
(19) не выходит
|
|||
21
hhhh
29.10.19
✎
14:19
|
(20) что конкретно?
|
|||
22
shadow1337
29.10.19
✎
14:43
|
(21) Написал это в функцию, которая находится в общем модуле, внес название функции в вычисляемые поля СКД, но в итоге в каждом поле одинаковый текст.
|
|||
23
shadow1337
29.10.19
✎
14:46
|
(21) В СКД вот так прописано: ФормированиеИсторииЗадач.ФормированиеТекстаВФорму(Неопределено)
|
|||
24
hhhh
29.10.19
✎
14:51
|
(23) так зачем Неопределено? Прикалываешься всё?
|
|||
25
shadow1337
29.10.19
✎
14:59
|
(24) Так он без если Неопределено не поставить - пишет, что их недостаточно. (15) написал, что в параметрах должно быть БП = Неопределено
|
|||
26
shadow1337
29.10.19
✎
15:15
|
(15) можете, пожалуйста, посмотреть мой код? Не выходит сделать
|
|||
27
shadow1337
29.10.19
✎
15:52
|
(24) По сути проблема как раз в том, что в Вычисляемых полях я не могу передать никаким образом нормально ссылку на Бизнес-процесс
|
|||
28
hhhh
29.10.19
✎
15:57
|
(27) почему не можете? &БизнесПроцесс - это же ссылка
|
|||
29
shadow1337
29.10.19
✎
16:23
|
(28) Если я запишу в Вычисляемые поля => Выражение "ФормированиеИсторииЗадач.ФормированиеТекстаВФорму(&БизнесПроцесс)",
мне выпишет "не установлено значение параметра" Окей, делаю следующее В параметрах добавляю "Параметр1" и делаю его типа "БизнесПроцессСсылка.МойБизнесПроцесс" и тогда в Выражение пишу "ФормированиеИсторииЗадач.ФормированиеТекстаВФорму(&Параметр1)", тогда пишет "не установлено значение параметра Параметр1" Что куда написать, чтобы пофиксить? |
|||
30
hhhh
29.10.19
✎
16:40
|
(29) может поле бизнеспроцесс в скд у вас есть. или добавьте это поле
|
|||
31
shadow1337
29.10.19
✎
16:52
|
(30) у меня вот так выглядит запрос в СКД
ВЫБРАТЬ ПЕРВЫЕ 100
Что нужно сделать? У ЗадачаМоегоБизнесПроцесса есть реквизит БизнесПроцесс |
|||
32
hhhh
29.10.19
✎
16:58
|
(31) ну так значит
ВЫБРАТЬ ПЕРВЫЕ 100 ЗадачаМоегоБизнесПроцесса.Ссылка, ЗадачаМоегоБизнесПроцесса.Наименование, ЗадачаМоегоБизнесПроцесса.Комментарий, ЗадачаМоегоБизнесПроцесса.БизнесПроцесс ИЗ Задача.ЗадачаМоегоБизнесПроцесса КАК ЗадачаМоегоБизнесПроцесса чего вы тупите? |
|||
33
shadow1337
29.10.19
✎
22:34
|
(32) Большое спасибо, удалось достать комментарии таким образом)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |