Имя: Пароль:
1C
1С v8
СКД условие в запросе
0 _Дайвер_
 
26.09.17
14:28
В СКД поставил условие для выборки документов по пользователям. Устанавливаю параметр для сотрудников, с ними все норм, а вот если я буду под администратором формировать запрос, он ведь мне ничего не даст))) Как обойти эту схему в коде после ИНАЧЕ? Или как нибудь по другому.
    Если НЕ РольДоступна("Администратор") Тогда
        ОтветственныйМенеджер = ПараметрыСеанса.ТекущийПользователь.Ссылка;
        Запрос2 = Новый Запрос;
        Запрос2.Текст ="ВЫБРАТЬ ПЕРВЫЕ 1
        |    СотрудникиПользователя.Сотрудник
        |ИЗ
        |    РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
        |ГДЕ
        |    СотрудникиПользователя.Сотрудник = &ОтветственныйМенеджер";
        Запрос.УстановитьПараметр("ОтветственныйМенеджер", ОтветственныйМенеджер);
    Иначе
        Запрос.УстановитьПараметр("ОтветственныйМенеджер", ******);
    КонецЕсли;
1 bplmeddy
 
26.09.17
14:31
(0) Пользователь указывается вручную или задаётся автоматически (ПользователиИнформационнойБазы.ТекущийПользователь().Имя) ?
2 vicof
 
26.09.17
14:32
Другой запрос напиши
3 _Дайвер_
 
26.09.17
14:33
(1) Он при входе в базу указывается
4 _Дайвер_
 
26.09.17
14:34
(2) Думал запрос второй написать, но может есть что!?)
5 vicof
 
26.09.17
14:34
За это руки отрывать надо: ПараметрыСеанса.ТекущийПользователь.Ссылка
6 bplmeddy
 
26.09.17
14:37
(0) Запрос на выборку документа предоставь пожалуйста. Тот запрос который ты показал - на выборку пользователя.
7 _Дайвер_
 
26.09.17
14:37
(5) В продакшн это не попадет, копировал кусок кода, и еще не поправил, пока что думаю над темой)
8 _Дайвер_
 
26.09.17
14:39
(6)
ВЫБРАТЬ
    ПродажиОбороты.Организация,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Документ.Контрагент КАК Контрагент,
    ПродажиОбороты.Ответственный,
    ПродажиОбороты.Характеристика,
    ПродажиОбороты.Документ,
    СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество,
    СУММА(ПродажиОбороты.СуммаОборот) КАК Сумма,
    СУММА(ПродажиОбороты.СуммаНДСОборот) КАК СуммаНДС,
    СУММА(ПродажиОбороты.СебестоимостьОборот) КАК Себестоимость,
    СУММА(ПродажиОбороты.СуммаОборот - ПродажиОбороты.СебестоимостьОборот) КАК ВаловаяПрибыль,
    ВЫБОР
        КОГДА &ОбъектАнализа = "Покупатель"
            ТОГДА ПродажиОбороты.Документ.Контрагент
        КОГДА &ОбъектАнализа = "Менеджер"
            ТОГДА ПродажиОбороты.Ответственный
        КОГДА &ОбъектАнализа = "Номенклатура"
            ТОГДА ПродажиОбороты.Номенклатура
        ИНАЧЕ NULL
    КОНЕЦ КАК ОбъектАнализа
ИЗ
    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
ГДЕ
    ПродажиОбороты.Документ.Организация <> &Брак
    И ПродажиОбороты.Документ.Ответственный = &ОтветственныйМенеджер

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Организация,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Ответственный,
    ПродажиОбороты.Характеристика,
    ПродажиОбороты.Документ,
    ВЫБОР
        КОГДА &ОбъектАнализа = "Покупатель"
            ТОГДА ПродажиОбороты.Документ.Контрагент
        КОГДА &ОбъектАнализа = "Менеджер"
            ТОГДА ПродажиОбороты.Ответственный
        КОГДА &ОбъектАнализа = "Номенклатура"
            ТОГДА ПродажиОбороты.Номенклатура
        ИНАЧЕ NULL
    КОНЕЦ,
    ПродажиОбороты.Документ.Контрагент
9 bplmeddy
 
26.09.17
14:42
(8) Так в чём собственно проблема ? Я так понимаю "Ответственный" у тебя реквизит документа? И  в то же время измерение регистра продаж, верно ?
10 bplmeddy
 
26.09.17
14:44
(8) (9) Ещё подскажи: реквизит "Ответственный" в документе как заполняется у тебя?
11 fedoss
 
26.09.17
14:44
|ГДЕ
        |    СотрудникиПользователя.Сотрудник = &ОтветственныйМенеджер;
        |    ИЛИ &НеОтбиратьПоМенеджеру;
12 _Дайвер_
 
26.09.17
15:01
Все походу куда проще, чем я думал)
    Если НЕ РольДоступна("Администратор") Тогда
        Запрос.УстановитьПараметр("ОтветственныйМенеджер", ОтветственныйМенеджер);
    Иначе
        Запрос.Параметры.Удалить("ОтветственныйМенеджер");
    КонецЕсли;
13 breezee
 
26.09.17
15:19
(12) Зачем? Зачем вы решили что администраторам интересны продажи менеджеров?
14 _Дайвер_
 
26.09.17
15:24
(13) Я Администратор, я решаю что мне смотреть, а что нет)
А если серьезно, то есть пользователи которые имеют административные права(типа главный менеджер), которым нужно смотреть продажи менеджеров + по всем вопросам в учете к кому вопросы идут? Правильно, к администратору! А администратор смотрит отчет и смотрит что да как.
15 _Дайвер_
 
26.09.17
15:53
(11) Забыл поблагодорить..., спасибо)
ГДЕ
    ПродажиОбороты.Документ.Организация <> &Брак
    И (&ПоВсем
            ИЛИ ПродажиОбороты.Ответственный = &ОтветственныйМенеджер)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн