![]() |
![]() |
|
8.3. Обычное приложение.Обработка расшифровки.Получить значение всей тек строки | ☑ | ||
---|---|---|---|---|
0
SeiOkami
07.10.14
✎
13:01
|
Здравия всем!
Никак разобраться не могу. Как получить значение всех полей тек. строки? Получаю поля так: ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля() Поле там одно - то, по которому пользователь и клацнул А как получить значение всей строки, по полю которой клацнули? Могу получить значения группировок, в которые входит тек. поле, но вот как красиво получить тек. строку не пойму. Единственное, что нашёл: если уменьшить выполнить ДанныеРасшифровки.Элементы[Расшифровка-1], то получишь предыдущее поле. Но это ужасный способ. |
|||
1
DmitrO
07.10.14
✎
13:11
|
ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()
|
|||
2
SeiOkami
07.10.14
✎
13:12
|
(1), писал в (0)
Это получение родителя, а не тек. строки |
|||
3
DmitrO
07.10.14
✎
13:16
|
ну строка идентифицируется, ведь группировкой по какому-то полю (ну или несколько полей)
|
|||
4
DmitrO
07.10.14
✎
13:16
|
если это не детальные записи конечно..
|
|||
5
SeiOkami
07.10.14
✎
13:18
|
(4), это детальные записи. Получив группировку, к которой они относятся, я не получу значение тек. строки. По крайней мере не знаю как получить.
|
|||
6
DmitrO
07.10.14
✎
13:32
|
а точно у родителя (группировка детальных записей) в полях пусто?
|
|||
7
SeiOkami
07.10.14
✎
13:34
|
(6), у родителя в полях только он сам
|
|||
8
DmitrO
07.10.14
✎
13:36
|
а, т.е. это верхняя группировка, понял..
|
|||
9
SeiOkami
07.10.14
✎
13:38
|
(8), структура такая
Таблица Строки группировка "Контрагент" <Детальные записи> (Документ, сумма и др.) Пользователь клацает на сумму в детальных записях Нужно получить в обработке расшифровке значение не только суммы, но и документа и других полей в тек. строке |
|||
10
DmitrO
07.10.14
✎
13:48
|
тут тогда только по тупому можно:
сначала получаем родителя берем его идентификатор увеличиваем на 1 и получаем значения элементов расшифровки и его поля и так далее пока не получим тип ЭлементРасшифровкиКомпоновкиДанныхГруппировка (это значит пошла следующая строка), либо исключение - это значит отчет кончился.. |
|||
11
DmitrO
07.10.14
✎
13:49
|
вообще говоря в твоей задаче действия по расшифровке зависят от состава выбранных полей, а если среди них не окажется нужных?
|
|||
12
DmitrO
07.10.14
✎
13:50
|
например пользователь удалит поле на присутствие которого расшифровка рассчитывает?
|
|||
13
SeiOkami
07.10.14
✎
13:51
|
(12), Если я получу все значения строки, то смогу определить есть ли в ней нужное, аль нет.
|
|||
14
SeiOkami
07.10.14
✎
13:52
|
(10),
если я дойду до след. группировки, то не факт, что это след. строка. В одной группировке может быть штук 10 строк. Я нажимаю на 5ую, а след. группировка идёт после 10ой |
|||
15
DmitrO
07.10.14
✎
13:54
|
ну, определишь.. что нет какого-то поля, и что дальше? предупреждение пользователю: "невозможно отработать расшифровку потому что нет такого-то поля"?
|
|||
16
DmitrO
07.10.14
✎
13:55
|
(14) это да, надо еще проанализировать настроки и определить сколько полей выводится в строке :)
|
|||
17
DmitrO
07.10.14
✎
13:55
|
*проанализировать настройки
|
|||
18
DmitrO
07.10.14
✎
13:56
|
короче, гадость так-то ))
|
|||
19
DmitrO
07.10.14
✎
14:00
|
получается они зря не сделали для группировки детальных записей формирование элемента расшифровки типа ЭлементРасшифровкиКомпоновкиДанныхГруппировка, ибо в настройках это все таки группировка(!)
|
|||
20
SeiOkami
07.10.14
✎
14:01
|
Самое обидное, что я помню, что уже как-то делал подобную фигню... А как и где не помню (
|
|||
21
DmitrO
07.10.14
✎
14:04
|
да я тоже делал что-то подобное, и пришел к выводу что никакие соседние выведенные значения лучше не использовать а по данным родителей расшифровки надо получать (возможно уже посчитанные и выведенные) данные снова из базы
|
|||
22
SeiOkami
07.10.14
✎
14:13
|
Кто-нибудь же должен знать? Ап
|
|||
23
SeiOkami
07.10.14
✎
14:19
|
Вот когда троллить, то сразу куча-мала )
|
|||
24
hhhh
07.10.14
✎
14:35
|
(23) ну, в типовой слабО глянуть?
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //определим какое поле расшифровывается МассивПолейРасшифровки = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ДанныеРасшифровки); Для Каждого Элт Из МассивПолейРасшифровки Цикл |
|||
25
SeiOkami
07.10.14
✎
14:40
|
(24), не слабо. Эта функция возвращает массив родителей. А мне нужны поля текущей строки
|
|||
26
hhhh
07.10.14
✎
15:10
|
(25) ну пробуйте
ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ДанныеРасшифровки,, Истина); |
|||
27
SeiOkami
07.10.14
✎
15:14
|
(26), ну он выведет мне в добавок к родителю ещё и ресурс. Но это мне не нужно
|
|||
28
SeiOkami
07.10.14
✎
15:14
|
Нашёл способ. Суровый, но всё же.
1. Добавляем вычисляемые поля на каждое поле, которое нужно получить в расшифровке. Вычисляемое поле просто дублирует оригинальное. 2. Эти вычисляемые поля делаем ресурсами с функцией "Массив(НашеВычисляемоеПоле)". 3. Далее создаём в СКД макет для того поля, по клацанию которого хотим получить все наши вычисляемые значения. И в макете в поле "Расшифровка" пишем что-нить, например, "ДанныеСтроки". В параметрах к полю появится таблица, которую можно заполнить нашими вычисляемыми полями. 4. В результате в обработке расшифровки при выполнении ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля() мы получаем не одно поле, а все те, которые указали в макете. Может быть ест способ лучше, но я пока не нашёл. P.S. махинации с вычисляемыми полями нужны для того, чтобы не делать настоящие поля ресурсами. Если я указываю поле НЕ ресурс, то отчет выпадает с ошибкой. Возможно это лишь потому, что я привязывал всё к полю, который является ресурсом. В общем, если кому поможет это, то буду рад =) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |