Имя: Пароль:
1C
1С v8
ЗУП 3.1 Заполнение программно нового параметра для СКД типового отчета
0 Wefast
 
15.03.17
15:32
Есть отчет Изменение штатного расписания.

В запросе СКД для поля добавил условие. Добавил новый параметр

Формы отчета нет.

Есть процедура в модуле объекта:

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

Пробовал делать так:
    ЗначениеПараметраВРРайонныйКоэффициент = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Пользователи"));
    ЗначениеПараметраВРРайонныйКоэффициент.Значение = ПараметрыСеанса.ТекущийПользователь;
    ЗначениеПараметраВРРайонныйКоэффициент.Использование = Истина;

В отладке вроде все проставляется, а по факту параметр видимо не заполняется

Это я проверил более простым способ. добавив в условие поля
Выбор когда &П =1 Тогда 12334 иначе Поле1 Конец

Выводит мое Поле1.

Если в скд настроить параметр, так чтобы он был виден на форме, и после заполнения его на форме, все работает.

Если я пишу:
Стандартная обработка = ЛОЖЬ;


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

То на форму ничего не выводится, так как видимо при стандартной обработке происходит что то еще.
Отладкой прошелся, запрос нигде не подменяется в общих модулях.

Может я что то упускаю?
1 Wefast
 
15.03.17
16:12
в ПриСозданииНаСервере написал:

ЭтотОбъект.СхемаКомпоновкиДанных.Параметры.Пользователи.Значение = ПараметрыСеанса.ТекущийПользователь;
2 Wefast
 
16.03.17
09:08
Обманул, так все и не работает как нужно
3 aleks_default
 
16.03.17
10:25
При чем тут схема компоновки когда параметры  в настройках менять нужно.
4 Wefast
 
16.03.17
10:57
Хватило в событие "ПриКомпановкеДанных"

Добавить строку
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Пользователи", ПараметрыСеанса.ТекущийПользователь);

Без понятия почему я раньше думал что не работает
Закон Брукера: Даже маленькая практика стоит большой теории.