Имя: Пароль:
1C
 
Программное удаление\добавление полей скд
0 myr4ik07
 
22.11.16
14:53
Есть отчет на скд
http://prntscr.com/dacqx9
поле Выбранная, от его нужно показывать или не показывать в зависимости от заполненности параметра

вроде удаляет норм
    ЭлементыПараметры = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
    Если Не ЭлементыПараметры.Найти("Выборочная").Использование Тогда
        КомпоновщикНастроек.Настройки.Выбор.Элементы.Удалить(КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(3));
    КонецЕсли;    

но вот когда удалил поле то потом добавить его никак не получается, добавляю так

    ТекущиеНастройки = КомпоновщикНастроек.Настройки;
    КоллекцияВыбор = ТекущиеНастройки.Выбор.Элементы;

    НовЭл = КоллекцияВыбор.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    НовЭл.Поле = Новый ПолеКомпоновкиДанных("Выбраннная");
    НовЭл.Использование = Истина;


как добавить удаленное ранее колонку?
1 myr4ik07
 
22.11.16
15:00
вышел с ситуации через

Если Не ЭлементыПараметры.Найти("Выборочная").Использование Тогда
        КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(3).Использование = Ложь;
        //КомпоновщикНастроек.Настройки.Выбор.Элементы.Удалить(КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(3));
    Иначе
        КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(3).Использование = Истина;
    КонецЕсли;    

но все же, а добавить как?
2 Windyhead
 
22.11.16
15:04
(1)Вот у меня кусочек есть добавлял поля программно, думаю разберешься
Настройки=КомпоновщикНастроек.ПолучитьНастройки();
.....
.......
.......
    Для кк=0 по ВыбранныеЭлементы.Количество()-2 Цикл
        эл=ВыбранныеЭлементы[кк];
        Если ВерхняяГруппировка=Неопределено Тогда
            ТекГруппировка     = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));                                    
            ВыбранноеПоле= ТекГруппировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));      
            ВыбранноеПоле.Поле= Новый ПолеКомпоновкиДанных("СистемныеПоля.НомерПоПорядкуВГруппировке");
            ВыбранноеПоле.Использование = Истина;                
        Иначе            
            ТекГруппировка     = ВерхняяГруппировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));            
        КонецЕсли;    
        ТекГруппировка.Имя = эл.Значение;        
        ПолеГруппировки                = ТекГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));      
        ПолеГруппировки.Поле           = Новый ПолеКомпоновкиДанных(эл.Значение);
        ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
        ПолеГруппировки.ТипДополнения  = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;    
        АвтоПоле=ТекГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));    
        АвтоПоле.Использование = Истина;        
        
        
        
        АвтоПолеПорядка=ТекГруппировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
        АвтоПолеПорядка.Использование = Истина;        
        ВерхняяГруппировка=ТекГруппировка;        
    КонецЦикла;
3 DrShad
 
22.11.16
15:11
ДопСтруктура = Отчет.КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    
    грВодитель = ДопСтруктура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    грВодитель.Поле = Новый ПолеКомпоновкиДанных("Задание.Водитель");
    грВодитель.Использование = Истина;
    грВодитель.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
    
    ВыбранноеПоле               = ДопСтруктура.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    ВыбранноеПоле.Поле          = Новый ПолеКомпоновкиДанных("Задание.Водитель");
    ВыбранноеПоле.Использование = Истина;
    ВыбранноеПоле.Заголовок = "Водитель";
4 DrShad
 
22.11.16
15:11
как то так
5 myr4ik07
 
22.11.16
15:14
спасибо чуваки