Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор в списке журнала документов
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Lexveritas
1С8.3.6 2390 Управляемая Форма

Идея такова:
Два журнала, в которые попадают одинаковые документы. Один директорский, он видит их все, а второй пользовательский. Там пользователь должен видеть только свои документы.
Перерыл почти весь интернет, результат один - ничего не работает.

//&НаСервере
//Процедура ПриОткрытии(Элемент, ДанныеФормыВЗначение, СтандартнаяОбработка)
//    Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
//    Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти().Поле;    
//    Отбор.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
//    Список.Параметры.УстановитьЗначениеПараметра("Автор", ПараметрыСеанса.ТекущийПользователь);
//КонецПроцедуры
&НаСервере
Процедура ПриОткрытии(Отказ, СтандартнаяОбработка)

    Список.Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Список.Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Автор");
    Список.Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Список.Отбор.Использование = Истина;
    Список.Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    Список.Отбор.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;

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


ТекущийПользователь создал в параметрах сеанса, запрос возвращает необходимые данные.

Вообще ничего в голову не лезет!
Буду благодарен за любую помощь!

Lexveritas
Lexveritas @ Сегодня, 20:53 необходимо зарегистрироваться для просмотра ссылки ,

Короче сам поборол! Думал крыша улетит!

Тем кто с подобным столкнулся вот решение данного вопроса:

&НаКлиенте
Процедура ПриОткрытии(Элемент)
       Список.Отбор.Элементы.Очистить();
     ОтфильтроватьПоАвтору();  
КонецПроцедуры

&НаСервере
Процедура ОтфильтроватьПоАвтору()
    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АвторДокумента");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
    ЭлементОтбора.Использование = Истина;
КонецПроцедуры


Теперь доволен как слон!
logist
Для подобной задачи существует RLS, и не надо делать два журнала, к тому же отбор списка скорее всего доступен пользователю, и оно может обойти или убрать его. Если не хотите разбираться с ролями, то даже в вашей реализации это сделано не логично, не надо никаких два журнала, достаточно одного, а отбор осуществлять в запросе динамического списка.

Цитата(Lexveritas @ 06.05.17, 20:53) необходимо зарегистрироваться для просмотра ссылки
&НаСервере
Процедура ПриОткрытии(Отказ, СтандартнаяОбработка)

Вы хоть извлекли урок - почему это не работало?
Lexveritas
logist @ 09.05.17, 16:24 необходимо зарегистрироваться для просмотра ссылки ,
Конечно!

Я малость пока что плохо различаю серверные и клиентские процедуры, так как ранее работал с толстым клиентом. Управляемое приложение - что то новенькое!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.