Имя: Пароль:
1C
 
УФ. Программно открыть отчет на СКД и установить значение отбора
0 Max Street
 
14.01.16
09:45
Доброе утро.

Хочу программно открыть отчет на СКД и установить значение отбора. Такой код...

&НаКлиенте
Процедура ПоступлениеИОтгрузкаТоваров(Команда)
    
    ПараметрыОтчета = Новый Структура("СформироватьПриОткрытии, ПользовательскиеНастройки",Истина);
    ПараметрыОтчета1 = ПолучитьПользовательскиеНастройкиОтчета();
    
    УстановитьЗначениеПользовательскойНастройки(ПараметрыОтчета1.Настройки.Отбор,"Номенклатура",Элементы.СписокРасширенныйПоискНоменклатура.ТекущаяСтрока);
    
    ОткрытьФормуМодально("Отчет.ПоступлениеИОтгрузкаТоваров.Форма.ФормаОтчета",ПараметрыОтчета);
    
КонецПроцедуры

&НаСервере
Функция ПолучитьПользовательскиеНастройкиОтчета()
    Возврат Отчеты.ПоступлениеИОтгрузкаТоваров.Создать().КомпоновщикНастроек;
КонецФункции

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

... выдает такую ошибку: "Поле объекта недоступно для записи (Отбор)
    УстановитьЗначениеПользовательскойНастройки(ПараметрыОтчета1.Настройки.Отбор,"Номенклатура",Элементы.СписокРасширенныйПоискНоменклатура.ТекущаяСтрока);"

Подскажите, пожалуйста, как исправить
1 los_hooliganos
 
14.01.16
09:54
&НаКлиенте
Процедура ЗаполнитьЭлементОтбораКомпоновкиДанных(ОтборНастройкиКомпоновкиДанных,Использование,ВидСрав,ИмяПоля,ЗначениеОтбора)
    
    НовыйЭлемент = ОтборНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    
    НовыйЭлемент.Использование  = Использование;
    НовыйЭлемент.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных(ИмяПоля);
    НовыйЭлемент.ВидСравнения   = ВидСрав;
    НовыйЭлемент.ПравоеЗначение = ЗначениеОтбора;
    
КонецПроцедуры
2 Max Street
 
14.01.16
09:55
(1) спасибо. ОтборНастройкиКомпоновкиДанных - это что?
3 los_hooliganos
 
14.01.16
09:56
Ох блин, проще на инфостарте найти как это правильно работает, а то много кода сюды кидать
4 los_hooliganos
 
14.01.16
09:56
НовыйОтбор = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
            НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор";
5 los_hooliganos
 
14.01.16
09:56
перед этим

ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
6 Max Street
 
14.01.16
09:58
(5) спасибо
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.