Имя: Пароль:
1C
1С v8
Доработка результата работы СКД перед выводом
,
0 SAP
 
12.09.12
14:23
Подскажите, как модифицировать результат выполнения процессора компоновки СКД - нужно вычислить несколько полей по сложному алгоритму.
Почти во всех типовых отчетах предусмотрена процедура ПередВыводомЭлементРезультата() которая должна это делать но она нигде не задействована.
1 ChAlex
 
12.09.12
14:25
(0) - ПриКомпоновкеРезультата()
2 SAP
 
13.09.12
10:34
(1) Выгрузил результат в ТЗ, обработал как мне надо, как это теперь вывести, чтобы не потерять заголовок и оформление?
3 Maxus43
 
13.09.12
10:38
в вычисляемых полях можно ещё
4 SAP
 
13.09.12
10:39
В вычисляемых поля можно функциями общих модулей использовать, а я не хочу общие модули трогать
5 Пеппи
 
13.09.12
10:43
(4) а зачем типовые трогать?
6 SAP
 
13.09.12
10:44
(5) Можно свой в общем... Но блин планировался внешний отчет
7 Kashemir
 
13.09.12
10:46
(2) Возьми оригинальную схему, поменяй набор данных с запроса на объект - передай свою перелопаченую ТЗ, поправь настройки под вывод новых полей и выводи.
8 Пеппи
 
13.09.12
10:47
а программно создавать и выводить в СКД не вариант?
9 SAP
 
13.09.12
10:48
(8) Поясните плиз выводить в СКД что? Сделать запрос из обработанной ТЗ и подсунуть его СКД?
10 Kashemir
 
13.09.12
10:49
(9) Да
11 Kashemir
 
13.09.12
10:50
+(10) Т.е. нет ... зачем еще запрос делать ? Схема может использовать непосредственно ТЗ как источник.
12 SAP
 
13.09.12
10:51
(10) А схему ту же использовать можно или еще одну надо создавать?
13 SAP
 
13.09.12
10:51
В отчете
14 Пеппи
 
13.09.12
10:51
(9) да, а в СКД использовать набор данных объект.
15 Kashemir
 
13.09.12
10:51
(12) Можно ту же
16 Alex S D
 
13.09.12
10:52
у меня 2 схемы, в первой формирую тз, потом дорабатываю и пихаю во 2-ю схему..
17 Пеппи
 
13.09.12
10:52
(12) другую конечно же, в которой и описываешь свою ТЗ которую передаешь.
18 Пеппи
 
13.09.12
10:53
(16) это как?
19 Maxus43
 
13.09.12
10:54
(18) в первой схеме обычный запрос, во второй схеме источник данных - Объект, туда ТЗ перелопаченая передаётся
20 Kashemir
 
13.09.12
10:54
(18) Он имеет ввиду 2 одинаковые схемы, только с разными наборами данных. Плюс очевидно в первой у него стоит обязательный вывод всех полей
21 Alex S D
 
13.09.12
10:56
(17) в (19) все правильно сказал)
22 Пеппи
 
13.09.12
10:56
вот я и не поняла как используются 2 схемы одновременно, если обычно используется только одна схема. может программно?
23 Alex S D
 
13.09.12
10:57
(22) программно конечно
24 ДемонМаксвелла
 
13.09.12
11:12
(19) +1
например, так сделан отчет "План-фактный анализ себестоимости выпуска" в типовой УПП.
25 SAP
 
13.09.12
15:31
А какую схему делать основной, ту которая таблицу формирует или ту, которая выводит?
26 SAP
 
13.09.12
15:35
И вообще.. А первая компоновка зачем? Может просто взять из схемы параметры, написать запрос, выгрузить в ТЗ обработать и результат обратно в схему?
27 Kashemir
 
13.09.12
15:37
(26) Так ты ж по результат выполнения первой компоновки начальную ТЗ получаешь - разве нет ?
(25) Лучше вторую, если хочешь настройки с учетом добавляемых полей пользователю давать
28 SAP
 
13.09.12
15:38
(27) Ну я могу получать из компоновки, а могу просто запросом, ИМХО запросом даже проще
29 Kashemir
 
13.09.12
15:39
(28) Оно то проще, но вряд ли будешь допиливать те же отборы - в результате ТЗ будет больше чем могла быть
30 SAP
 
13.09.12
15:41
Так отборы я сделаю в запросе с помощью параметров, которые возьму из компоновки... Как-то так..
31 SAP
 
13.09.12
15:42
Или я что-то не понимаю?
32 Kashemir
 
13.09.12
15:52
(31) Если ты о жестких параметризированных отборах - то проблемы нет. Если же собираешся использовать пользовательские произвольные отборы - возникнут проблемы.
33 SAP
 
13.09.12
16:04
(32) Секунду... Произвольные отборы я буду настраивать и использовать в конечной схеме, которая будет выводить ТЗ. А ТЗ я могу сформировать как угодно, я правильно понимаю? Каким образом произвольные отборы, настроенные в схеме, обрабатывающей запрос смогут быть использованы во второй схеме, которая будет заниматься как раз выводом?
34 SAP
 
13.09.12
16:05
Я не очень хорошо понимаю связь двух схем.. Они как-то влияют друг на друга?
35 Пеппи
 
13.09.12
16:09
ты можешь передавать полную ТЗ в схему, произвольные отборы установленные пользователем отрабатывают все равно позже и отберут только нужные данные.
36 SAP
 
13.09.12
16:12
(35) т.е. я делаю вывод, что для формирования ТЗ совсем не обязательно использовать дополнительную схему, правильно?
37 Пеппи
 
13.09.12
16:14
(36) ну я формировала ТЗ, передавала ее в одну только схему, ну и все. Видимо дополнительная использовалась выше потому что она уже была настроена. Я хз. :)
38 SAP
 
13.09.12
16:16
(36) Спасибо, похоже так и есть )) Ваше "хз" очень сексуально )))))))))))
39 vmv
 
13.09.12
17:11
если мне нужно дать возможность пользователю делать отборы в массивной тз и результать этого отбора "скармливать" в отчет на СКД, то я поступаю следующим образом

1. завожу в метаданных отчета табличную часть
2. на форме отчета делают заклатдку "Отбор" или создаю форму отбора из этой ТЧ
3. ПриКомпоновкеРезультата() объект "видит" эту, посему там инициализирую параметр ТчОтбора в Скд или НаборДанных в Скд - одной командой загрузки Тч в ту или другую сущность
4. Получаю результат
5. По желанию варианты отобранной Тч можно сохранять в настройках пользователя

все
40 SAP
 
13.09.12
17:57
(39) Не понял "объект "видит" эту," Что?  ТЧ и ее отборы?
41 SAP
 
17.09.12
16:15
В продолжение темы. При программном выполнении компоновки не действуют пользовательские настройки.

Вот код.

НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();

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


Как сделать, чтобы компоновка использовала пользовательские настройки?
42 Kashemir
 
17.09.12
16:32
(41) А с каким объектом у тебя связаны пользовательские настройки ? Если с дефолтным КомпоновщикНастроек то проблемы быть не должно.
43 SAP
 
17.09.12
16:39
Компоновщик настроек дефолтный вроде в коде.

НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();

Причем в переменной НастройкиОтчета в отладчике видно, что она содержит пользовательские настройки
44 Kashemir
 
17.09.12
16:55
(43) Тогда она их и использует.
45 SAP
 
17.09.12
16:58
(44) Да вот что-то не использует. По крайней мере состав колонок изменить не удается. Хотя в НастройкиОтчета видно, что он меняется
46 Kashemir
 
17.09.12
16:58
+ (44)  КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки (DataCompositionSettingsComposer.GetSettings)
КомпоновщикНастроекКомпоновкиДанных (DataCompositionSettingsComposer)
ПолучитьНастройки (GetSettings)
Синтаксис:

ПолучитьНастройки()
Возвращаемое значение:

Тип: НастройкиКомпоновкиДанных.

Описание:

Позволяет получить копию настроек компоновки данных.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

К возвращаемой копии применяются пользовательские настройки.
Применение фиксированных настроек:
Отбор из фиксированных настроек добавляется к отбору основных настроек;
Условное оформление добавляется к условному оформлению основных настроек;
Параметры данных, установленные в фиксированных настройках устанавливаются в основных настройках.
При наличии пересечения отбора и параметров фиксированных настроек с отбором и параметрами настроек генерируется исключение.
47 SAP
 
17.09.12
16:59
Читал
48 SAP
 
17.09.12
17:00
Но почему-то не отрабатывает
49 Kashemir
 
17.09.12
17:00
(47) Тогда не знаю чем помочь - вроде все верно.
50 acsent
 
17.09.12
17:02
посмотри отладчикоч что там в настройках
51 SAP
 
17.09.12
17:08
(50) смотрел -  в переменной НастройкиОтчета состав колонок меняется, если пользователь их меняет в настройках, но на вывод это не влияет
52 SAP
 
18.09.12
10:26
Все - разобрался - мастер создал макета в виде списка, а надо было таблицей
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс