Необходимо, для определенного пользователя, показывать список документов, начиная с определенной даты и сделать неактивной кнопку отбора на форме. Подскажите, как можно реализовать.
---
WhiteDragon,
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Дата", ВашаДата, ВидСравненияКомпоновкиДанных.БольшеИлиРавно,, Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
---
1. Воспользоваться датой запрета
2. создать роль, при открытии формы проверять наличие (отсутствие) роли у пользователя и в зависимости от этого устанавливать отбор и изменять доступность кнопки отборов
---
это я знаю, меня интересует техническое исполнение, начиная с отбора
---
упр приложение? типовой документ?
---
ага, УТ 11.0
---
+(4) документ реализации ТиУ
---
++(4) общая форма "список документов продажи"
---
элементарно. вот нужный метод:

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ОбластьПоискаДобавления,
    знач ИмяПоля,
    знач ПравоеЗначение = Неопределено,
    знач ВидСравнения = Неопределено,
    знач Представление = Неопределено,
    знач Использование = Неопределено,
    знач РежимОтображения = Неопределено) Экспорт
```

Пример использования:

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора
    (ДинамическийСписок.Отбор, "КассаККМ", КассаККМ, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(КассаККМ));
```

При создании на сервере вставить кусок с установкой
---
а как правильно написать, если мне нужно показывать документы, начиная с даты запрета? (дату получил)
---
WhiteDragon,
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Дата", ВашаДата, ВидСравненияКомпоновкиДанных.БольшеИлиРавно,, Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
---
А чтоб пользователь не мог менять, можно использовать последний параметр:
РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
---
Может проще сделать RLS на роль данного пользователя, в параметр сеанса добавить дату запрета, и проблема будет решена, он просто физически не будет видеть документы которые не входят в условия.
---
база клиента очень большая, а RLS еще замедлит
---
да и нубоват я для этого....
---
Замедлит не значительно, так как это будет распространяться на одного человека. Так же можно решить проблему через ОткрытьФорму() и передавать правильные параметры формы....Или для этого человека создать отдельную форму и вызывать именно ее методом ОткрытьФорму().... В общем вариантов много...
---
AlexPotemkin123, жаль, с РЛС я не знаком(
а отдельную форму делать - это менять все места вызова... проще в этой проверку добавить
---
Но RLS как по мне будет самым красивым способом, ибо не надо вмешиваться в код.
1. Скопировал роль
2. Открываешь роль, находишь этот документ
3. Первое в списке "Чтение"
4. Снизу ограничение доступа
5. Нажимаешь "добавить"
6. Слева <прочие поля> не трогаешь, справа пишешь ГДЕ Дата >= &ДатаЗапрета
7. Создаешь параметр сеанса "ДатаЗапрета", с типом дата
8. При запуске его инициализируешь
9. Ставишь роль пользователю, остальные на доступ к этому документу убираешь
10. Ура он ничего не видит......
---
AlexPotemkin123, Спасибо, буду знать.
Только есть одно но: тогда придётся трогать все типовые роли, назначенные пользователю, где есть этот объект. Что не есть хорошо.
---
как-то не работает этот метод, может я где накосячил....

```1c
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    ДатаЗапрета = ПолучитьДатуЗапрета();
    Если ЭтаФорма.Менеджер = "Менеджер" Тогда
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(СписокРеализацииТоваровУслуг.Отбор, "Дата", ДатаЗапрета, ВидСравненияКомпоновкиДанных.БольшеИлиРавно,, Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
    КонецЕсли;
```
---
WhiteDragon,
Если ЭтаФорма.Менеджер = "Менеджер" Тогда
Странная строчка. Тут бы я лучше проверил дату запрета:
Если ЗначениеЗаполнено(ДатаЗапрета) Тогда

не работает этот метод
Может, он и не заходит на строку установки отбора, или дата запрета пустая?
---
прошу прощения за кипиш, все нормально работает, это мой косяк :) не знаете как сделать недоступной кнопку на командной панели?
---
дата у меня проверяется в запросе
---
а какую роль брать, если на пользователе их много весит?
---
Роль которая дает доступ на тип документа который в отборе должен быть.... Типовые роли не мацаем, а берем роль в которой есть данный тип документа и просто копируем. С пользователя главное снять роли где есть доступ на данный документ.
---
спасибо большое, буду знать, пока сделаю на форме, а потом уже буду пробовать с ролями... я в 1с всего-ничего 3 месяца :)
---
тут посмотри http://help1c.com/faq/print/1245.html