Имя: Пароль:
1C
1С v8
Программное удаление одного элемента отбора СКД
0 seraf
 
31.08.20
11:19
Привет, я чет или слепой и не нагуглил
как найти и потом удалить один элемент

Настройки.Отбор.Элементы.

Получить (Get) у меня чет не отработало да и как по названию, а не по индексу
1 PuhUfa
 
31.08.20
11:24
(0) Видимо где то не там смотришь

    ОСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

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

Все работает
2 toypaul
 
гуру
31.08.20
11:25
в любой типовой есть соот-щий метод. может у тебя платформа сломалась. это тогда в 1С надо писать :)
3 seraf
 
31.08.20
13:23
Я смотрю методы КоллекцияЭлементовОтбораКомпоновкиДанных

вот код добавления элемента отбора

    Настройки = Отчет.КомпоновщикНастроек.Настройки;
    
    //Настройки.Отбор.Элементы.Очистить();

    ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачалаП");
    ЭлементОтбора.ПравоеЗначение = Отчет.СтандартныйПериод.ДатаНачала;
    ЭлементОтбора.Использование = Истина;

если вставить туда КоллекцияЗначенийПараметровКомпоновкиДанных

Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачалаП")

как поменять так и не понял не очищая
4 ДенисЧ
 
31.08.20
13:29
Тебе нужно что? установить новое значение?
Тогда есть

ЗначенияПараметровДанныхКомпоновкиДанных (DataCompositionDataParameterValues)
УстановитьЗначениеПараметра (SetParameterValue)
Синтаксис:
УстановитьЗначениеПараметра(<Параметр>, <Значение>)
Параметры:
<Параметр> (обязательный)
Тип: Строка, ПараметрКомпоновкиДанных.
Имя параметра или параметр компоновки данных, значение которого нужно установить.
<Значение> (обязательный)
Значение, которое нужно установить.
Описание:
Устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
     Методическая информация
5 seraf
 
31.08.20
13:35
Да, мне переустановить существующее нужно
я думал его вначале найти надо, потом устанавливать
6 seraf
 
31.08.20
13:37
хотя не только, мне же его и удалить из списка неплохо бы, когда пустую дату на форме забьют..
ну или отключить использование тогда
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн