|
Расшифровка в табличном документе | ☑ | ||
---|---|---|---|---|
0
BuddyQ
28.01.16
✎
17:08
|
Здравствуйте!
Формирую табличный документ вручную таким образом: ЗапросПросроченные = Новый Запрос; ЗапросПросроченные.Текст = "ВЫБРАТЬ | Согл.Наименование, | ЗадИсп.Автор, | СоглПредм.Предмет, | СоглИсп.Исполнитель, | ЗадИсп.СрокИсполнения |ИЗ | БизнесПроцесс.Согласование Согл | ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.Согласование.Исполнители СоглИсп ПО Согл.Ссылка = СоглИсп.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.Согласование.Предметы СоглПредм ПО Согл.Ссылка = СоглПредм.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя ЗадИсп ПО СоглИсп.ЗадачаИсполнителя = ЗадИсп.Ссылка |ГДЕ | СоглПредм.РольПредмета = ЗНАЧЕНИЕ(Перечисление.РолиПредметов.Основной) |И | Согл.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен) |И | ЗадИсп.ДатаИсполнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) |И | ЗадИсп.СрокИсполнения < &ТекДата |"; ЗапросПросроченные.УстановитьПараметр("ТекДата", ТекущаяДата()); РезультатЗапросаПросроченные = ЗапросПросроченные.Выполнить(); ВыборкаПросроченные = РезультатЗапросаПросроченные.Выбрать(); ТД = Новый ТабличныйДокумент; ТД.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТД.ОтображатьЗаголовки = Ложь; ТД.ТолькоПросмотр = Истина; ТД.Область("R3C1").Текст = "Бизнес-процесс"; ТД.Область("R3C2").Текст = "Автор"; ТД.Область("R3C3").Текст = "Документ"; ТД.Область("R3C4").Текст = "Исполнитель"; ТД.Область("R3C5").Текст = "Срок исполнения"; ТекущаяСтрока = 4; Пока ВыборкаПросроченные.Следующий() Цикл ТД.Область("R" + ТекущаяСтрока + "C1").Текст = ВыборкаПросроченные["Наименование"]; ТД.Область("R" + ТекущаяСтрока + "C2").Текст = ВыборкаПросроченные["Автор"]; ТД.Область("R" + ТекущаяСтрока + "C3").Текст = ВыборкаПросроченные["Предмет"]; ТД.Область("R" + ТекущаяСтрока + "C4").Текст = ВыборкаПросроченные["Исполнитель"]; ТД.Область("R" + ТекущаяСтрока + "C4").Текст = ВыборкаПросроченные["СрокИсполнения"]; ТекущаяСтрока = ТекущаяСтрока + 1; КонецЦикла; Ячейки столбца "Бизнес-процесс" должны быть кликабельны, при щелчке по ним должна отрываться форма соответствующего бизнес-процесса. Почитал документацию, выяснилось, что для этого используется механизм расшифровки. Но нигде не могу найти пример для работы с расшифровкой, если табличный документ формируется "на лету", а не на основе макета. А переделать найденные примеры под свои нужды не хватает знаний :( |
|||
1
Ёпрст
28.01.16
✎
17:10
|
Будет работать, ежели положишь таблицу на форму.. и вывод туда.
|
|||
2
BuddyQ
28.01.16
✎
17:13
|
То есть без формы никак?
|
|||
3
Ёпрст
28.01.16
✎
17:14
|
(2) да
|
|||
4
Ёпрст
28.01.16
✎
17:14
|
события есть только у формы
|
|||
5
BuddyQ
28.01.16
✎
17:24
|
Прошу прощения, а зачем мне события формы? Мне ведь не нужно переопределять стандартное поведение расшифровки.
Цитирую: "Если табличный документ открыт в отдельном окне, никаких действий по обработке расшифровки выполнить нельзя. В этом случае расшифровка будет работать в соответствии со своим поведением по умолчанию – то есть, будет открыто значение расшифровки. Для ссылочных типов будет открыта основная форма объекта, для других типов будет отображена строка, представляющая значение расшифровки." У меня же как раз первый вариант - табличный документ в отдельном окне, ссылочный тип. Разве нет? |
|||
6
FIXXXL
28.01.16
✎
17:25
|
(5) пустое не откроет, только "живую" ссылку
|
|||
7
Ёпрст
28.01.16
✎
17:26
|
(5) всё правильно, ты в ячейку записал текст, а в расшифровку ничего не положил при этом.
|
|||
8
Ёпрст
28.01.16
✎
17:27
|
вот ничего тебе и открывает.
|
|||
9
BuddyQ
28.01.16
✎
17:45
|
(7)(8) Так это потому что я пока не знаю, что написать.
Допустим, получаю я в цикле ссылку на бизнес-процесс: БП = БизнесПроцессы.Согласование.НайтиПоРеквизиту("Наименование", ВыборкаПросроченные["Наименование"]).Ссылка; (Хотя, наверное, ссылку можно и в запросе получить. Ну да ладно, пусть пока так будет) Дальше пишу (по аналогии с теми примерами, что нашел в сети): ТД.Область("R" + ТекущаяСтрока + "C1").Параметры.БП = БП; ТД.Область("R" + ТекущаяСтрока + "C1").Параметры.МойПараметрРасшифровки = БП.Ссылка; Ругается, что поле объекта не обнаружено ("Параметры"). А как тогда поместить ссылку на бизнес-процесс в ячейку? |
|||
10
BuddyQ
28.01.16
✎
18:32
|
Заработало.
Всё оказалось проще: БП = БизнесПроцессы.Согласование.НайтиПоРеквизиту("Наименование", ВыборкаПросроченные["Наименование"]); ТД.Область("R" + ТекущаяСтрока + "C1").Расшифровка = БП.Ссылка; И всё! Расшифровка работает. Всем участникам дискуссии спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |