Имя: Пароль:
1C
 
СКД: как получить данные из "стандартной" расшифровки?
0 mikecool
 
24.03.15
11:02
В отчет выводится список ресурсов вида:
Описание 1 ресурса      Значение
Описание 2 ресурса      Значение
...
Описание N ресурса      Значение
При выборе поля расшифровки стандартно выходит отчет вида:
Клиент 1     Знач 1 ресурса    Знач 2 ресурса .... Знач N ресурса
....
Клиент N     Знач 1 ресурса    Знач 2 ресурса .... Знач N ресурса
мне хотелось бы перехватить этот вывод, получить список Клиентов с отбором по ресурсу, по которому идет расшифровка и вывести другой отчет
Можно ли это сделать и если да, то как?
1 mikecool
 
24.03.15
11:03
то бишь - нужен набор данных расшифровки, чтобы им воспользоваться для формирования своего отчета
2 cons74
 
24.03.15
11:08
можно
3 mikecool
 
24.03.15
11:13
(2) замечательно
как?
4 mikecool
 
24.03.15
11:14
в данных расшифровки Элементы[Расшифровка].ПолучитьПоля() - только одна запись с описанием поля, по которому идет расшифровка
5 Новиков
 
24.03.15
11:15
А у тебя расшифровку получать для группировочных записей нужно или для детальных?
6 mikecool
 
24.03.15
11:17
(5) получается - нужно для группировочных, поскольку клиент выступает в группировке
7 mikecool
 
24.03.15
11:19
можно переформировать тот же запрос с отбором, что и первоначальный, но он достаточно громоздкий
в расшифровке нужен отчет другой структуры, хотелось бы поиметь в него отборы из первого запроса без переформирования
8 cons74
 
24.03.15
11:23
(4) все правильно, так и есть. Только ячейка, по которой щелкнул пользователь.
Отправная точка - процедура РезультатОбработкаРасшифровки (ты вроде уже там).
А далее уже в коде смотри - где идет вызов нового отчета с передачей в него параметров.

Ну или возможен второй вариант: в макете схемы в запросе есть Контрагент, но он изначально не выводится в отчет- а только в расшифровке. Но это уже механизм платформы. Т.е. в таком случае в коде ничего не найдешь - только писать свой код.
9 mikecool
 
24.03.15
11:25
(8) то бишь получается - надо ставить отбор на исходный запрос, переформировывать его и использовать его результат?
думал как то можно получить результат стандартной расшифровки, забрать его и использовать
10 cons74
 
24.03.15
11:31
Я не вижу код отчета.
А потому не ясно: "результат стандартной расшифровки" - ТабДок - формируется при создании описанного в коде отчета (нового). Или же вызывается платформой.

Короче - вместо тысячи слов: http://www.spec8.ru/kurs-po-skd-besplatno
11 mikecool
 
24.03.15
11:33
(10) уроки 106-109 просмотрел )
но как всегда у Гилева с Насиповым - что по накатанному работает, чуть в сторону - нет

под "результат стандартной расшифровки" имею ввиду таб док, который формируется платформой
12 mikecool
 
24.03.15
11:41
попробовал переформировать с выводом результата в ТЗ, получил "не можем выводить вложенные запросы блабла"
понял, что проще выполнить упрощенный вариант запроса )
13 Новиков
 
24.03.15
11:45
(5) Если для группировочных записей то  для Элементы[Расшифровка] нужно посмотреть родителей по иерархии группировок, и там уже поискать нужные тебе поля. Или рисовать свой макет, и уже в нем определять параметры.
14 fisher
 
24.03.15
12:02
(0) 1С на самом деле для расшифровки формирует новые настройки компоновки на основании текущей схемы и выполняет новую компоновку. Т.е. списка клиентов в данных расшифровки нет.
Список клиентов тебе придется получать или аналогично 1С-ой расшифровке, или уже в твоем отчете.
15 fisher
 
24.03.15
12:05
Можно, конечно, исхитриться в самом отчете и попробовать догадаться, что текущий вывод отчета - это расшифровка на самом деле. Только это всё равно извратнее в итоге выйдет, чем прямой путь.
16 mikecool
 
24.03.15
12:06
пробую
    СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("РасшифровкаПоКлиентам");
    Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
    Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    Компоновщик.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек.ПолучитьНастройки());
    Настройки = Компоновщик.Настройки;
при выполнении ругается на "это поле не могу использовать в группировке"
однако в макете "РасшифровкаПоКлиентам" нет таких полей, значит тянутся из Отчет.КомпоновщикНастроек.ПолучитьНастройки()
думал, что получу только доступные параметры и отборы, а оно воно но как (
17 mikecool
 
24.03.15
12:12
забыл про  Восстановить
18 mikecool
 
24.03.15
13:08
вот какого результат компоновки пустой?
параметры устанавливаются правильные, отборы тоже
в консоли с такими данными результат есть
что еще проверить?
19 echo77
 
24.03.15
13:18
Элементы[Расшифровка].ПолучитьРодителей()
20 Новиков
 
24.03.15
13:25
>>для Элементы[Расшифровка] нужно посмотреть родителей по иерархии группировок, и там уже поискать нужные тебе поля
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.