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

Отзывов (11)FavoriteLoadingВ закладки

О рубрике

Данный цикл статей, по сути, будет обычным FAQ по вопросам СКД. Здесь вы найдете ответы на самые часто задаваемые вопросы по компоновке. Думаю, данный раздел будет очень полезным.

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

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

Устанавливать параметр будем в ПриОткрытии:

Процедура ПриОткрытии()
   ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.
                                 Элементы.Найти("ИмяПараметра")
   ПараметрСКД.Использование = Истина;
   ПараметрСКД.Значение  = Значение;
КонецПроцедуры
google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

11 Коммент.

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

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

  3. Спасибо! Чудесно отработало на 8.2, немного видоизменил (модуль объекта):

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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

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

    КонецПроцедуры

  4. Вот так работает. Фиксированные настройки видит, Настройки – нет. Вероятно, надо почитать мануал, но решительно нет времени. КомпоновщикНастроек Отчету присваивать нет нужды.

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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

    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
    ПараметрСКД.Использование = Истина;
    ПараметрСКД.Значение = ПараметрыСеанса.ТекущийПользователь;
    ПараметрСКДФикс = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
    ПараметрСКДФикс.Использование = Истина;
    ПараметрСКДФикс.Значение = ПараметрСКД.Значение;

    КонецПроцедуры

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

  6. На мой взгляд лучше так, см пример:
    Настройки = КомпоновщикНастроек.Настройки;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(“Период”, КонецДня(ДатаОтчета));

Трекбеки/Пинги

  1. Параметр программно в 8.2 - СКД: создаем отчеты любой сложности в 1С:Предп - [...] Одно из первых, с чем довелось столкнуться: программная установка параметра. В 8.1 все было достаточно прозрачно. [...]

Оставить комментарий

RSSКомментарии в RSS

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.