|   |   | 
| 
 | Настройка отбора в СКД | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Так а при каком событии это делать надо? И пользовательские настройки вообще не нужны?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |