Розница 2.0 Связка пользователя ИБ с рабочим местом
Добрый день. Может кто подскажет по следующей теме.
Под одним логином в компе, работают 2 пользователя ИБ 1с. Соответственно у них создается одинаковый ИдентификаторПользователя. При входе в режим РМК, приходится выбирать соответствующее рабочее место. Как сделать чтобы рабочее место определялось еще и по имени пользователя, который входит в 1С. А то не логично получается, пароль под пользователя установлен, а дальше он может выбрать другое рабочее место.
Под одним логином в компе, работают 2 пользователя ИБ 1с. Соответственно у них создается одинаковый ИдентификаторПользователя. При входе в режим РМК, приходится выбирать соответствующее рабочее место. Как сделать чтобы рабочее место определялось еще и по имени пользователя, который входит в 1С. А то не логично получается, пароль под пользователя установлен, а дальше он может выбрать другое рабочее место.
По теме из базы знаний
- Ошибка доступного магазина или сбой в настройке рабочего места в конфигурациях на управляемом интерфейсе (1С:Розница 2.0, 1С:Управление торговлей 11 и др.)
- 54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С (поддержка Маркировки) + Эмулятор + ФФД 1.2
- Обмен между 1С:Розница и Frontol 6 по организациям (Розница - Фронтол)
- Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, КУПЕР, Dostavista
- Поддержка пользователей [Alt+S] (подключаемое расширение)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Тут скорее проблема в другом, СистемнаяИнформация.ИдентификаторКлиента как я понимаю, возвращает UID пользователя компьютера, а на пользователя ИБ 1С. Поэтому если под одним логином в системе работают более одного пользователя, а в 1с у них разные учетки, то от выбора рабочего места не избавишься.
Тут скорее проблема в другом, СистемнаяИнформация.ИдентификаторКлиента как я понимаю, возвращает UID пользователя компьютера, а на пользователя ИБ 1С. Поэтому если под одним логином в системе работают более одного пользователя, а в 1с у них разные учетки, то от выбора рабочего места не избавишься.
(4) LSM, так-то оно так, но...
Давайте посмотрим на функцию НайтиРабочиеМестаПоИД
Из нее следует, что будет найдено одно рабочее место.
А из этого кода следует вывод, что, если оно одно, то оно и будет подставлено в параметр сеанса, а форма вызываться не будет.
Давайте посмотрим на функцию НайтиРабочиеМестаПоИД
// Функция возвращает список рабочих мест, соответствующих указанному имени компьютера
Функция НайтиРабочиеМестаПоИД(ИдентификаторКлиента) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| РабочиеМеста.Ссылка
|ИЗ
| Справочник.РабочиеМеста КАК РабочиеМеста
|ГДЕ
| РабочиеМеста.Код = &Код
| И РабочиеМеста.ПометкаУдаления = ЛОЖЬ
|");
Запрос.УстановитьПараметр("Код", ИдентификаторКлиента);
СписокКомпьютеров = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат СписокКомпьютеров;
КонецФункции
ПоказатьИз нее следует, что будет найдено одно рабочее место.
А из этого кода следует вывод, что, если оно одно, то оно и будет подставлено в параметр сеанса, а форма вызываться не будет.
МассивРабочихМест = МенеджерОборудованияКлиентПовтИсп.НайтиРабочиеМестаПоИД(ВРег(СистемнаяИнформация.ИдентификаторКлиента));
Если МассивРабочихМест.Количество() = 0 Тогда
Параметры = Новый Структура;
Параметры.Вставить("ИмяКомпьютера");
Параметры.Вставить("ИдентификаторКлиента");
Параметры.Вставить("СетевойПорт");
#Если Не ВебКлиент Тогда
Параметры.ИмяКомпьютера = ИмяКомпьютера();
#КонецЕсли
Параметры.ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента;
Параметры.СетевойПорт = МенеджерОборудованияКлиентСервер.ПолучитьСетевойПортПоУмолчанию();
РабочееМесто = МенеджерОборудованияСервер.СоздатьРабочееМестоКлиента(Параметры);
ИначеЕсли МассивРабочихМест.Количество() = 1 Тогда
РабочееМесто = МассивРабочихМест[0];
ИначеЕсли МассивРабочихМест.Количество() > 1 Тогда
Результат = МенеджерОборудованияКлиент.ВыбратьРабочееМесто(Истина, ВРег(СистемнаяИнформация.ИдентификаторКлиента));
РабочееМесто = МенеджерОборудованияКлиентПовтИсп.ПолучитьРабочееМестоКлиента();
КонецЕсли;
Показать
Тогда вот этот запрос нужно модифицировать
Реквизит добавить в справочник и вывести на форму. Тогда будет отбираться одно рабочее место.
|ВЫБРАТЬ
| РабочиеМеста.Ссылка
|ИЗ
| Справочник.РабочиеМеста КАК РабочиеМеста
|ГДЕ
| РабочиеМеста.Код = &Код
И РабочиеМеста.Пользователь = &ТекущийПользователь
| И РабочиеМеста.ПометкаУдаления = ЛОЖЬ
Реквизит добавить в справочник и вывести на форму. Тогда будет отбираться одно рабочее место.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот