|
Пользователь не равен сам себе | ☑ | ||
---|---|---|---|---|
0
Fannasankh
09.12.15
✎
14:04
|
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ);
ПользовательТекущий = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ПараметрыСеанса.ТекущийПользователь.ИдентификаторПользователяИБ); Если ПользовательИБ = ПользовательТекущий Тогда //что-то делаю КонецЕсли; Здесь Пользователь в первом случае передаваемый параметр. Выполняю код из-под передаваемого пользователя, вручную сравнивают идентификаторы, они совпадают, а условие выдаёт ложь. В чём может быть дело? |
|||
1
Волшебник
модератор
09.12.15
✎
14:06
|
А пользователь находится? может типы не совпадают?
|
|||
2
vde69
09.12.15
✎
14:06
|
почисть кеш
нажми F7 |
|||
3
Fannasankh
09.12.15
✎
14:07
|
(1) находится. В отладчике смотрю, визуально всё совпадает.
|
|||
4
Fannasankh
09.12.15
✎
14:07
|
(2) перезапускать пробовал. А база клиент-серверная.
|
|||
5
salvator
09.12.15
✎
14:08
|
(3) А не визуально? Типы совпадают?
|
|||
6
Fannasankh
09.12.15
✎
14:13
|
(5) да. ПользовательИнформационнойБазы. А как они могут не сопадать, если данная функция возвращает или ПользовательИнформационнойБазы или неопределено?
|
|||
7
Мэс33
09.12.15
✎
14:15
|
(6) Все равно проверьте типы.
|
|||
8
Fannasankh
09.12.15
✎
14:16
|
(7) так я уже проверил. Совпадают
|
|||
9
Гёдза
09.12.15
✎
14:18
|
Пользователь.ИдентификаторПользователяИБ
= ПараметрыСеанса.ТекущийПользователь.ИдентификаторПользователяИБ ? |
|||
10
Fannasankh
09.12.15
✎
14:19
|
(9) Да
|
|||
11
Мэс33
09.12.15
✎
14:19
|
(8) Так не бывает.
|
|||
12
Гёдза
09.12.15
✎
14:19
|
Покажи скриншоты отладчика в (0) и (9)
|
|||
13
Fannasankh
09.12.15
✎
14:20
|
(9) В качестве решения задачи как раз буду использовать данное сравнение, так даже короче получается.
Но всё равно интересно, почему не работает первоначальный вариант. |
|||
14
Гёдза
09.12.15
✎
14:20
|
Или в табло выведи эти значения
|
|||
15
Гёдза
09.12.15
✎
14:20
|
(13) Может еще проще
Пользователь = ПараметрыСеанса.ТекущийПользователь |
|||
16
Fannasankh
09.12.15
✎
14:20
|
(12) сейчас. Перепишу как было.
|
|||
17
Fannasankh
09.12.15
✎
14:21
|
(15)в принципе да.
Но не понятно, почему не работает как я написал |
|||
18
Мэс33
09.12.15
✎
14:21
|
(13) И список пользователей из ПользователиИнформационнойБазы покажи.
|
|||
19
Fannasankh
09.12.15
✎
14:31
|
(18) ну это уже отчасти конфиденциальная информация. Не то что бы прям очень, но всё таки.
|
|||
20
Мэс33
09.12.15
✎
14:32
|
(19) Проверь, вдруг дубли )).
|
|||
21
Fannasankh
09.12.15
✎
14:32
|
(18) но одинаковых там нет, я это могу так гарантировать:)
|
|||
22
salvator
09.12.15
✎
14:33
|
А попробуй получить двух пользователей из идентификатора и сравнить. Че получится?
Типа УИД1 = Новый УникальныйИдентификатор(Строка(ПараметрыСеанса.ТекущийПользователь.ИдентификаторПользователяИБ)); П1 = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УИД1); УИД2 = Новый УникальныйИдентификатор(Строка(ПараметрыСеанса.ТекущийПользователь.ИдентификаторПользователяИБ)); П2 = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УИД2); Сообщить(П1=П2); |
|||
23
Мэс33
09.12.15
✎
14:33
|
(21) Проверь.
Потому что тут единственная зацепка - ты ищешь в ПользователиИнформационнойБазы, и он возвращает разные значения. |
|||
24
Мэс33
09.12.15
✎
14:34
|
(22) да, и это тоже проверь.
|
|||
25
Fannasankh
09.12.15
✎
14:43
|
||||
26
Fannasankh
09.12.15
✎
14:44
|
Остальное лень выводить, найдено другое решение :) Может потом на досуге.
|
|||
27
Мэс33
09.12.15
✎
14:45
|
(26) Ты интересный, зашел, попросил помощи. А теперь - "лень выводить".
|
|||
28
Fannasankh
09.12.15
✎
14:46
|
(27) Ну я попросил помощи, чтобы решить проблему, проблема решена, хоть и немного иначе.
|
|||
29
Мэс33
09.12.15
✎
14:47
|
(28) Хочется же понять.. косяк все же в данных.
Тебе человек даже код написал. Сложно проверить? (22) |
|||
30
Fannasankh
09.12.15
✎
14:48
|
(29) Просто мне этот код переписывать вручную, работаю на другой машине, на другой операционке, и просто так это туда-сюда не копируется.
Через пару минут выложу результат из (22) |
|||
31
Мэс33
09.12.15
✎
14:49
|
(30) гуд
|
|||
32
aleks_default
09.12.15
✎
14:52
|
(31)А что вы расчитываете получить из (22)?
|
|||
33
Fannasankh
09.12.15
✎
14:53
|
(31) П1 не равно П2. Походу 1С не умеет сравнивать данный тип данных просто. Причем такой результат из-под двух разных пользователей.
|
|||
34
Fannasankh
09.12.15
✎
14:54
|
Версия платформы 8.2.18.109
|
|||
35
aleks_default
09.12.15
✎
14:55
|
у него просто админских прав нет
|
|||
36
Fannasankh
09.12.15
✎
14:56
|
(35) и?
|
|||
37
singlych
09.12.15
✎
14:56
|
(33) П1=П1 чему равно?
|
|||
38
Fannasankh
09.12.15
✎
14:57
|
(35) из-под админа тоже самое
|
|||
39
alexlap
09.12.15
✎
15:05
|
Скорее сравнивает не как сылочные или простые типы.
Как Документ.объект на пример. |
|||
40
Мэс33
09.12.15
✎
15:05
|
Сообщить(Пользователь.ИдентификаторПользователяИБ.Ссылка.УникальныйИдентификатор());
Сообщить(ПараметрыСеанса.ТекущийПользователь.ИдентификаторПользователяИБ.Ссылка.УникальныйИдентификатор()); А такое не проканает (моя вольная фантазия)? |
|||
41
Fannasankh
09.12.15
✎
15:08
|
(37) равно истина
|
|||
42
Fannasankh
09.12.15
✎
15:10
|
(40) это как так? У идентификатора нет ссылки
|
|||
43
Мэс33
09.12.15
✎
15:11
|
(42) Ладно, дома гляну.
Или попробуй без ссылки ) |
|||
44
Fannasankh
09.12.15
✎
15:12
|
(43) тоже нельзя.
У ИдентификаторПользователяИБ нет реквизитов |
|||
45
singlych
09.12.15
✎
15:14
|
(41) Нда, прикольно.
НайтиПоИмени() дает такой же результат. на 8.3.6.2299 проверял. |
|||
46
Fannasankh
09.12.15
✎
15:18
|
(45) в общем Пользователь = ПараметрыСеанса.ТекущийПользователь даёт то, что мне надо
|
|||
47
Fannasankh
09.12.15
✎
15:20
|
А ещё сюда же в тему. Почему то ПользовательИБ.Роли из под того же пользователя, к которому это относится выдаёт пустой список. А из под другого список ролей.
|
|||
48
Mikhail Volkov
09.12.15
✎
15:40
|
(0) ПользователиИнформационнойБазы - вроде не те пользователи, а конфигуратора!?
|
|||
49
Fannasankh
09.12.15
✎
15:44
|
(48) какие не те? не понял вопроса
|
|||
50
Tateossian
09.12.15
✎
15:48
|
(33) Подтверждаю, тоже самое.
Версия 8.3.6.2152. Надо сравнивать УИДы, получается. |
|||
51
Волшебник
модератор
09.12.15
✎
15:49
|
Я же говорил, что типы не совпадают
|
|||
52
Fannasankh
09.12.15
✎
15:55
|
(50) Или просто пользователей как элементы справочника пользователи
|
|||
53
Fannasankh
09.12.15
✎
15:55
|
(51) так типы то совпадают
|
|||
54
Fannasankh
09.12.15
✎
15:56
|
(51) в (25) доказательство
|
|||
55
Локи-13
09.12.15
✎
16:00
|
Ну как бы а с какого фига они должны быть равны?
Как могут быть равны два объекта? а = новый структура("аа","аа"); б = новый структура("аа","аа"); Равна ли структура "а" структуре "б" ? |
|||
56
Волшебник
модератор
09.12.15
✎
16:00
|
(53) чудес не бывает
|
|||
57
Локи-13
09.12.15
✎
16:00
|
Равны будут только
ПользовательИБ.Имя = ПользовательТекущий.Имя |
|||
58
Fannasankh
09.12.15
✎
16:01
|
(55) это не новые структуры. У них одинаковый идентификатор, это один и тот же пользователь. В справочнике пользователи нет дублирующихся элементов. В целях сохранения конфидициальности не могу выложить справочник пользователи
|
|||
59
Fannasankh
09.12.15
✎
16:02
|
(56) тогда какое объяснение?
|
|||
60
Локи-13
09.12.15
✎
16:02
|
(58) Это два объекта!
Объекты нельзя сравнивать! |
|||
61
Fannasankh
09.12.15
✎
16:04
|
(60) вот это уже больше похоже на правду. Наверно, я это не знал или забыл
|
|||
62
6tuf
09.12.15
✎
16:09
|
(0) используй
СравнениеЗначений (CompareValues) Методы: Сравнить (Compare) Конструкторы: По умолчанию Описание: Объект для сравнения значений по правилам, совпадающим с правилами сравнения значений в базе: Элементы, чьи типы не совпадают, сравниваются по коду типа Элементы простых типов сравниваются по значению Объекты сравниваются по идентификатору Моменты времени сравниваются по дате и идентификатору объекта Элементы остальных типов сравниваются по строковому представлению. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
63
Fannasankh
09.12.15
✎
16:12
|
(62) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |