Имя: Пароль:
1C
1С v8
Настройка отбора в СКД
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
Так а при каком событии это делать надо? И пользовательские настройки вообще не нужны?
AdBlock убивает бесплатный контент. 1Сергей