From 54c5ed4c6e9fef81f6244b7d6b8137de202cb243 Mon Sep 17 00:00:00 2001 From: Matvey Seregin Date: Sun, 12 Oct 2025 16:31:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=98=D0=91=20=D0=BA=20=D0=B2=D1=8B=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B8=D0=BF?= =?UTF-8?q?=D0=BB=D0=BE=D0=BC=D0=B0=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diploma-b-prep.md | 126 ++++++++++++++++++++++++++++++++++++++++++++++ diploma-b-reqs.md | 8 ++- diploma-b.md | 2 + 3 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 diploma-b-prep.md diff --git a/diploma-b-prep.md b/diploma-b-prep.md new file mode 100644 index 0000000..0395737 --- /dev/null +++ b/diploma-b-prep.md @@ -0,0 +1,126 @@ +# Требования к подготовке конфигурации + +> Если ранее была выполнена [курсовая работа блока A](diploma-a.md), то можно использовать информационную базу, получившуюся в результате этой работы, и пропустить описанные ниже шаги + +## Подготовка объектов метаданных + +### 1. Перечисление «ЮридическоеФизическоеЛицо». + +Создайте перечисление «ЮридическоеФизическоеЛицо» со значениями: + +- ЮридическоеЛицо. +- ФизическоеЛицо. + +### 2. Справочник «Контрагенты». + +Создайте справочник «Контрагенты» с реквизитами: + +* Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо), по умолчанию - Юридическое лицо. +* Ответственный (СправочникСсылка.Сотрудники). + +Типы должны быть подходящими, их длина и точность — разумно достаточными. + +### 3. Перечисление «Пол». + +Создайте перечисление «Пол» со значениями: + +- Мужской. +- Женский. + +### 4. Справочник «Сотрудники». + +Создайте справочник «Сотрудники» с реквизитами: + +- ИдентификаторПользователяИБ (Уникальный идентификатор) + +### 5. Константа и функциональная опция «ВестиРасчётЗарплаты». + +- Константа не должна присутствовать в командном интерфейсе сама по себе — флажок «Использовать стандартные команды» должен быть снят. +- В состав ФО должны входить реквизиты, относящиеся к расчету зарплаты, справочника **«Сотрудники»**, а константа должна присутствовать флажком в общей форме **«НастройкаПрограммы»**. + +### 6. Общая форма и общая команда «НастройкаПрограммы». + +- Форма должна содержать основной реквизит типа **«НаборКонстант»** и поле флажка для константы **«ВестиРасчётЗарплаты»**. +- Общая команда должна открывать общую форму, принадлежать подсистеме **«Настройки»** и присутствовать в командном интерфейсе раздела «Настройки». + +### 7. Параметр сеанса «ТекущийСотрудник». + +Тип **«СправочникСсылка.Сотрудники»**. Должен заполняться элементом справочника **«Сотрудники»**, идентификатор пользователя ИБ которого совпадает с идентификатором текущего пользователя ИБ. + +### 8. Роли «БазовыеПрава» и «ПолныеПрава». + +Роль **«ПолныеПрава»** должна давать права на всё, кроме интерактивного удаления элементов справочников. + +Роль **«БазовыеПрава»** должна давать права на чтение, просмотр и ввод по строке всех данных. Редактирование, добавление и изменение разрешается только для справочника **«Контрагенты»**. Роль не должна давать права на открытие настроек программы. + +### 9. Подсистема «Настройки»». + +Содержащая все справочники и общую команду **«НастройкаПрограммы»**. + +## Реализация бизнес-логики + +### 1. Заполнение ответственного за контрагента + +При создании элемента справочника **«Контрагенты»** необходимо заполнять реквизит **«Ответственный»** ссылкой на текущего пользователя + +### 2. Управление пользователями из справочника «Сотрудники» + +* В модуле менеджера определите обработчик события **«ОбработкаПолученияФормы()»**. В нём, в зависимости от наличия права доступа **«Администирование»**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так: + + `Если ПравоДоступа("Администрирование", Метаданные) Тогда` + +Выбранную форму лучше возвращать не по имени, а как объект метаданных, например: + + `Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора` + +#### ФормаПользователя + +Выведите в неё реквизиты сотрудника в разумном порядке. + +#### ФормаАдминистратора + +Можно создать копированием формы **«ФормаПользователя»**. +Создайте в ней две группы: левую и правую. В левую выведите реквизиты сотрудника в разумном порядке, как в форме пользователя. +Добавьте реквизиты формы **«ВходРазрешён»** (Булево), **«ИмяДляВхода»** и **«Пароль»** и выведите их в правую группу флажком и двумя полями ввода. Для поля ввода **«Пароль»** включите режим пароля, чтобы введённое забивалось звёздочками. + +##### Случайный пароль +Создайте команду и кнопку **«СлучайныйПароль»**. +В обработчике создайте случайный пароль из 5–6 букв и цифр, отключив у поля ввода **«Пароль»** режим пароля, чтобы пользователь увидел его и мог скопировать. + +##### ПриЧтенииНаСервере +Найдите пользователя ИБ по идентификатору — **«ТекущийОбъект.ИдентификаторПользователяИБ»**. +Заполните по данным пользователя ИБ реквизиты формы **«ИмяДляВхода»** и **«Пароль»**. Реквизит **«ВходРазрешён»** заполните по реквизиту пользователя ИБ **«АутентификацияСтандартная»**. +Если идентификатор не заполнен, или поиск пользователя ИБ возвращает **«Неопределено»**, считайте, что вход не разрешён, а имя и пароль пусты. + +##### ПередЗаписьюНаСервере +Если идентификатор пользователя ИБ заполнен — найдите пользователя ИБ и обновите его реквизиты значениями реквизитов **«ВходРазрешён»**, **«ИмяДляВхода»** и **«Пароль»**. +Если идентификатор не заполнен, а флажок **«ВходРазрешён»** выставлен — создайте пользователя ИБ и добавьте ему роль **«Метаданные.Роли.БазовыеПрава»**. + +После создания пользователя ИБ присвойте его идентификатор реквизиту **«ИдентификаторПользователяИБ»** записываемого объекта, чтобы найти этого пользователя ИБ при следующем открытии формы. +Обратите внимание, что учебная версия платформы не позволяет задать непустой пароль. Для тестирования работы механизма используйте платформу с сайта developer.1c.ru с активированной комьюнити-лицензией или полнофункциональную версию платформы 1С:Предприятие. + +#### Форма списка + +Создайте форму списка, добавив в неё все существенные реквизиты в разумном порядке и расположении. + +### 3. Заполнение параметра сеанса «ТекущийСотрудник» + +- В модуле сеанса определите процедуру **«УстановкаПараметровСеанса»**. +- В ней, для простоты не анализируя параметр **«ТребуемыеПараметры»**, найдите сотрудника по значению реквизита **«ИдентификаторПользователяИБ»**, используя функцию менеджера: + + `Справочники.Сотрудники.НайтиПоРеквизиту(<...>);` + +- Значение идентификатора получите, обратившись к функции **«ТекущийПользователь()»** менеджера **«ПользователиИнформационнойБазы»**. + +## Проверка + +1. Проверьте, что подсистема **«Настройки»** содержит все добавленные объекты метаданных. +2. Создайте пользователя ИБ с полными правами. +3. Запустив программу под ним, удостоверьтесь в видимости раздела «Настройки», всех справочников и команды «Настройка программы». +4. Включите ФО «Вести расчёт зарплаты». +5. В справочнике «Сотрудники» создайте одного или нескольких сотрудников, разрешив вход. +6. Запустив программу под ними, удостоверьтесь в видимости раздела «Настройки» и всех справочников. +7. Открыв любого сотрудника, убедитесь, что открывается именно форма пользователя. +8. Проверьте создание и редактирование контрагентов, введя реальные данные. +9. В справочнике «Сотрудники» поменяйте пароль одному из ранее созданных сотрудников, убедитесь, что вход возможен с новым паролем +9. В справочнике «Сотрудники» запретите доступ одному из ранее созданных сотрудников, убедитесь, что доступ стал невозможен diff --git a/diploma-b-reqs.md b/diploma-b-reqs.md index 1310b00..ea6601a 100644 --- a/diploma-b-reqs.md +++ b/diploma-b-reqs.md @@ -1,6 +1,10 @@ -## Требования к результату +# Требования к результату -Конфигурация с именем «УправлениеИТФирмой» из диплома блока А, дополненная. +Конфигурация с именем «УправлениеИТФирмой»: +* подготовленная по [инструкции](diploma-b-prep.md) +* дополненая описанными ниже функциями + +## Необходимые функции В существующей подсистеме настройки: diff --git a/diploma-b.md b/diploma-b.md index ec3cbcb..a4addc4 100644 --- a/diploma-b.md +++ b/diploma-b.md @@ -6,6 +6,8 @@ Итогом станет конфигурация, содержащая главные элементы управленческих учётных систем на платформе 1С:Предприятие. +[Подготовка информационной базы](diploma-b-prep.md) + [Требования к результату](diploma-b-reqs.md) [Порядок выполнения](diploma-b-howto.md)