Имя: Пароль:
1C
 
Расшифровка СКД. Что сделать, чтобы не цифры, а значения открывались?
0 bolobol
 
13.08.18
12:40
Доброго дня!

Подскажите, пожалуйста, что имеется в виду, когда дв.клик по ячейке отчёта со ссылкой на документ - вызывает открытие диалогового окна с некоторой цифрой, вместо открытия документа?

Как поправить? Что смотреть?

Спасибо!
1 Cyberhawk
 
13.08.18
12:41
Это идентификатор элемента расшифровки
2 Cyberhawk
 
13.08.18
12:42
Один из способов открытия значения ячейки - нарисовать макет соотв. поля и в его параметры добавить выражение-ссылку на нужное поле СКД
3 Cyberhawk
 
13.08.18
12:43
Но тебе сказанное, думаю, сразу так не поможет. Возможно, кормящие разжуют после меня )
4 Fragster
 
гуру
13.08.18
12:46
мой телепатический орган подсказывает, что при программной компоновке в ПриКомпоновкеРезультата в нужное место не были переданы данные расшифровки
5 bolobol
 
13.08.18
14:07
(4) Скорее, непонятно, как табличному полю или куда-то в другое место - передать эти данные расшифровки. Т.к. в отладчике я их вижу (их содержимое), а форма при дв.клике - их не видит.
На форме должен быть какой-то реквизит? В параметрах формы? Какой-то тип особенный? Как-то связан с табличным полем или поле как-то связано с ним? Не пойму, как это могли задумать в 1С
6 Fragster
 
гуру
13.08.18
14:13
(5) в реквизите формы сохраняешь адрес временного хранилища с  ДанныеРасшифровки из процессора компоновки, а в обработке расшифровки юзаешь. Если это расширение формы отчета, то все происходит само (ну и реквизит сам добавляется в форму).
7 bolobol
 
13.08.18
14:18
Адрес временного хранилища?

Самому обработку расшифровки писать?

Т.е. если форма без основного макета СКД, а просто формочка с табличным полем, куда нечто из общего модуля данные из СКД выводит, то автоматом данные расшифровки использоваться не будут никак?

И, может, есть пример как это могло бы быть реализовано?
8 Fragster
 
гуру
13.08.18
14:26
это нечто из общего модуля скорее всего может возвращать и данные расшифровки.
соответственно, пихаешь их во временное хранилище с идентификатором формы, далее да, сам пишешь обработку расшифровки, см. СП по чему-то типа

ДанныеРасшифровкиКомпоновкиДанных.Элементы.Получить(ИдентификаторРасшифровки);
9 bolobol
 
13.08.18
14:40
Идентификатора формы нет в общем модуле - есть только (передано параметрами с формы): ТабличноеПоле и Параметры(тип: ДанныеФормыСтруктура)
10 Мимохожий Однако
 
13.08.18
15:04
(9) в (1) подсказали про идентификатор расшифровки, а не формы
11 Fragster
 
гуру
13.08.18
15:10
(9) идентификатор формы нужен в качестве параметра ПоместитьВоВременноеХранилище
12 Fragster
 
гуру
13.08.18
15:10
иначе временное хранилище превратиться в тыкву при первом же серверном вызове
13 bolobol
 
13.08.18
15:18
(12) Спасибо вам огромное - все необходимые ресурсы нашёл, с временных хранилищем ещё предстоит разобраться, как и с фактическим открытием расшифровки. Имея направление "копать" - уже можно делать вид, что работается в поте лица)
Спасибо!
14 bolobol
 
14.08.18
10:01
В итоге - и сохранил полученную РасшифровкуКомпоновкиДанных, и получаю её, и элементы получаю, но в элементах только:

Группировка: <пусто>
Идентификатор: 8
ОсновноеДействие: Открыть

А значения-то где получать?

Беру Табличный документ, куда выведен отчёт, там есть .ТекущаяОбласть, где НаСервере:
Заполнение: Текст
Значение: Недоступно для чтения
ИспользованиеРасшифровки: Ячейка
Расшифровка: Неопределено
СодержитЗначение: Ложь
Имя: "R1C1" - хотя дв.клик был совершенно в иной области

А НаКлиенте:
Имя: "R7C4" - верно
Расшифровка: 8
Остальное - не отличается.

Где значения-то??
15 bolobol
 
14.08.18
11:09
Апну, штоле
16 Rokford
 
14.08.18
11:18
Пример программного использования расшифровки можно посмотреть у Евгения Гилева в курсе по СКД. Видео с 106-110. (в нете находится быстро, или на их сайте -  этот курс бесплатный)
17 Fragster
 
гуру
14.08.18
11:21
(14) вот кусок моего кода, отдаленно имеющего отношение к проблеме:

            ИдентификаторРасшифровки = РезультатОтчета.Область(СчС, СчК).Расшифровка;
            ЭлементРасшифровки = ДанныеРасшифровки.Элементы.Получить(ИдентификаторРасшифровки);
            ПолеРасшифровки = ЭлементРасшифровки.ПолучитьПоля()[0];
            Если СчС = 2 Тогда
                Таблица.Колонки.Добавить(ПолеРасшифровки.Поле);
            КонецЕсли;
            Если ПолеРасшифровки.Значение <> NULL Тогда
                Стр[ПолеРасшифровки.Поле] = ПолеРасшифровки.Значение;
            ИначеЕсли ЗначениеЗаполнено(РезультатОтчета.Область(СчС, СчК).Текст) Тогда
                Стр[ПолеРасшифровки.Поле] = Число(РезультатОтчета.Область(СчС, СчК).Текст);
            Иначе
                Стр[ПолеРасшифровки.Поле] = 0;
            КонецЕсли;
18 bolobol
 
14.08.18
11:23
(16) Спасибо, конечно, но меньше чем на 3D-инсталляцию программного кода я не согласен)
19 Rokford
 
14.08.18
11:24
(18) не понял
20 Fragster
 
гуру
14.08.18
11:26
(19) видео как формат обучения программированию - шлак
21 Fragster
 
гуру
14.08.18
11:27
и я с этим согласен
22 bolobol
 
14.08.18
11:30
(17) Не пойму, вот как догадаться, что ПолучитьПоля() нужно вызвать... Спасибо!!
23 Rokford
 
14.08.18
11:31
(20, 21) а я не согласен
И вообще (раз уж я влез в тему :) ) что там такого в этой ячейке нестандартного, что нужно программно огород городить?
Если, как автор говорит, там "ячейка отчёта со ссылкой на документ" то СКД должна сама без лишних телодвижений с расшифровкой открывать документ.
Программную расшифровку делал для нестандартного поведения, когда нужно обрабатывать не ссылочные данные в ТЗ.
24 Fragster
 
гуру
14.08.18
11:32
(23) это работает только если у тебя форма с основным реквизитом-отчетом
25 bolobol
 
14.08.18
11:34
(19) Синтаксис, описания методов - это документация, и никак не видео.