mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2025-02-16 18:18:13 +02:00
Update diploma-a.md
This commit is contained in:
parent
b960dc23f3
commit
2f8771ce48
120
diploma-a.md
120
diploma-a.md
@ -5,24 +5,26 @@
|
||||
|
||||
## Требования к результату
|
||||
|
||||
Конфигурация, содержащая:
|
||||
Конфигурация с именем "УправлениеИТФирмой", содержащая:
|
||||
|
||||
### Перечисление ЮридическоеФизическоеЛицо
|
||||
|
||||
#### Со значениями
|
||||
ЮридическоеЛицо, ФизическоеЛицо
|
||||
|
||||
### Справочник "Контрагенты"
|
||||
### Справочник Контрагенты
|
||||
|
||||
#### С реквизитами
|
||||
ПолноеНаименование, ИНН, КПП, EMail, Телефон, ФактическийАдрес, ЮридическийАдрес, Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо), Ответственный (СправочникСсылка.Сотрудники).
|
||||
Типы должны быть подходящими, длина и точность - разумно достаточными.
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
|
||||
#### С формой элемента
|
||||
|
||||
КПП должен быть доступен только для контрагентов-юридических лиц.
|
||||
КПП должен быть доступен только для контрагентов-юридических лиц. Доступность должна отрабатываться как при изменении типа, так и при перечитывании элемента справочника из ИБ.
|
||||
|
||||
При изменении наименования полное наименование должно заполняться с разворачиванием распространенных сокращений организационно-правовых форм (например, *АО "Вектор"* должно превращаться в *Акционерное общество "Вектор"*).
|
||||
|
||||
Должна быть реализована проверка корректности ИНН как для физических, так и для юридических лиц. При этом проверка должна выполняться при попытке записи (с выдачей предупреждения и отказом) и при изменении ИНН (с подсветкой поля ввода или выводом текста ошибки рядом с ним).
|
||||
Должна быть реализована проверка корректности ИНН как для физических, так и для юридических лиц. Проверять нужно и при попытке записи (с выдачей предупреждения и отказом), и при изменении ИНН (с подсветкой поля ввода и/или выводом текста ошибки рядом с ним).
|
||||
|
||||
#### С формой списка
|
||||
|
||||
@ -35,30 +37,37 @@
|
||||
* Ответственный - текущий сотрудник из параметра сеанса **ТекущийСотрудник**.
|
||||
|
||||
### Перечисление Пол
|
||||
|
||||
#### Со значениями
|
||||
Мужской, Женский
|
||||
|
||||
### Справочник "Сотрудники"
|
||||
### Справочник Сотрудники
|
||||
|
||||
#### С реквизитами
|
||||
EMail, ДатаРождения, ИдентификаторПользователяИБ, Оклад, Пол, СтавкаЧаса, Телефон.
|
||||
Типы должны быть подходящими, длина и точность - разумно достаточными.
|
||||
Для сумм должен использоваться определяемый тип.
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
Для сумм нужно использовать определяемый тип.
|
||||
|
||||
#### С модулем менеджера
|
||||
|
||||
В котором переопределено получение формы элемента в зависимости от наличия права доступа "Администрирование".
|
||||
В котором переопределено получение формы объекта в зависимости от права доступа "Администрирование".
|
||||
|
||||
#### С формой элемента ФормаАдминистратора
|
||||
|
||||
Которая открывается для пользователей с правом доступа "Администрирование".
|
||||
В которой, помимо реквизитов сотрудника, есть флажок "Вход разрешен" и поля ввода "Имя для входа" и "Пароль", управляющие свойствами пользователя ИБ.
|
||||
При записи сотрудника из этой формы при необходимости должно выполняться создание пользователя ИБ, изменение его пароля и имени для входа или, при снятии флажка, отключение стандартной аутентификации. Пользователи ИБ создаются с ролью **БазовыеПрава**.
|
||||
|
||||
В которой, помимо реквизитов сотрудника, есть флажок "Вход разрешен" и поля ввода "Имя для входа" и "Пароль", отражающие свойства пользователя ИБ.
|
||||
|
||||
При записи сотрудника из этой формы при необходимости должно выполняться:
|
||||
* создание пользователя ИБ с ролью **БазовыеПрава**;
|
||||
* изменение его пароля и имени для входа;
|
||||
* при снятии флажка - отключение стандартной аутентификации.
|
||||
|
||||
Рядом с полем ввода пароля должна быть команда "Случайный пароль", генерирующая случайный пароль и показывающая его пользователю.
|
||||
|
||||
#### С формой элемента ФормаПользователя
|
||||
|
||||
Которая открывается для пользователей без права доступа "Администрирование" и содержит элементы управления для реквизитов сотрудника.
|
||||
Элементы управления должны быть упорядочены по смыслу.
|
||||
Которая открывается для пользователей без права доступа "Администрирование" и содержит элементы управления для реквизитов сотрудника, упорядоченные по смыслу.
|
||||
|
||||
### Константу и функциональную опцию ВестиРасчетЗарплаты
|
||||
|
||||
@ -67,17 +76,20 @@ EMail, ДатаРождения, ИдентификаторПользовате
|
||||
|
||||
### Общую форму и общую команду **НастройкаПрограммы**
|
||||
|
||||
Форма должна содержать реквизит типа **НаборКонстант** и поле флажка для константы **ВестиРасчетЗарплаты**.
|
||||
Общая команда должна открывать общую форму, принадлежать подсистеме **Настройки** и присутствовать в командном интерфейсе.
|
||||
Форма должна содержать основной реквизит типа **НаборКонстант** и поле флажка для константы **ВестиРасчетЗарплаты**.
|
||||
Общая команда должна открывать общую форму, принадлежать подсистеме **Настройки** и присутствовать в командном интерфейсе раздела "Настройки".
|
||||
|
||||
### Параметр сеанса ТекущийСотрудник
|
||||
|
||||
Типа **СправочникСсылка.Сотрудники**. Должен заполняться элементом справочника **Сотрудники**, чей идентификатор пользователя ИБ совпадает с идентификатором текущего пользователя ИБ.
|
||||
Типа **СправочникСсылка.Сотрудники**. Должен заполняться элементом справочника **Сотрудники**, идентификатор пользователя ИБ которого совпадает с идентификатором текущего пользователя ИБ.
|
||||
|
||||
### Роли БазовыеПрава и ПолныеПрава
|
||||
|
||||
Роль **ПолныеПрава** должна давать права на все, кроме интерактивного удаления элементов справочников.
|
||||
Роль **БазовыеПрава** должна давать права на чтение и просмотр всех данных. Редактирование, добавление и изменение разрешается только для справочника **Контрагенты**. Роль не должна давать права на открытие настроек программы.
|
||||
Роль **ПолныеПрава** должна давать права на все, кроме:
|
||||
* интерактивного удаления элементов справочников;
|
||||
* пометки на удаление и удаления помеченных предопределенных элементов справочников.
|
||||
|
||||
Роль **БазовыеПрава** должна давать права на чтение, просмотр и ввод по строке всех данных. Редактирование, добавление и изменение разрешается только для справочника **Контрагенты**. Роль не должна давать права на открытие настроек программы.
|
||||
|
||||
### Подсистему "Настройки"
|
||||
|
||||
@ -100,27 +112,33 @@ EMail, ДатаРождения, ИдентификаторПользовате
|
||||
|
||||
Создайте общую форму **НастройкаПрограммы**.
|
||||
Добавьте в нее основной реквизит типа **НаборКонстант**.
|
||||
Выведите константу **ВестиРасчетЗарплаты** на форму полем флажка с заголовком справа.
|
||||
Выведите константу **ВестиРасчетЗарплаты** на форму полем флажка. Заголовок флажка по общим правилам разместите справа.
|
||||
Создайте общую команду **НастройкаПрограммы**, в модуле которой реализуйте открытие общей формы.
|
||||
Включите команду и форму в подсистему **Настройки**.
|
||||
|
||||
### Справочник Сотрудники
|
||||
|
||||
Создйте справочник.
|
||||
Наполните его указанным в Требованиях набором реквизитов.
|
||||
Создйте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
Включите зарплатные реквизиты в состав ФО **ВестиРасчетЗарплаты**.
|
||||
Создайте две формы элемента, **ФормаАдминистратора** и **ФормаПользователя**. Форма администратора будет основной.
|
||||
В модуле менеджера определите обработчик события **ОбработкаПолученияФормы()**. В нем, в зависимости от наличия права доступа **Администирование**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так:
|
||||
Если ПравоДоступа("Администрирование", Метаданные) Тогда
|
||||
Выбранную форму лучше возвращать не по имени, а обращением к объекту метаданных, например:
|
||||
Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора
|
||||
|
||||
#### Форма пользователя
|
||||
Создайте две формы элемента, **ФормаАдминистратора** и **ФормаПользователя**. Форма администратора будет основной.
|
||||
|
||||
В модуле менеджера определите обработчик события **ОбработкаПолученияФормы()**. В нем, в зависимости от наличия права доступа **Администирование**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так:
|
||||
|
||||
Если ПравоДоступа("Администрирование", Метаданные) Тогда
|
||||
|
||||
Выбранную форму лучше возвращать не по имени, а как объект метаданных, например:
|
||||
|
||||
Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора
|
||||
|
||||
|
||||
#### ФормаПользователя
|
||||
|
||||
Выведите в нее реквизиты сотрудника в разумном порядке.
|
||||
|
||||
#### Форма администратора
|
||||
#### ФормаАдминистратора
|
||||
|
||||
Можно создать копированием формы **ФормаПользователя**.
|
||||
Создайте в ней две группы, левую и правую.
|
||||
В левую выведите реквизиты сотрудника в разумном порядке (как в форме пользователя).
|
||||
Добавьте реквизиты формы **ВходРазрешен** (Булево), **ИмяДляВхода** и **Пароль** и выведите их в правую группу флажком и двумя полями ввода. Для поля ввода **Пароль** включите режим пароля, чтобы введенное забивалось звездочками.
|
||||
@ -130,14 +148,16 @@ EMail, ДатаРождения, ИдентификаторПользовате
|
||||
В обработчике создайте случайный пароль из 5-6 букв и цифр, отключив у поля ввода **Пароль** режим пароля, чтобы пользователь увидел его и мог скопировать.
|
||||
|
||||
##### ПриЧтенииНаСервере
|
||||
Найдите пользователя ИБ по идентификатору **ТекущийОбъект.ИдентификаторПользователяИБ**.
|
||||
Заполните по данным пользователя ИБ имя для входа и пароль. Реквизит **ВходРазрешен** определите по реквизиту пользователя ИБ **АутентификацияСтандартная**.
|
||||
Найдите пользователя ИБ по идентификатору (**ТекущийОбъект.ИдентификаторПользователяИБ**).
|
||||
Заполните по данным пользователя ИБ реквизиты формы **ИмяДляВхода** и **Пароль**. Реквизит **ВходРазрешен** заполните по реквизиту пользователя ИБ **АутентификацияСтандартная**.
|
||||
Если идентификатор не заполнен, или поиск пользователя ИБ возвращает **Неопределено**, считайте, что вход не разрешен, а имя и пароль пусты.
|
||||
|
||||
##### ПередЗаписьюНаСервере
|
||||
Если идентификатор пользователя ИБ заполнен - найдите пользователя ИБ и обновите его реквизиты значениями реквизитов **ВходРазрешен**, **ИмяДляВхода** и **Пароль**.
|
||||
Если идентификатор не заполнен, а флажок **ВходРазрешен** выставлен - создайте пользователя ИБ и добавьте ему роль **Метаданные.Роли.БазовыеПрава**. После создания пользователя присвойте его идентификатор реквизиту **ИдентификаторПользователяИБ** записываемого объекта, чтобы найти пользователя ИБ при следующем открытии формы сотрудника.
|
||||
Обратите внимание на то, что учебная версия платформы не позволяет задать непустой пароль. Логику задания пароля, однако, все равно нужно реализовать.
|
||||
Если идентификатор не заполнен, а флажок **ВходРазрешен** выставлен - создайте пользователя ИБ и добавьте ему роль **Метаданные.Роли.БазовыеПрава**.
|
||||
|
||||
После создания пользователя ИБ присвойте его идентификатор реквизиту **ИдентификаторПользователяИБ** записываемого объекта, чтобы найти этого пользователя ИБ при следующем открытии формы.
|
||||
Обратите внимание на то, что учебная версия платформы не позволяет задать непустой пароль. Логику задания пароля, однако, все равно нужно реализовать, а в тестах задавать пустой пароль.
|
||||
|
||||
#### Форма списка
|
||||
|
||||
@ -148,19 +168,21 @@ EMail, ДатаРождения, ИдентификаторПользовате
|
||||
Создайте параметр сеанса **ТекущийСотрудник** типа **СправочникСсылка.Сотрудники**.
|
||||
В модуле сеанса определите процедуру **УстановкаПараметровСеанса**.
|
||||
В ней, для простоты не анализируя параметр **ТребуемыеПараметры**, найдите сотрудника по значению реквизита **ИдентификаторПользователяИБ**, используя функцию менеджера:
|
||||
|
||||
Справочники.Сотрудники.НайтиПоРеквизиту(<...>);
|
||||
|
||||
Значение идентификатора получите, обратившись к функции **ТекущийПользователь()** менеджера **ПользователиИнформационнойБазы**.
|
||||
|
||||
### Справочник Контрагенты
|
||||
|
||||
Создайте справочник.
|
||||
Наполните его указанным в Требованиях набором реквизитов.
|
||||
Создайте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
Не забудьте поставить флажок "Заполнять из данных заполнения" хотя бы для реквизитов **Тип** и **Ответственный**.
|
||||
В модуле объекта определите обработчик **ОбработкаЗаполнения**, в котором заполните реквизит **Тип** значением по умолчанию **ЮридическоеЛицо**, а реквизит **Ответственный** - значением параметра сеанса **ТекущийСотрудник**.
|
||||
|
||||
#### Форма элемента
|
||||
|
||||
Создайте форму элемента, поместив на нее все существенные реквизиты в разумном порядке и расположении.
|
||||
|
||||
Реализуйте управление доступностью поля ввода **КПП** в зависимости от типа контрагента, сделав это в обработчиках событий **ПриЧтенииНаСервере** формы и **ПриИзменении** поля ввода **Тип**.
|
||||
|
||||
Реализуйте функцию определения корректности ИНН, которая работала бы со всеми ИНН и возвращала бы, кроме значения Булево (Истина - корректен, Ложь - некорректен), текстовое описание ошибки как неявно возвращаемое значение.
|
||||
@ -170,8 +192,10 @@ https://www.egrul.ru/test_inn.html
|
||||
https://keysystems.ru/files/fo/arm_budjet/show_docum/BKS/onlinehelp/index.html?ro_kr_algor_klyuch_inn.htm
|
||||
|
||||
Реализуйте вызов этой функции в двух местах:
|
||||
* В обработчике события **ПередЗаписью** формы - с отказом от записи при неверном ИНН и выводом предупреждения пользователю, содержащего текстовое описание ошибки.
|
||||
* В обработчике события **ПриИзменении** поля ввода ИНН - с подсветкой текста поля ввода или с выводом рядом с полем ввода текстового описания ошибки.
|
||||
* В обработчике события **ПередЗаписью** формы - с отказом от записи при неверном ИНН и выводом предупреждения, содержащего текстовое описание ошибки.
|
||||
* В обработчике события **ПриИзменении** поля ввода ИНН - с подсветкой текста поля ввода и/или с выводом рядом с полем ввода текстового описания ошибки в виде декорации или подсказки.
|
||||
|
||||
Считайте, что пустой ИНН корректен.
|
||||
|
||||
В обработчике события **ПриИзменении** поля ввода **Наименование** реализуйте поиск распространенных сокращений организационно-правовых форм в начале строки и заполнение полного наименования по краткому с заменой сокращения ОПФ на ее полное наименование. Не изменяйте полное наименование, если оно уже было изменено пользователем вручную.
|
||||
|
||||
@ -182,17 +206,21 @@ https://keysystems.ru/files/fo/arm_budjet/show_docum/BKS/onlinehelp/index.html?r
|
||||
### Роли
|
||||
|
||||
Создайте роли **ПолныеПрава** и **БазовыеПрава**.
|
||||
В состав роли **ПолныеПрава** включите все права, сняв только интерактивное удаление элементов справочников.
|
||||
В состав роли **БазовыеПрава** включите права на чтение и просмотр всех данных, включая параметры сеанса. Разрешите также изменение, добавление, редактирование и интерактивную пометку удаления справочника **Контрагенты**.
|
||||
|
||||
В состав роли **ПолныеПрава** включите все права, сняв только:
|
||||
* интерактивное удаление элементов справочников.
|
||||
* пометку на удаление и удаление помеченных предопределенных элементов.
|
||||
|
||||
В состав роли **БазовыеПрава** включите права на чтение, просмотр и ввод по строке всех данных, включая параметры сеанса. Разрешите также изменение, добавление, редактирование и интерактивную пометку удаления справочника **Контрагенты**.
|
||||
|
||||
### Проверка
|
||||
|
||||
Проверьте, что подсистема **Настройки** содержит все добавленные вами объекты метаданных.
|
||||
Создайте пользователя ИБ с полными правами.
|
||||
Запустив программу под ним, удостоверьтесь в видимости раздела "Настройки", всех справочников и команды "Настройка программы".
|
||||
Включите ФО "Вести расчет зарплаты".
|
||||
В справочнике "Сотрудники" создайте одного или нескольих сотрудников, разрешив вход.
|
||||
Запустив программу под ними, удостоверьтесь в видимости раздела "Настройки" и всех справочников.
|
||||
Открыв какого-нибудь сотрудника, убедитесь, что открывается именно форма пользователя.
|
||||
Проверьте создание и редактирование контрагентов, введя реальные данные.
|
||||
1. Проверьте, что подсистема **Настройки** содержит все добавленные вами объекты метаданных.
|
||||
2. Создайте пользователя ИБ с полными правами.
|
||||
3. Запустив программу под ним, удостоверьтесь в видимости раздела "Настройки", всех справочников и команды "Настройка программы".
|
||||
4. Включите ФО "Вести расчет зарплаты".
|
||||
5. В справочнике "Сотрудники" создайте одного или нескольих сотрудников, разрешив вход.
|
||||
6. Запустив программу под ними, удостоверьтесь в видимости раздела "Настройки" и всех справочников.
|
||||
7. Открыв какого-нибудь сотрудника, убедитесь, что открывается именно форма пользователя.
|
||||
8. Проверьте создание и редактирование контрагентов, введя реальные данные.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user