Имя: Пароль:
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
хотя не только, мне же его и удалить из списка неплохо бы, когда пустую дату на форме забьют..
ну или отключить использование тогда
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший