1с как найти пользователя информационной базы

Вопрос:

Ребят, как можно получить пользователя информационной базы 1С? Это же не справочник в конфигурации. У меня есть только Пользователь, подскажите как решить такую проблему!

 Ответ:

У элемента справочника Пользователи есть идентификатор пользователя ИБ, по нему и можно получить пользователя информационной базы.

Пример для текущего пользователя:

ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
УИНПользователя     = ТекущийПользователь.ИдентификаторПользователяИБ;

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УИНПользователя);

Найти пользователя по «ПользовательОС»

Я
   Zombi

04.09.18 — 08:22

Как найти пользователя по полю «ПользовательИБПользовательОС»? Этот реквизит формы берется из ПользователиИБ, я так понял.

   Zombi

1 — 04.09.18 — 08:36

Неужели получать всех пользователей и в них искать? Другого способа нет?

   Пуля

2 — 04.09.18 — 08:52

Ну так пользователь это и есть пользователь, зачем искать пользователя по пользователю в пользователях?

   Zombi

3 — 04.09.18 — 08:57

(2) Есть справочник «Пользователи», а есть ПользователиИБ. Разные вещи так то.

   catena

4 — 04.09.18 — 09:00

(3)Так че по чему найти надо? в (0) невнятно про типы искомого-ископаемого.

   marvak

5 — 04.09.18 — 09:01

(1)

Запросом выдернуть по совпадению этого поля с нужным именем.

   marvak

6 — 04.09.18 — 09:02

Типа

ВЫБРАТЬ

Пользователи.Ссылка

ИЗ

Справочник.Пользователи КАК Пользователи

ГДЕ

Пользователи.ПользовательИБПользовательОС = &ИмяПользователяОС

   Zombi

7 — 04.09.18 — 09:07

(4) Есть строка //домен/имяюзера, надо по ней найти пользователя в справочнике «Пользователи».

   Zombi

8 — 04.09.18 — 09:08

(6) Нет у справочника «Пользователи» поля «ПользовательИБПользовательОС», это поле есть только у формы, и заполняется при открытии из прикрепленного пользователяИБ

   Смешной 1С

9 — 04.09.18 — 09:12

Запрос.Текст = «ВЫБРАТЬ ПЕРВЫЕ 1

                   |    Пользователи.Ссылка КАК Ссылка

                   |ИЗ

                   |    Справочник.Пользователи КАК Пользователи

                   |ГДЕ

                   |    Пользователи.ИдентификаторПользователяИБ = &ИдентификаторПользователяИБ

                   |    И НЕ Пользователи.ПометкаУдаления»;

    Запрос.Параметры.Вставить(«ИдентификаторПользователяИБ», ПользовательИБ.УникальныйИдентификатор);

   Смешной 1С

10 — 04.09.18 — 09:14

(8) Если справочник пользователь из БСП, то должен быть ИдентификаторПользователяИБ

   Гипервизор

11 — 04.09.18 — 09:14

(8) ПользовательОС это свойство у объекта ПользовательИнформационнойБазы.

   Zombi

12 — 04.09.18 — 11:35

(9) (10) У меня есть только стрка: «//домен/имяюзера», по этим данным мне нужно получить пользователя. Был бы у меня УникальныйИдентификатор пользователяИБ, вопроса не было бы. Вопрос именно в том, как получить нужный УникальныйИдентификатор по реквизиту «ПользовательОС».

   Zombi

13 — 04.09.18 — 11:35

(11) Это я понимаю.

   catena

14 — 04.09.18 — 11:40

(12)Тогда да, получать всех, искать по пользователю ОС, потом по имени пользователя ИБ искать в справочнике пользователей. Нет у пользователя информационной базы методов поиска по реквизитам, кроме имени и идентификатора.

  

Zombi

15 — 04.09.18 — 12:46

(14) Понятно. Так и сделал:

    ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей();

    
    Для Каждого ПользовательИБ Из ПользователиИБ Цикл

        
        Если ПользовательИБ.ПользовательОС = Curator Тогда

            
            НовыйДоговор.Подготовил = Справочники.Пользователи.НайтиПоРеквизиту(«ИдентификаторПользователяИБ», ПользовательИБ.УникальныйИдентификатор);

            Прервать;

            
        КонецЕсли;

        
    КонецЦикла;

 +4 

   

Распечатать

Код 1C v 8.х

  Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей(); 
Для Каждого ЭлементМассива Из Выборка Цикл
ИмяПользователя = ЭлементМассива.Имя;
ПолноеИмяПользователя = ЭлементМассива.ПолноеИмя;
ЕстьПароль = ЭлементМассива.ПарольУстановлен;
Роли = ЭлементМассива.Роли;

Для Каждого Роль Из Роли Цикл
ИмяРоли = Роль.Имя;
КонецЦикла;
КонецЦикла;

Код 1C v 7.x

 //  Функция возвращает список зарегистрированных для выбранной
// базы пользователей. Если пользователи не определены, список
// будет пуст.
//
функция сзПолучитьПользователей(стрПутьКБазе)
// Создаем список значений для возврата
Ответ = создатьобъект("СписокЗначений");
// Формируем полное имя файла, в котором 1С
// хранит информацию о пользователях базы.
стрИмяФайла = стрПутьКБазе + "UsrDEFUsers.USR";
// Проверим его наличие.
если фс.СуществуетФайл(стрИмяФайла) > 0 тогда
// Создаем объект FSO для работы с файлами.
обФСО = создатьобъект("Scripting.FileSystemObject");
// Открываем файл пользователей как текстовый.
тхтФайл = обФСО.OpenTextFile(стрИмяФайла);
// Инициализация первоначальных переменных
// Загружаем в буфер(тестовую строку) информацию из файла.
стрБуфер = "";
чисПозиция = 0;
// Перебеирать файл придеться посимвольно, так как 1С не совсеми
// символами может работать коректно если они находяться в строке.
пока тхтФайл.AtEndOfStream = 0 цикл
// Получаем очередную позицию в файле.
чисПозиция = чисПозиция + 1;
// Получаем символ из данной позиции.
стрСимв = тхтФайл.Read(1);
// Если код символа больше 31
если кодсимв(стрСимв) > 31 тогда
// Тогда добавляем его к буферу.
стрБуфер = стрБуфер + стрСимв;
конецесли;
конеццикла;
// После формирования буфера начнем искать пользователей в нем.
// Признаком для пользователя будет строка '{"UserItemType","Page.'
стрПоиска = "{""UserItemType"",""Page.";
// Получаем позицию первого пользователя.
чисПозиция = найти(стрБуфер, стрПоиска);
// Проверяем если в буфере нужная нам строка
если чисПозиция > 0 тогда
// Если есть, вырезаем из строки ненужную информацию.
стрБуфер = сред(стрБуфер, чисПозиция);
// Позиция после отрезания становиться в единицу
чисПозиция = 1;
конецесли;
// В цикле получаем информацию о пользователях БД
пока чисПозиция > 0 цикл
// Удаляем из буфера 'мусор'
стрБуфер = сред(стрБуфер, чисПозиция + 22);
// Находим признак начала информации об имени пользователя.
чисСмещение = найти(стрБуфер, """,""") + 3;
// Перемещаем начало буфера на начало информации об имени пользователя
стрБуфер = сред(стрБуфер, чисСмещение);
// Получаем имя пользователя
стрИмяПользователя = лев(стрБуфер, найти(стрБуфер, """,""") - 1);
// Добовляем имя к нашему списку.
Ответ.ДобавитьЗначение(стрИмяПользователя);
// Получаем очередную позицию информации о пользователе
чисПозиция = найти(стрБуфер, стрПоиска);
конеццикла;
конецесли;
// Возращаем полученный список значений содержащий в себе список пользователей базы
возврат Ответ;
конецфункции

еще Пример получения списка пользователей из файла users.usr

Код:

ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
ОрганизацияТекущегоПользователя = Справочники.Пользователи.НайтиПоНаименованию(ТекущийПользователь).Организация;
Сообщить(ОрганизацияТекущегоПользователя);

Код рабочий, но как правильнее сделать? Серверный вариант.

задан 15 янв в 18:23

Вадим Чиркунов's user avatar

если типовая конфигурация:

сообщить(ПараметрыСеанса.ТекущийПользователь);

Если у справочника пользователи есть реквизит ИдПользователяБазы :

Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдПользователяБазы",Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор));

ответ дан 17 янв в 11:57

Вадим Туманов's user avatar

На чтение 4 мин. Просмотров 215 Опубликовано 15.12.2019

Ребят, как можно получить пользователя информационной базы 1С? Это же не справочник в конфигурации. У меня есть только Пользователь, подскажите как решить такую проблему!

У элемента справочника Пользователи есть идентификатор пользователя ИБ, по нему и можно получить пользователя информационной базы.

Содержание

  1. Guesto notes
  2. Требование
  3. Реализация требования
  4. Пользователи
  5. Текущий пользователь

Guesto notes

Продолжаем разработку конфигурации Менеджер задач. В прошлой части определились с функционалом и описали справочники для хранения информации. В этой части будем разбираться с пользователями. Планировал разобрать хранение и отображение состояний задач, но логичнее сначала описать пользователей для отображения задач конкретного пользователя.

1C. Разработка конфигурации Менеджер задач. Часть 1
1C. Разработка конфигурации «Менеджер задач». Часть 2. Пользователи.

Требование

Разработать конфигурацию «Менеджер задач»:

3. Предусмотреть возможность работы нескольких пользователей;

Под данным требованием предполагается, что пользователи на рабочих местах должны видеть состояния только положенных ему задач, ограничение видимости задач в справочниках организовывать не требуется. Для идентификации и аутентификации будем пользоваться связкой Пользователей ИБ и справочника Пользователи.

. О пользователях ИБ можно почитать Синтаксис-помощник в разделе Работа со списком пользователей информационной базы.

На текущий момент будем реализовывать необходимый минимум:

  • Хранение пользователей системы и соответствия с пользователями ИБ;
  • При первом запуске создавать пользователя Администратор и назначать ему полные права;
  • Введение новых пользователей и назначать права через Конфигуратор;
  • При входе в систему инициализировать параметр сеанса ТекущийПользователь.

Создание и изменение пользователей через режим 1С:Предприятие будем разбирать позже.

Реализация требования

Пользователи

Создадим справочник Пользователи с иерархией групп и элементов, длину наименования установим 100. Справочник включим в состав подсистемы Менеджер задач. В синоним стандартного реквизита Наименование установим значение «Полное имя«, в нем будет храниться представление пользователя.

Добавим реквизит ИмяВхода, тип Строка(50) для отображения логина пользователя.

При запуске необходимо определять по текущему пользователю ИБ пользователя нашей системы, для этого воспользуемся свойством УникальныйИдентификатор пользователя ИБ. Создадим реквизит УникальныйИдентифиткатор с типом УникальныйИдентифиткатор, там и будем хранить соответствие.

Сразу набросаем форму

Для разделения пользователей создадим роли:

  • Полные права — Имеет права на все объекты конфигурации;
  • Пользователь — Имеет право запуска клиента, установки параметров сеанса и просмотра НСИ.

Текущий пользователь

Для хранения текущего пользователя сеанса создадим параметр сеанса ТекущийПользователь, как и положено будем его заполнять в событии модуля сеанса УстановкаПараметровСеанса().

Как видно из кода, я добавил общий модуль УправлениеПользователями, в котором в функции ПолучитьПользователяСистемы() буду производить определение пользователя системы по переданному пользователю ИБ.

При определении пользователя возможны следующие варианты:

  1. Нет пользователей ИБ, нет пользователей системы. Считаем, что это первый запуск системы, создаем полноправного пользователя Администратор, назначаем его текущим;
  2. Есть пользователь ИБ и пользователь системы, назначаем его текущим;
  3. Есть пользователь ИБ, нет пользователя системы. Запуск после добавления нового пользователя через конфигуратор. Создаем пользователя системы, назначаем его текущим.

Из изложенного выше описываем код общего модуля УправлениеПользователями.

Теперь при запуске в параметрах сеанса будет установлен текущий пользователь.

Разбор требования завершен, в следующей части будем разбираться с хранением и отображением состояния задач.

У текущего пользователя нет доступных ролей для запуска информационной базы 1С — это часто встречающаяся ошибка в системе 1С Предприятие 8. Рассмотрим ситуацию на примере работы с программой Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК.

По умолчанию, для каждого пользователя должна быть установлена роль — Бухгалтер или Полные права, или Учет в ЖКХ. Бухгалтерия или Учет в ЖКХ — это «базовые» роли, одну из которых необходимо установить для нормального функционирования конфигурации, так как при каждом запуске каждого пользователя система проверяет наличие нужных ролей.

Для исправления ошибки необходимо для пользователя, у которого выходит ошибка, установить необходимые роли:

  1. Зайдите в «Список пользователей» в режиме Конфигуратор через меню АдминистрированиеПользователи. В списке пользователей найдите пользователя:

Для установки роли нажмите (Изменить текущий элемент) и перейдите на вкладку «Прочее» и установите флажки для ролей, которые необходимо установить выбранному пользователю:

Сохраните изменения для пользователя по кнопке ОК.

Понравилась статья? Поделить с друзьями:
  • Найти слова как произносятся
  • Как найти духи если не знаешь названия
  • Как найти производство молока
  • Как можно найти человека через номер телефона
  • Как найти адрес участка по координатам