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

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



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

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

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

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

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

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


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

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

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


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

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