Как установить параметр в СКД программно

Этот вопрос задавался на 1с-ных форумах миллионы раз, но новички упорно спрашивают вновь и вновь. Так зафиксируем же ответ, и будем кидаться в новичков этой ссылкой.

Пример установки параметра СКД программно:

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ИмяПараметра", Значение);

или

ПараметрСКД                                 = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ИмяПараметра");   
ПараметрСКД.Использование  = Истина;
ПараметрСКД.Значение               = Значение;
Подписаться
Уведомить о
guest
10 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
proger2011
proger2011
12 лет назад

Не помешали бы пояснения типа что это за объект “КомпоновщикНастроек”, а что это за свойство у него такое “Настройки” и т.д.

Alex
Alex
12 лет назад

А про синтакс-помощник слышали?? Выделите “КомпоновщикНастроек” в коде программы и нажмите . И будет описание объекта, его методов и свойств.. Читайте …

Alex
Alex
12 лет назад

нажмите КОНТРОЛ-ФЭ-ОДИН

Log1c
Log1c
11 лет назад

1. “Устанавливать параметр будем в ПриОткрытии:” при открытии чего? если формы то это событие не срабатывает, срабатывает ПередОткрытием()
2. И даже если этот програмный код вставить при обработке события ПередОткрытием() выкинет с ошибкой “на 2ю строку.
*8.1

Log1c
Log1c
11 лет назад

Значение не является значение объектного типа (Использование)

nissal
nissal
11 лет назад

Спасибо! Чудесно отработало на 8.2, немного видоизменил (модуль объекта):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(“Город”);
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПараметрыСеанса.ТекущийПользователь;
КонецПроцедуры

nissal
nissal
11 лет назад

стоп. поспешил )

nissal
nissal
11 лет назад

Вот так работает. Фиксированные настройки видит, Настройки – нет. Вероятно, надо почитать мануал, но решительно нет времени. КомпоновщикНастроек Отчету присваивать нет нужды.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(“Город”);
ПараметрСКДФикс = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКДФикс.Использование = Истина;
ПараметрСКДФикс.Значение = ПараметрСКД.Значение;
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПараметрыСеанса.ТекущийПользователь;
ПараметрСКДФикс = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКДФикс.Использование = Истина;
ПараметрСКДФикс.Значение = ПараметрСКД.Значение;
КонецПроцедуры

Степан Андреевич
Степан Андреевич
11 лет назад

При изменении настроек, после формирования отчета и попытке закрыть форму спрашивает, сохранитиь ли измененный вариант. Кто подскажет, как избаиться от этого?

Данилюк Андрей
Данилюк Андрей
11 лет назад

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ВариантМодифицирован = Ложь;
КонецПроцедуры