Имя: Пароль:
1C
1С v8
Расшифровка СКД: эмуляция стандартной без выбора пользователя
,
0 Пол Ньюман
 
05.11.13
17:02
При двойном щелчке мышкой на отчете СКД выходит меню действий. Можно ли по двойному щелчку сразу сэмулировать действия СКД, как если бы пользователь выбрал Расшифровать - <ИмяПоля>, не заполняя при этом самому отбор по данным расшифровки.
1 fisher
 
05.11.13
17:03
Можно.
Примеры работы с расшифровкой СКД есть в соответствующих книжках.
2 Пол Ньюман
 
05.11.13
17:09
(1) У меня нет соотвествующих книжек. Если вы знаете - напишите пример, если не знаете - спасибо за ап.
3 Пол Ньюман
 
05.11.13
17:24
Вроде должен был сработать данный код

СтандартнаяОбработка = Ложь;
    
ОбработкаРасшифровки  = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

ОбработкаРасшифровки.Расшифровать(Расшифровка, Новый ПолеКомпоновкиДанных("Валюта"));

но к сожалению по нему ничего не происходит
4 Dmitry1c
 
05.11.13
17:26
Компоновка данных изучается при помощи водки.
5 Aprobator
 
05.11.13
17:29
(3) хелп читай до конца. А то кусок выдрал и ждешь результата.
6 Ksandr
 
05.11.13
17:32
Макет ресурса - задаешь параметр расшифровки и действие
7 Пол Ньюман
 
05.11.13
17:32
Три комментария и нулевой КПД, зачем люди вообще комментаируют, самоутверждаются что ли? Словесный понос? Непонятно.
8 Пол Ньюман
 
05.11.13
17:33
(6) Пример кода пожалуйста, который может быть использован в обработке расшифровки, я не знаю что такое макет ресурса
9 fisher
 
05.11.13
17:37
(6) Про макет ресурса я как-то не подумал... Но я думаю, что ему не только ресурсы расшифровывать надо.
10 Aprobator
 
05.11.13
17:38
(9) ему надо по умолчанию действие открыть значение. Причем без выбора его из меню.
11 Aprobator
 
05.11.13
17:39
впрочем могу и ошибаться, потому как ... не заполняя при этом самому отбор по данным расшифровки... - хз как понять.
12 DexterMorgan
 
05.11.13
17:39
(2) Гилева тада курс бесплатный посмотри, раз денег на книжки нет
13 Пол Ньюман
 
05.11.13
17:42
(9) Мне нужно вывести детальные записи со всеми полями с использованием отбора выбранной в отчете строки. В подменю Расшифровать нет пункта Детальные записи, но при открытии отчета можно удалить выбранное поле, тогда получатся детальные записи.

ЭлемСтруктуры = КомпоновщикНастроек.Настройки.Структура[0];
ЭлемСтруктуры.ПоляГруппировки.Элементы.Очистить();


(10) Советуете читать хелп, а сами не в состоянии даже внимательно прочитать две строки в теме. Мне не нужно открывать значение, мне нужно Расшифровать.
14 fisher
 
05.11.13
17:42
(10) Ну? По идее макетами полей и ресурсов он сможет это разрулить без кодирования вообще
15 Aprobator
 
05.11.13
17:44
(13) ужас.
16 1C_OOLer
 
05.11.13
17:45
17 Aprobator
 
05.11.13
17:46
(13) нормально сформулированный вопрос я в состоянии прочитать. Тут откровенный бред просто. Первый раз слышу по расшифровку по детальным записям.
18 fisher
 
05.11.13
17:48
(13) Что-то ты дофига резкий для просящего помощи. Код ему вынь да положь а все остальное - понос, простая расшифровка или сложная - сам догадывайся. Что не так сказал - отповедь.
ЗЫ. Открытие значения - частный случай расшифровки.
19 Aprobator
 
05.11.13
17:53
(18) ему походу надо при расшифровке подменять структуру вывода.
20 Пол Ньюман
 
05.11.13
17:56
(18) Специально для вас:

Пользователь в стандартном режиме дважды щелкает по отчету, выбирает пункт расшифровать и любое поле, после чего открывается новая форма отчета с расшифровкой.

Как открыть новую форму отчета с расшифровкой сразу по двойному щелчку, не заставляя пользователя что-то выбирать, поскольку мы точно знаем что он выберет Расшифровать и поле "Валюта"
21 Пол Ньюман
 
05.11.13
17:59
(16) По ссылке отсутствует мой случай
22 Aprobator
 
05.11.13
17:59
надо же - родил наконец то вопрос. Короче требуется по умолчанию расшифровка по строке по полю "Валюта". Вопрос только - в каждой ли строке возможна такая расшифровка?
23 fisher
 
05.11.13
17:59
(20) Да понял я, понял. Только желания большого нет ради тебя такого едкого в сорцах рыться. Там кода достаточно немало выходит для такой, казалось бы, тривиальной задачи.
Гугли "1С СКД программная расшифровка".
Там сообразишь, что к чему.
24 fisher
 
05.11.13
18:00
(22) А в чем проблема сделать для каждой? Получаешь в обработке расшифровки значения текущей и вышестоящих группировок и пихаешь их в отборы.
25 Aprobator
 
05.11.13
18:02
(24) пользователь может жмакнуть на поле группировку, а может на поле ресурс.
26 Пол Ньюман
 
05.11.13
18:02
(23) Я никого не прошу где-то рыться. Человек либо знает либо не знает. Если человек знает - он даст четкий ответ, если не знает - он дает бесполезные советы: гугли то, читай это. Это бессмсленный флуд, отечаю на него просто чтобы прочие люди понимали, что решение дано не было.
27 Ksandr
 
05.11.13
18:03
1. http://d.pr/i/YXn1
2. http://d.pr/i/G5o3

И никакого кода
28 Aprobator
 
05.11.13
18:04
(26) так бы и сказал - сам думать не хочу, жду только готовое решение.
29 Ksandr
 
05.11.13
18:04
К ИТС доступ есть?
30 Aprobator
 
05.11.13
18:05
(27) это сработает для фиксированного макета только. Хотя, кто знает, какой случай у ТС.
31 Aprobator
 
05.11.13
18:06
+(30) и, кстати, вот сходу не помню, означает ли Основное действие то, что не будет показываться меню ячейки расшифровки.
32 Пол Ньюман
 
05.11.13
18:08
(27) Не уверен что это абсолютно то, что нужно, но большое спасибо, попробую.
33 Пол Ньюман
 
05.11.13
18:10
(27) Какое поле должно быть выбрано при создании макета? Ресурс? или любое участвующее в отчете?
34 fisher
 
05.11.13
18:10
(27) В этом случае открывается меню расшифровки
35 fisher
 
05.11.13
18:11
Вернее, не меню, а окошко с выбором поля, по которому расшифровывать.
36 Ksandr
 
05.11.13
18:14
(33) Я только с ресурсами этим пользовался.
Почту скажи, скину полезнейший мануал.
37 Пол Ньюман
 
05.11.13
18:23
(36) Я понял принцип, но пока почему-то не срабатывает. У меня в строках две группировки, одна в колонках(День) с одним ресурсом (СуммаНачальныйОстаток). Какой тип поля нужно добавить в таблицу Макет?

dimoff66(дворняга)маилру
38 Пол Ньюман
 
05.11.13
18:25
(36) И мне кажется должно работать (3) иначе вообще непонятно тогда что делает этот метод
39 Пол Ньюман
 
05.11.13
18:38
Всё, я понял, метод Расшифровать возвращает настройки, а не расшифровывает. Настройки можно передать в новую форму отчета, загрузить и вывести отчет, так и поступлю. Всем спасибо, извините если был резок.
40 Пол Ньюман
 
05.11.13
18:53
Полностью код если кому в будущем понадобится:

1) Создаем у формы отчета реквизит ВходящиеНастройки

В обработке расшифровки пишем:

Процедура ТаблицаРезультатаОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ОбработкаРасшифровки  = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    НастройкиКомпоновки = ОбработкаРасшифровки.Расшифровать(Расшифровка, Новый ПолеКомпоновкиДанных("Валюта"));
    
    НоваяФорма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета",,Новый УникальныйИдентификатор);
    НоваяФорма.ВходящиеНастройки = НастройкиКомпоновки;
    
    НоваяФорма.Открыть();
    
        
КонецПроцедуры

При открытии пишем:

Если ВходящиеНастройки <> Неопределено Тогда
        
        КомпоновщикНастроек.ЗагрузитьНастройки(ВходящиеНастройки);
            
        ЭлемСтруктуры = КомпоновщикНастроек.Настройки.Структура[0];
        ЭлемСтруктуры.Использование = Истина;
        ЭлемСтруктуры.ПоляГруппировки.Элементы.Очистить();
        ЭлемСтруктуры.Выбор.Элементы.Очистить();
        
        АвтоПоле = ЭлемСтруктуры.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
        АвтоПоле.Использование = Истина;
            
        ДействияФормыДействиеСформироватьОтчет(Неопределено);
41 Пол Ньюман
 
05.11.13
18:56
Соотвественно если расшифровывать по всем полям не нужно, то при открытии достаточно написать

Если ВходящиеНастройки <> Неопределено Тогда
        
        КомпоновщикНастроек.ЗагрузитьНастройки(ВходящиеНастройки);
                        
        ДействияФормыДействиеСформироватьОтчет(Неопределено); //Или метод СкомпоноватьРезультат если выводится не программно

КонецЕсли;
42 fisher
 
05.11.13
19:01
ПриОткрытии - это лишний костыль.
43 Aprobator
 
06.11.13
10:05
(40) ужас. За

...
  НоваяФорма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета",,Новый УникальныйИдентификатор);
    НоваяФорма.ВходящиеНастройки = НастройкиКомпоновки;
    
    НоваяФорма.Открыть();

Пороть надо.
44 Пол Ньюман
 
06.11.13
10:21
(43) Аргументация последует или продолжается бессмысленный словесный понос?
45 Пол Ньюман
 
06.11.13
10:28
Единственное вместо ЭтотОбъект нужно создать новый экземпляр объекта, но пороть то зачем?
46 Aprobator
 
06.11.13
10:31
(44) понос это содержимое твоей головы.
47 Aprobator
 
06.11.13
10:39
Открой СП наконец и дочитай там хелп до конца, хотя бы по объекту Отчет.

....
ОтчетДляРасшифровки = Отчеты.ИмяТвоегоОтчета.Создать();
ОтчетДляРасшифровки.КомпоновщикНастроек.Загрузить(НастройкиКомпоновки);
ФормаОтчетаРасшифровки = ОтчетДляРасшифровки.ПолучитьФорму();
....
48 Aprobator
 
06.11.13
10:40
+(47) дальше, надеюсь сам дотумкаешь. Хотя, лично я, очень сильно сомневаюсь.
49 Aprobator
 
06.11.13
10:44
как вариант можно глянуть еще методику расшифровки используемую в произвольных отчетах в конфигурации УПП или КА.
50 Пол Ньюман
 
06.11.13
10:52
(47) А то же самое для внешнего отчета?
51 Aprobator
 
06.11.13
10:55
(50) Лови, балбес.

...
ОтчетДляРасшифровки = ВнешниеОтчеты.Создать(ИспользуемоеИмяФайла);
...
52 Пол Ньюман
 
06.11.13
10:56
(51) Я знаю, я тебя проверял.
53 Aprobator
 
06.11.13
10:57
(52) знал бы, такую куйню как в (40) не порол бы.
54 Пол Ньюман
 
06.11.13
10:59
(51) Что действительно готов поймать балбес - это как открыть эту форму чтобы при закрытии в ней не сохранялись настройки, потому что если закрыть первой основную форму, где стоит автоматическое сохранение настроек, то при новом открытии проставляются настройки из расшифровки.

(53) Мне нужно было проверить что это в принципе работает
55 Aprobator
 
06.11.13
11:06
(54) ты безнадежен.

...
ФормаОтчетаДляРасшифровки.ВосстанавливатьЗначенияПриОткрытии = Ложь;
...
56 Пол Ньюман
 
06.11.13
11:11
(55) Видишь, простые вещи ты знаешь и тут же готовно этими знаниями козыряешь, а задачу в (0) решить не смог. В этом разница - я не знаю простых вещей, но умею думать. Нам нужно держаться друг за друга, мы удачно друг друга дополняем.
57 Aprobator
 
06.11.13
11:13
(56) ты не в состоянии даже тупо получить информацию с инструкции. Что ты хотел в (0) сомневаюсь, что кто то вообще сумел понять.
58 Пол Ньюман
 
06.11.13
11:14
(57) Тебе важно быть умней меня?
59 Aprobator
 
06.11.13
11:16
+(57) единственное, что у тебя хорошо получается, так это хамить. Впрочем, это известно еще со стародавних времен, повышенная тупость сопровождается повышенной агрессивностью.
(58) нет. Ты для меня не имеешь никакого значения. Как человек ты обычный хам, как программист - пустое место.
60 Пол Ньюман
 
06.11.13
11:20
(59) Ок =)
61 Aprobator
 
06.11.13
16:32
(60) хм - тогда извини, походу я тоже погорячился и был в корне не прав по отношению к тебе. Вообще заметил за собой, что последнее время после общения с некоторыми товарищами на мисте, реально агрессивнее становлюсь. Потому и свое время пребывания на мисте стремлюсь сводить в минимуму.
62 Пол Ньюман
 
11.11.13
12:46
(61) Ноу праблемз!