|
Проверить в запросе условие | ☑ | ||
---|---|---|---|---|
0
1C2SS
02.10.12
✎
19:31
|
Необходимо в универсальный отчет добавить условие чтобы реквизит документа заказы был равен ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя
как это сделать ? особенно интересно с помощью конструктора. |
|||
1
Wobland
02.10.12
✎
19:35
|
а если таких полных имён штук 80 в этой базе?
|
|||
2
Fragster
гуру
02.10.12
✎
19:36
|
(0) это чтобы пользователь видел только свои данные? это делается по другому.
|
|||
3
Wobland
02.10.12
✎
19:37
|
хотя какая на фих разница. только какое отношение имя пользователя имеет к заказу?
|
|||
4
1C2SS
02.10.12
✎
19:37
|
Полные имена уникальны
|
|||
5
1C2SS
02.10.12
✎
19:37
|
Fragster ага
как это делается ? |
|||
6
Wobland
02.10.12
✎
19:39
|
(4) точно?
|
|||
7
Wobland
02.10.12
✎
19:39
|
(5) РЛС?
|
|||
8
1C2SS
02.10.12
✎
19:39
|
точно
|
|||
9
1C2SS
02.10.12
✎
19:40
|
как с помощью RLS это сделать ?
|
|||
10
Wobland
02.10.12
✎
19:40
|
||||
11
1C2SS
02.10.12
✎
19:43
|
что это значит ?
|
|||
12
Fragster
гуру
02.10.12
✎
19:44
|
(11) тебе как бы намекают, что полное имя может быть не уникально
|
|||
13
1C2SS
02.10.12
✎
19:46
|
как же тогда быть ?
|
|||
14
Wobland
02.10.12
✎
19:48
|
(13) слушаться умных дядек сразу. параметры сеанса есть? текущий пользователь в них есть?
|
|||
15
Fragster
гуру
02.10.12
✎
19:48
|
(13) кури RLS
|
|||
16
GANR
02.10.12
✎
19:48
|
(0) В типовых конфигурациях элементы справочника "Пользователи" синхронизируются с ПользователиИнформационнойБазы.ТекущийПользователь() не по имени, а по уникальному идентификатору. В параметр сеанса "Текущий пользователь" поцепляется элемент справочника "Пользователи", реквизит "Идентификатор пользователя ИБ" которого равен ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор() (9) Если конфа стандартная, то просто
ГДЕ Ответственный = &ТекущийПользователь |
|||
17
Wobland
02.10.12
✎
19:48
|
(15) он уже начал в (9) ;)
|
|||
18
GANR
02.10.12
✎
19:55
|
(0) Перепиши синхронизацию по полному наименованию на обкатанный способ синхронизации по уникальному идентификатору, описанный в (16) - как на такое (4) можно смотреть.
|
|||
19
1C2SS
02.10.12
✎
19:55
|
ок. спасибо.
|
|||
20
1C2SS
02.10.12
✎
20:11
|
у меня в конфигурации уникальный идентификатор элемента справочника Пользователи и уникальный идентификатор ПользователиИнформационнойБазы.ТекущийПользователь отличаются (для соответствующего пользователя) .
|
|||
21
GANR
02.10.12
✎
20:16
|
(20) Нееееет. Не Ссылка.УникальныйИдентификатор(), а реквизит Ссылка.ИдентификаторПользователяИБ должны быть идентичны. А если конфа типовая - тут и думать нечего, добавляешь в RLS условие ГДЕ Ответственный = &ТекущийПользователь и всё.
|
|||
22
1C2SS
02.10.12
✎
20:21
|
приведи пожалуйста пример кода
как установить соответствие текущего пользователя и элемента справочника. а то что то я совсем запутался. |
|||
23
GANR
02.10.12
✎
20:37
|
(22)Если конфа типовая - смотри общий модуль "Пользователи" процедуру "УстановкаПараметровСеанса". Если самопальная - добавь в модуль сеанса в стандартную процедуру УстановкаПараметровСеанса этот код (возможны ошибки, т.к. писал в блокноте)
ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; ПолноеИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя; НайденныйПользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ", ИдентификаторПользователяИБ); Если Не ЗнаениЗаполнено(НайденныйПользователь) Тогда НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент(); НовыйПользователь.ИдентификаторПользователяИБ = ИдентификаторПользователяИБ; НовыйПользователь.Наименование = ПолноеИмяПользователя; НовыйПользователь.Записать(); ПараметрыСеанса.ТекущийПользователь = НовыйПользователь.Ссылка; Иначе ПараметрыСеанса.ТекущийПользователь = НайденныйПользователь; КонецЕсли; |
|||
24
GANR
02.10.12
✎
20:45
|
>ЗнаениЗаполнено
ЗначениеЗаполнено |
|||
25
1C2SS
02.10.12
✎
20:46
|
У справочника Пользователи нет реквизита ИдентификаторПользователяИБ
|
|||
26
1C2SS
02.10.12
✎
20:47
|
у меня 1с 8.1 работаю в УТ 10.3
|
|||
27
vmv
02.10.12
✎
20:50
|
(26) покопайся в модулях сеанса этой типовухи и общих связанных с пользователями, хватить канючить как баба за конфеты, ты ведь мужик и тебя есть мозг, а не просто формы)
|
|||
28
GANR
02.10.12
✎
20:55
|
(26) Ах это 8.1 - раритет ещё. Там по имени ещё синхронизируется. Вот функция общего модуля "УправлениеПользователями" (у меня ЗУП какой-то старый):
Функция ОпределитьТекущегоПользователя() экспорт Если ПустаяСтрока(ИмяПользователя()) Тогда ИмяПользователя = "НеАвторизован"; ПолноеИмяПользователя = "Не авторизован"; Иначе ИмяПользователя = ИмяПользователя(); Если ПустаяСтрока(ПолноеИмяПользователя()) Тогда ПолноеИмяПользователя = ИмяПользователя; Иначе ПолноеИмяПользователя = ПолноеИмяПользователя(); КонецЕсли; КонецЕсли; ДлинаКодаПользователя = Метаданные.Справочники.Пользователи.ДлинаКода; Если СтрДлина(ИмяПользователя) > ДлинаКодаПользователя Тогда ИмяПользователя = Лев(ИмяПользователя, ДлинаКодаПользователя); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ ПЕРВЫЕ 1 | Пользователи.Ссылка КАК Ссылка |ИЗ | Справочник.Пользователи КАК Пользователи |ГДЕ | (НЕ Пользователи.ЭтоГруппа) | И Пользователи.Код = &Код"; Запрос.УстановитьПараметр("Код", ИмяПользователя); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда ОбъектПользователь = Справочники.Пользователи.СоздатьЭлемент(); ОбъектПользователь.Код = ИмяПользователя; ОбъектПользователь.Наименование = ПолноеИмяПользователя; Попытка ОбъектПользователь.Записать(); Исключение #Если Клиент Тогда Предупреждение("Пользователь : " + ИмяПользователя + " не был найден в справочнике пользователей. Возникла ошибка при добавлении пользователя в справочник. |" + ОписаниеОшибки()); ЗавершитьРаботуСистемы(Ложь); #КонецЕсли Возврат Справочники.Пользователи.ПустаяСсылка(); КонецПопытки; ТекущийПользователь = ОбъектПользователь.Ссылка; Иначе Выборка = Результат.Выбрать(); Выборка.Следующий(); ТекущийПользователь = Выборка.Ссылка; КонецЕсли; Возврат ТекущийПользователь; КонецФункции // ОпределитьТекущегоПользователя() |
|||
29
GANR
02.10.12
✎
20:57
|
ПараметрыСеанса.ТекущийПользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
|
|||
30
1C2SS
02.10.12
✎
21:01
|
спасибо!
|
|||
31
GANR
02.10.12
✎
21:07
|
(30) Но вообще (28) это неправильный подход к синхронизации. Если уж что-то с чем-то синхронизировать, то по GUIDу, как в (23).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |