|
Настройка отбора в СКД | ☑ | ||
---|---|---|---|---|
0
Sulimov
16.11.11
✎
09:17
|
Доброе утро! Можно ли в управляемом приложении в отчете на СКД сделать так, чтобы если устанавливаешь отбор, например, по контрагенту, автоматически ставилась галка в настройке группировок "Контрагент"?
|
|||
1
Sulimov
16.11.11
✎
09:29
|
ап..
|
|||
2
zippygrill
16.11.11
✎
09:31
|
программно пока.
смотри КомпоновщикНастроек.Настройки.Структура... в конфигураторе |
|||
3
Sulimov
16.11.11
✎
09:41
|
А как? Только в форме или еще команду в отчете надо писать?
|
|||
4
Sulimov
16.11.11
✎
09:48
|
Блин... А при каком событии формы это описывать..?))
|
|||
5
Sulimov
16.11.11
✎
09:56
|
ап...
|
|||
6
Paranoid
16.11.11
✎
09:57
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
это в Модуле ! |
|||
7
zippygrill
16.11.11
✎
09:57
|
можешь в модуле объекта: ПриКомпоновкиРезультата
|
|||
8
zippygrill
16.11.11
✎
10:02
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ТвойОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(1);// индекс отбора Если ТвойОтбор.Использование Тогда КомпоновщикНастроек.Настройки.Структура....... //находишь свою группировку и ставишь Использование КонецЕсли; КонецПроцедуры |
|||
9
Paranoid
16.11.11
✎
10:05
|
В видео материале Гилева
баннер вверху это очень подробно все описано. |
|||
10
Sulimov
16.11.11
✎
10:40
|
Спасибо!
|
|||
11
Sulimov
16.11.11
✎
11:50
|
Блин, а как найти нужную мне группировку? Что-то не получается у меня...
|
|||
12
Sulimov
16.11.11
✎
12:04
|
Как название этой группировки проверить?
|
|||
13
Синий зуб
16.11.11
✎
12:11
|
(11) Мне с самого начала было интересно, как ты это сделаешь. Там ведь макет, а не группировки, как в построителе.
|
|||
14
Sulimov
16.11.11
✎
12:16
|
И что, получается никак?
|
|||
15
Sulimov
16.11.11
✎
12:23
|
а?
|
|||
16
Sulimov
16.11.11
✎
13:51
|
ап...
|
|||
17
zippygrill
16.11.11
✎
17:08
|
(16) ну поставь точку останова в процедуре и смотри что внутри КомпоновщикНастроек.Настройки.Структура. Уверен найдешь
|
|||
18
Paranoid
16.11.11
✎
17:09
|
ЭлементСтруктуры = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ПолеГруппировки = ЭлементСтруктуры.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ЭлементПорядка = ЭлементСтруктуры.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); добавить надо так ?? |
|||
19
zippygrill
16.11.11
✎
17:11
|
(18) ему не нужно добавить. только галку поставить у группировки :)
|
|||
20
Paranoid
16.11.11
✎
17:12
|
аа ну значит получить вместо добавить.
и там я надеюсь разберется если не разберется то полностью напишу позже. |
|||
21
Sulimov
17.11.11
✎
11:38
|
Написал вот так:
ЭлементСтруктуры = КомпоновщикНастроек.Настройки.Структура[0]; ПолеГруппировки = ЭлементСтруктуры.ПоляГруппировки.ДоступныеПоляПолейГруппировок.Элементы.Получить(2); ПолеГруппировки возвращает ДоступноеПолеКомпоновкиДанных, поле - Контрагент. Все ка мне надо. Но у него нет такого метода "Использование". Видимо что-то не то получаю, надо как-то по-другому... |
|||
22
Sulimov
17.11.11
✎
16:28
|
Блин... ну может хоть кто-нибудь подскажет что-то умненькое...
|
|||
23
Sulimov
18.11.11
✎
09:41
|
Еще раз хочу тему свою поднять... Скажите, это невозможно что-ли сделать???
|
|||
24
vmv
18.11.11
✎
09:50
|
я начал работать с компоновкой с августа сего года сразу в 8.2.
в сути вашей проблемы не буду разбираться, но я делаю так в формах. 1. где-то создаю структуры отбора и порядка, потом передаю в компоновщик элемента формы или самой формы и ЭлементыОтбора = ЭлементСпискаФорма.Список.Отбор.Элементы; ЭлементыОтбора.Очистить(); СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить("ИсточникИмя" , ВиИмя); СтруктураОтбора.Вставить("ИсточникТаблицаИмя", ВиТаблИмя); Для каждого ЭлементСтруктуры Из СтруктураОтбора Цикл ЭлементОтбораДанных = ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ЭлементСтруктуры.Ключ); ЭлементОтбораДанных.Использование = Истина; ЭлементОтбораДанных.ПравоеЗначение = ЭлементСтруктуры.Значение; КонецЦикла; ЭлементыПорядка = ЭлементСпискаФорма.Список.Порядок.Элементы; ЭлементыПорядка.Очистить(); ЭлементПорядкаДанных = ЭлементыПорядка.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); ЭлементПорядкаДанных.Использование = Истина; ЭлементПорядкаДанных.Поле = Новый ПолеКомпоновкиДанных("ПоляКлючаЗначение"); ЭлементПорядкаДанных.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр; ЭлементПорядкаДанных = ЭлементыПорядка.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); ЭлементПорядкаДанных.Использование = Истина; ЭлементПорядкаДанных.Поле = Новый ПолеКомпоновкиДанных("Период"); ЭлементПорядкаДанных.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр; |
|||
25
Sulimov
18.11.11
✎
09:55
|
Это все происходит ПриКомпоновкеРезультата? ЭлементСпискаФорма - это что? Таблица пользовательских настроек?
|
|||
26
Sulimov
18.11.11
✎
10:08
|
и что такое "ИсточникИмя" и "ИсточникТаблицаИмя"?
|
|||
27
vmv
18.11.11
✎
10:26
|
ЭлементыОтбора = Список.Отбор.Элементы;
надо так Список - элемент формы(динамический список) ИсточникИмя - несущественно, колонка сиписка - для примера. В струкутрура отбора накладывается отбор на другие колонки можно еще и так ЭлементОтбораДанных.ПравоеЗначение = ЭлементСтруктуры.Значение; Если ТипЗнч(ЭлементСтруктуры.Значение) = Тип("СписокЗначений") Тогда ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Иначе // по умолчанию вид сравнения "Равно" КонецЕсли; |
|||
28
Sulimov
18.11.11
✎
10:29
|
Так а при каком событии это делать надо? И пользовательские настройки вообще не нужны?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |