Вход | Регистрация



Расшифровка СКД. Что сделать, чтобы не цифры, а значения открывались?

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует