Имя: Пароль:
1C
1С v8
СКД: значения по умолчанию
0 slafor
 
17.01.20
17:25
Тема избитая, материала много, но конкретно по моему вопросу ответа не нашел.

Есть отчет на СКД. В нем, прямо на форме, как я понимаю, присутствует компоновщик настроек. Настройки могут изменяться любым пользователем и для каждого пользователя они сохраняются (конфигурация УПП, сохраняются в справочники Сохраненные настройки).

Надо сделать так, чтобы при запуске параметры заполнялись определенными значениями. Не предопределенными, а найденными в базе, скажем, по наименованию или по коду или по какому-либо другому, однозначному признаку. Допустим, параметр Касса1 (см. скриншот) заполняется ссылкой на элемент справочника Кассы - Касса 1.
Поискал в интернете, там есть совет разместить следующий код вида:

КомпоновкаДанныхПараметр = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Склад1");
КомпоновкаДанныхПараметр.Значение = Справочники.Склады.НайтиПоНаименованию("Склад 1");
КомпоновкаДанныхПараметр.Использование = Истина;

Размещаю в модуле отчета, в процедуре ПриКомпоновкеРезультата -  результат нулевой, отчет выводится как и прежде, без Кассы1.
Размещаю в процедуре ДоработатьКомпоновщикПередВыводом - результат в отчете ЕСТЬ, но в панели настроек этой кассы нет!

Что я делаю не так?

Да, и еще - хотелось бы, чтобы пользователь, изменивший значение параметра, получал бы при запуске отчет уже со своими параметрами. Но это впоследствии... пока хотелось бы просто понять, как заполнять их в первый раз.
1 slafor
 
17.01.20
17:27
Забыл ссылку на скриншот: https://yadi.sk/i/_HaC6mNuNAsAKg .
2 pechkin
 
17.01.20
17:28
можно настроить в предприятии, а потом загрузить в конфигуратор
правда в конфигураторе это будет выглядеть как битые ссылки
3 slafor
 
17.01.20
17:29
(2) А можно подробнее, как это сделать?
4 slafor
 
17.01.20
17:53
В общем, проблема остается. В коде, извините, ошибся, потому что скопировал его из примера. Реальный код выглядит так (допустим, хочу изменить Касса 1 на Касса 2):

КомпоновкаДанныхПараметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Касса1");
КомпоновкаДанныхПараметр.Значение = Справочники.Кассы.НайтиПоНаименованию("Касса 2");
КомпоновкаДанныхПараметр.Использование = Истина;

Если размещаю в процедуре ПриКомпоновкеРезультата - не работает вообще. Если в ДоработатьКомпоновщикПередВыводом() - в отчет действительно вместо Касса 1 выводится Касса 2, но настройки параметров (в скриншоте) при этом остаются прежними.
5 ssh2006
 
17.01.20
18:10
(4) там у тебя на шаблоне типового отчета. Выгрузи сделанную в режиме предприятие настройку в xml и загрузи в соответствующий макет
6 slafor
 
17.01.20
18:16
Еще где-то нашел такой вариант: в процедуре формы ПриОткрытии писать код

ПараметрСКД = ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Касса1");
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = Справочники.Кассы.НайтиПоНаименованию("Касса 2");

Результат тоже нулевой - т.е. ни в отчете ничего не меняется, ни в параметрах.
7 slafor
 
17.01.20
18:19
(5) Может он и сделан на шаблоне типового, но как мне настройку-то выгрузить в xml?
8 ssh2006
 
17.01.20
18:44
(7) "Как создать отчет на базе типового механизма"
https://its.1c.ru/db/metod8dev#content:3048:hdoc