Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions diploma-b-prep.md
Original file line number Diff line number Diff line change
@@ -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. В справочнике «Сотрудники» запретите доступ одному из ранее созданных сотрудников, убедитесь, что доступ стал невозможен
8 changes: 6 additions & 2 deletions diploma-b-reqs.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
## Требования к результату
# Требования к результату

Конфигурация с именем «УправлениеИТФирмой» из диплома блока А, дополненная.
Конфигурация с именем «УправлениеИТФирмой»:
* подготовленная по [инструкции](diploma-b-prep.md)
* дополненая описанными ниже функциями

## Необходимые функции

В существующей подсистеме настройки:

Expand Down
2 changes: 2 additions & 0 deletions diploma-b.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

Итогом станет конфигурация, содержащая главные элементы управленческих учётных систем на платформе 1С:Предприятие.

[Подготовка информационной базы](diploma-b-prep.md)

[Требования к результату](diploma-b-reqs.md)

[Порядок выполнения](diploma-b-howto.md)