Система 1С - #1 > ПОЛЬЗОВАТЕЛИ.АВТОРИЗАЦИЯ

Собственно начинаем.

Во первых важно понять что это за система и что она будет делать. Сразу скажу это будет не бухучет/торговля/кадры в привычном понимании и назначении продукта 1С. Многие спросят меня: "Ну и зачем нам 1С в таком случае?". Глобально не зачем, если вы умеете в более фундаментальные языки программирования. Но если вы хотите автоматизировать что-то дешево, быстро и сердито то это как раз про 1С. Это может быть касса, парковки, библиотека или какая-то система которая консолидирует данные и проводит аналитику. То бишь любая система не по прямому своему назначению в идеологии фирмы 1С и ее конфигураций и отраслевых решений. Моя система должна научить не тривиальным вещам:

  1. Само собой авторизация и работа с пользователями и ролями. Управление сеансами.

  2. Работа с электронной почтой. Получение/чтение/отправка (этим на самом деле никого не удивишь, но в данном кейсе мы будем отправлять пользователям их "аутентификационные" данные на почту при запросе на выдачу доступов). Также будем делать унифицированный фидбек на почту разработчика (ответственного) в случае исключений. Это удобно, если ты хочешь получить больше информации от пользователя и сразу, а не лезть в ЖР (Журнал регистрации) для поиска нужного сообщения, тем более если твой лог нон-стоп пишет + много пользователей. Хотелось бы еще попробовать реализовать интеграцию с Jira, но не в этот раз (это очень большая тема).

  3. Работа с внешними данными: xls, csv, txt и прочее. Правильная и грамотная конвертация данных туда и обратно. Этот пункт важен в понимании архитектуры клиент-сервер. Тут же и работа с файловой системой.

  4. Универсализация фоновых и регламентных заданий. Как это работает? Как сделать интерфейс асинхронным? Как сделать интерфейс юзабилити с помощью фоновых заданий.

  5. Работа с API. Как общаться, получать данные и проходить авторизацию.

Думаю этого пока достаточно.

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

ПОЛЬЗОВАТЕЛИ. АВТОРИЗАЦИЯ

Во первых хочу для начала объяснить с чем мы имеем дело:

  1. Из коробки при разворачивании системы 1С и публикации (так это называется) базы платформа создает файл/ы (в случае файловой реализации), или таблицы (в случае серверной). Это означает что объекты и метаданные предопределены и есть статические глобальные методы и способы взаимодействия разработчика и объектов метаданных. Звучит страшно, но до первого написания кода, поверьте мне.

  2. Т.е. при разворачивании ИБ (информационная база) разработчик может работать с метаданными в коде и реализовывать логику и интерфейс. Конкретно здесь нас интересует предопределенный тип МенеджерПользователейИнформационнойБазы. Его мы и будем использовать в данном разделе и все будет крутиться вокруг этого типа.

Платформа 1С предлагаем нам два способа работы с пользователями и их настройками:

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

Система 1С - #1 > ПОЛЬЗОВАТЕЛИ.АВТОРИЗАЦИЯ Программа, 1С, 1с:предприятие 8, Длиннопост

Интерфейс конфигуратора где есть настройка пользователей

2. Способ когда мы пишем логику общения с объектом ПользователиИнформационнойБазы который доступен в глобальном контексте приложения (примечание 1). Мы описываем логику и делаем свой пользовательский интерфейс для настройки пользователей, так и настройки конкретного пользователя. С этим мы и будем работать.

Примерно схематично я нарисовал как это (в моем понимании) выглядит визуально

Система 1С - #1 > ПОЛЬЗОВАТЕЛИ.АВТОРИЗАЦИЯ Программа, 1С, 1с:предприятие 8, Длиннопост

А вот способ которого мы будем придерживаться и примерно это и будет реализовываться

Система 1С - #1 > ПОЛЬЗОВАТЕЛИ.АВТОРИЗАЦИЯ Программа, 1С, 1с:предприятие 8, Длиннопост

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

Думаю пока достаточно.

Глобальный контекст - это то к чему мы можем получить доступ из программного кода. Это объекты метаданных, предопределенных статических методов. Причем они по разному доступны в зависимости где выполняется код, на клиенте или на сервере. Уровень доступа определяет платформа. Все это мы поймем когда будем писать код, а пока ниже картинка как это выглядит

Система 1С - #1 > ПОЛЬЗОВАТЕЛИ.АВТОРИЗАЦИЯ Программа, 1С, 1с:предприятие 8, Длиннопост

Доступ к объектам/методам глобального контекста

Всем мир!