Имя: Пароль:
1C
1С v8
СКД установить значение в ячейку
0 skela1c
 
21.11.17
13:04
По нажатию на ячейку необходимо установить значение. Делаю с помощью "расшифровки". В процедуре "РезультатОбработкаРасшифровки" получаю "расшифровку" тип "ИдентификаторРасшифровкиКомпоновкиДанных", а хотелось бы " ЭлементРасшифровкиКомпоновкиДанныхПоля", чтобы получить номер строки. Подскажите как можно получить тип "ИдентификаторРасшифровкиКомпоновкиДанных" или может быть как получить строку отчета по другому?
1 skela1c
 
21.11.17
14:27
с типами разобрался, не могу понять как получить строку отчета чтобы выбрать поле, которое мне нужно
2 bodri
 
21.11.17
14:30
в СКД в макете назначить нужные данные для расшифровки
3 skela1c
 
21.11.17
14:33
(2) а можно конкретнее
4 bodri
 
21.11.17
14:43
В консоли СКД на вкладке макеты, назначаешь ячейке параметр расшифровки и там же в параметрах макета указываешь что будет в расшифровке
5 skela1c
 
21.11.17
14:46
мне нужно получить строку макета, чтобы в ней получить поле и передать её в расшифровку, как это можно сделать?
6 azernot
 
21.11.17
14:54
Опишите задачу, а не предполагаемый метод решения, тем более какой-то промежуточный этап.
7 skela1c
 
21.11.17
15:01
Отчет такого вида http://joxi.ru/bmoR8zXTMWkWxr , при нажатии в колонке "установить бизнес регион" открывается справочник "бизнес регионы" выбирается значение и записывается в "партнера"
8 azernot
 
21.11.17
15:19
Ага, значит вам нужно понять, что это поле Бизнес-регион и  получить значение поля "Партнер" из той же строки группировок.
По идентификатору
ПоляРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровкиКомпоновкиДанных].ПолучитьПоля()

Убеждаешься, что поле - Установить бизнес региона

Далее
ПоляРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровкиКомпоновкиДанных].ПолучитьРодителей()  получаешь ИД родительского элемента, у него получаешь поля, смотришь значения. Таким образом ищешь среди родителей "Пратнёра"
9 skela1c
 
21.11.17
15:41
Данные          = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
МассивРодителей = Данные.Элементы.Получить(Расшифровка).ПолучитьРодителей();
Для Каждого ИмяРасшифровки Из МассивРодителей Цикл
    тДанные = Данные.Элементы.Получить(ИмяРасшифровки.Идентификатор).ПолучитьПоля();

Идентификатор = 0 и не работает
10 azernot
 
21.11.17
15:51
(9) А что вообще есть в Данные.Элементы ?
Вы же в отладчике можете посмотреть, вообще есть там где партнёр?
11 azernot
 
21.11.17
15:57
+(10) Возможно, если поле находится на том же уровне, придётся перебирать все поля у которых родитель имеет тот же идентификатор.
12 skela1c
 
22.11.17
15:21
(11) а как перебрать поля?
13 skela1c
 
22.11.17
17:46
решается это дело так:
1 в макете скд надо переопределить расшифровку и указать поле, которое понадобится в моём случае "Партнер";
2 из процедуры "РезультатОбработкаРасшифровки" переходим на сервер и получаем то, что нужно

Данные          = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
ПереченьПолей   = Данные.Элементы.Получить(пРасшифровка).ПолучитьПоля();
2 + 2 = 3.9999999999999999999999999999999...