8.х Программно задать параметры СКД

Тема в разделе "Система компоновки данных (СКД)", создана пользователем tarantool, 27 мар 2014.

  1. TopicStarter Overlay
    tarantool
    Offline

    tarantool Опытный в 1С

    Регистрация:
    6 сен 2011
    Сообщения:
    110
    Симпатии:
    1
    Баллы:
    29
    Добрый день!
    Платформа 8.3.4.389
    Конфигурация нетиповая, самописная.
    Упр. Формы
    Из документа вызывается отчет на СКД. В процедуре ПриОткрытии() формы отчета устанавливаю параметр:
    КомпоновкаДанныхПараметр = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных;
    КомпоновкаДанныхПараметр.УстановитьЗначениеПараметра("Организация",Организация);
    СкомпоноватьРезультат();

    при проверке отладчиком параметр заполняется нужным значением, использование истина. Но при выводе отчета выскакивает ошибка "не задано значение параметра Организация".

    Подскажите, как поступить в такой ситуации.

    Заранее благодарен.
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    А где использование = Истина ???
  3. TopicStarter Overlay
    tarantool
    Offline

    tarantool Опытный в 1С

    Регистрация:
    6 сен 2011
    Сообщения:
    110
    Симпатии:
    1
    Баллы:
    29
    Пробовал еще так

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

    Эффекта никакого
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Ну тогда хз, может кеш обновить ? По идее все правильно.
    Отладчик что показывает ?
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Код:
        Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериода"));;
        Параметр.Значение = КонецДня(КонПериода);
        Параметр.Использование = Истина;
        Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериода"));;
        Параметр.Значение = НачПериода;
        Параметр.Использование = Истина;
    
    --- Объединение сообщений, 27 мар 2014 ---
    Сделайте по аналогии
    tarantool нравится это.
  6. TopicStarter Overlay
    tarantool
    Offline

    tarantool Опытный в 1С

    Регистрация:
    6 сен 2011
    Сообщения:
    110
    Симпатии:
    1
    Баллы:
    29
    я так понял, что при УстановитьЗначениеПараметра() не нужно писать Использование = Истина
  7. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Что мешает взять мой код?
  8. TopicStarter Overlay
    tarantool
    Offline

    tarantool Опытный в 1С

    Регистрация:
    6 сен 2011
    Сообщения:
    110
    Симпатии:
    1
    Баллы:
    29
    Пробовал и Ваш. Та же ошибка, кеш тоже почистил.
  9. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Отладчиком можете пользоваться?
    И покажите весь код ваш?
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Тут видимо все дело в ПриОткрытии(). Данный обработчик, насколько помню, отрабатывает на клиенте. А формирование отчета - на сервере.
  11. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    В модуле объекта в событии "ПриКомпоновкеРезультата" поставьте точку останова и посмотрите, заполнено ли там значение параметра.
  12. Olya_pass
    Offline

    Olya_pass

    Регистрация:
    14 ноя 2014
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Если ставить код ПриОткрытии() или ПриОткрытииНаСервере(), нужно выставлять СтандартнаяОбработка = Ложь, иначе при компановке настройки затираются
    Последнее редактирование: 26 ноя 2014

Поделиться этой страницей