0: Так, продолжаем. Перерыв закончился. Переходим к модулю 3 последнему модулю, который сегодня мы должны разобрать. Завтра мы будем разбирать модуль 4. Напоминаю, модуль 1 и модуль 2. Он входит в промежуточную аттестацию.
1: То есть, если вы эти модули не сдавали на курсах там, 2, 3, то эти модули будут входить в государственную итоговую аттестацию. Дальше модуль 3, он входит в государственную итоговую аттестацию.
2: Базового уровня, то есть все, все, все, все, все его сдают, в том числе тоже, ну и соответственно он также входит и в повышенный уровень, но повышенный уровень не все образовательные учреждения выбирают чаще всего
3: Вижу по вопросам, которые задаются экспертами, преподавателями, выбирается больше чего повышенный уровень, потому что образовательные учреждения входят в профессионалитность такая.
4: Программа сейчас у нас, да, и, соответственно, у них есть требования, чтобы сдавался именно повышенный уровень. Но опять же, это все зависит от того, что написано в программе государственной аттестации образовательной
5: Учреждение, то есть какой уровень сдаёт студент базовый либо профильный повышенный уровень. Вернее на госэкзамене мы рассмотрим базовый уровень сегодня и профильный уже
6: Завтра ознакомимся с текстом задания, что нужно для выполнения задания. Нам нужно создать в базе данных таблицу пользователей. Ещё забыла сказать, что модуль 1 и модуль 2. Они сознательно
7: Созданы так что если у тебя нету модуля 1 или нету модуля 2, то ты можешь спокойно сделать модуль 3, то есть результаты 01.02 модуля никак не должны влиять на модуль 3 это опять же
8: Логично. Почему? Потому что модуль 1 и модуль 2 может сдаваться на 2 курсе, на 3 курсе и, соответственно, чтобы учебному заведению не хранить эти результаты все года, пока вы не дойдёте до 4 курса. Именно поэтому разработ
9: На задание именно по Такому принципу, что они между собой никак не связаны. То есть это не факт, что это гостиница. Даже если вы сделаете новую конфигурацию. То есть вот мы сейчас сделали в информационной базе
10: Создали объекты, загрузили их и так далее. Да, мы можем спокойно создать новую информационную базу и модуль 3 сделать в ней. Также, соответственно, можно сделать модуль 1, 2 на сервере, или там майскую, или постгреса.
11: 3 сделать на 1 с, то есть тоже никакой, никаких таких требований, указаний, что должно быть все в 1 нету, они независимы. И это умышленно так было сделано. Ну, прочитываем.
12: Дальше задание. То есть у нас должна быть табличка пользователи. Если такая таблица уже существует, это с точки зрения, если бы мы, если в модуле 1 или в модуле 2, там есть таблица пользователей, есть, да, допустим, в каком-то варианте, то её де,
13: Не нужно было бы, а использовать её, то нужно внести. Было бы просто в неё изменения, которые позволят сделать нам функционал модуля 3. Но, насколько я помню, в других вариантов нету пользователей, но могу ошибаться.
14: Нужно нам разработать форму для авторизации зарегистрированных пользователем с ролями. 2 Роли. Администратор и пользователь. Форма содержит 2 текстовых поля логин и пароль и кнопку войти поля, логин и пароль. Они должны быть обязательными для заполнения. То есть
15: Если мы нажимаем по кнопку войти, у нас система должна ругаться. Такого Логина нет, ну вернее, вы не ввели логин, вы не ввели пароль и, соответственно, тут вот рекомендуется, да, какое сообщение об ошибке? Вы ввели неверный логин или пароль? Пожалуйста, проверьте ещё раз введённые
16: Данные не нужно по отдельности делить ошибку, соответственно, меньше писать. Если нужно написать 1 ошибку в общих чертах. После того, как пользователь все правильно залогинился, написал логин, пароль, система должна опять же сообщить о том, что вы успе,
17: Авторизовались при аутентификации связка логин и пароль должны совпадать именно с таблицей пользователей. То есть если своя какая-то там авторизация без учёта того, что там в базе данных в таблице пользователей, то это не
18: Засчитывается при 1 успешной попытке.
19: Система при 1 успешной авторизации. То есть, когда вы авторизовались, заходите в свою форму, там форму пользователя, да, система автоматически должна выводить форму для смены пароля. Что это такое? Ну, допустим,
20: Пришёл новый сотрудник, работает на предприятии, администратор им, да, ему дал временный пароль. Вот он при 1 входе вводит этот временный пароль, и чтобы администратор, да, ну, соответственно, чтобы он указал тот пароль, который ему комфортный, он может, соответственно,
21: Его поменять, даже обязан поменять. Система обяжет его поменять. Выходит форма смены пароля, где указывается текущий пароль, то есть который выдал администратор новый пароль, и подтвердить, что там в новом пароле все поля опять также для
22: Заполнение обязательно после того, как пользователь 3 эти поля заполнил, он нажимает кнопку изменить пароль система должна проверить правильность текущего пароля с тем, что ему дал администратор, и также должен проверить, что новый пароль равен паролю.
23: Который подтверждённый пароль в 2 текстбоксах в 2 Полях получается.
24: Далее, в случае ошибок при заполнении формы пользователю выводится сообщение об ошибке в случае успешного изменения пароля пользователю также выводится сообщение, что все хорошо, пароль сменён, если в течение 3 раз подряд
25: Пароль или логин вводился неверно, то учётная запись блокируется, и при повторной авторизации должно появляться сообщение. Вы заблокированы. Обратитесь к администратору. Также учётная запись блокируется, если
26: Пользователь не авторизовался месяц и далее идёт 2 блок это блок системы. Ну то есть пользователь, администратор, он должен добавлять новых пользователей, изменять
27: Включая снятие блокировки, да, то есть, то есть обратился к нему, сними, пожалуйста, мне блокировку там и так далее, да, там 3 раза подряд. Ну, какие-то там процессы, допустим, происходят. Министр, администратор снимает блокировку с пользователя при добавлении
28: Пользователя в базу следует проверять, а может такое уже есть с указанным логином. То есть мы проверяем на уникальность логин и, соответственно, должно выводиться соответствующее сообщение. Графический интерфейс вы разрабатываете как хотите.
29: Какие кнопки, где чего-то есть. Обычно заказчик не предоставляет прототип, как выглядит его формы, да, как он выглядит? Интерфейс. То есть ваша задача ещё самим придумать, как это будет у вас выглядеть по описанию.
30: Которое на дону. Ну, в принципе, тут форм не так много. Все они подробно расписаны. Думаю, с этим нет проблем. Разработать его необходимо в соответствиями с требования к разработке, про проектную документацию чуть позже. Давайте посмотрим требования к разработке.
31: Требования к разработке.
32: Название, название приложения должно обязательно включать название компании заказчика. Давайте мы с вами это сделаем. Я ухожу в конфигуратор. Так, это у меня че то другое.
33: Соберу.
34: Открыто столько много, а это я готовилась, что вы мне покажете? Заходим в конфигуратор, и у нас конфигурация называется словом конфигурация. Нам нужно поменять по требованиям разработки. У нас должно быть название компании, название компании.
35: Не предоставлено. Вы можете своё название придумать. То есть как хотите. Давайте я правой кнопочкой мыши свойства и вот здесь вот мы имя задаём.
36: Без разницы. Название компании у меня это гостиница, а по моему, там есть. Слушайте, сейчас, секунду. В документах заказчика, по моему, есть какие-то логотипы. Так, тут нету.
37: Ну, раз нам не предоставлено в ресурсах нигде название компании, вы должны сами. Ну, то есть смысл в чем вы не должны оставить название конфигурации, конфигурации, да, здесь нету. Может, в тексте брифинга, конечно.
38: Нет, нету. Поэтому нужно будет придумать самим. Давайте как-нибудь придумаем. Давайте уют напишу гостиница. Можно просто написать. Гостиница будет тоже тоже нормально. Гостиница.
39: Это мы использовали с вами 1 пункт, который звучит как название настольного. Должно обязательно включать название компании. Дальше вот этот пункт, этот пункт.
40: Пытается, ну то есть платформа, она сама контролирует файловую структуру, соответствие классов директории, классы, сущности и так далее. Она сама это все размещает, где ей нужно, да, в принципе, здесь беспокоиться не
41: Здесь у вас по умолчанию, соответственно, критерий выполнен. Дальше, соответственно, структура проекта аналогична. Платформа сама это делает, и платформа сама делает разметку ограничения.
42: Всякие уменьшения, группировки, расположения, компоновку. То есть это все система автоматически выполняет. То есть побеспокоиться надо 1 сникам, кто разрабатывает на 1 с в 1 пункте. Здесь это беспокоится.
43: Те, кто на других языках делают, потому что у них это ничего не, ну нету облегчения в разработке.
44: Обратная связь с пользователем у нас будет сообщить текст сообщения, полезные подсказки и так далее. Это мы с вами все пройдём. Обработки, ошибки некорректные всякие тоже это кодом мы
45: Все, проверим. Оформление кода. Ну, основные требования не должно быть в 1 строке. Ну, основная ошибка студентов в 1 строку написать 2 оператора. Ну, допустим,
46: 2 равенства там are равно 3 б равно 4, и все это в 1 строку 1 строка, 1 команда, что ещё у 1 с. Ну, обычно.
47: Ну, идентификаторы должны соответствовать соглашению среды разработки идентификаторы в 1 с, они у нас должны быть в стиле с большие маленькие буквы. Ну, вот, по поводу использования не более 1 командной строке. И нужно, конечно, на
48: Писать комментарии, комментирование кода, не использовать комментарии, где это очевидно, должны присутствовать только в тех местах, где это дополнительно. В принципе, у нас мест таких дополнительных очень много. Поэтому у нас проблем, что
49: Комментировать не встанет. Так, кстати, такая подсказка вам готовьте этот модуль хорошо, потому что этот модуль никак не поменяется между
50: Вариантами. Во всех вариантах этот модуль слово в слово.
51: Поэтому готовьте модуль 2, у вас есть шанс, то есть стабильно точно знать, что будет в том или Ином варианте. Так?
52: Требования разработки мы, в принципе, уже сделали с вами. Осталось там нам помнить, всегда помнить про сообщить и всегда помнить, что нужны комментарии и подсказки из того, что мы прочитали. Жду от вас. Какие
53: Нам нужно создать.
54: Какие таблички мы по создаём, так это я скрою, нам уже это ничего не нужно. И где мы будем создавать? Что это будет перечисление? Модуль 3.
55: Ещё раз не поняла вопрос. Так, модуль 2 или 3 будет и 3. Мы сейчас к 3 перешли и читаем 3 модуль.
56: Модуль 3, авторизация, она будет одинаковая во всех вариантах. Так, Роли не справочник, а что? Нет, давайте Роли не будет справочником. У нас 2 Роли с вами и больше быть не может. У нас
57: Роли, то есть мы создаём перечисление правая кнопочка мыши добавить и напишу я Роли. У нас Роли 2
58: Если вы помните, да, читала задание, у нас Роли администратор и пользователь больше нету. Переходим на веточку, данные задаём значение администратор.
59: Кстати, такой момент в 1 с есть система уже, которая позволяет политику безопасности настроить права доступа, дать Роли пользователей и так далее, да, то есть вот здесь вот смотрите, веточки, общие Роли.
60: Тут есть пользователи и при авторизации выходит стандартное диалоговое окно авторизации. Логин, пароль, но оно нам не подходит. Мы таким образом только заберём. Сейчас, секунду, если
61: Мы будем пользоваться типовой, то мы заберём только, только, только вот и все. Ну и вот ещё все. Больше мы ничего не заберём из критериев. То есть если сделать типовым инструментов, то
62: В типовом инструменте нету количества посчитать. Там сколько раз заходил, когда последний раз заходил смена паролей. То есть этого ничего в платформе нет. Умышленно, специально создано такое задание обычно.
63: Ну вот, то в том году преподаватели принимали задание. 1. Сникам было легко делать, потому что за них делает все платформа умышленно. Задание сделано так, чтобы было одинаковая сложность и для 1 с, и для там, для
64: Шарпа и джавы и так далее. Поэтому вот добавлены вот эти элементы, чтобы типовая платформа, ну то есть она их не умеет делать. Соответственно, вам хоть что-то придётся покодить. То есть так, чтобы обошлось это без кода, это не получится при всем желании.
65: Баллов мало наберёте, так администратор плюс пользователь.
66: А то у нас в том году был демо экзамен совсем Лёгкий на специалистах ес так, Роли администратор и пользователь. Надеюсь, пока я болтала, вы успели.
67: Далее.
68: Далее, что нам нужно? Вы меня просили, да, я просила написать пользователи. Вот написал пользователь нам нужен, да, пользователи будут у нас в справочниках. Это мы закрываем Роли, мы сделали дальше. У нас будет справочник пользователи правой.
69: Кнопочка мыши добавить пользователи.
70: Дальше нам нужно настроить реквизиты, которые будут у меня в данной табличке на вкладочке. Данные. Напоминаю, у нас есть код и наименование. У нас pro пользователя ничего не сказано.
71: А, ну как не сказано, у нас логин и пароль.
72: Поэтому давайте стандартный реквизит мы сделаем на логином наименование, зайдём синоним, напишем логин.
73: Окей. Далее. 25 символов. Я думаю, хватит для Логина. Оставим 25. Дальше для хранения пароля нам нужно, соответственно, добавить новый реквизит, то есть
74: Ещё раз логин мы использовали стандартный реквизит для пароля. Мы создаём новый реквизит добавить, создаём, пишем пароль.
75: Пароль и у нас, если вы помните, логин, пароль обязательный для заполнения всегда, чтобы это всегда контролировалось, мы сделаем с вами проверку заполнения.
76: Проверка заполнения выдавать ошибку.
77: Далее вопрос к вам. Какие ещё реквизиты пользователе нужны будут для того, чтобы нам запрограммировать функционал?
78: Жду ваших предложений. Дата входа. Угу. Сейчас сделаем дата входа, чтобы нам проследить, а был ли месяц?
79: Ну, 1 вход, ну, дата входа, она и как раз, если и дата входа пустая, то, соответственно, он не входил.
80: Ну, то есть 1 вход. То есть, если дата пустая, пустая, то, да, нам не нужен статус блокировки, да, активен, неактивен пользователь. Количество неправильно паролей, да, количество попыток, сколько это сделал. Да? Ну и
81: Вроде бы все ответили, да, вроде все ответили, все. То есть мы создаём реквизит, называется, давайте с попыток начнём количество попыток.
82: Количество попыток будет считаться 1, 2, 3, 4, ну и так далее. Ну, до 3 будет считаться. Это не строка, это у нас числовое поле число.
83: Далее добавим с вами реквизит.
84: Дата входа.
85: Дата входа это тип, дата, но вопрос к вам это просто тип, дата или дата? Время?
86: Да, давайте сделаем дата, время, чтобы было чёткое понимание, когда он последний там вплоть до часов минут заходил, поэтому внизу выбираем состав даты. Это дата, время нули.
87: Либо там окей. И в следующем свойстве дата, время.
88: Окей, следующий реквизит вечно толкнул следующий реквизит. Говорили про активность. Активность. Какого типа будет активность?
89: Булева. Отлично. То есть, да нет, активный неактивный Булеева и ещё 1 реквизит никто не сказал. Хочу от вас слышать.
90: Сейчас жду, потом подсказку расскажу роль. Совершенно верно. Самир, мы добавляем реквизит роль, и мы связываем его с
91: Перечислением, ссылкой Роли.
92: Окей.
93: Далее мы сделаем 2 рабочих стола, 1 рабочий стол для администратора, 1 рабочий стол для пользователя рабочий стол для пользователя он будет пустой, просто будет написано рабочий стол пользователя у админа на рабочем столе.
94: Должна быть форма списка наших пользователей, где он может нажать кнопочку добавить или там взять, открыть текущего и у него активность снять те, кто на на других технологиях.
95: Понимают, ну, не на 1 с понимают, что здесь придётся писать достаточно много кода по, даже по тому, чтобы просто создать пользователя. То есть нужно сделать, ну, то есть, пользователь заполнить, унести.
96: Так, там либо connection, string, либо, ну, то есть, унести данные в базу, записать их и туда, ну, либо api, поднимать, вытаскивать данные. Плюс определять, какая строка текущая откроется, чтобы открыть эти данные в форме другой, когда отредактировать. То есть,
97: Вот эту часть у нас на 1 с будет очень быстро сделать. Ну, где-то же должно быть плюс нашей российской технологии. Вот, то здесь вот очень быстро нам позволит сделать 1 с нам достаточно с вами у пользователя
98: Создать форму. Я зайду в пользователи, закрыла и на создать форму форму списка. То есть я нажимаю, перехожу в раздел формы, нажимаю добавить, выбираю форма списка справочника. Никак.
99: Переименовывать не буду. Останусь. Так, нажимаю дальше. Далее сделаем следующим образом. По умолчанию на форме списка видно 2 поля, код и наименование. Давайте мы с вами добавим ещё поля, чтобы было
100: Видно, удобно. Пароль, количество попыток, дата входа, активность, роль. Ну, чтобы нам было проще посмотреть, у какого пользователя какой пароль сейчас придумаем, потом пока тестировать будем. Забудем дальше.
101: Нажимаем. Готово. У нас все эти поля отображаются. Единственное, чтобы я сделала вот этот поле код я бы сделала перед наименованием. Можно вообще, конечно, поле код убрать, но как бы это вопрос в удобстве, если это не сделаете ничего сложного.
102: Ничего вас никто за это не сминусует баллы.
103: Так, дальше.
104: Давайте запустим, обновим конфигурацию, примем все изменения, запустимся.
105: И заполним для тестирования данными.
106: Так, пользователи, вот у нас появились все, все, все характеристики создать. Просьба вам заполнить справочник таким образом, чтобы нам можно было проверить пользователя, который входил более
107: Месяца назад пользователя, который совершил там больше 3 попыток.
108: Что у нас ещё где дата пустая. То есть он не входил где-то. Ну сейчас придумаем. Так, логин я, давайте пусть будет админ, потому что нам нужно проконтролировать рабочие столы. Далее пароли админа пусть будет
109: 0. Ну и сами себя. Мы не будем его блочить, да, дату его поставим сегодня роль администратор. И, конечно же, он активный.
110: То есть, опять же, да, смотрите, мы создали только реквизиты. Форма уже автоматически создалась, сгенерировалась автоматически. Дальше создам пользователя, который не входил ещё ни разу. Мы ему дали пароль. User 1, пароль 1.
111: Количество попыток 0. Он ещё не входил, не входил в систему, но он активный и будет пользователь.
112: Записать, закрыть. Далее. User 2 будет входить у нас давно пароль 2.
113: Он у нас будет входить. Ну пусть в январе входит последний раз он был в январе, пока стоит активность, активность должна сняться и заблокироваться. Так пользователь и будет пользователь, у которого
114: Уже 3 ошибки. Это идёт 3.
115: Пароль 3, количество ошибок уже 3. Ещё раз введёт. Его заблокирует дата входа. Пусть будет 12. Активен. Пока ещё раз введёт. Мы его заблокируем. Записать, закрыть. Так, просьба. А давайте ещё по
116: Который не активен юзер. 4 пароль 4. Он сейчас нет активности. Есть дата входа. Все замечательно у него с этими вещами, но у него нет активности.
117: То есть, когда мы работаем вот с такими множествами, если, если, если, если нужно все эти, если тестировать.
118: Пока мы в интерфейсе все оставим, все наши объекты, все оставим.
119: Опять же, если мы уберём с вами панель, то тогда эксперты не смогут проверить 1, 2 модуль, верхнюю панель. Мы не обращаем внимания и у нас не оценивается, что
120: При вводе Логина пароля мы не видим остальной интерфейс. Это умышленно, опять же, чтобы модуль 1 и модуль 2 можно было спокойно проверить, если бы мы с вами скрыли эту панель.
121: И заблокировали, то нам бы пришлось вот эти заселения, категории клиентов, ну, допустим, на
122: Рабочий стол администратора. Давайте.
123: Но, опять же, это лишние действия, за которые никто не поставит баллы. Нам самое главное отработать сейчас критерии. Так я тут не прописала их. Ну, сейчас так все заполнили.
124: Я думаю, заполнили. Дальше переходим. Это я закрываю форму списка тоже закрываю. Мы вернёмся к ней позже. Для чего мы к ней вернёмся? Для того, чтобы пользователь не смог ввести 2 раза.
125: Там user 4, то есть есть юзер 4, 2 user 4 не может быть. Мы к этому вернёмся чуть позже, когда до конца задания дойдём дальше. Что мы сделаем? Мы сделаем форму для рабочего стола пользователя.
126: Где мы её сделаем? Вкладочка общая, мы её разворачиваем. У нас есть общие формы.
127: Правая кнопочка мыши добавить назовём её format пользователя.
128: Format пользователя.
129: Ну, в принципе, можно там далее, но мы особо не увидим. Реквизитов нет, поэтому можно сразу готово.
130: Как вот это окно надоело уже.
131: Так, я надеюсь, успеваете?
132: Давайте подпишем окошечко, чтоб было понятно, когда пользователь, ну, оно пустое будет, чтоб было понятно, что перешли в элемент рабочего стола пользователя. Нажмём добавить и сделаем с вами декорацию. Надпись окей и в deko.
133: Надпись по идее, нужно переименовывать вот эти вещи. Давайте так, декорация то да, я оставлю декорация. Заголовок.
134: Окна можно это не менять, оно не попадёт в код. Обычно все, что попадается в код, оно должно быть нормально, наименовано. Ну, конечно, по хорошему лучше те элементы.
135: Которые мы помещаем даже на форму. Лучше, конечно, тоже давать имена и заголовок. Давайте, допустим, поздороваемся. У нас доброжелательное приложение будет добро пожаловать.
136: И допишем, что это рабочий стол.
137: Что понятно, что админ заходит под свой рабочий стол, пользователь под свой пользователя.
138: Что у нас вход идёт по ролям, можно поместить картинку, ещё что-то, но не будем это делать.
139: Окей, в принципе, на этом все можно шрифт поменять. Ну, я не буду, у нас с вами 2 часа только осталось. Закрываю.
140: Дальше создадим с вами форму для смены пароля. Это тоже будет делаться в общих формах. Правая кнопочка мыши добавить давайте так напишем форма смены пароля.
141: Мы сейчас интерфейс сделаем, будем уже потом программировать. Форма смены пароля.
142: Почему лучше сделать сначала здесь интерфейс, чтобы потом можно обращаться к этим окнам, а потом эти окна возвращаться и допрограммировать. Она также пустая, поэтому готова.
143: Нам нужно с вами.
144: 3 реквизита. Если вы помните текущий пароль, пароль новый и подтверждение нового пароля, мы с вами эти данные нам нужны будут в коде, поэтому мы добавляем на нашу форму реквизиты, которые будут сохранять
145: Данные я добавляю это то есть не сюда просто, да, то есть мы не можем, смотрите, если я добавлю сейчас, секунду поле добавлю оно не видно будет, оно будет видно, когда будет связка с данными.
146: Если данных нет, то, соответственно, и поле тоже не видно. Поэтому мы должны с вами беспокоиться о том, а где же данные возьмёт это поле. Данные оно возьмёт из реквизита, добавить реквизит на вкладке, реквизиты, кнопочка добавить.
147: Текущий пароль.
148: Текущий пароль у нас какого типа будет? Ну, также оставим, наверное, строку неограниченной длины. Дальше у нас будет новый пароль.
149: Аналогично тут ничего не меняем и подтверждение.
150: Нового.
151: Пароли.
152: И все их перекидываем на форму только по логике сначала текущий пароль.
153: Потом новый пароль и потом подтверждение нового пароля.
154: То есть только в этом случае. И заметьте, пожалуйста, здесь вот есть путь к данным, да, откуда он берет данные?
155: Можно сделать на 1 форме, используя видимость реквизитов, но я сделаю разными формами. Почему не знаю. Просто мне так удобно почему-то разными формами можно, конечно, скрывать.
156: Динамический тип пользователей. Ну, если вы хотите, можно сделать в 1 форме. Опять же, да, интерфейс может быть любым. Вы решаете сами. Главное, чтобы у вас функционал работал, там и требования соблюдались.
157: Я вам рассказываю 1 из решений. Дальше вы можете это все адаптировать на своё усмотрение. Так, давайте мы отключим, наверное, будет сделаем заголовочек к окошечку, поэтому настроим свойства формы.
158: И зададим заголовок. Допустим, смена пароля. 1 из требований тоже должны быть
159: Подписи к окнам не должно быть. Просто окна. Непонятно для чего. Смена пароля и уберём отображать. Вот эта вот кнопка ещё. Это командная панель, она нам не нужна, мы с вами положение командной панели поставим. Нет?
160: Далее ещё нам нужен будет реквизит. Роль именно здесь. Почему? Потому что когда этого нету, конечно. Ну то есть мы, когда разбирали задания со своими студентами, разбирали, появился вопрос пользователь.
161: Поменял текущий пароль, поменял новый пароль, подтверждение новый нажал там изменить, да, дальше куда происходит переход в системе, на рабочие столы или дальше на авторизацию? Ну, мы решили. То есть в задании ничего не сказано, мы решили
162: Или переход сделать, соответственно, он же уже указал себя логин, пароль, соответственно, уже определена роль, и, соответственно, он поменял пароль и можем спокойно дать ему на вход. Ну что дальше делать? Вот.
163: Такая была идея, поэтому нам нужно сохранить роль, под которой заходит пользователь. То есть это у нас, напоминаю, 2 разные формы форма авторизации, форма смены пароля. Получается, мне с формы авторизации нужно будет перенести
164: Сюда роль и исходя из этой Роли, уже показать либо форму пользователя, либо форму списка пользователя для администратора. Поэтому мне нужно создать новый реквизит роль.
165: Перечисление ссылка Роли.
166: Далее у нас форма авторизации будет передавать в эту форму. То есть мы сейчас рассматриваем такой момент, когда у меня есть 2 формы. Мне из 1 формы нужно передать данные в другую.
167: Форму, как это делается в 1 с через параметры мы должны передать параметры. 1 форма должна, то есть форма смены пароля должна где-то содержать параметр, когда форма авторизации в неё занесёт значение.
168: У нас есть вкладочка параметры и именно здесь мы побеспокоимся о том, то есть, скажем, связку 2 вот этих форм. Мы создаём параметр добавить
169: Задаём имя параметра. Давайте так и оставим, чтобы нам ту роль не путать. Здесь мы передадим всего пользователя от него. Потом возьмём роль. Параметр, пользователь.
170: Тип, справочник, ссылка пользователя. Очень важно типы правильно указывать, чтобы везде одинаковые были.
171: И установим галочку. Ключевой параметр. Уникальный такой параметр, чтобы система автоматически понимала, иначе иначе не будет видимости этого параметра, что у нас будет открываться именно вот по этому ключу вся остальная
172: Работа идти галочку забудете поставить, вы не увидите параметр, пользователь, поэтому будьте внимательны. Ключик нужно поставить.
173: Это, знаете, ключ от машины. Если у меня ключа от машины нет, то я в неё не сяду. Соответственно, здесь тоже, если ключа у меня нет, то я форму не открою, не посмотрю вообще параметр у меня будет недоступен. Далее вся логика нашей работы будет происходить.
174: Не по изменению там текущего пароля, нового подтверждения и так далее. А по кнопке у нас будет кнопка. То есть это команда. Переходим на закладочку команды, нажимаем добавить и задаём команду изменить пароль.
175: Опять же я пока закрою, перетащу команду на форму, чтоб не забыть.
176: На вкладку элементы мы помещаем, откроем снова наши свойства команды не элемента команды.
177: И на закладочке на свойстве действия нажимаю Лупу.
178: Поскольку нам нужно сохранять новый пароль в справочнике пользователи, то есть мы будем работать с объектом, поэтому нам нужен и, ну то есть нам нужен сервер, то есть нам нужно с клиентом
179: Уйти на сервер. Поэтому мы здесь выбираем создать на клиенте и процедуру на сервере.
180: А пользователь у нас вообще это другой объект. То есть мы сейчас на общей форме находимся, а пользователи это в справочниках. Ну и, соответственно, мы должны поэтому ещё и уйти на сервер. Поставили галочку создать на клиенте, и процедуру на сервере у нас автоматически создалась 2
181: 2 шаблона процедуры из клиента. Она прописала вызов сразу серверной процедуры. Давайте мы напишем теперь код, наверное, уже соскучились. И раз мы будем писать код, мы будем писать о том, что у нас должны быть
182: Комментарии в коде, они должны быть, как сказать, к очевидным, к очевидному коду комментарии не пишутся. Я буду писать комментарии везде для того, чтобы у вас остался код с комментарий.
183: Чего нужно? Ну, видео хорошо, долго его пересматривать. А тут раз открыл комментарии, увидел и подготовился. Давайте мы сначала обработаем процедуру на клиенте. Что происходит? Так мы с вами
184: В смене форма смены пароля.
185: Мы вызываем с вами так, давайте комментарии здесь, там вы можете не писать как хотите, просто у вас будет шанс меня быстрее догнать. Пока я печатаю комментарии, что мы здесь делаем, мы вызываем
186: Процедуру, кстати, про комментарии посмо. Сейчас, секунду, как звучит критерий, потому что понимание у каждого эксперта понимание, очевидный код, неочевидный код, у каждого своё собственное.
187: Сейчас скажу, как нужно будет. Сейчас, секунду.
188: Так это не то, это не то.
189: У вас графический интерфейс просто должен соответствовать требованиям разработки и все.
190: А, и комментарии то не, это не проверяются. Не вижу. Ага. Да не вижу у вас просто требования этому документу, требования к разработку, чтобы у вас требования к разработке соблюдали.
191: То не вижу. Валидация графический интерфейс соответствует
192: А у вас, а установленным требованиям, да, требования у нас были, комментарии. Много писать не надо, но если у вас на экзамене осталось время, ну почему бы взять и не написать комментарии? Я буду писать опять же для лучшего понимания.
193: Вызываем процедуру для изменения пароля на сервере.
194: Вызвали процедуру. Дальше давайте помогайте. Что должно быть 1, что мы должны сделать.
195: На сервере мы должны проверить.
196: Сейчас, секунду, найду.
197: Система должна проверить правильность введённого текущего пароля и совпадение нового пароля с подтверждённым. Пароли у нас хранятся в таблице пользователей, поэтому мы ушли на сервер. То есть мы должны проверить, если текущий пароль
198: На форме.
199: Не совпадает.
200: С паролем.
201: Из справочника пользователи.
202: И ещё мы должны проверить.
203: И новый пароль.
204: Я сокращённо должен быть равен подтверждённому.
205: Новому.
206: Ну и опять же, если да, если контрол ку иис, иначе, если что, удалю иначе.
207: У нас реквизит, вот он текущий пароль, я к нему так и обращаюсь, мы здесь же находимся, поэтому спокойно могу также к этому реквизиту обратиться текущий пароль.
208: А, кать, кстати, как посмотреть, как писать, как обратиться к полю из кода. Я вот знаю, что вот здесь вот я нажимаю вот этот путь к данным и говорит о том, как ты, если хочешь к нему обратиться, пиши вот так вот мы взяли отсюда путь к данным. То есть вот если вот это
209: Текущий пароль равен.
210: Равен, чему у нас с вами придёт в параметрах с другой формы параметр, пользователь, ссылка. А если ссылка, это значит, я все характеристики, все, все, все реквизиты через точку смогу обратиться. Поэтому
211: Я так пишу параметры, то есть это закладка, вот она параметры. Дальше точка, параметр пользователя, точка и какой-то реквизит, параметры точка пара.
212: Пользователя точка и вот он видит все реквизиты нам нужно соответственно, проверить, что лежит в справочнике пароль и нам нужно проверить совпадение вот вот этого с этим только
213: В этом случае пройдёт сохранение. Соответственно, здесь у нас обращение идёт путь к данным новый пароль я прям буду копировать, то есть новый пароль равно
214: И здесь путь к данным подтверждение нового пароля.
215: Тогда, то есть если у нас все замечательно, все равно что мы делаем, изменяем, изменять, изменить надо пароль и изменить дату входа. Он же тоже входит, то есть
216: Акцентировать на то, что у него просто вход произошёл через смену пароля, пароля и дату входа.
217: Ну, то есть просто, да, изменить пароль и дату входа, когда мы создавали этажи, создавали категории, мы писали там справочники, точка, там этажи, точка. Создать объект здесь нам нужно, мы, у нас уже есть
218: Объект, он уже создан, нам нужно взять его, отредактировать. Редактирование происходит через такой метод называется получить объект. То есть мы сейчас создаём опять же переменную для того, чтобы нам удобно, короче, писать было пользователь объект.
219: Равен. Ну и где я его получу? Я его получу из параметры. Мне надо текущего, который пришёл с другой формы. Параметры. Точка пользователь, параметр пользователь. Точка получить.
220: Его объект, то есть весь, весь, весь объект, и мы можем с ним как с объектом работать и удалять, и че хотим делать записи. То есть как-то изменять данные нам нужно. То есть мы получили объект дальше, раз мы получили объект, нам доступно
221: Вот эти все, все, все для редактирования. Я только обращаюсь вот по этой переменной, которую создала пользователь, объект, точка пароль.
222: Равен, равен вот новому паролю, который пользователь ввёл
223: Дальше пользователь, пользователь. Объект. Дату нам надо поменять. Дата входа равна текущей дате.
224: Ну и опять же мы открыли, представляем, что мы открыли форму, отредактировали там вот эти 2 реквизита и нам нужно записать эти действия. Записываем опять же по самому объекту. Пользователь объект точка записать. То есть мы сохраняем данные.
225: Если у нас пойдут какие-то несовпадения, мы должны написать, соответственно, какое-то сообщение и у нас ничего не изменится, сообщить.
226: И, ну, допустим, пароли не совпадают.
227: Не будем акцентировать, какие именно. То есть, чтобы акцентировать, нам придётся много, если, ну, 2, как минимум, разделить. Ну и, соответственно, конец, если проверим синтаксические ошибки.
228: Вроде все хорошо.
229: Да, все хорошо.
230: То есть вся логика создания изменения данных справочника пользователей у нас происходит на сервере. Мы заполняем, изменяем данные не всех пользователей, а только того конкретного, который нам придёт с формой авторизации.
231: То есть тот именно, который авторизуется, авторизацию чуть позже сделаем.
232: Так, я надеюсь, я могу скинуть код промежуточный такой. Давайте я кодом сюда в чате.
233: Кто-то, если вдруг чего-то не дописал.
234: Ну а дальше у нас логика клиентская. Нам нужно определить, какой рабочий стол открыть, рабочий стол пользователя или рабочий стол администратора. Так, в клиенте дальше, ниже мы дописываем коммента.
235: Напишу, проверяем роль.
236: Хотела текущего пользователя. Ну, короче, который в параметрах пришёл. Давайте так и оставлю текущего пользователя.
237: Проверяем, конечно же, через, если, если
238: Контрол ку пусть будет пока иначе.
239: Если роль вот у нас реквизит вот этот роль вот тут
240: Равен. Это у нас перечисления, перечисления считываются через метод предопределённое значение. Там надо значение только взять. Если предопределённое значение. Какое строка?
241: Раз строка, значит кавычки, перечисление, точка Роли, точка, пользователь, скобочка. То есть если равно
242: Роль равна пользователь. Что мы делаем? Мы открываем форму. Открыть форму. Можно открыть форму модально, конечно, но не будем блокировать. Был печальный случай у нас, значит,
243: Чемпионате заблокировали форму модально, эксперты не смогли зайти, все было заблокировано и ничего не проверили. Поэтому лучше ничего критерия на то, что у вас заблокирован другой интерфейс нету. Не стоит блокировать модальность. Ну и
244: Дальность придётся включить тогда так, опять же строка, общая форма.
245: И это будет у нас форма пользователя показываться скобочка точка с запятой.
246: Ну и у нас дружелюбный интерфейс, вы помните, надо сообщить, делать, сообщить, и мы можем сообщить. Допустим, вы успешно авторизовались.
247: И сменили пароль.
248: Кавычки точка с запятой.
249: Далее уберу вот это, скопирую вот эту штуку. И теперь я, ой, что-то сделал не так.
250: И теперь тоже самое с администратором, если перечисление Роли.
251: Администратор. Тогда мы показываем не общую форму. У нас форма для администратора это форма списка у пользователя, поэтому справочник
252: Точка пользователей. Мы заранее побеспокоились, сделали форму списка.
253: Поэтому лучше сначала интерфейс сделать и потом к нему обращаться. Ну и соответственно, вы успешно авторизовались и сменили пароль оставляем, и нам нужно текущую форму закрыть, чтобы она у нас не повысла. Поэтому эта форма точка
254: Закрыть.
255: Иначе она у нас будет открыта, и пользователю придётся её закрывать после смены.
256: Опять же, да, тут как бы вот эта часть может меняться. Можно взять и заставить пользователя уйти снова на форму авторизации. Этот момент не прописан, но его надо предусмотреть обязательно. Почему? Потому что когда пользователь делает
257: Manu, значит, он входил. Дата входа, соответственно, должна быть подставиться
258: Не остаться пустой. То есть он уже был, а так получится. Он сменил пароль. Дата входа осталась пустой, и бесконечно пользователя будет просить. Поменяй пароль, ты там, это 1 пароль твой, потому что даты входа нет, поэтому мы зафиксировали ещё дату.
259: Входа. Так, если есть вопросы, задавайте
260: А вопрос должен быть.
261: Где мы системно, где программа, мы заполнили этот реквизит, роль, параметр у нас вот сюда, вот, вот сюда у нас занесёт другая форма значения, а в реквизит, где будет роль
262: Нам нужно вот эту роль получить с этого параметра. Работа с параметрами. Работа происходит там в нескольких перечисленных процедурах. Мы с вами будем использовать при
263: Открытий. Давайте вниз поставим курсор.
264: И заполним наш реквизит роль.
265: Он будет заполняться в момент того, когда пользователь будет открывать форму. То есть мы из формы авторизации, где логин, пароль нажали кнопку вход параметром передался пользователь. В нашу форму. Мы из этого пользователя должны
266: В момент открытия окна записать его роль, какая пришла роль. Поэтому мы наверху берём, выбираем из списка процедуры, которые есть у нас для всей формы, либо здесь.
267: Либо правая кнопка мыши свойства на форме свойства. Здесь это тоже есть при открытии, либо ещё 3 вариант. Правая кнопка мыши события. И здесь тоже есть этот список. Ну раз мы находимся в этом модуле уже, чтобы не переключаться, мы с вами
268: Выбираем вот здесь вот при открытии и, соответственно мы также будем менять какие-то вещи и вообще параметры работают только на сервере. Мы можем считать параметры формы только с сервера, поэтому
269: Нам нужно будет уходить с клиента на сервер. Выбираем при открытии. Секунду, не то выбрала при открытии создать на клиенте и процедуру на сервере.
270: Нажимаем окей.
271: Осталось только прописать вот здесь вот даже рекомендуют, видите, комментарий написать. Напишу комментарий.
272: Как написать? Записываем, да, запис, запись.
273: Реквизит. Секунду у меня напечаталось то странно, а я, видимо, нажала этот код, напечатался за
274: Запись в реквизит роль.
275: Значение.
276: Роли из параметра, ну, именно пользователя. Что мы здесь напишем? Роль реквизит равен
277: Параметры.
278: Точка, параметр пользователя, точка. И, соответственно, мы помним, что по ссылке нам доступно все роль, но опять же, да, обращаю внимание на экзамене не запутайтесь. Клиента надо уйти на сервер обязательно, иначе вы не увидите вот этот пара.
279: Ну и так как мы поставили ключевой ключик, мы при открытии тоже смогли его посмотреть.
280: Проверим код на синтаксические ошибки.
281: Так что у меня там?
282: Синтаксических больше нету, можно очистить и ещё раз нету. Проверьте код на синтаксические ошибки.
283: Давайте я скопирую, что у нас поменялось.
284: Вдруг кто не успел, так я позакрываю то, что уже не нужно.
285: Дальше мы переходим к форме авторизации.
286: Так ещё ждём кого-то или все можно дальше?
287: Так, никто ничего не писал. Значит, все хорошо. Так, форму смены пароля можно закрыть, мы её сделали дальше. Нам нужно с вами сделать форму для авторизации. Давайте веточки, общие общие формы. Опять нажмём правое окно.
288: Кнопка мыши добавить назовём форма авторизации.
289: Настроим отображение нашей формы красивое у формы правой на вкладке элементы правая кнопка мыши, свойства укажем заголовок, ну, допустим,
290: Авторизация пользователей, авторизация пользователей. Отключим командную панель, положение. Командная панель сделаем? Нет.
291: Нам нужно тоже, соответственно, оперировать с данными на этой форме, а именно 2 реквизитами. Реквизит, логин и реквизит. Пароль создаю 2 реквизита. 1 реквизит, логин, то есть то, что будет пользователь создавать на форме.
292: Не забываем, что у нас опять он обязательный. Это там у нас, мы создали, что в справочнике пользователя у нас будет обязательный, а здесь у нас форма. Можно, конечно, не делать это, но тогда придётся проверять, есть ли заполнено или там не заполнено выдавать ошибку.
293: Мы с вами просто логин. Длина какая будет? По моему, 25 символов. Мы оставили длину наименования. Че меня не включается?
294: 25 и проверка заполнения выдавать ошибку.
295: Ещё 1 реквизит создаём пароль длина пусть будет 0 и тоже выдавать ошибку.
296: Эти 2 реквизита помещаем на форму.
297: Login, конечно же, по логике, лучше был бы, чтобы вперёд у пароля. Здесь у нас не было режима пароля, у этого, у пароля да, а вот в элементах настроить мы можем, ну, опять же, это не обязательно, ну,
298: Обычно у нас есть режим пароля, который скрывает звёздочками, когда печатает пароль, я поставлю режим пароля. У нас пароль не сложный, 0 1, 2, 3, поэтому там не ошибёмся. Режим пароля, да, тогда он будет скрываться.
299: И нам нужно зафиксировать, где-то будет в нашей форме, кого мы нашли, нашли ли такого пользователя, и когда мы его найдём, мы через этот реквизит передадим его в смену пароля.
300: Там же у нас параметр есть, поэтому мы создадим реквизит. Пользователь найден.
301: И опять же, там у нас принимается параметр справочник ссылка пользователя. Здесь мы, соответственно, также сделать должны справочник ссылка пользователя.
302: И у нас по заданию должна быть кнопка, по моему, вход, она называться должна.
303: Войти, мы должны сделать кнопку войти. То есть переходим на вкладку команды, нажимаем добавить, войти.
304: Опять, пока помню, закину её на форму, вернусь к свойствам команды.
305: И нам нужно будет как клиент, так и сервер, сервер мы, нам нужно вызвать параметры передать и, соответственно, запросом поискать, есть ли такой пользователь.
306: Просто работают на сервере. Мы нажимаем Лупу, выбираем создать на клиенте процедуру на сервере. У нас создались заготовки.
307: Данных процедур только мы изменим чуть чуть у нас на сервере. Ну, есть 2 вида подпрограмм процедуры и функции процедуры, они просто выполняют код и
308: Дальше продолжается к тому коду. То есть здесь мы, получается, вызвали процедуру. В данном случае без параметров она отрабатывает и возвращается дальше. То есть если бы была бы тут логика пошла бы дальше этот код, здесь функции чем отличаются от процедур?
309: Тем, что они возвращают результат, какой-то результат, возвращают результат в точку, где её вызвали, соответственно, где вызов куда-то должно это сохранение слева пройти, приравнять.
310: Мы с вами сделаем функцию, которая определит просто, есть такой пользователь или нет, с таким логином паролем. То есть ответит да или нет, да, то есть есть, либо передаст самого пользователя, ну, заполнит реквизит. Пользователь найден, поэтому серверную процедуру мы меняем на fun.
311: Функция и конец, соответственно, функции.
312: И, соответственно, мы сделаем даже так, мы вернём роль. То есть, если пользователь найден, функция будет возвращать роль, и клиент уже будет обрабатывать, а какую ему форму открыть дальше? Либо рабочий стол пользователя, либо рабочий стол админис.
313: То есть мы вот результат вот этой функции должны занести в какую-то переменную, ну допустим
314: Роль, наверное, так и назовём. А у нас же есть с вами роль.
315: А, нету. Ну пусть будет просто у нас здесь в контексте модуля переменная роль и мы результат вот этой вот функции сюда сохраним.
316: Если пользователь найден, то функция вернёт роль. Если нет, то она вернёт. У нас значение не определено. Это мы тоже проверим на клиенте, что мы делаем здесь.
317: 1, мы должны создать пустую, ну то есть изначально вот этот пользователь найден, он у нас, ну, то есть ничего не найдено, ничего нет. Мы зададим ему сначала пустую ссылку.
318: Переменной. Давайте так и напишу.
319: Создать пустую ссылку в реквизите формы пользователь найден.
320: Наш реквизит называется пользователь найден равно пустую ссылку. Мы это тип справочника, ссылка пользователя, поэтому мы так и пишем справочники. Точка, пользователи, точка, пустая ссылка.
321: Дальше, так же как в экселе, нам нужно найти этого пользователя по наименованию. Почему по наименованию? Потому что у нас логин это наименование. Так, проверка. Давайте так, проверка.
322: По наименованию.
323: Лагина.
324: Если контрол ку, пусть будет показ иначе.
325: Мы обработаем в конце соберём все ошибки. Давайте напишем так, чтобы мы, если есть такой логин, то есть мы должны написать. То есть давайте
326: Сейчас я напишу, если нет такого Логина, справочники точка, пользователи, точка. Мы искали по наименованию 1 тип, 1 параметр строчный, поэтому
327: Кавычках наименование у нас там логин.
328: Сейчас, секунду.
329: Нет, не будем. В кавычках мы возьмём логин же у нас точно мы возьмём вот отсюда вот логин, он настрочный. Не надо кавычки, логин и полное совпадение истина.
330: Точка пустая, то есть мы проверили, пустая или нет в данном случае, да, пустая. То есть, по идее, нам нужно выдать ошибку, что логин с таким, пользователь с таким логином не найден, но мы обработаем сначала всю
331: Все, когда все хорошо, поэтому отрицание не
332: То есть мы нашли пользователя с таким логином, нам нужно его записать в реквизит. Вот этот пользователь найден, мы его нашли. Ну только вопрос, правильный ли там пароль сейчас определим, пользователь найден, вот это вот.
333: Вот это вот совпадает. Мы сохранили, раз он нашёлся.
334: И сохраним ссылку на него.
335: Это же справочник, ссылка, тип.
336: А дальше мы теперь можем по ссылке зайти и посмотреть, а какой там пароль у этого Логина. Дальше проверка.
337: Пароля.
338: У пользователя. Давайте так. Да ладно, пусть будет у пользователя с найденным.
339: Логина.
340: Проверка пароля. Проверяем его опять же, если контрол ку.
341: То нажала пусть будет ночь.
342: Обращаемся. Пользователь найден точка пароль. Равен ли он паролю, который на форме, на форме мы обращаемся просто пароль, если да, а дальше нам нужно много сделать проверок.
343: 1 проверка проверяем, а когда была последняя дата входа, давайте так напишем проверка если тут, конечно, вот этот блок оставить без комментариев можно будет запутаться, поэтому здесь можно будет спокойн.
344: Комментировать проверка. Ну, сначала проверим, нужна ли нам смена пароля, то есть пустая дата или нет была.
345: Была ли смена пароля?
346: То есть дата входа не пустая, с датами всегда отдельная история в любом языке программирования с датами там приходится.
347: Запоминать, что с ними совсем по другому происходит работа, мы не можем написать равно пусто, не можем написать равно 0 и так далее. Сейчас мы покажу, как если
348: Контрол ку, пусть пока тоже будет, иначе там разберёмся.
349: Мы вот, у нас есть пользователь, пароль мы проверили, теперь мы также должны достучаться до даты, проверить дату входа, как сказать, пустая ли дата входа.
350: Во первых, мы должны преобразовать дату. Дата пустая. Она считается 1 января 0 0 0 1 года и время 0 0 0 1. То есть мы должны написать 0 1 точка 0 1.
351: 1, 0 0, 0 1 0. Двоеточие 0 0. Двоеточие 0 0. Это считается пустой датой. То есть здесь мы проверяем, есть ли пустая дата.
352: Нам нужно, давайте опять же все в истинной, да, сделаем, если не пустая дата.
353: То есть, если дата есть, значит, смена пароля нам не нужна, а нам нужно будет проверка.
354: Проверка, прошёл ли месяц после последнего входа.
355: Формы. Мы почему ушли? Почему здесь смену пароля не сделали формы? Все будет вызывать у нас клиент.
356: Если.
357: Контрол ку. Пусть тоже пока иначе, если че, ошибками обработаем, если текущая дата
358: Больше.
359: Нам нужно использовать такие методы, как добавить месяц, но добавить месяц к началу месяца, даты, которые есть. То есть мы должны, допустим, сегодня у нас 13 апреля, мы
360: Должны месяц добавить, сначала добавить, перейти на начало месяца, то есть на 1 апреля и добавить месяц. Потому что если мы не будем возвращаться на начало месяца, мы можем перескочить целый месяц, чтобы этого не делать.
361: Добавить месяц.
362: Добавить месяц. Дальше. Мы должны добавить месяц к началу месяца, который у нас стоит в дате начало месяца, вот к этой вот дате входа.
363: Вот её сравнить.
364: И число месяцев сколько добавить? Вот подсказывает система 1 месяц.
365: То есть, соответственно, у нас текущая дата, она больше. То есть нам нужно что сделать, нам нужно блокировать.
366: Пользователи, да.
367: Здесь я предлагаю уйти, мы несколько раз будем блокировать пользователя, чтобы логику нам все время не писать. Одинаковую. Мы вызовем, напишем процедуру, которая будет блокировать пользователя.
368: Давайте так сделаем. Изменить.
369: Данные на сервере. Туда передадим пользователя, у которого надо поменять. Пользователь найден, у кого поменять данные.
370: Передадим.
371: Что поменять? Какой реквизит мы хотим поменять. Я хочу поменять активность.
372: И и и и и, и и 3 у нас будет сейчас, секунду, я не помню что
373: А и значение реквизитов. Все вспомнила. Можно было писать, конечно, тут просто таким образом. То есть мы сделаем следующую процедуру, которая будет принимать 3 параметра. 1 параметр она примет пользователя, которого надо поменять дальше.
374: Мы укажем 2 параметром передадим, что поменять, в какой реквизит. То есть вот пользователь. Дальше точка, какой реквизит и значение, которое нужно будет после равно присвоить. Мы просто в этой процедуре будем вот эти вещи подставлять из пара.
375: Процедуры. Ну и соответственно, мы активность будет у нас так блокировать. Получается истина.
376: Без активности ложь. Сделаем активность. Вот он активен. Ложь. Когда неактивен, значит, он неактивен. Ложь получается, да, точка с запятой. И сообщаем сообщить. Ну, у нас там есть
377: Фразы, которые мы должны сообщить, вы заблокированы.
378: Обратитесь к администратору.
379: Так, здесь у нас.
380: Иначе с вами не будет.
381: У пользователя дата входа пустая, иначе у нас не будет 2 конца, если
382: И здесь получается у нас логин, все хорошо, у нас пароль, все хорошо. То есть мы можем спокойно вернуть роль у пользователя возврат.
383: Точка пользователь найден.
384: Пользователь найден точка ролл.
385: Это мы вернём в тот момент, когда его вызвали, ну, когда процедуру вот сюда у нас эта роль запишется, сейчас допишем это код, иначе это иначе у нас, если пароль неправильный, то есть логин, то мы нашли про
386: Шёл пароль неправильный. В случае трехкратного не ввода пароля. Нам надо фиксировать сколько это раз произошло. Я, соответственно, тоже сделаю процедуру серверную, которая будет устанавливать количество попыток увеличивать и опять же
387: Вызывать её в нужный момент. То есть блок кода тоже объединим. Давайте так увеличить.
388: Количество.
389: Попыток.
390: Давайте так через процедуру это будем делать.
391: Процедуру. Процедура у нас будет называться, допустим, установить
392: Количество.
393: Попыток.
394: И укажем, кому вот пользователю вот этому, а логику увеличения на единицу попытки будет у нас ниже. Так, дальше у нас
395: И, соответственно, будем увеличивать, увеличивать, увеличивать. Там у нас проверится возврат, в этом случае будет не определено. То есть пользователя не определили.
396: Ну, дальше конец, если.
397: Так, это иначе у нас по ветке, если мы не нашли, вот оно подсвечивается у меня. Как сделать подсвечивание? Знаете, рассказать это у вас не по умолчанию, оно подсветка не работает. Ну, допустим, вот.
398: Пользователь найден. Вот оно у меня везде подсвечивается и очень удобно видно расскажу это делается сервис параметры модули, текущий идентификатор и вот здесь его заливаете и у вас видно где у вас
399: Идентификатор этот используется если где-то не подсветился, значит орфографическая ошибка.
400: Дальше это иначе, если мы не нашли этот логин, если мы не нашли этот логин, соответственно, тоже мы ничего не возвращаем. Смысл, ну, мы не нашли такого пользователя вообще.
401: В принципе, все.
402: Осталось клиент, ну и осталась у нас вот эта процедура и вот эта процедура. Ещё раз пройдусь по коду. Мы сначала первоначально очищаем наш реквизит, пользователь найден, присваиваем.
403: Пустую ссылку. Если у нас она не пустая, тогда мы в наш реквизит пользователь найден, сохраняем то, что нашли именно
404: Сохраняем, сохранили. Дальше мы проверяем то, что
405: То, что там есть. То есть пароль, он совпадает с паролем, который на форме. Если да, то тогда мы проверяем, если не пустая дата входа, то есть, если бы была пустая, нам потребовалась бы смена, если не пустая.
406: Дата входа мы проверяем текущая дата, она, ну то есть месяц назад он входил или нет. Если да, то блокируем через функцию процедуру, которую ниже напишем, передаём туда, у кого какой.
407: Какой реквизит и значение этого реквизита сообщаем. Соответственно, ничего не происходит. Если пользователь не, ну, заходил меньше месяца, соответственно, ничего не происходит, если у нас не пустая.
408: Возвращаем сразу пользователя, потому что логин пароль нормальный. Если пароль неправильный, количество попыток увеличиваем у данного пользователя, возвращаем неопределённо и, соответственно, возвращаем. Неопределено, когда у нас
409: Логин не найден.
410: Продолжаем. Продолжаем писать клиента. Так, синтаксические ошибки. Угу.
411: Кавычки.
412: Сейчас отработаем.
413: А, ну у меня нет ещё этой процедуры, и вот здесь будет тоже ругаться. Я её ещё не сделала здесь вот, вот здесь ничего страшного, сейчас допишем ниже. Давайте перейдём в команду, то есть у нас пользователь вернулся, либо роль далась.
414: Либо слово не определено. Нам надо проверить, что вернула функция, если контрол ку, и, наверное, будет иначе, потому что у нас там требования сообщений много писать.
415: Проверим не неопределённо, то есть не роль.
416: Равно неопределённо. То есть она не рав, ну то есть все замечательно. У нас что-то пришло, не буду комментировать уже тогда, потому что времени у нас час остался дальше на
417: Проверить на активность. Вот в случае активности нам нужно, ну то есть, как бы блокировать либо не блокировать. Опять же, если
418: А мы ещё 1 процедуру сделаем. С вами активность на сервере, активность пользователя её назовём.
419: Если активность пользователя передадем нашего пользователя найдено всего, мы к нему тоже можем обратиться, потому что это реквизит формы. В клиенте мы тоже можем обратиться, если
420: Но истина, то есть активная, где у меня тогда
421: А я руками написала. Понятно, если активность у нас истина, тогда все, он активный, даже там ошибался. Нам нужно сбросить счётчик, количество попыток сбросить Коли.
422: Попыток.
423: Сбрасывать количество попыток будем вот эту через универсальную вот эту процедуру.
424: Реквизит у нас называется.
425: Бодина.
426: Количество попыток.
427: И она будет равна 0.
428: Соответственно, нам нужно проверить, есть ли пустая дата, нужно открыть форму смены пароля и передать туда параметр.
429: Так, если так, давайте комментарий, если это 1.
430: Вход, если
431: Также сделаем процедуру отдельно. Вход пользователь. Почему отдельно? Потому что нам нужен все время сервер. Нам нужно в контексте клиента обращаться к результатам этих процедур функций. Вернее, если вход пользова
432: Вот так сделаем. Если процедура функция, вернее, вход пользователя нам вернёт по вот этому пользователю нам вернёт. Если, ну, то есть, да.
433: Дату вернём, получим дату и проверим. Можно было, конечно, реквизиты все создать на форме к ним обращаться все время, но сделаем там уже сами адаптируете код и вот эта дата, то есть если она пустая,
434: Тогда, тогда нам нужно вывести форму смены пароля, открыть форму.
435: Я ошиблась в написании. Открыть.
436: Открыть форму.
437: Имя формы в кавычках общая форма.
438: Общая форма точка форма смены пароля.
439: Туда мы должны передать у нас, помните, там параметр есть пользователя, и мы должны передать его в виде структуры. Вот здесь вот параметры в виде структуры передаётся. Можно там сформировать заранее структуру.
440: Её заполнить, но мы здесь сразу 1 строчкой новый структура.
441: Структура у нас будет из 2 ключ значения. Так, а здесь вот очень важно, чтобы
442: Где у нас смена пароля, чтобы вот этот параметр назывался также мы к нему обращаемся в кавычках. Просто очень сложно. Нету интелсенс в скобочках и передаём туда вот этого пользователя. Найден
443: В нашу смену пароля. И дальше у нас отрабатывает логика формы, смена пароля и оттуда уже переход переходит. Ну и можем сообщить.
444: Что мы сообщим? Ну давайте, измените.
445: Пароль при 1 входе.
446: А если это не 1 вход, иначе?
447: То мы должны дату входа новую поставить, то есть сменить данные.
448: Видите, все время у нас менять данные приходится только разные реквизиты, то тогда дата входа.
449: Она у нас, по моему, так называется, да, то тогда дата входа равна текущей дате.
450: То есть это у нас, если не пусто.
451: Теперь нам нужно открыть формы в зависимости от той или иной Роли.
452: Открыть рабочий стол в зависимости от Роли.
453: Если роль мы её сохранили, там у нас есть равна, опять же, мы аналогично. А я давайте так, я уйду в смены пароля, мы там открывали в зависимости от Роли откры.
454: Вали формы, я просто вот так скопирую.
455: Мы уже писали этот код, он такой же. Единственное, я сейчас выровняю процедуру. Текст блок форматировать, чтобы она была у нас ровненькой. То есть если роль пользователей то открывает
456: Форма пользователь если роль администратор, то открывается форма администратора.
457: Конец, если так, это у нас иначе кого?
458: А у нас тут 2, иначе лишние.
459: Как-то, что руками где-то я писала, так, сейчас подниму. Ой, ой, ой, ой, мы ещё находимся, иначе если дата не пустая.
460: У нас открывается форма, мы уже проверили даты и количество попыток.
461: И нам нужно после всего этого закрыть эту форму.
462: Меня ещё не хватает. Ладно, это форма, точка закрыть.
463: И у нас ещё 1, если есть.
464: Если активность, ложь, что мы будем делать?
465: Иначе.
466: Иначе, иначе, иначе, иначе.
467: Иначе мы блокируем его учётную запись.
468: Если нам активность пришла, да, то есть ложь.
469: Ну, то есть там проверили некоторые моменты, тогда нам нужно опять изменить данные на сервере.
470: Только дату. Ой, активность нам надо изменить, а где-то мы делали активность. Ладно, потом напишу.
471: То есть здесь у нас активность.
472: Она должна быть у нас заблокирована.
473: Ну и опять же сообщить.
474: Вы обратитесь к администратору.
475: Закроем этот и если
476: Так у нас ещё 1, если, если роль не определена.
477: Если роль не определена, это значит, нам процедура вернула функция, вернее, вернула, что такого Логина нет. То есть мы должны что-то поругаться. Все равно иначе.
478: Во первых, иначе мы 1 посмотрим количество попыток
479: Либо заблокируем, либо напишем о том, что неверно вообще введён логин, пароль. То есть, если контрол ку иначе, а то забываю, если
480: Тоже сделаем отдельно с сервера заберём какие были попытки у пользователя. Можно, конечно, через реквизит, но что-то я не стала много реквизитов добавлять. Попытки пользователя. Считаем, какие попытки пользователя есть у
481: Вот этого пользователя найдено
482: Если они больше чем 3.
483: То тогда нам нужно изменить данные на сервере.
484: Я вот так, да, мы блокируем.
485: Иначе.
486: Мы говорим о том, сообщить, что у нас такого Логина пароля нет, где-то тут было, я ради экономии времени скопирую задание.
487: Вы ввели неверный, пожалуйста, проверьте ещё раз введённые данные.
488: Так, конец, если.
489: И ещё 1 конец, если это который у нас вот там иначе чтобы видно было где какой. Опять же, я сейчас блок кода выровняю, текст блок форматировать, вроде ничего не забыли.
490: Синтаксические ошибки. А, ну сейчас бесполезно. Синтаксические ошибки. У нас нету процедур или функций.
491: Так, копирую код вам сообщение.
492: Далее устанавливаем курсор ниже для того, чтобы написать все вот эти процедуры, процедура, изменить данные на сервер, процедура, попытки или функция попытки пользователя.
493: Активность пользователя, вход пользователя, то есть которая процедура, которая вернёт, какая сейчас активность, которая вернёт, какой сейчас там вход и какой вернёт, какие там количества попыток. Вот эти вот процедуры нам нужно будет написать.
494: Так, так, так, наверное через шаблон тоже сделаем давайте то есть нам нужны 3 функции. Так, phonk, контрол, ку и
495: Просто функция я пока вот так 1 функция сделаем, какая там у нас 1 шла. Ну вот активность, активность будет внутри принимать пользователя.
496: Вот я её здесь ниже с клиента уйдёт пользователь, который там нашёлся. Я верну, верну обратно в эту точку возврат.
497: А надо, кстати, директиву компилятора написать. Активность, поле активность отдам, и оно сюда придёт и сравнится. Если истина. Единственное, я напишу тоже. Давайте покажу, как быстро написать директ контрол.
498: На сервере. То есть это мы вернули активность пользователя. Такая же вещь я, наверное, скопирую, нам есть вход.
499: Пользователя. Где-то у нас тут был. Вот он вход пользователя только у нас будет возвращаться с сервера будет возвращаться дата входа.
500: И такая же будет у нас с возвратом количества попыток.
501: Так, где-то она тут была, вот попытки пользователя и будем возвращать количество попыток, наверное, я уже быстро пишу и никто за мной не успевает.
502: Есть ещё у нас 2 установить количество попыток и изменить данные на сервере. Давайте сделаем, устанавливать количество попыток. То есть, если там у нас были функции, которые возвращают точку вызова, активность, да?
503: Входа и количество попыток, то здесь у нас в данном случае процедуры прос контрол ку.
504: Имя процедуры. Ну давайте установить количество попыток
505: У кого? У какого-то пользователя, там у нас пользователь найден, придёт сюда. А здесь мы примем будет называться просто пользователь.
506: Внутри этой процедуры переменная пользователь. Будем ей оперировать, что мы сначала, мы сначала получаем объект, пользователь, объект, то есть мы, мы её назовём пользователь объект, чтоб нам
507: Изменить опять данные, количество поменять. Равно вот этот вот наша ссылка на пользователя пользователь и получаем объект для редактирования.
508: Да, получить объект.
509: Кстати, в платформе 8 5, там больше глубина интелисенса работает пользователь объект. Теперь мы можем изменить именно количество попыток. Ка пользователь объект, точка, количество попыток.
510: Равно.
511: Ну, увеличение на единицу к тому, что было + 1.
512: И мы вот этот пользователь объект записываем, а надо ещё написать директиву, описать, записать директиву. Я тоже забыла. Ну, по умолчанию на сервере. Ну, лучше написать.
513: И последняя процедура, которая нам нужна, которая будет изменять любой параметр, который к нам придёт. Любой реквизит, я скопирую.
514: Название у неё изменить данные на сервере будет 3 параметра. У кого какой реквизит и какое значение. То есть у кого дальше имя реквизита.
515: По моему, реквизита везде ошибаюсь. Ну ладно, и переменная будет само значение реквизита.
516: Так это все тоже самое единственное, мы указываем не количество попыток, а указываем само имя у кого меняем в квадратных скобочках, пишем, чтоб здесь подставить.
517: У нас? Да что ты.
518: Квадратные. Вот, вот это имя реквизита.
519: Заменится на вот это значение. Ну, то есть, когда количество надо поменять, когда дату поменять. Ну, такая универсальная, можно, конечно, несколько было их написать. Ну,
520: Поменьше, чтобы кода, ну и соответственно, когда мы вызываем её в таком формате, изменить данные на сервере подставляется полость, пользователь активность и ложь, то здесь у нас становится, что мы у объекта меняем свойство активность на значение
521: Ложь где-то мы ещё меняли. Вот ещё здесь у нас передаётся дата входа и текущая дата. Соответственно здесь подставится дата входа и оно будет равно текущей дате. Проверим код теперь на синтаксические ошибки.
522: Вход пользователя. Странно, мы его писали.
523: Сейчас, секунду, разберёмся. Может, это старая? А так это старая. И тут вот не чистишь, когда да, синтаксических ошибок нет, самое сложное теперь проверить.
524: Все ли правильно? Ну, с точки зрения логики, ну, для того, чтобы нам открыть форму авторизации, чтобы она на рабочем столе у нас отображалась, нам нужно с вами её, ну, то есть, указать при открытии.
525: При начале работы системы, чтобы у нас открывалась эта форма, где мы это делаем. На дереве конфигурации. Правая кнопочка мыши открыть модуль приложения и в модуле приложения есть такая процедура при
526: Начале работы системы. И сюда мы ставим как раз команду тоже открытие формы открыть форму, общие формы. Общая. Так
527: Срочный тип, общая форма, форма авторизации, точка запятой опять же не открываем модально, потому что у нас есть другие модули ещё здесь.
528: Запускаем, проверяем.
529: Вот наша форма у нас есть user давайте зайдём под админом, по моему, у него пароль 0 admin 0 войти, все отлично, дальше.
530: Плохо, конечно, да, мы её закрываем, ещё раз зайдём, у нас сейчас протестируем. У нас есть пользователь, который не входил. Должна выйти смена пароля. Юзер 1, юзер 1.
531: Пароль 1. Войти. Вышла форма смены пароля. Текущий пароль. Я сейчас укажу текущий пароль неправильный и новый пароль, и они будут не совпадать, изменить пароли не совпадают. Ну
532: Тут надо.
533: А, ну значит где-то мы при смене пароля вход осуществили неправильно при смене пароля у нас где-то так, так, так, так, так, где у нас?
534: Изменить пароль секунду.
535: Так.
536: Я поставлю вот так точку Останова и пройдёмся.
537: У юзера 1 даты так и нет.
538: User 1.
539: Пароль 1 войти.
540: Текущий пароль. Так мы там где точку Останова поставили, а когда кнопку изменить именно
541: Так, текущий пароль неверный.
542: Новый пароль пусть совпадает, а текущий неправильно изменить. Так смотрим, что у нас здесь в текущем пароле 2 здесь у нас пришло
543: 1, 2. Не равно. 1 он у нас ушёл. Пароли не совпадают в новом пароле. 3 здесь у нас 3, но из за вот этого условия у нас пароли не совпадают. И дальше он уходит у нас. А
544: Дальше у нас переходит в роль, а смена пароля не происходит. То есть нам нужно будет ещё проверить.
545: Можем ли мы дальше пускать пользователя в другой интерфейс? Здесь, по идее тогда нужно будет сделать проверку.
546: Так, предложение ваше.
547: Или со мной ещё кто-то сидит, слушает.
548: Нам нужно.
549: Что-то такое написать, чтобы у нас
550: Получается, мы всегда откроем форму вне зависимости от того,
551: Вне зависимости от того. То есть здесь у нас все с условием хорошо. У нас просто вот эта вещь происходит всегда.
552: Можно, конечно, вот эти, но вот эти вещи нам не проверить на клиенте, потому что здесь обращение идёт к параметрам.
553: Мы можем сделать какое-нибудь логическое поле, реквизит.
554: Доступ.
555: Доступ к входу, да, там к открытию, да, к дальнейшему. И будет он, допустим, логическое поле.
556: И, соответственно, вот здесь вот.
557: Когда мы сообщили, мы доступ к открытию делаем ложь.
558: И здесь, соответственно, вся логика будет работать вот эта только в том случае, если доступ к открытию будет истинным тогда, но нам надо где-то его сделать.
559: Вот здесь истина, тогда вот это все.
560: Конец, если
561: Ну, можно, конечно, иначе сказать, ещё раз введи, проверь, точно ли ты уверен, но думаю, вы справитесь тут иначе дописать. То есть эта вещь произойдёт, когда у нас будет истина. Ещё раз пробуем, запускаемся.
562: Так, я уберу точку оо убрала, да, ещё раз проверим у нас у пользователя user 1 так до сих пор и нету.
563: Даты юзер 1 пароль 1 текущий пароль был 1. Я поставлю 2. Эти пусть совпадают, не совпадают. Вот он дальше не пропускает.
564: Сейчас сделаем здесь правильно, здесь неправильно ругается, и теперь придётся сделать все правильно изменить пароль. Добро пожаловать. Починили. Смотрим, что у нас в пользователях количество попыток.
565: Можно, конечно, обнулить ещё количество попыток. Ну, дата входа у нас сегодняшняя встала активность. Все есть. Пароль поменялся на 3. Дальше нам нужно проверить, активен ли пользователь. User 4 у нас сейчас не активен.
566: Даст ли нам система зайти под юзером? 4? Ну то есть вот здесь самое сложное, на мой взгляд, код то хорошо напишешь, его надо протестировать со всеми возможными способами. Вот он не даёт пройти, потому что у нас пользователь не активен. Так.
567: Ещё какая ситуация. Количество попыток. Давайте количество попыток у юзера 2 нарушим, юзер 2 у него, не знаю какая. Ну вот так будет. У него точно не такой. Раз. Попытка 2, попытка 3 попытки.
568: В следующий раз мы заблокированы. Смотрим юзер 2. Сейчас обновлю форму, она количество попыток 4 и активность снялась. Так, по поводу последнего дата входа где-то у нас кто-то
569: А он же январём. Давайте сделаем юзеру 4 дату входа тоже, чтобы нам протестировать ещё и этот момент. Старую дату входа. Он должен заблочиться. У нас юзер 4 4. User 4 пароль.
570: 4. Все вроде правильно войти, а мы заблокировались. Почему? Потому что
571: Ну, потому что дата старая, активность снята, количество попыток у нас обнуляется. Ну, то есть мы должны дать активность.
572: А, ну, количество попыток нам нужно, чтобы, значит, смотрите, какую вещь нам нужно, чтобы админ админ может забыть, обнулить попытки. То есть, когда он ставит активность, у нас автоматом должно количество стать 0, иначе у нас админ может забыть и
573: И вроде включил активность, а пользователь все равно будет заблочен. То есть, смотрите, мы реализовали весь функционал верхний, который касаемо формы авторизации, смены всех этих нюансов осталось только предусмо.
574: Смотреть вот этот момент, который нашли и плюс ещё при снятии блокировки. То есть нам нужно, чтобы количество тоже ставало 0 и проверять наличие дублей в базе. Давайте так, секунду сейчас я
575: Сориентируюсь. Демо чуть чуть осталось. А, и ещё документацию надо рассказать. Так это мы сделали.
576: Для этого нам нужно создать с вами форму. То есть мы форму списка создали у пользователей. Нам нужно создать форму элемента у справочника. То есть мы вкладка данные
577: Извиняюсь, формы добавить форма элемента в принципе, готово. Там не будем выбирать, пусть она стандартная будет. Что нам нужно сделать перед записью, когда
578: Пользователь записывает, нам нужно проверить, а если такой пользователь в системе уже есть, то, соответственно, отменить запись, ну и поругаться. Соответственно, мы переходим в раздел модули, выбираем
579: Перед записью на сервере, то есть оно где-то в промежутке на клиенте вроде уже записалось на сервере, ещё не ушло и нам нужно проверить перед записью на сервере.
580: Нам нужно проверить, есть ли такой пользователь. Нам нужно проверить, а может быть пусто. Нет, ещё вообще не записано. То есть
581: Проверять, то есть если, то есть, то есть, если когда ещё записан, то есть эта же форма используется и для редактирования, эта же форма используется для создания. Вот нам нужно вмешиваться в логику только тогда, когда у нас получается мы создаём то есть у нас ключ, то есть параметры
582: Есть у формы ключ такой. Нам нужно проверить, пустой он или нет. То есть, если, то есть в том случае делаем, только когда создаётся, если контрол ку, давайте иначе, потому что ругаться будем, если
583: Параметры это уже форма, параметры, стандартные параметры. Ключ точка пустая, по моему, да, то есть если пустая
584: Значит, нету ещё никакого объекта не существует. Мы можем спокойно. Ну, значит, это при создании проверим. Так, а у нас есть пользователь найден.
585: Ну, не будем без реквизита, пусть будет прям тут создадим переменную. Пользователь найден. Че то я написала, как-то пользователь найден, сохра.
586: Сюда результат поиска. Справочники можно через запрос, конечно, делать, но так быстрее. Пользователи точка найти по наименованию. У нас логин как раз наименование отбросим, всякие пробелы сократим слева справа.
587: Это функция сокр лп слева, справа уберём лишние пробелы. Из какой строки? Из наш текущий объект? Вот он, да, тут вот он его видит текущий я скопирую из на
588: Нашего текущего объекта. Наименование у нас логин это наименование и полное совпадение.
589: То есть результат сюда у нас запишется нашего поиска. Дальше мы просто проверяем, если
590: Контрол ку
591: Давайте пока без иначе.
592: Если не, то есть вот этот вот тут вот результат у нас, если пользователь не пустой
593: То есть, значит, у нас есть такой пользователь, то тогда нужно нам перед записью вот отказаться. То есть вот у нас параметры есть отказ, отказ будет равно истина. То есть запретим записывать.
594: И сообщим.
595: Такой пользователь уже есть.
596: Пользователь уже есть?
597: Так иначе вот эту задействуем.
598: Иначе, ну иначе все хорошо. Текущий объект.
599: Точка активность установим.
600: За, за админа сразу, сразу, вдруг он забудет активность, можно ещё и количество этих текущий объект, активность, равно истина. Ну и мы решили, чтобы админ точно не забыл ещё.
601: Текущий объект, точка, количество попыток не видит. Ладно. Количество попыток равно нулю такие 2 критичных момента, если пользователь админ
602: Будет это сделать. Так у нас 2, если, поэтому 2 конца, если
603: Синтаксические ошибки.
604: Синтаксических ошибок нет.
605: И ещё изменим количество попыток, когда пользователь включает галочку или отключает, когда он её изменяет. То есть
606: Количество попыток ещё мы обнулим при изменении галочки. То есть когда пользователь активностью что-то делает, то есть галочки тут тыкает, тыкает, мы тоже сделаем 0, поэтому на поле активность правой кнопкой
607: Мыши события при изменении. Только у нас здесь уже нет текущего объекта, а просто вот мы говорим объект, количество попыток равно 0.
608: Запускаемся, смотрим.
609: Так, пользователи, попробую добавить ещё раз. Юзера 4.
610: Не даёт, он уже есть. Хорошо, пусть будет user 5.
611: Записать, закрыть. Записалось, активность поставилась количество попыток 0. То есть не пустота. Ну тут простота так отображается. 0 можно было, конечно, не делать. Ну и, соответственно, если мы здесь количество попыток сейчас
612: Сделаю 4 и вдруг поставлю активность. Количество попыток обнулилось тоже работает теперь.
613: По идее, мы бы сделали с вами видимость пользователей. Отключили по поводу видимости панелей. Сейчас, секунду. Настройка. Настройка панелей. Мы можем панели убирать.
614: Секунду как-то тут сюда убирать сейчас.
615: Вот так, да, тогда у нас было бы вот так и ничего не было видно. Ну и соответственно, у каждого свой рабочий стол. Но надеяться на то, что эксперты найдут, как вам панели, поместить обратно, то вы
616: Можете, можете, конечно, отобразить, можете. Нет. Ну то есть, если отображается ничего, в принципе, страшного. То есть верхняя панель у нас была наверху. Сейчас, секунду, где у нас была панель разделов.
617: Панель открытых, это панель открытых. Ну вот я сейчас уже её обратно не помню, а сейчас все вот они, ну то есть вот этими панелями можно
618: Оперировать видимостью функционала. Так, по критериям сейчас пройдусь, чтобы я вас не баллы за это потеряете или нет. Так за то, что вы разработаете функционал форму.
619: Авторизации, форма смены пароля и различные блокировки. За это 6 баллов. Так, проектная документация позже за форму админа, то есть работа вот именно с формой списка и формой элемента пользователей.
620: За это ещё 6 баллов, ну и 6 баллов за проектную документацию, которую стоит обратить внимание. С вашего позволения, я, наверное, открою уже, которая создана, чтобы мне не печатать её.
621: Где-то она у меня была, я её скину. Что такое проектная документация? Давайте сейчас задание открою, прочитаю, разработайте проектную документацию на разработанный функционал, включите описание функционального назначения.
622: И используемые методы с указанием параметров у нас с вами методов то есть вот у нас методы, методы это процедуры, функции. Вот метод у нас вот метод у нас дальше методы у нас были
623: Общей формы в форме авторизации у нас вот методов сколько-то есть ваша задача прописать в текстовом документе, какой был у вас, ну то есть вот допустим, форма авторизации на ней была функция или проце,
624: Войти на сервер, её назначение. Для чего она нужна? Какие входные параметры? Входных параметров не было. То есть если мы посмотрим, войти на сервер в скобочках ничего нет. Соответственно, прочерк. Соответственно, у нас здесь прочерк.
625: Выходные параметры. Здесь выходные параметры, что в результате передаётся. То есть что в результате мы получаем, ну и дальше с этим работаем. Давайте посмотрим с параметрами, которые есть, допустим, активность пользователя.
626: Активность пользователя. Процедура у нас работала.
627: Вот она с параметром, эта функция с параметром. Вот он называется пользователь найден и возвращает она пользователь найден активность этого пользователя, чему равна? То есть вот здесь так написано, возвращает значение реквизита, активность входной параметр.
628: Пользователь это ссылка на объект и возвращает логическое значение этой активности. Либо истина, либо ложь. То есть она показывает, активен в данный момент пользователь или нет. Ну и аналогично там все вот остальные функции, которые методы вы указывали, вот такой
629: Вот документ нужно будет создать, и он весит по баллам 6 баллов. Вот вы можете, ну, существует такая ситуация, что риск, что вы не успеете, и, допустим, вы не сде.
630: Делали там форму смены пароля. Ну, в ничто не мешает вам.
631: Логично подумать и дописать проектную документацию. Какие методы будут в смене пароля. То есть можно, допустим, там часть баллов потерять, но хотя бы здесь её не потерять и дописать все текстово, то я думаю, вы уже справитесь.
632: Да, при пример проектной документации обязательно размещу.
633: Так, сейчас давайте я все покажу, чего я размещаю и буду отвечать на ваши вопросы. Так?
634: Где я нахожусь на рабочем столе? Мне надо яндекс диск.
635: Яндекс диск
636: Так, модуль 3 тз называется.
637: Что я вам ещё отдам? Я вам отдам текстовое описание. Так где-то тут.
638: То, что я вам рассказывала, оно есть по шагам, кроме той вещи, которую мы нашли, что у нас после смены пароля. Ну то есть в любом случае переход происходит, булевое значение. Ну, я думаю, вы тут уже сами почините то.
639: Вот по шагам написано, как делать. То есть это я тоже скину.
640: Так, выгружу конфигурацию.
641: Модуль 3.
642: Так, модуль 3. Ну там модуль 1, 2, 3. Ну, я думаю, разберётесь, сейчас загрузку заберу.
643: Модуль 3, даже он не модуль 3. Тут все получается есть. Так, туда ли я размещаю походу, да, туда. И это получается не модуль 3. Это получается все.
644: Модуль с 1 по 3 промежуточный я вам тоже скидывала.
645: Ну и, соответственно, все, что мы сегодня разобрали, это госэкзамен для всех. Одинаковый базовый уровень входит везде.
646: Надеюсь, наша встреча была плодотворной. Вам все, ну очень сложно в понимании 1 года. Особенно вот этого модуля 3, рекомендации по подготовке сначала поделать.
647: По, ну, допустим, либо по видео ещё раз со мной останавливая, либо по вордовскому файлу поделать. Сделали 1 раз, 2 раз стараться не подглядывать, сделать.
648: Ещё раз стараться не подглядывать и остановиться на том моменте подготовки, когда вы будете уверены, что вы без подглядывания кода можете спокойно писать его уже тогда можно быть спокойным, что вы дём экзамен сдадите, невозможно.
649: Написать дём экзамен, если вы не будете готовиться, это нереально. Сколько у нас время даётся на модуль 3, час 20, так как модуль известен, да, вроде бы час 20 мало, но мы
650: Тоже разработчики были ограничены по времени. Если тренироваться. Если готовиться час 20 будет достаточно. Причём, что этот модуль я не меняла во всех вариантах. Вам достаточно его
651: Работать и понять с 1 раза, скорее всего, вроде бы логично. Все понятно. Сама, когда решала задание, тоже. Ну, тоже есть моменты, где пришлось потрудиться. Особенно при тестировании выходили.
652: Вот до сих пор вот выходят соотношение баллы и оценки. Смотрите, каждое учебное заведение само решает градацию оценок. Ну то есть за сколько баллов поставить? 5, за сколько баллов поставить 4 и за сколько баллов поставить? 3?
653: Это у вас обычно на сайте учебного заведения. Я, конечно, сейчас покажу сайт своего учебного заведения, как это выглядит. Вы должны, если вам не продемонстрировали ещё у вас
654: Вам нужно попросить, ну, у нас это выпускникам.
655: Каждое учебное заведение на государственную итоговую аттестацию разрабатывает. Я надеюсь, они выложили, потому что до недавнего времени не было. Разрабатывает программу. Вот.
656: Допустим, у нас очная форма обучения. Вот, да, она подписана всеми там, всеми, всеми, всеми. И обычно есть, опять же, форма, может быть другой. Я сейчас посмотрю у нас
657: Учебном заведении руководствуются рекомендуемыми баллами сейчас распределение обязанностей, протокол согласия темы мне, наверное, так быстро не найти.
658: Так.
659: Слушайте, не найду вам так быстро. Ну, то есть в учебном заведении определяется вот эта градация самим. Я сейчас посмотрю на сайте, я не знаю, где лежит. Я сейчас посмотрю, что у меня. Я могу по прошлому году сказать, сейчас открою.
660: Прошлый год была шкала выставления оценок.
661: И она в этом году такая же. Но вопрос учебное заведение ваше согласилось или нет?
662: С ним.
663: Секундочку. Так, тут нету.
664: Или это в 23 году было? Ну, вам лучше, конечно, спросить, просто я боюсь, что задерживаю вас.
665: Учебное заведение ваше.
666: Так, я сейчас постараюсь найти.
667: Чем обычно руководствуются так инфраструктурный лист?
668: Угу. Вот была у нас, нашла в 23 году была схема перевода баллов, она на самом деле такая же.
669: И осталась, то есть она рекомендуемая, но вопрос учебное заведение, согласно с ними или нет? То есть, ну вот смотрите, то есть, если у вас закрыла уже, да, наверное, да, сейчас.
670: Откроем, посчитаем. Давайте посчитаем, раз уж совсем всем всегда интересно. А сколько надо баллов набрать на тройку, на пятёрку, на четвёрку. Смотрите, сколько максимально даёт госэкзамен базового уровня и, соответственно, от него
671: Идёт градация шкала оценок. Так, это временные рамки, нам нужны баллы. Вот базовый уровень дём экзамена максимум это 50 баллов можно набрать соответственно.
672: 50 баллов, если максимально от 70 до 100. Так, 100 это 50. Сколько там, считайте, Мария Евгеньевна, молодец. То есть получается, здесь получается с базового уровня от
673: 35 баллов. Пятёрка Мария Евгеньевна, помогайте. Четвёрка от 40% от 50. Это сколько? У меня уже не соображает голова. 20 баллов. И на тройку надо набрать.
674: 20% от 50.
675: Есть. Вот, то есть, смотрите, я вам рассказала все, вы даже рассказала, за что 2 модуля на 3 получается, да? Ну, я не знаю. A2 модуль.
676: Опять, что ли, закрыла? Нет, a2 модуль? 1, 2 модуль, это 26 баллов. Ну то есть вот как раз модуль 1 модуль 2, 26 баллов без авторизации, без всего 26 баллов. Это на 4. То есть если вы сделаете модуль,
677: Модуль 2, но не будете делать модуль 3 сложный покажется, то это будет 4. Ну, это надо сделать правильно? Да, и как я вам рассказала. Ну и, соответственно, для того, чтобы получить 5, вы должны что-то сделать ещё в модуле 3, ну,
678: Там либо админскую часть, либо авторизацию, смену блокировки. Может только админа. Сделаете рабочий стол админа, форму списка и форму элементов пользователей. То есть тоже, соответственно, там уже есть шанс получить 5. Ну плюс ещё есть проектная документация.
679: Надо не забывать, можно тоже не сильно сложно додумать, какие есть, какие будут методы, какие входные выходные параметры описать. И тоже получите. Соответственно, перешагнёте. Причём эта документация 6 баллов.
680: 26 + 6. Это уже 32. Ещё что-то сделать из модуля 3 уже можно полноценно 5. Ну это с учётом того, что опять же будет предыдущее. Все хорошо. Так, надеюсь, ответила. Так, я вам.
681: Все, скинула вопросы.
682: Сегодня такой рабочий день получился у всех со мной учебный день.
683: Так все проверю я вам скинула или нет?
684: Пу пу пу пу пу пу
685: Все скинула, да, модуль 1, 2 здесь яд загрузку.
686: 3 тз че скинула?
687: Все отлично. Если вопросы возникнут, можно обращаться в общей Папке не видно документов модуля 3, документы модуля 3 называются сейчас мне как-то структуру свою тут.
688: Не получается. Ладно, вот он называется модуль 3 тз. Помню.
689: Модуль 3.
690: Проектная документация, посмотрите, сейчас переименуется.
691: Может ещё подгружается. Давайте я скину сюда файлы ещё здесь в файлах тоже можно скачать. Так и вот это сейчас ещё закину. Смотрите, можно скачать не с общей папки, а
692: Вот с папочки, которая здесь прямо пока у нас идёт трансляция, можно будет скачать так и вот это ещё размещу.
693: Так вроде все.
694: Все, разместила. Да, все отлично. Спасибо. Спасибо всем. Я сколько-то вре.