Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отбор в динамическом списке через текущего пользователя. УТ.

Отбор в динамическом списке через текущего пользователя. УТ.
Я
   Varlant1n
 
11.12.20 - 14:07
Здравствуйте! В форме списка документа нужно сделать вечный и постоянный отбор для текущих пользователей. Что я уже успел сделать:
1) В закладке "Запасы" в предопределенных данных планов видов характеристик добавил, кроме "ОсновнойСклад" еще и "ВторойОсновнойСклад"
3) В Предприятии нужным пользователям задал значение основного и второго склада.
2) В модуле формы списка в событии ПриСозданииНаСервере написал следующий код:

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



Но при открытии формы ничего ничего нет. Просто пустая форма. Что делать? Где я что-то проглядел? Спасибо заранее!
   Fragster
 
1 - 11.12.20 - 14:11
(а = 1 и а = 2) = ложь
   Varlant1n
 
2 - 11.12.20 - 14:14
(1) Не понял(
   Varlant1n
 
3 - 11.12.20 - 14:19
Я думал мб проблема в выборе события. Игрался и с НаСервере, НаКлиенте и с самими событиями, но ничего не получилось
   youalex
 
4 - 11.12.20 - 14:21
ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ
   Varlant1n
 
5 - 11.12.20 - 14:22
(4) У меня так и написано
   trooba
 
6 - 11.12.20 - 14:22
(0) Вид сравнения в списке и в качестве списка оба значения
   Малыш Джон
 
7 - 11.12.20 - 14:23
(2) у тебя условие получается "Склад = ОсновнойСклад И Склад = ВторойОсновнойСклад"
   Varlant1n
 
8 - 11.12.20 - 14:24
(7) И как мне это можно исправить? Туплю что-то, простите(
   youalex
 
9 - 11.12.20 - 14:26
(5) имянно
   Varlant1n
 
10 - 11.12.20 - 14:28
(9) И?(
   youalex
 
11 - 11.12.20 - 14:28
(10) Нет
   Fragster
 
12 - 11.12.20 - 14:36
(4) в любом случае остальные элементы отбора добавляются не в группу, а рядом.
Правильно (6), но, возможно, тут требуется не только неотключаемый отбор списка (который, кстати, приведет к ошибке, если пользователь руками добавит отбор на один из складов), а RLS
   Varlant1n
 
13 - 11.12.20 - 14:39
(12) В форме убраны все возможности изменения чего-то. И данная форма будет доступна толькоу  пользователей, у который есть разрешение только на просмотр
   Varlant1n
 
14 - 11.12.20 - 15:19
Есть какие-то идеи для исправления, ребята?
   FIXXXL
 
15 - 11.12.20 - 15:38
(14) ГруппаИЛИ
   youalex
 
16 - 11.12.20 - 15:39
(12) точно!  ТС коварен)
   FIXXXL
 
17 - 11.12.20 - 15:39
(15) или сделай список складов и один элемен в видом сравнения ВСПИСКЕ
   Varlant1n
 
18 - 11.12.20 - 15:42
(15) Опять пусто
   youalex
 
19 - 11.12.20 - 15:43
(18) Потому что у тебя элементы отбора не входят в группу.
Делай как в (6), (17)
   Varlant1n
 
20 - 11.12.20 - 15:47
(19) Вот так?
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке.ВидСравненияКомпоновкиДанных.Равно;
   Varlant1n
 
21 - 11.12.20 - 15:48
Извняюсь, если туплю, много часов работы без перерыва(
   Varlant1n
 
22 - 11.12.20 - 15:50
(20) ..... Да уж, я совсем уже.

ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке

Вот так?
   Varlant1n
 
23 - 11.12.20 - 15:51
ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
   trooba
 
24 - 11.12.20 - 15:51
(22) да
   Varlant1n
 
25 - 11.12.20 - 15:51
Все равно пусто
   trooba
 
26 - 11.12.20 - 15:52
и в качестве правого значения передаешь список
   Varlant1n
 
27 - 11.12.20 - 15:53
(26) Правое значение у меня вот такое:

ЭлементОтбора.ПравоеЗначение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад");

Это для того, чтобы при изменении самого наименования склада, не нужно было лезть в конфигуратор опять
   youalex
 
28 - 11.12.20 - 15:54
(27) а нужен список значений
   Varlant1n
 
29 - 11.12.20 - 16:05
(28) То есть я для начала из всего справочника Склады выгружаю колонку с наименование. Вставляю его в список значений и после уже делаю отбор?
   Fragster
 
30 - 11.12.20 - 16:06
......................................__................................................
.............................,-~*`¯lllllll`*~,..........................................
.......................,-~*`lllllllllllllllllllllllllll¯`*-,....................................
..................,-~*llllllllllllllllllllllllllllllllllllllllllll*-,..................................
...............,-*llllllllllllllllllllllllllllllllllllllllllllllllllllll.\.......................... .......
.............;*`lllllllllllllllllllllllllll,-~*~-,llllllllllllllllllll\................................
..............\lllllllllllllllllllllllllll/.........\;;;;llllllllllll,-`~-,......................... ..
...............\lllllllllllllllllllll,-*...........`~-~-,...(.(¯`*,`,..........................
................\llllllllllll,-~*.....................)_-\..*`*;..)..........................
.................\,-*`¯,*`)............,-~*`~................/.....................
..................|/.../.../~,......-~*,-~*`;................/.\..................
................./.../.../.../..,-,..*~,.`*~*................*...\.................
................|.../.../.../.*`...\...........................)....)¯`~,..................
................|./.../..../.......)......,.)`*~-,............/....|..)...`~-,.............
..............././.../...,*`-,.....`-,...*`....,---......\..../...../..|.........¯```*~-,,,,
...............(..........)`*~-,....`*`.,-~*.,-*......|.../..../.../............\........
................*-,.......`*-,...`~,..``.,,,-*..........|.,*...,*...|..............\........
...................*,.........`-,...)-,..............,-*`...,-*....(`-,............\.......
......................f`-,.........`-,/...*-,___,,-~*....,-*......|...`-,..........\........
 
 Рекламное место пустует
   trooba
 
31 - 11.12.20 - 16:07
(29) СЗ=Новый СписокЗнеачений;
СЗ.Добавить(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад"));
СЗ.Добавить(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "Склад2"));
   Fragster
 
32 - 11.12.20 - 16:07
............................................________
....................................,.-'"...................``~.,
.............................,.-"..................................."-.,
.........................,/...............................................":,
.....................,?......................................................,
.................../...........................................................,}
................./......................................................,:`^`..}
.............../...................................................,:"........./
..............?.....__.........................................:`.........../
............./__.(....."~-,_..............................,:`........../
.........../(_...."~,_........"~,_....................,:`........_/
..........{.._$;_......"=,_......."-,_.......,.-~-,},.~";/....}
...........((.....*~_......."=-._......";,,./`..../"............../
...,,,___.`~,......"~.,....................`.....}............../
............(....`=-,,.......`........................(......;_,,-"
............/.`~,......`-...................................../
.............`~.*-,.....................................|,./.....,__
,,_..........}.>-._...................................|..............`=~-,
.....`=~-,__......`,.................................
...................`=~-,,.,...............................
................................`:,,...........................`..............__
.....................................`=-,...................,%`>--==``
........................................_..........._,-%.......`
...................................,
   trooba
 
33 - 11.12.20 - 16:07
(30) ))))))))))
   Varlant1n
 
34 - 11.12.20 - 16:09
(32) ))) Ну, ребят(
Ну что вы так сразу))
   Varlant1n
 
35 - 11.12.20 - 16:16
А у меня тут ещё вопрос)))) Понимаю, я очень туплю щас и уже надоел вам. Заработало, но ищет по одному складу. Я сделал ГруппаИЛИ. И теперь вопрос. Я дальше использую один раз:

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


Или для второго раза тоже?
   trooba
 
36 - 11.12.20 - 16:18
(35) для одного
   trooba
 
37 - 11.12.20 - 16:19
(35) Что показывает отладчик в обоих значениях списка значений?
   Varlant1n
 
38 - 11.12.20 - 16:19
(36) Общим итогом у меня так:

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

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


Но на форме остется список только по одному складу. Второго нет
   Varlant1n
 
39 - 11.12.20 - 16:25
(37) В первом случае он показывает первый склад. Во втором ничего. Я для проверки убрал строку кода
СЗ.Добавить(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад"));

И оставил только второй склад. И форма не отображает этот склад. Пустая форма
   Varlant1n
 
40 - 11.12.20 - 16:27
ВСЁ РЕБЯТА! Я понял в чем дело. Сижу я через Админа, а значение второго склада давал другим пользователям. Значение же основного склада предопределенно для всех. В этом и заключалась ошибка. Как поставил и админу, все исправилось. ОГРОМНОЕ СПАСИБО ВАМ ЗА ПОМОЩЬ! Я безумно благодарен!
   rudnitskij
 
41 - 11.12.20 - 22:41
(40) Проще было бы добавить параметр сеанса "Разрешенные склады", и прописать им постоянный доступ только на эти склады. Через РЛС


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.