8.х Параметру присвоить подразделение текущего пользователя

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

  1. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    Привет всем, значит так ) Есть отчет на СКД, по прибыли с подразделениями, не хочу ковыряться с правами и тп и тд. Просто хочу установить параметр Подразделения. А точнее, что бы пользователь открывший отчет видел доход только того подразделения, в котором он сам числится. На вкладке параметры обращаюсь к общему модулю ПользователиКлиентСервер.ТекущийПользователь(). В таком виде СКД не ругается, но мне бы из текущего пользователя вытащить его подразделение (например так: ПользователиКлиентСервер.ТекущийПользователь().ТекущееПодразделение - ругается)!! Подскажите как это сделать!? Используется чисто СКД, форм отчета нет. Спасибо!
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    Код:
        Пользователь = ПараметрыСеанса.ТекущийПользователь;
        Сообщить("Пользователь = "+Пользователь+" подразделение ="+Пользователь.ТекущееПодразделение);
    
  3. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    Не то. Я говорю о СКД без форм....
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    и?
    "сообщить" там просто для проверки было
    Код:
    Пользователь = ПараметрыСеанса.ТекущийПользователь;
    ПодразделениеПользователя =Пользователь.ТекущееПодразделение;
    
    данные того под кем запущен сеанс, то есть того кто запускает отчёт
  5. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    "ПользователиКлиентСервер.ТекущийПользователь().ТекущееПодразделение - ругается)!!"

    У Вас что за конфа?
    Обычно Пользователь - это Объект справочника Пользователи. Вы туда добавляли или у Вас есть реквизит ТекущееПодразделение?
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    по крайней мере в УТ11.1 это штатный реквизит справочника
  7. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    Это где писать? в какой колонке?
  8. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    а согласно этой фразе это где должено быть?
  9. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    Может быть на вкладке "Параметры" в конструкторе СКД!?
  10. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Необходимо просто установить параметр программно. Делов то. Вот нашел свой старый пример.
    Код:
    // Устанавливает значение периода из СКД.
    // ................................................................................
    Процедура УстановитьПараметрыПериода()
        Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериода"));
        Параметр.Значение = КонецДня(КонПериода);
        Параметр.Использование = Истина;
        Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериода"));
        Параметр.Значение = НачПериода;
        Параметр.Использование = Истина;
    КонецПроцедуры
    
    --- Объединение сообщений, 19 авг 2014 ---
    Смекаете?
  11. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    КУДА ПИСАТЬ этот код!? Место? Где?
  12. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Необходимо сделать программный вывод отчета.
  13. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    Ты говоришь о форме!? Я ведь говорю, что только конструктор СКД используется, никаких форм отчета!
  14. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Да бога ради. Вывод отчета программным сделай и все.
  15. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    918
    Симпатии:
    4
    Баллы:
    29
    внешний отчет, хз где он будет лежать...
    Я думал может можно где то писать в конструкторе СКД!
  16. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Почему все люди так боятся формы свои создавать в СКД. Попробуйте просто в модуле объекта прописать это
    Код:
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериода"));
        Параметр.Значение = КонецДня(КонПериода);
        Параметр.Использование = Истина;
    Только свой параметр укажите и все. Должно заработать. Только если у Вас одна СКД.
  17. TriviumFan
    Offline

    TriviumFan Опытный в 1С Заблокирован

    Регистрация:
    19 мар 2013
    Сообщения:
    92
    Симпатии:
    15
    Баллы:
    29
    1. Потому что в данном случае она здесь не нужна.
    2. Этого кода в модуле отчёта будет недостаточно, т.к. пользователь может восстановить настройки и параметр очиститься.
    Необходимо использовать обработчик:
    Код:
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
        ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "КонПериода", КонПериода);
    КонецПроцедуры
    
  18. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Ненавижу прогеров, которые так отчеты пишут. Я считаю, что форма нужна всегда. Сделать ее красивой, чтобы глаз радовался. Вот это уже делает далеко не каждый. Судя по всему и Вы тоже.

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