|
СКД | ☑ | ||
---|---|---|---|---|
0
star_nox
09.01.14
✎
10:37
|
Доброе утро!
Подскажите, пожалуйста, никак не могу разобраться. Какой алгоритм программного добавления поля в отчет? В зависимости от изменения флажка нужно выводить еще одно поле или не выводить. Нашла вот такой алгоритм Поле1 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); Поле1.Поле = "Номенклатура"; Поле1.ПутьКДанным = "Номенклатура"; Поле1.Заголовок = "Номенклатура"; Вставляю его в процедуру при изменении, если флажок = истина. Но ничего не происходит. Точнее, только в настройках в СКД это поле появляется, но не отображается на экране. Подскажите, пожалуйста |
|||
1
Aprobator
09.01.14
✎
11:01
|
Лениво в СП лезти. Навскидку - Использование.
|
|||
2
Aprobator
09.01.14
✎
11:02
|
Хотя, структуру вывода данных СКД и набор данных каким боком связаны то вообще?
|
|||
3
Aprobator
09.01.14
✎
11:05
|
В общем - тебе, чтобы СКД показало это поле - добавить его еще и в структуру вывода данных. Последняя закладка СКД. Выбранные поля и т.п..
|
|||
4
star_nox
09.01.14
✎
11:10
|
(3) , проблема в том, что когда я его (поле) заношу в структуру вывода, оно всегда выдается. когда удаляю - не выдается.
не подскажите, как-то по-другому проблему с изменением флажка - выводом новой колонки решить можно? |
|||
5
Aprobator
09.01.14
✎
11:13
|
(4) занеси его в структуру вывода сразу. И управляй только его использованием по ситуации и все.
|
|||
6
star_nox
09.01.14
✎
11:28
|
(5), Вы можете подсказать, где можно посмотреть про это Использование? Весь синтакс-помощник пересмотрела на СКД не могу найти...или не там ищу?
|
|||
7
Aprobator
09.01.14
✎
11:46
|
(6) ВыбранноеПолеКомпоновкиДанных.
|
|||
8
star_nox
09.01.14
✎
11:48
|
(7), спасибо. поняла. буду разбираться
|
|||
9
Aprobator
09.01.14
✎
11:48
|
удачи
|
|||
10
__Amator__
09.01.14
✎
12:10
|
в СКД укажи как должно все выводится полностью,
а в модуле отчета в процедуре ПриКомпоновкеРезультата СтандартнаяОбработка = Ложь; // если на первом уровне ПолеСуммаФакт = Новый ПолеКомпоновкиДанных("СуммаФакт"); Для каждого текВыбор Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл Если текВыбор.Поле = ПолеСуммаПлан Тогда текВыбор.Использование = тутУстановимНужныйФлагИспользования; КонецЕсли; КонецЦикла; //далее стандартный вывод скд: КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
11
star_nox
09.01.14
✎
12:23
|
(10), спасибо большое! сейчас попробую!
|
|||
12
Aprobator
09.01.14
✎
12:28
|
(10) ужас. Чему ты людей учишь? Из всего кода только:
и то с определенными допущениями. |
|||
13
Aprobator
09.01.14
✎
12:28
|
+(12) остальное нафиг не надо.
|
|||
14
__Amator__
09.01.14
✎
12:31
|
интересно почему?
(сам поучусь) |
|||
15
Aprobator
09.01.14
✎
12:33
|
(14) стандартный вывод сам все отработает. Эта процедура в принципе и сделана для того, что в ней можно переде формированием отчета на СКД воздействовать на его настройки.
|
|||
16
Aprobator
09.01.14
✎
12:36
|
да и стандартный вывод на СКД (это так на будущее) уже давно делается при помощи метода СкомпоноватьРезультат.
|
|||
17
__Amator__
09.01.14
✎
12:37
|
согласен
|
|||
18
__Amator__
09.01.14
✎
12:38
|
да и ошибочка есть:
Если текВыбор.Поле = ПолеСуммаПлан Тогда должно быть: Если текВыбор.Поле = ПолеСуммаФакт Тогда но это опечатка |
|||
19
Aprobator
09.01.14
✎
12:44
|
поиск поля вроде тоже можно чуток попроще сделать, хотя помгу и ошибаться. сейчас СП гляну.
|
|||
20
Aprobator
09.01.14
✎
12:46
|
чуть попозже выложу. Если найду. Сейчас комп немного занят. Хочу посмотреть в СП НайтиПоИдентификатору.
|
|||
21
__Amator__
09.01.14
✎
12:47
|
просвети... а то я рекурсию с перебором юзаю
|
|||
22
Aprobator
09.01.14
✎
13:01
|
Теоретически можно перебор заменить на:
|
|||
23
__Amator__
09.01.14
✎
13:14
|
нет... наврят поиск можно сделать по другому...
поле может быть на разных уровнях вложенности (в отчете) поэтому для сложных отчетов придется юзать рекурсию |
|||
24
__Amator__
09.01.14
✎
13:15
|
если найдешь способ проще сообщи, интересно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |