Авторизация: создание справочника "Пользователи" в 1C:Предприятие 8.3

26.06.23

Администрирование - Роли и права

Авторизация является важной частью любой информационной системы, и в 1C:Предприятие 8.3 можно легко реализовать авторизацию пользователей с использованием специального справочника "Пользователи". В этой статье мы рассмотрим этапы создания справочника "Пользователи" с реквизитами "Логин", "Пароль", "Роль" и "Уникальный идентификатор", где роль будет ссылаться на перечисление "Роли".

Важной частью любой информационной системы является авторизация пользователей. В 1C:Предприятии 8.3 предусмотрены удобные средства для реализации авторизации с помощью специального справочника "Пользователи". В данной статье мы рассмотрим этапы создания справочника "Пользователи" с реквизитами "Логин", "Пароль", "Роль" и "Уникальный идентификатор". Особенностью будет то, что роль будет связана с перечислением "Роли".

 

Шаг 1: Создание справочника "Пользователи"

  1. Запустите 1C:Предприятие 8.3 и откройте нужную информационную базу.
  2. В меню выберите "Справочники" -> "Справочники" или воспользуйтесь горячей клавишей F8.
  3. В открывшемся окне нажмите кнопку "Создать" для создания нового справочника.
  4. Введите название справочника, например, "Пользователи", и нажмите "ОК".

 

Шаг 2: Создание перечисления "Роли"

  1. В меню выберите "Справочники" -> "Перечисления" или воспользуйтесь горячей клавишей Ctrl+Shift+E.
  2. В открывшемся окне нажмите кнопку "Создать" для создания нового перечисления.
  3. Введите название перечисления, например, "Роли", и нажмите "ОК".
  4. В списке значений перечисления добавьте нужные роли, например, "Администратор", "Менеджер", "Директор" и т.д.
  5. Нажмите "ОК", чтобы сохранить созданное перечисление.

 

 

 

Шаг 3: Добавление реквизитов в справочник

  1. В открывшемся окне справочника "Пользователи" нажмите кнопку "Реквизиты".

  2. В списке реквизитов нажмите кнопку "Добавить" для добавления нового реквизита.

  3. Добавьте следующие реквизиты и их типы данных:

    • Логин (Тип: Строка, Длина: 50)
    • Пароль (Тип: Строка, Длина: 50)
    • Роль (Тип: ПеречислениеСсылка.Роли)
    • УникальныйИдентификатор (Тип: УникальныйИдентификатор)
  4. Нажмите "ОК", чтобы сохранить добавленные реквизиты.

 

 

 

Шаг 4: Добавление формы элемента в событиях формы

  1. Вернитесь к справочнику "Пользователи" и выберите в меню "Формы" -> "ФормаЭлемента".
  2. В открывшемся окне формы элемента перейдите на вкладку "События" и найдите событие "Открытие" (или другое событие, которое вам подходит).
  3. В окне редактора кода вставьте следующий код:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Запрос=Новый Запрос;
    Запрос.Текст= "ВЫБРАТЬ
                  |    Пользователи.Логин КАК Логин,
                  |    Пользователи.УникальныйИдентификатор КАК УникальныйИдентификатор
                  |ИЗ
                  |    Справочник.Пользователи КАК Пользователи
                  |ГДЕ
                  |    Пользователи.Логин = &Логин";     
    
    Запрос.УстановитьПараметр("Логин", Объект.Логин);
    Результат=Запрос.Выполнить().Выбрать();
    Если Результат.Следующий() Тогда    
        //Если одна и та же запись справочника, то условие будет истинно. Если нет пользователей с таким логином, то условие будет истинно.
        Если Результат.Количество()= 0 ИЛИ ТекущийОбъект.УникальныйИдентификатор = Результат.УникальныйИдентификатор Тогда  
            //Нахождение пользователя в списке пользователей информационной базы через уникальный идентификатор
            ПользовательСсылка=ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ТекущийОбъект.УникальныйИдентификатор);
            
            //Если пользователь не найден, то создается новый
            
            //Присмечание: Если значение не найдено
            //то для пользователя с административными правами возвращается значение Неопределено,
            //для других пользователей вызывается исключение
            Если ПользовательСсылка=Неопределено тогда 
                
                НовыйПользователь=ПользователиИнформационнойБазы.СоздатьПользователя();
                НовыйПользователь.Имя = Объект.Логин;  
                НовыйПользователь.Пароль = Объект.Пароль;
                НовыйПользователь.ПолноеИмя = Объект.Наименование;
                Если объект.Роль=Перечисления.Роли.Администратор Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Администратор);      
                ИначеЕсли объект.Роль=Перечисления.Роли.Менеджер Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Менеджер);
                ИначеЕсли объект.Роль=Перечисления.Роли.Мастер Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Мастер);
                ИначеЕсли объект.Роль=Перечисления.Роли.Замерщик Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Замерщик); 
                ИначеЕсли объект.Роль=Перечисления.Роли.Директор Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Директор);
                КонецЕсли;
                НовыйПользователь.ПоказыватьВСпискеВыбора=Ложь;
                
                //Уникальный идентификатор у пользователя ИБ неявно создается после записи.
                НовыйПользователь.Записать();
                ТекущийОбъект.УникальныйИдентификатор=НовыйПользователь.УникальныйИдентификатор;
                Иначе
                ПользовательСсылка.Пароль=Объект.Пароль; 
                ПользовательСсылка.ПолноеИмя=Объект.Наименование;
                ПользовательСсылка.Роли.Очистить();    
                Если объект.Роль=Перечисления.Роли.Администратор Тогда
                    ПользовательСсылка.Роли.Добавить(Метаданные.Роли.Администратор);      
                ИначеЕсли объект.Роль=Перечисления.Роли.Менеджер Тогда
                    ПользовательСсылка.Роли.Добавить(Метаданные.Роли.Менеджер);
                ИначеЕсли объект.Роль=Перечисления.Роли.Мастер Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Мастер);
                ИначеЕсли объект.Роль=Перечисления.Роли.Замерщик Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Замерщик); 
                ИначеЕсли объект.Роль=Перечисления.Роли.Директор Тогда
                    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Директор);
                КонецЕсли;
                ПользовательСсылка.Записать();
            КонецЕсли;
        Иначе
            Сообщ=Новый СообщениеПользователю;
            Сообщ.Текст="Пользователь с таким логином уже существует!";
            Сообщ.Сообщить();
            Отказ=Истина;
        КонецЕсли
    Иначе
        НовыйПользователь=ПользователиИнформационнойБазы.СоздатьПользователя();
        НовыйПользователь.Имя=Объект.Логин;
        НовыйПользователь.Пароль=Объект.Пароль;
        НовыйПользователь.ПолноеИмя=Объект.Наименование; 
        Если объект.Роль=Перечисления.Роли.Администратор Тогда
            НовыйПользователь.Роли.Добавить(Метаданные.Роли.Администратор);      
        ИначеЕсли объект.Роль=Перечисления.Роли.Менеджер Тогда
            НовыйПользователь.Роли.Добавить(Метаданные.Роли.Менеджер);
        ИначеЕсли объект.Роль=Перечисления.Роли.Мастер Тогда
            НовыйПользователь.Роли.Добавить(Метаданные.Роли.Мастер);
        ИначеЕсли объект.Роль=Перечисления.Роли.Замерщик Тогда
            НовыйПользователь.Роли.Добавить(Метаданные.Роли.Замерщик); 
        ИначеЕсли объект.Роль=Перечисления.Роли.Директор Тогда
            НовыйПользователь.Роли.Добавить(Метаданные.Роли.Директор);
        КонецЕсли;
        НовыйПользователь.ПоказыватьВСпискеВыбора=Ложь;
            
        //Уникальный идентификатор пользователя ИБ неявно создается после записи
        НовыйПользователь.Записать();
        ТекущийОбъект.УникальныйИдентификатор=НовыйПользователь.УникальныйИдентификатор;
    КонецЕсли;
        
КонецПроцедуры

  1. Сохраните изменения.

 

Шаг 5: Дополнительная настройка и использование

  1. После создания справочника "Пользователи" вы можете настроить его дополнительные параметры, такие как права доступа к данным, формы элемента и т.д.
  2. Вы можете использовать данный справочник для реализации авторизации пользователей в вашей информационной системе. Для этого вам понадобится создать соответствующие формы, обработчики событий и дополнительный код для проверки логина и пароля при авторизации.

Это были основные этапы создания справочника "Пользователи" с реквизитами "Логин", "Пароль", "Роль" и "Уникальный идентификатор" в 1C:Предприятие 8. Вы можете дополнить данный функционал своими настройками и логикой в зависимости от требований вашей информационной системы.

Авторизация в 1C:Предприятие 8.3 Создание справочника "Пользователи"

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    196591    1085    409    

1006

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    15573    66    33    

84

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    14283    61    8    

90

Роли и права Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Бухгалтерия автономного учреждения 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

16800 руб.

21.03.2022    17081    27    54    

49

Роли и права Системный администратор Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    6928    11    6    

15

Ценообразование, анализ цен Роли и права Системный администратор 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С:УНФ 1.6 и 3.0. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    61655    173    264    

164

Роли и права Системный администратор 1С v8.3 1С:Документооборот Управленческий учет Платные (руб)

Внешняя обработка позволит быстро добавить участников в любое количество документов, заменить целиком набор участников или удалить лишь некоторых из них для одного объекта или группы документов.

3500 руб.

23.10.2015    64849    117    25    

130
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 2032 26.06.23 23:11 Сейчас в теме
Это что за сферический пример в вакууме? Мало того, что для всего этого есть БСП, так еще и пример в статье с реальностью соотносится примерно никак.
mc2; 0x00; +2 Ответить
2. user1398474 27.12.23 16:16 Сейчас в теме
Спасибо, очень помогло, особенно когда в силу обстоятельств, тащить ворох ненужных модулей из БСП совершенно не хочется.
3. Kilgure 1 07.03.25 17:33 Сейчас в теме
При изменении имени пользователя, в справочнике "Пользователи" меняется элемент справочника. При этом в справочнике "ПользователиИБ" элемент не редактируется, а создается еще один пользователь , с новым именем.
4. Kilgure 1 07.03.25 18:25 Сейчас в теме
В запросе нужно искать пользователя не по логину, а по идентификатору.
Оставьте свое сообщение