Имя: Пароль:
1C
1С v8
Ограничить доступ или видимость, к настройкам отборов отчета
0 General833
 
31.05.18
10:40
Заполняю отборы отчета (на базе унерсального), чтоб перед пользователем открывался отчет с отборами, но как запретить или ограничить его в доступе изменить отборы?
КОД:
Процедура РеализаторДействие() Экспорт
    
   Отчет = Отчеты.ВедомостьДенежныеСредстваВРозничныхТочках.Создать();
  
       ТекПользователь       = ПользователиИнформационнойБазы.ТекущийПользователь();
    СкладПоУмолчанию      = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойСклад");
    КассаККМПользвателя   = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяКассаККМ");

    //получем кассы, по котороым надо установить отбор.
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Склады.КассыТЧ.(
    |        Кассы
    |    )
    |ИЗ
    |    Справочник.Склады КАК Склады
    |ГДЕ
    |    НЕ Склады.ПометкаУдаления
    |    И Склады.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СкладПоУмолчанию);
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    СписокКассы = Новый СписокЗначений;
    Для Каждого Стр Из РезультатЗапроса[0][0] Цикл
        СписокКассы.Добавить(Стр.Кассы);
    КонецЦикла;
    Если СписокКассы.Количество()=0 Тогда
        Сообщить ("На складе "+ СкладПоУмолчанию+", на вкладке ""склады"", не выбраны кассы. Поэтому отчет пуст.");
    КонецЕсли;
    
    Отчет = Отчеты.ВедомостьДенежныеСредстваВРозничныхТочках.Создать();
    
    Отчет.УстановитьНачальныеНастройки();
        
    Отчет.УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки.Очистить();
    Отчет.УниверсальныйОтчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
    Отчет.УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Очистить();
    Отчет.УниверсальныйОтчет.ПостроительОтчета.Порядок.Очистить();
    
    Отчет.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("РозничнаяТочка");
    Отчет.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Организация");
    Отчет.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Регистратор.Касса");
        
    ЭлементОтбора = Отчет.УниверсальныйОтчет.ПостроительОтчета.Отбор.Добавить("Регистратор.Касса");
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементОтбора.Значение     = СписокКассы;

    //РозничнаяТочка
    ЭлементОтбора = Отчет.УниверсальныйОтчет.ПостроительОтчета.Отбор["РозничнаяТочка"];
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ВидСравнения = ВидСравнения.Равно;
    ЭлементОтбора.Значение     = КассаККМПользвателя;
    
    //////Организация
    //ЭлементОтбора = Отчет.УниверсальныйОтчет.ПостроительОтчета.Отбор["Организация"];
    //ЭлементОтбора.Использование = Истина;
    //ЭлементОтбора.ВидСравнения = ВидСравнения.Равно;
    //ЭлементОтбора.Значение = ДокументОбъект.Организация;
    
    Отчет.УниверсальныйОтчет.ДатаНач = НачалоДня(ТекущаяДата());
    Отчет.УниверсальныйОтчет.ДатаКон = КонецДня(ТекущаяДата());
        
    Отчет.УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    
    Отчет.УниверсальныйОтчет.мВосстанавливатьНастройкиПриОткрытии = Ложь;
        
    ФормаОтчета = Отчет.ПолучитьФорму();
    ФормаОтчета.Открыть();
    ФормаОтчета.ОбновитьОтчет();
    
КонецПроцедуры
1 General833
 
31.05.18
10:44
Ясно, что дело "темное" (((...
2 Irbis
 
31.05.18
10:46
(0) Лучше забей и забудь, или наеборот забудь и забей.
3 General833
 
31.05.18
10:47
(2) )))
4 General833
 
31.05.18
10:48
(2) Думал быстро выполню и все, не тут-то было ))) Вот, что теперь делать?!??! НАписал полностью отчет с отборами, а ограничить в пользователя в настройкаах отборов не могу )))
5 DrShad
 
31.05.18
10:53
в форме универсального отчета ФормаНастройка добавь процедуру Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) и выставляй Отказ = Истина кому нужно
6 DrShad
 
31.05.18
10:54
вот только еще один момент, пользователь сможет открыть настройку другого пользователя
7 General833
 
31.05.18
11:00
(5) Может при изменении отбора, востанавлавть прежнее значекния? Как вариант, только не пойму, где в моем коде при изменнеии отловаить...
8 General833
 
31.05.18
11:00
(5) Хороший совет!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан