mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-16 07:10:14 +02:00
UPD_TXT
Правки от редактора по ДЗ 3.1-3.4 и по Курсовой работе.
This commit is contained in:
parent
71bd1e39bb
commit
d7bb46f31b
251
diploma-a.md
251
diploma-a.md
@ -1,226 +1,249 @@
|
||||
# Курсовая работа блока А "Настройки и справочники"
|
||||
# Курсовая работа блока А «Настройки и справочники»
|
||||
|
||||
## Описание задачи
|
||||
Создать конфигурацию "Управление ИТ-фирмой" с базовым набором справочников, поддерживающую управление пользователями ИБ в режиме Предприятия.
|
||||
|
||||
Создать конфигурацию «Управление ИТ-фирмой» с базовым набором справочников, поддерживающую управление пользователями ИБ в режиме Предприятия.
|
||||
|
||||
## Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурация с именем "УправлениеИТФирмой", содержащей:
|
||||
Выгрузка информационной базы (.dt) конфигурацией с именем «УправлениеИТФирмой», содержащей **девять пунктов** ниже.
|
||||
|
||||
### Перечисление ЮридическоеФизическоеЛицо
|
||||
###**1. Перечисление «ЮридическоеФизическоеЛицо».**
|
||||
|
||||
#### Со значениями
|
||||
ЮридическоеЛицо, ФизическоеЛицо
|
||||
Со значениями:
|
||||
|
||||
### Справочник Контрагенты
|
||||
- ЮридическоеЛицо.
|
||||
- ФизическоеЛицо.
|
||||
|
||||
#### С реквизитами
|
||||
ПолноеНаименование, ИНН, КПП, EMail, Телефон, ФактическийАдрес, ЮридическийАдрес, Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо), Ответственный (СправочникСсылка.Сотрудники).
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
###**2. Справочник «Контрагенты».**
|
||||
|
||||
#### С формой элемента
|
||||
*С реквизитами:*
|
||||
|
||||
КПП должен быть доступен только для контрагентов-юридических лиц. Доступность должна отрабатываться как при изменении типа, так и при перечитывании элемента справочника из ИБ.
|
||||
* ПолноеНаименование.
|
||||
* ИНН.
|
||||
* КПП.
|
||||
* Email.
|
||||
* Телефон.
|
||||
* ФактическийАдрес.
|
||||
* ЮридическийАдрес.
|
||||
* Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо).
|
||||
* Ответственный (СправочникСсылка.Сотрудники).
|
||||
|
||||
При изменении наименования полное наименование должно заполняться с разворачиванием распространенных сокращений организационно-правовых форм (например, *АО "Вектор"* должно превращаться в *Акционерное общество "Вектор"*).
|
||||
Типы должны быть подходящими, их длина и точность — разумно достаточными.
|
||||
|
||||
Должна быть реализована проверка корректности ИНН как для физических, так и для юридических лиц. Проверять нужно и при попытке записи (с выдачей предупреждения и отказом), и при изменении ИНН (с подсветкой поля ввода и/или выводом текста ошибки рядом с ним).
|
||||
*С формой элемента*
|
||||
|
||||
#### С формой списка
|
||||
- КПП должен быть доступен только для контрагентов — юридических лиц. Доступность должна отрабатываться как при изменении типа, так и при перечитывании элемента справочника из ИБ.
|
||||
- При изменении наименования полное наименование должно заполняться с разворачиванием распространённых сокращений организационно-правовых форм. Например, АО «Вектор» должно превращаться в Акционерное общество «Вектор».
|
||||
- Должна быть реализована проверка корректности ИНН как для физических, так и для юридических лиц. Проверять нужно и при попытке записи — с выдачей предупреждения и отказом, и при изменении ИНН — с подсветкой поля ввода или выводом текста ошибки рядом с ним.
|
||||
|
||||
*С формой списка*
|
||||
|
||||
В форме списка должны присутствовать все существенные реквизиты в разумном порядке.
|
||||
|
||||
#### С модулем объекта
|
||||
*С модулем объекта*
|
||||
|
||||
В коде которого определено заполнение по умолчанию:
|
||||
* Тип - Юридическое лицо.
|
||||
* Ответственный - текущий сотрудник из параметра сеанса **ТекущийСотрудник**.
|
||||
В его коде определено заполнение по умолчанию:
|
||||
|
||||
### Перечисление Пол
|
||||
* Тип — юридическое лицо.
|
||||
* Ответственный — текущий сотрудник из параметра сеанса **«ТекущийСотрудник**.
|
||||
|
||||
#### Со значениями
|
||||
Мужской, Женский
|
||||
###**3. Перечисление «Пол».**
|
||||
|
||||
### Справочник Сотрудники
|
||||
Со значениями:
|
||||
|
||||
#### С реквизитами
|
||||
EMail, ДатаРождения, ИдентификаторПользователяИБ, Оклад, Пол, СтавкаЧаса, Телефон.
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
- Мужской.
|
||||
- Женский.
|
||||
|
||||
###**4. Справочник «Сотрудники».**
|
||||
|
||||
*С реквизитами:*
|
||||
|
||||
- Email.
|
||||
- ДатаРождения.
|
||||
- ИдентификаторПользователяИБ.
|
||||
- Оклад.
|
||||
- Пол.
|
||||
- СтавкаЧаса.
|
||||
- Телефон.
|
||||
|
||||
Типы должны быть подходящими, их длина и точность — разумно достаточными.
|
||||
Для сумм нужно использовать определяемый тип.
|
||||
|
||||
#### С модулем менеджера
|
||||
*С модулем менеджера*
|
||||
|
||||
В котором переопределено получение формы объекта в зависимости от права доступа "Администрирование".
|
||||
В котором переопределено получение формы объекта в зависимости от права доступа «Администрирование».
|
||||
|
||||
#### С формой элемента ФормаАдминистратора
|
||||
*С формой элемента «ФормаАдминистратора»:*
|
||||
|
||||
Которая открывается для пользователей с правом доступа "Администрирование".
|
||||
|
||||
В которой, помимо реквизитов сотрудника, есть флажок "Вход разрешен" и поля ввода "Имя для входа" и "Пароль", отражающие свойства пользователя ИБ.
|
||||
- которая открывается для пользователей с правом доступа «Администрирование»;
|
||||
- в которой, помимо реквизитов сотрудника, есть флажок «Вход разрешён» и поля ввода «Имя для входа» и «Пароль», отражающие свойства пользователя ИБ.
|
||||
|
||||
При записи сотрудника из этой формы при необходимости должно выполняться:
|
||||
* создание пользователя ИБ с ролью **БазовыеПрава**;
|
||||
|
||||
* создание пользователя ИБ с ролью **«БазовыеПрава»**;
|
||||
* изменение его пароля и имени для входа;
|
||||
* при снятии флажка - отключение стандартной аутентификации.
|
||||
* при снятии флажка — отключение стандартной аутентификации.
|
||||
|
||||
Рядом с полем ввода пароля должна быть команда "Случайный пароль", генерирующая случайный пароль и показывающая его пользователю.
|
||||
Рядом с полем ввода пароля должна быть команда «Случайный пароль», генерирующая случайный пароль и показывающая его пользователю.
|
||||
|
||||
#### С формой элемента ФормаПользователя
|
||||
*С формой элемента «ФормаПользователя»*
|
||||
|
||||
Которая открывается для пользователей без права доступа "Администрирование" и содержит элементы управления для реквизитов сотрудника, упорядоченные по смыслу.
|
||||
Которая открывается для пользователей без права доступа «Администрирование» и содержит элементы управления для реквизитов сотрудника, упорядоченные по смыслу.
|
||||
|
||||
### Константу и функциональную опцию ВестиРасчетЗарплаты
|
||||
###**5. Константа и функциональная опция «ВестиРасчётЗарплаты».**
|
||||
|
||||
Константа не должна присутствовать в командном интерфейсе сама по себе (флажок "Использовать стандартные команды" должен быть снят).
|
||||
В состав ФО должны входить зарплатные реквизиты справочника **Сотрудники**, а константа должна присутствовать флажком в общей форме **НастройкаПрограммы**.
|
||||
- Константа не должна присутствовать в командном интерфейсе сама по себе — флажок «Использовать стандартные команды» должен быть снят.
|
||||
- В состав ФО должны входить зарплатные реквизиты справочника **«Сотрудники»**, а константа должна присутствовать флажком в общей форме **«НастройкаПрограммы»**.
|
||||
|
||||
### Общую форму и общую команду **НастройкаПрограммы**
|
||||
###**6. Общая форма и общая команда «НастройкаПрограммы».**
|
||||
|
||||
Форма должна содержать основной реквизит типа **НаборКонстант** и поле флажка для константы **ВестиРасчетЗарплаты**.
|
||||
Общая команда должна открывать общую форму, принадлежать подсистеме **Настройки** и присутствовать в командном интерфейсе раздела "Настройки".
|
||||
- Форма должна содержать основной реквизит типа **«НаборКонстант»** и поле флажка для константы **«ВестиРасчётЗарплаты»**.
|
||||
- Общая команда должна открывать общую форму, принадлежать подсистеме **«Настройки»** и присутствовать в командном интерфейсе раздела «Настройки».
|
||||
|
||||
### Параметр сеанса ТекущийСотрудник
|
||||
###**7. Параметр сеанса «ТекущийСотрудник».**
|
||||
|
||||
Типа **СправочникСсылка.Сотрудники**. Должен заполняться элементом справочника **Сотрудники**, идентификатор пользователя ИБ которого совпадает с идентификатором текущего пользователя ИБ.
|
||||
Тип **«СправочникСсылка.Сотрудники»**. Должен заполняться элементом справочника **«Сотрудники»**, идентификатор пользователя ИБ которого совпадает с идентификатором текущего пользователя ИБ.
|
||||
|
||||
### Роли БазовыеПрава и ПолныеПрава
|
||||
###**8. Роли «БазовыеПрава» и «ПолныеПрава».**
|
||||
|
||||
Роль **«ПолныеПрава»** должна давать права на всё, кроме:
|
||||
|
||||
Роль **ПолныеПрава** должна давать права на все, кроме:
|
||||
* интерактивного удаления элементов справочников;
|
||||
* пометки на удаление и удаления помеченных предопределенных элементов справочников.
|
||||
* пометки на удаление и удаления помеченных предопределённых элементов справочников.
|
||||
|
||||
Роль **БазовыеПрава** должна давать права на чтение, просмотр и ввод по строке всех данных. Редактирование, добавление и изменение разрешается только для справочника **Контрагенты**. Роль не должна давать права на открытие настроек программы.
|
||||
Роль **«БазовыеПрава»** должна давать права на чтение, просмотр и ввод по строке всех данных. Редактирование, добавление и изменение разрешается только для справочника **«Контрагенты»**. Роль не должна давать права на открытие настроек программы.
|
||||
|
||||
### Подсистему "Настройки"
|
||||
###**9. Подсистема «Настройки»».**
|
||||
|
||||
Содержащую все справочники и общую команду **НастройкаПрограммы**.
|
||||
Содержащая все справочники и общую команду **«НастройкаПрограммы»**.
|
||||
|
||||
## Процесс выполнения
|
||||
|
||||
Старайтесь использовать наработки, выполненные ранее в домашних заданиях блока А.
|
||||
|
||||
### Подсистема Настройки
|
||||
### Подсистема «Настройки»
|
||||
|
||||
Создайте подсистему **Настройки**, куда будете включать все добавляемые далее объекты метаданных.
|
||||
Создайте подсистему **«Настройки»**, куда будете включать все добавляемые далее объекты метаданных.
|
||||
|
||||
### Константа и ФО
|
||||
|
||||
Создайте константу **ВестиРасчетЗарплаты** типа **Булево** и соответствующую ФО.
|
||||
Константу включите в подсистему **Настройки**. Не забудьте снять флажок "Использовать стандартные команды", чтобы константа не появилась в командном интерфейсе сама по себе.
|
||||
Создайте константу **«ВестиРасчётЗарплаты»** типа **«Булево»** и соответствующую ФО.
|
||||
Константу включите в подсистему **«Настройки»**. Не забудьте снять флажок «Использовать стандартные команды», чтобы константа не появилась в командном интерфейсе сама по себе.
|
||||
|
||||
### Настройка программы
|
||||
|
||||
Создайте общую форму **НастройкаПрограммы**.
|
||||
Добавьте в нее основной реквизит типа **НаборКонстант**.
|
||||
Выведите константу **ВестиРасчетЗарплаты** на форму полем флажка. Заголовок флажка по общим правилам разместите справа.
|
||||
Создайте общую команду **НастройкаПрограммы**, в модуле которой реализуйте открытие общей формы.
|
||||
Включите команду и форму в подсистему **Настройки**.
|
||||
* Создайте общую форму **«НастройкаПрограммы»**.
|
||||
* Добавьте в неё основной реквизит типа **«НаборКонстант»**.
|
||||
* Выведите константу **«ВестиРасчётЗарплаты»** на форму полем флажка. Заголовок флажка по общим правилам разместите справа.
|
||||
* Создайте общую команду **«НастройкаПрограммы»**, в модуле которой реализуйте открытие общей формы.
|
||||
* Включите команду и форму в подсистему **«Настройки»**.
|
||||
|
||||
### Справочник Сотрудники
|
||||
### Справочник «Сотрудники»
|
||||
|
||||
Создйте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
Включите зарплатные реквизиты в состав ФО **ВестиРасчетЗарплаты**.
|
||||
* Создайте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
* Включите зарплатные реквизиты в состав ФО **«ВестиРасчётЗарплаты»**.
|
||||
* Создайте две формы элемента: **«ФормаАдминистратора»** и **«ФормаПользователя»**. Форма администратора будет основной.
|
||||
* В модуле менеджера определите обработчик события **«ОбработкаПолученияФормы()»**. В нём, в зависимости от наличия права доступа **«Администирование»**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так:
|
||||
|
||||
Создайте две формы элемента, **ФормаАдминистратора** и **ФормаПользователя**. Форма администратора будет основной.
|
||||
|
||||
В модуле менеджера определите обработчик события **ОбработкаПолученияФормы()**. В нем, в зависимости от наличия права доступа **Администирование**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так:
|
||||
|
||||
Если ПравоДоступа("Администрирование", Метаданные) Тогда
|
||||
`Если ПравоДоступа("Администрирование", Метаданные) Тогда`
|
||||
|
||||
Выбранную форму лучше возвращать не по имени, а как объект метаданных, например:
|
||||
|
||||
Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора
|
||||
`Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора`
|
||||
|
||||
|
||||
#### ФормаПользователя
|
||||
|
||||
Выведите в нее реквизиты сотрудника в разумном порядке.
|
||||
Выведите в неё реквизиты сотрудника в разумном порядке.
|
||||
|
||||
#### ФормаАдминистратора
|
||||
|
||||
Можно создать копированием формы **ФормаПользователя**.
|
||||
Создайте в ней две группы, левую и правую.
|
||||
В левую выведите реквизиты сотрудника в разумном порядке (как в форме пользователя).
|
||||
Добавьте реквизиты формы **ВходРазрешен** (Булево), **ИмяДляВхода** и **Пароль** и выведите их в правую группу флажком и двумя полями ввода. Для поля ввода **Пароль** включите режим пароля, чтобы введенное забивалось звездочками.
|
||||
Можно создать копированием формы **«ФормаПользователя»**.
|
||||
Создайте в ней две группы: левую и правую. В левую выведите реквизиты сотрудника в разумном порядке, как в форме пользователя.
|
||||
Добавьте реквизиты формы **«ВходРазрешён»** (Булево), **«ИмяДляВхода»** и **«Пароль»** и выведите их в правую группу флажком и двумя полями ввода. Для поля ввода **«Пароль»** включите режим пароля, чтобы введённое забивалось звёздочками.
|
||||
|
||||
##### Случайный пароль
|
||||
Создайте команду и кнопку **СлучайныйПароль**.
|
||||
В обработчике создайте случайный пароль из 5-6 букв и цифр, отключив у поля ввода **Пароль** режим пароля, чтобы пользователь увидел его и мог скопировать.
|
||||
Создайте команду и кнопку **«СлучайныйПароль»**.
|
||||
В обработчике создайте случайный пароль из 5–6 букв и цифр, отключив у поля ввода **«Пароль»** режим пароля, чтобы пользователь увидел его и мог скопировать.
|
||||
|
||||
##### ПриЧтенииНаСервере
|
||||
Найдите пользователя ИБ по идентификатору (**ТекущийОбъект.ИдентификаторПользователяИБ**).
|
||||
Заполните по данным пользователя ИБ реквизиты формы **ИмяДляВхода** и **Пароль**. Реквизит **ВходРазрешен** заполните по реквизиту пользователя ИБ **АутентификацияСтандартная**.
|
||||
Если идентификатор не заполнен, или поиск пользователя ИБ возвращает **Неопределено**, считайте, что вход не разрешен, а имя и пароль пусты.
|
||||
Найдите пользователя ИБ по идентификатору — **«ТекущийОбъект.ИдентификаторПользователяИБ»**.
|
||||
Заполните по данным пользователя ИБ реквизиты формы **«ИмяДляВхода»** и **«Пароль»**. Реквизит **«ВходРазрешён»** заполните по реквизиту пользователя ИБ **«АутентификацияСтандартная»**.
|
||||
Если идентификатор не заполнен, или поиск пользователя ИБ возвращает **«Неопределено»**, считайте, что вход не разрешён, а имя и пароль пусты.
|
||||
|
||||
##### ПередЗаписьюНаСервере
|
||||
Если идентификатор пользователя ИБ заполнен - найдите пользователя ИБ и обновите его реквизиты значениями реквизитов **ВходРазрешен**, **ИмяДляВхода** и **Пароль**.
|
||||
Если идентификатор не заполнен, а флажок **ВходРазрешен** выставлен - создайте пользователя ИБ и добавьте ему роль **Метаданные.Роли.БазовыеПрава**.
|
||||
Если идентификатор пользователя ИБ заполнен — найдите пользователя ИБ и обновите его реквизиты значениями реквизитов **«ВходРазрешён»**, **«ИмяДляВхода»** и **«Пароль»**.
|
||||
Если идентификатор не заполнен, а флажок **«ВходРазрешён»** выставлен — создайте пользователя ИБ и добавьте ему роль **«Метаданные.Роли.БазовыеПрава»**.
|
||||
|
||||
После создания пользователя ИБ присвойте его идентификатор реквизиту **ИдентификаторПользователяИБ** записываемого объекта, чтобы найти этого пользователя ИБ при следующем открытии формы.
|
||||
Обратите внимание на то, что учебная версия платформы не позволяет задать непустой пароль. Логику задания пароля, однако, все равно нужно реализовать, а в тестах задавать пустой пароль.
|
||||
После создания пользователя ИБ присвойте его идентификатор реквизиту **«ИдентификаторПользователяИБ»** записываемого объекта, чтобы найти этого пользователя ИБ при следующем открытии формы.
|
||||
Обратите внимание, что учебная версия платформы не позволяет задать непустой пароль. Логику задания пароля всё равно нужно реализовать, а в тестах задавать пустой пароль.
|
||||
|
||||
#### Форма списка
|
||||
|
||||
Создайте форму списка, добавив в нее все существенные реквизиты в разумном порядке и расположении.
|
||||
Создайте форму списка, добавив в неё все существенные реквизиты в разумном порядке и расположении.
|
||||
|
||||
### Параметр сеанса
|
||||
|
||||
Создайте параметр сеанса **ТекущийСотрудник** типа **СправочникСсылка.Сотрудники**.
|
||||
В модуле сеанса определите процедуру **УстановкаПараметровСеанса**.
|
||||
В ней, для простоты не анализируя параметр **ТребуемыеПараметры**, найдите сотрудника по значению реквизита **ИдентификаторПользователяИБ**, используя функцию менеджера:
|
||||
- Создайте параметр сеанса **«ТекущийСотрудник»** типа **«СправочникСсылка.Сотрудники»**.
|
||||
- В модуле сеанса определите процедуру **«УстановкаПараметровСеанса»**.
|
||||
- В ней, для простоты не анализируя параметр **«ТребуемыеПараметры»**, найдите сотрудника по значению реквизита **«ИдентификаторПользователяИБ»**, используя функцию менеджера:
|
||||
|
||||
Справочники.Сотрудники.НайтиПоРеквизиту(<...>);
|
||||
`Справочники.Сотрудники.НайтиПоРеквизиту(<...>);`
|
||||
|
||||
Значение идентификатора получите, обратившись к функции **ТекущийПользователь()** менеджера **ПользователиИнформационнойБазы**.
|
||||
- Значение идентификатора получите, обратившись к функции **«ТекущийПользователь()»** менеджера **«ПользователиИнформационнойБазы»**.
|
||||
|
||||
### Справочник Контрагенты
|
||||
### Справочник «Контрагенты»
|
||||
|
||||
Создайте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
Не забудьте поставить флажок "Заполнять из данных заполнения" хотя бы для реквизитов **Тип** и **Ответственный**.
|
||||
В модуле объекта определите обработчик **ОбработкаЗаполнения**, в котором заполните реквизит **Тип** значением по умолчанию **ЮридическоеЛицо**, а реквизит **Ответственный** - значением параметра сеанса **ТекущийСотрудник**.
|
||||
Создайте справочник и наполните его указанным в требованиях набором реквизитов.
|
||||
Не забудьте поставить флажок «Заполнять из данных заполнения» хотя бы для реквизитов **«Тип»** и **«Ответственный»**.
|
||||
|
||||
В модуле объекта определите обработчик **«ОбработкаЗаполнения»**, в котором заполните реквизит **«Тип»** значением по умолчанию **«ЮридическоеЛицо»**, а реквизит **«Ответственный»** — значением параметра сеанса **«ТекущийСотрудник»**.
|
||||
|
||||
#### Форма элемента
|
||||
|
||||
Создайте форму элемента, поместив на нее все существенные реквизиты в разумном порядке и расположении.
|
||||
Создайте форму элемента, поместив на неё все существенные реквизиты в разумном порядке и расположении.
|
||||
|
||||
Реализуйте управление доступностью поля ввода **КПП** в зависимости от типа контрагента, сделав это в обработчиках событий **ПриЧтенииНаСервере** формы и **ПриИзменении** поля ввода **Тип**.
|
||||
Реализуйте управление доступностью поля ввода **«КПП»** в зависимости от типа контрагента, сделав это в обработчиках событий **«ПриЧтенииНаСервере»** формы и **«ПриИзменении»** поля ввода **«Тип»**.
|
||||
|
||||
Реализуйте функцию определения корректности ИНН, которая работала бы со всеми ИНН и возвращала бы, кроме значения Булево (Истина - корректен, Ложь - некорректен), текстовое описание ошибки как неявно возвращаемое значение.
|
||||
Алгоритмы расчета:
|
||||
Реализуйте функцию определения корректности ИНН, которая работала бы со всеми ИНН и возвращала бы, кроме значения Булево (Истина — корректен, Ложь — некорректен), текстовое описание ошибки, как неявно возвращаемое значение.
|
||||
|
||||
Алгоритмы расчёта:
|
||||
|
||||
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
|
||||
|
||||
Реализуйте вызов этой функции в двух местах:
|
||||
* В обработчике события **ПередЗаписью** формы - с отказом от записи при неверном ИНН и выводом предупреждения, содержащего текстовое описание ошибки.
|
||||
* В обработчике события **ПриИзменении** поля ввода ИНН - с подсветкой текста поля ввода и/или с выводом рядом с полем ввода текстового описания ошибки в виде декорации или подсказки.
|
||||
|
||||
1. В обработчике события **«ПередЗаписью»** формы — с отказом от записи при неверном ИНН и выводом предупреждения, содержащего текстовое описание ошибки.
|
||||
2. В обработчике события **«ПриИзменении»** поля ввода ИНН — с подсветкой текста поля ввода или с выводом рядом с полем ввода текстового описания ошибки в виде декорации или подсказки.
|
||||
|
||||
Считайте, что пустой ИНН корректен.
|
||||
|
||||
В обработчике события **ПриИзменении** поля ввода **Наименование** реализуйте поиск распространенных сокращений организационно-правовых форм в начале строки и заполнение полного наименования по краткому с заменой сокращения ОПФ на ее полное наименование. Не изменяйте полное наименование, если оно уже было изменено пользователем вручную. Чтобы это реализовать, при чтении формы получайте полное наименование из краткого и, если полученный заменой результат соответствует полному наименованию, запоминайте в невидимом булевском реквизите формы признак того, что полное наименование можно изменять автоматически.
|
||||
В обработчике события **«ПриИзменении»** поля ввода **«Наименование»** реализуйте поиск распространённых сокращений организационно-правовых форм в начале строки и заполнение полного наименования по краткому с заменой сокращения ОПФ на её полное наименование. Не изменяйте полное наименование, если оно уже было изменено пользователем вручную. Чтобы это реализовать, при чтении формы получайте полное наименование из краткого и, если полученный заменой результат соответствует полному наименованию, запоминайте в невидимом булевском реквизите формы признак того, что полное наименование можно изменять автоматически.
|
||||
|
||||
#### Форма списка
|
||||
|
||||
Создайте форму списка, добавив в нее все существенные реквизиты в разумном порядке и расположении.
|
||||
Создайте форму списка, добавив в неё все существенные реквизиты в разумном порядке и расположении.
|
||||
|
||||
### Роли
|
||||
|
||||
Создайте роли **ПолныеПрава** и **БазовыеПрава**.
|
||||
Создайте роли **«ПолныеПрава»** и **«БазовыеПрава»**.
|
||||
|
||||
В состав роли **ПолныеПрава** включите все права, сняв только:
|
||||
* интерактивное удаление элементов справочников.
|
||||
* пометку на удаление и удаление помеченных предопределенных элементов.
|
||||
В состав роли **«ПолныеПрава»** включите все права, сняв только:
|
||||
|
||||
В состав роли **БазовыеПрава** включите права на чтение, просмотр и ввод по строке всех данных, включая параметры сеанса. Разрешите также изменение, добавление, редактирование и интерактивную пометку удаления справочника **Контрагенты**.
|
||||
* интерактивное удаление элементов справочников;
|
||||
* пометку на удаление и удаление помеченных предопределённых элементов.
|
||||
|
||||
В состав роли **«БазовыеПрава»** включите права на чтение, просмотр и ввод по строке всех данных, включая параметры сеанса. Разрешите также изменение, добавление, редактирование и интерактивную пометку удаления справочника **«Контрагенты»**.
|
||||
|
||||
### Проверка
|
||||
|
||||
1. Проверьте, что подсистема **Настройки** содержит все добавленные вами объекты метаданных.
|
||||
1. Проверьте, что подсистема **«Настройки»** содержит все добавленные объекты метаданных.
|
||||
2. Создайте пользователя ИБ с полными правами.
|
||||
3. Запустив программу под ним, удостоверьтесь в видимости раздела "Настройки", всех справочников и команды "Настройка программы".
|
||||
4. Включите ФО "Вести расчет зарплаты".
|
||||
5. В справочнике "Сотрудники" создайте одного или нескольких сотрудников, разрешив вход.
|
||||
6. Запустив программу под ними, удостоверьтесь в видимости раздела "Настройки" и всех справочников.
|
||||
7. Открыв какого-нибудь сотрудника, убедитесь, что открывается именно форма пользователя.
|
||||
8. Проверьте создание и редактирование контрагентов, введя реальные данные.
|
||||
|
||||
3. Запустив программу под ним, удостоверьтесь в видимости раздела «Настройки», всех справочников и команды «Настройка программы».
|
||||
4. Включите ФО «Вести расчёт зарплаты».
|
||||
5. В справочнике «Сотрудники» создайте одного или нескольких сотрудников, разрешив вход.
|
||||
6. Запустив программу под ними, удостоверьтесь в видимости раздела «Настройки» и всех справочников.
|
||||
7. Открыв любого сотрудника, убедитесь, что открывается именно форма пользователя.
|
||||
8. Проверьте создание и редактирование контрагентов, введя реальные данные.
|
@ -1,6 +1,6 @@
|
||||
# Интерфейс конфигурации
|
||||
|
||||
Результат выполнения всех трех заданий вышлите одним файлом конфигурации
|
||||
Результат выполнения всех трёх заданий пришлите в виде одного файла конфигурации.
|
||||
|
||||
## Задание 1
|
||||
|
||||
@ -10,63 +10,66 @@
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Конфигурация "Управление ИТ-фирмой", имеющая в своем составе все нужные объекты метаданных и интерфейс, позволяющий выполнять навигацию по данным.
|
||||
Конфигурация «Управление ИТ-фирмой», имеющая в своём составе все нужные объекты метаданных и интерфейс, позволяющий выполнять навигацию по данным.
|
||||
|
||||
Конфигурация должна соответствовать требованиям:
|
||||
|
||||
* При запуске конфигурации панель навигации по разделам должна располагаться слева. Открытые окна - сверху, как в браузере Chrome.
|
||||
* В разделе "Закупки" на самом видном месте должны быть расположены документы "Заказ поставщику" и справочник "Контрагенты".
|
||||
* В разделе "Закупки" должен быть выделен отдельно подраздел "Складской учет" содержащий справочник "Склады" и отчет "Остатки по складам" Логику отчета реализовывать не надо.
|
||||
* Раздел "Продажи" на самом видном месте должен содержать пункт "Заказы покупателей"
|
||||
* Раздел отчетность должен содержать отчеты "Остатки по складам" и "Отчет по продажам"
|
||||
1. При запуске конфигурации панель навигации по разделам должна располагаться слева. Открытые окна — сверху, как в браузере Google Chrome.
|
||||
1. В разделе «Закупки» на самом видном месте должны быть расположены документы «Заказ поставщику» и справочник «Контрагенты».
|
||||
1. В разделе «Закупки» должен быть отдельно выделен подраздел «Складской учёт», содержащий справочник «Склады» и отчёт «Остатки по складам». Логику отчёта реализовывать не надо.
|
||||
1. Раздел «Продажи» на самом видном месте должен содержать пункт «Заказы покупателей».
|
||||
1. Раздел «Отчётность» должен содержать отчёт «Остатки по складам» и «Отчёт по продажам».
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
В созданной ранее конфигурации "Управление ИТ-фирмой", заведите 3 подсистемы:
|
||||
В созданной конфигурации «Управление ИТ-фирмой» заведите три подсистемы:
|
||||
|
||||
* Закупки
|
||||
* Продажи
|
||||
* Отчетность
|
||||
* закупки;
|
||||
* продажи;
|
||||
* отчётность.
|
||||
|
||||
Создайте все объекты метаданных, описанные в разделе "Требование к результату":
|
||||
Создайте объекты метаданных, описанные в разделе «Требование к результату»:
|
||||
|
||||
* 2 документа
|
||||
* 2 справочника
|
||||
* 2 отчета
|
||||
* два документа;
|
||||
* два справочника;
|
||||
* два отчёта.
|
||||
|
||||
При создании документов, добавьте им основные формы списков и формы объектов.
|
||||
При создании отчетов, добавьте им основную форму или схему компоновки данных. Это необходимо, чтобы отчет появился в меню командного интерфейса.
|
||||
При создании документов добавьте им основные формы списков и формы объектов.
|
||||
При создании отчётов добавьте им основную форму или схему компоновки данных. Это нужно, чтобы отчёт появился в меню командного интерфейса.
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Развитие конфигурации "Управление ИТ-фирмой", добавление общих функций, улучшение юзабилити подписей.
|
||||
1. Развитие конфигурации «Управление ИТ-фирмой».
|
||||
1. Добавление общих функций.
|
||||
1. Улучшение юзабилити подписей.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Обеспечьте следующие требования к интерфейсу:
|
||||
Обеспечьте требования к интерфейсу:
|
||||
|
||||
* Все формы списков должны отображать представление во множественном числе, а формы объектов - в единственном. "Заказы покупателей" -> "Заказ покупателя" и т.п. ("Все формы списков" - т.е. формы списков и документов и справочников)
|
||||
* Все документы конфигурации должны иметь кнопку "Печать" в формах списков и объектов. Нажатие на кнопку печать должно показывать предупреждение "Демо-версия. Печать будет реализована позднее". Окно предупреждения должно иметь заголовок "Мы работаем над этим..."
|
||||
1. Все формы списков, т. е. формы списков, документов и справочников, должны отображать представление во множественном числе, а формы объектов — в единственном. «Заказы покупателей» —> «Заказ покупателя» и т. п.
|
||||
2. Все документы конфигурации должны иметь кнопку «Печать» в формах списков и объектов. Нажатие на эту кнопку должно показывать предупреждение «Демо-версия. Печать будет реализована позднее». Окно предупреждения должно иметь заголовок «Мы работаем над этим».
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Добавьте общую команду "Печать". В качестве типа параметра команды укажите документы "Заказ поставщику" и "Заказ покупателю". Добавьте команду в группу "Командная панель формы: Важное"
|
||||
2. Напишите процедуру ОбработкаКоманды для команды "Печать" в соответствии с требованиями
|
||||
1. Добавьте общую команду «Печать». В качестве типа параметра команды укажите документы «Заказ поставщику» и «Заказ покупателю». Добавьте команду в группу «Командная панель формы: Важное».
|
||||
2. Напишите процедуру *ОбработкаКоманды* для команды «Печать» в соответствии с требованиями.
|
||||
3. Задайте правильное представление объекта и представление списка для всех справочников и документов конфигурации.
|
||||
|
||||
# Задание 3
|
||||
## Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
На главной странице приложения требуется отображать сразу 2 формы: список заказов поставщикам и список заказов покупателям. Также, требуется добавить команду быстрой отправки заказа поставщику по электронной почте и быстрого создания документа "Заказ поставщику".
|
||||
На главной странице приложения нужно отображать сразу две формы: список заказов поставщикам и список заказов покупателям. Также нужно добавить команду быстрой отправки заказа поставщику по электронной почте и быстрого создания документа «Заказ поставщику».
|
||||
|
||||
### Требование к результату
|
||||
|
||||
На главной странице приложения отображаются два списка, один под другим, документов "Заказ поставщику" и "Заказ покупателя". В документе "Заказ поставщику" создана команда "Отправить заказ". При нажатии на кнопку должно выдаваться предупреждение "Демо-версия. Данная возможность не реализована". В командах раздела "Продажи" видна команда "Создать" для документа "Заказ покупателя".
|
||||
На главной странице приложения отображаются два списка документов — «Заказ поставщику» и «Заказ покупателя» — один под другим. В документе «Заказ поставщику» создана команда «Отправить заказ». При нажатии на кнопку должно выдаваться предупреждение «Демо-версия. Данная возможность не реализована». В командах раздела «Продажи» видна команда «Создать» для документа «Заказ покупателя».
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Откройте рабочую область начальной страницы. Разместите в одной колонке 2 формы списка: документов "заказы покупателей" и "заказы поставщикам"
|
||||
2. Откройте командный интерфейс раздела "Продажи". Установите флажок "Видимость" у команды "Заказ покупателя: Создать"
|
||||
3. Добавьте в документ "Заказ поставщику" команду "Отправить заказ". Реализуйте процедуру "ОбработкаКоманды" согласно требованиям. Добавьте команду в группу "Командная панель формы: Важное"
|
||||
1. Откройте рабочую область начальной страницы. Разместите в одной колонке две формы списка документов: «Заказы покупателей» и «Заказы поставщикам».
|
||||
2. Откройте командный интерфейс раздела «Продажи». Установите флажок «Видимость» у команды «Заказ покупателя: Создать».
|
||||
3. Добавьте в документ «Заказ поставщику» команду «Отправить заказ». Реализуйте процедуру *ОбработкаКоманды* согласно требованиям. Добавьте команду в группу «Командная панель формы: Важное».
|
||||
|
@ -4,59 +4,59 @@
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать форму внешней обработки "Приглашение на вечеринку"
|
||||
Создать форму внешней обработки «Приглашение на вечеринку».
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма внешней обработки, позволяющая ввести имя гостя и такие параметры его размещения как: "Буду с ночевкой", "Что ест", "Что пьет". При нажатии команды "Сохранить" выдается предупреждение вида "<Имя> принял приглашение. Ест <Что ест>, пьет <что пьет>. Спальное место <потребуется/не потребуется>"
|
||||
Форма внешней обработки, позволяющая ввести имя гостя и параметры его размещения: «Буду с ночёвкой», «Что ест», «Что пьёт». При нажатии команды «Сохранить» выдаётся предупреждение вида «<Имя> принял приглашение. Ест <Что ест>, пьёт <что пьёт>. Спальное место <потребуется/не потребуется>».
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку и добавьте в нее реквизиты:
|
||||
1. Создайте внешнюю обработку и добавьте в неё реквизиты:
|
||||
|
||||
* Имя (строка)
|
||||
* Что ест (строка)
|
||||
* Что пьет (строка)
|
||||
* БудетСНочевкой (булево)
|
||||
* Имя (строка).
|
||||
* Что ест (строка).
|
||||
* Что пьёт (строка).
|
||||
* БудетСНочёвкой (булево).
|
||||
|
||||
2. Создайте основную форму внешней обработки и разместите на ней реквизиты обработки.
|
||||
3. Создайте в форме команду "Сохранить" и в обработчике команды создайте вывод текста в виде предупреждения, использовав обращение к данным формы вида "Объект.<Имя реквизита обработки>"
|
||||
3. Создайте в форме команду «Сохранить» и в обработчике команды создайте вывод текста в виде предупреждения, использовав обращение к данным формы вида «Объект.<Имя реквизита обработки>».
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Развитие обработки "Приглашение на вечеринку"
|
||||
Развитие обработки «Приглашение на вечеринку».
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Поля "Имя", "Что ест", "Что пьет" должны быть обязательны для заполнения и подчеркиваться пунктирной линией, если они не заполнены. В случае, если нажата кнопка "Сохранить", а одно из обязательных полей не заполнено - должно выдаваться окно с указанием незаполненного реквизита.
|
||||
Поля «Имя», «Что ест», «Что пьёт» должны быть обязательны для заполнения и должны подчёркиваться пунктирной линией, если не заполнены. Если нажата кнопка «Сохранить», а одно из обязательных полей не заполнено — должно выдаваться окно с указанием незаполненного реквизита.
|
||||
|
||||
Результат выполнения должен быть сохранен в отдельной обработке с именем "Задание 2.epf"
|
||||
Результат выполнения должен быть сохранён в отдельной обработке с именем «Задание 2.epf».
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Скопируйте обработку, являющуюся результатом выполнения задания 1. Назовите ее "Задание 2"
|
||||
2. Укажите для полей "Имя", "Что ест", "Что пьет", что свойство "Проверка заполнения" имеет значение "Выдавать ошибку"
|
||||
3. В процедуре обработчике команды "Сохранить" вызовите метод ПроверитьЗаполнение и выводите окно с текстом аналогичным прошлому заданию только в том случае если проверка пройдена
|
||||
1. Скопируйте обработку — результат выполнения задания 1. Назовите её «Задание 2».
|
||||
2. Укажите для полей «Имя», «Что ест», «Что пьёт», что свойство «Проверка заполнения» имеет значение «Выдавать ошибку».
|
||||
3. В процедуре обработчике команды «Сохранить» вызовите метод *ПроверитьЗаполнение*. Выводите окно с текстом, аналогичным прошлому заданию только в том случае, если проверка пройдена.
|
||||
|
||||
# Задание 3
|
||||
## Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Работа с данными формы и преобразование в прикладные объекты. Закрепление знаний о различии между данными формы и общими объектами
|
||||
Работа с данными формы и преобразование в прикладные объекты. Закрепление знаний о различии между данными формы и общими объектами.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Внешняя обработка с табличным полем, имеющим колонки "Товар" и "Сумма". При нажатии кнопки "Объединить строки" должна происходить свертка (группировка) таблицы по одинаковым значениям поля "Товар"
|
||||
Внешняя обработка с табличным полем, имеющим колонки «Товар» и «Сумма». При нажатии кнопки «Объединить строки» должна происходить свёртка, т. е. группировка таблицы по одинаковым значениям поля «Товар».
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Создайте новую внешнюю обработку
|
||||
2. Создайте основную форму внешней обработки
|
||||
3. В реквизитах формы создайте новый реквизит "Товары" с типом ТаблицаЗначений. Добавьте в него колонки "Товар" (строка) и "Сумма" (число 18.2)
|
||||
4. Добавьте на форму команду "Объединить строки" и обработчик команды
|
||||
5. Добавьте в модуль формы процедуру с директивой &НаСервере с именем "СверткаСтрок"
|
||||
6. Конвертируйте таблицу "Товары" (`ДанныеФормы`) в универсальную коллекцию `ТаблицаЗначений`
|
||||
7. Воспользуйтесь штатным методом "Свернуть" таблицы значений, чтобы выполнить свертку одинаковых товаров и сложение сумм по ним. Воспользуйтесь синтакс-помощником для корректного применения метода "ТаблицаЗначений.Свернуть"
|
||||
8. Конвертируйте полученную таблицу обратно в данные формы
|
||||
1. Создайте новую внешнюю обработку.
|
||||
2. Создайте основную форму внешней обработки.
|
||||
3. В реквизитах формы создайте новый реквизит «Товары» с типом *ТаблицаЗначений*. Добавьте в него колонки «Товар» (строка) и «Сумма» (число 18.2).
|
||||
4. Добавьте на форму команду «Объединить строки» и обработчик команды.
|
||||
5. Добавьте в модуль формы процедуру с директивой *НаСервере* с именем «СвёрткаСтрок».
|
||||
6. Конвертируйте таблицу «Товары» (`ДанныеФормы`) в универсальную коллекцию `ТаблицаЗначений`.
|
||||
7. Используйте штатный метод «Свернуть» таблицы значений, чтобы выполнить свёртку одинаковых товаров и сложение сумм по ним. Используйте синтакс-помощника для корректного применения метода «ТаблицаЗначений.Свернуть».
|
||||
8. Конвертируйте полученную таблицу обратно в данные формы.
|
||||
|
@ -4,28 +4,28 @@
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать форму с полями ввода различных типов
|
||||
Создать форму с полями ввода различных типов.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма внешней обработки с полями ввода, привязанными к разным типам элементов управления
|
||||
Форма внешней обработки с полями ввода, привязанными к разным типам элементов управления.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку, добавьте в нее основную форму
|
||||
2. На форме разместите реквиты с типом: "Строка", "Булево", "Дата", "Число"
|
||||
3. Строковый реквизит отобразите на форме в виде поля надписи без заголовка (только значение), установив свойство "Положение заголовка" в "Нет"
|
||||
4. Строковый реквизит также отобразите на форме в виде поля ввода
|
||||
5. Реквизит типа "Булево" отобразите на форме в виде флажка
|
||||
6. Реквизит типа "Булево" также отобразите на форме в виде элемента "Поле ввода" с позициями "Так точно" и "Никак нет", соответствующими значениям Истина и Ложь Воспользуйтесь для этого свойством "Список выбора" элемента управления "Поле ввода". Обратите внимание на различное поведение поля при установленном и снятом флажке "Режим выбора из списка". Выберите наиболее подходящий задаче вариант значения флажка "Режим выбора из списка"
|
||||
7. Реквизит типа "Число" отобразите на форме без кнопки "калькулятор" (кнопка выбора). Также задайте свойство "Формат" таким образом, чтобы число отображалось без группировки разрядов и с отделением дробной части числа дефисом. Пример: "25520-71"
|
||||
8. Реквизит типа "Дата" отобразите в виде поля ввода в виде обязательного поля ввода. Используйте для этого признак "Автоотметка незаполненного"
|
||||
1. Создайте внешнюю обработку, добавьте в неё основную форму.
|
||||
2. На форме разместите реквизиты с типом: «Строка», «Булево», «Дата», «Число».
|
||||
3. Строковый реквизит отобразите на форме в виде поля надписи без заголовка (только значение), установив свойство «Положение заголовка» в «Нет».
|
||||
4. Строковый реквизит также отобразите на форме в виде поля ввода.
|
||||
5. Реквизит типа «Булево» отобразите на форме в виде флажка.
|
||||
6. Реквизит типа «Булево» также отобразите на форме в виде элемента «Поле ввода» с позициями «Так точно» и «Никак нет», соответствующими значениям Истина и Ложь. Воспользуйтесь для этого свойством «Список выбора» элемента управления «Поле ввода». Обратите внимание на различное поведение поля при установленном и снятом флажке «Режим выбора из списка». Выберите наиболее подходящий задаче вариант значения флажка «Режим выбора из списка».
|
||||
7. Реквизит типа «Число» отобразите на форме без кнопки «Калькулятор» (кнопка выбора). Также задайте свойство «Формат» так, чтобы число отображалось без группировки разрядов и с отделением дробной части числа дефисом. Пример: 25520-71.
|
||||
8. Реквизит типа «Дата» отобразите в виде обязательного поля ввода. Используйте для этого признак «Автоотметка незаполненного».
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Обработчики событий поля ввода. Механика выбора значений
|
||||
Обработчики событий поля ввода. Механика выбора значений.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
@ -33,39 +33,39 @@
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку. Добавьте в нее основную форму. Назовите ее "ПерваяФорма".
|
||||
2. Добавьте в обработку еще одну форму, при создании укажите тип "Произвольная форма". Назовите ее "ВтораяФорма"
|
||||
3. В первой форме разместите строковый реквизит "ВажныеДанные" и добавьте его на форму в виде элемента управления "Поле ввода"
|
||||
4. Установите свойство "Кнопка выбора" для данного поля в значение "Да", а флаг "Редактирование текста" снимите.
|
||||
5. Добавьте полю ввода обработчик события "НачалоВыбора"
|
||||
6. Во второй форме добавьте параметр "ТекущееЗначение" строкового типа. Укажите, что форма должна блокировать окно владельца
|
||||
7. Во второй форме добавьте текстовое поле "НовоеЗначение" и команду "Применить". Текстовому полю установите признак "Многострочное"
|
||||
8. Во второй форме создайте обработчик "ПриСозданииНаСервере" в котором обеспечьте присваивание полю "НовоеЗначение" значение параметра "ТекущееЗначение"
|
||||
9. Также во второй форме создайте обработчик команды "Применить" в котором с помощью метода "ОповеститьОВыборе" передайте в первую форму значение, указанное в поле "НовоеЗначение"
|
||||
10. Сделайте так, чтобы команда "Применить" выдавала ошибку, если поле "НовоеЗначение" не заполнено
|
||||
11. В обработчике события укажите СтандартнаяОбработка = Ложь, после чего добавьте вызов метода ОткрытьФорму, открывающий вторую форму и передающий в нее в качестве владельца сам элемент управления, событие которого мы обрабатывам (параметр `Элемент` обработчика события) и текущее значение поля "ВажныеДанные"
|
||||
12. Добавьте полю ввода "ВажныеДанные" обработчик события "ОбработкаВыбора". В обработчике присвойте полю "ВажныеДанные" значение входящего параметра "ВыбранноеЗначение"
|
||||
1. Создайте внешнюю обработку. Добавьте в неё основную форму. Назовите её «ПерваяФорма».
|
||||
2. Добавьте в обработку ещё одну форму, при создании укажите тип «Произвольная форма». Назовите её «ВтораяФорма».
|
||||
3. В первой форме разместите строковый реквизит «ВажныеДанные» и добавьте его на форму в виде элемента управления «Поле ввода».
|
||||
4. Установите свойство «Кнопка выбора» для этого поля в значение «Да», а флаг «Редактирование текста» снимите.
|
||||
5. Добавьте полю ввода обработчик события «НачалоВыбора».
|
||||
6. Во второй форме добавьте параметр «ТекущееЗначение» строкового типа. Укажите, что форма должна блокировать окно владельца.
|
||||
7. Во второй форме добавьте текстовое поле «НовоеЗначение» и команду «Применить». Текстовому полю установите признак «Многострочное».
|
||||
8. Во второй форме создайте обработчик «ПриСозданииНаСервере», в котором обеспечьте присваивание полю «НовоеЗначение» значение параметра «ТекущееЗначение».
|
||||
9. Также во второй форме создайте обработчик команды «Применить», в котором с помощью метода «ОповеститьОВыборе» передайте в первую форму значение, указанное в поле «НовоеЗначение».
|
||||
10. Сделайте так, чтобы команда «Применить» выдавала ошибку, если поле «НовоеЗначение» не заполнено.
|
||||
11. В обработчике события укажите *СтандартнаяОбработка = Ложь*, после добавьте вызов метода *ОткрытьФорму*, открывающий вторую форму и передающий в неё в качестве владельца сам элемент управления, событие которого мы обрабатывам (параметр `Элемент` обработчика события) и текущее значение поля «ВажныеДанные».
|
||||
12. Добавьте полю ввода «ВажныеДанные» обработчик события «ОбработкаВыбора». В обработчике присвойте полю «ВажныеДанные» значение входящего параметра «ВыбранноеЗначение».
|
||||
|
||||
# Задание 3
|
||||
## Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Изучение табличного поля
|
||||
Изучение табличного поля.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма с табличным полем, колонки которого расположены в нестандартной группировке
|
||||
Форма с табличным полем, колонки которого расположены в нестандартной группировке.
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Создайте новую внешнюю обработку
|
||||
2. Создайте основную форму внешней обработки
|
||||
3. В реквизитах формы создайте новый реквизит "Товары" с типом ТаблицаЗначений. Добавьте в него колонки
|
||||
* "Товар" (строка)
|
||||
* "Количество" (число 18.2)
|
||||
* "Сумма" (число 18.2)
|
||||
* "СуммаНДС" (число 18.2)
|
||||
5. Добавьте таблицу на форму
|
||||
6. Добавьте с помощью кнопки (+) в колонки таблицы группу колонок с группировкой "Вертикальная"
|
||||
7. Сделайте так, чтобы в форме поля Количество и Сумма находились друг-под-другом, поместив их в группу колонок
|
||||
8. Добавьте обработчик события "ПередОкончаниемРедактирования" табличного поля "Товары". В обработчике напишите алгоритм вычисления суммы НДС (20% от суммы). Сумма НДС должна попасть в поле "СуммаНДС" при окончании редактирования строки. Для получения редактируемой строки воспользуйтесь свойством ТекущиеДанные элемента управления таблицы.
|
||||
1. Создайте новую внешнюю обработку.
|
||||
2. Создайте основную форму внешней обработки.
|
||||
3. В реквизитах формы создайте новый реквизит «Товары» с типом *ТаблицаЗначений*. Добавьте в него колонки:
|
||||
* Товар (строка).
|
||||
* Количество (число 18.2).
|
||||
* Сумма (число 18.2).
|
||||
* СуммаНДС (число 18.2).
|
||||
5. Добавьте таблицу на форму.
|
||||
6. Добавьте с помощью кнопки (+) в колонки таблицы группу колонок с группировкой «Вертикальная».
|
||||
7. Сделайте так, чтобы в форме поля «Количество» и «Сумма» находились друг под другом, поместив их в группу колонок.
|
||||
8. Добавьте обработчик события «ПередОкончаниемРедактирования» табличного поля «Товары». В обработчике напишите алгоритм вычисления суммы НДС (20% от суммы). Сумма НДС должна попасть в поле «СуммаНДС» при окончании редактирования строки. Для получения редактируемой строки используйте свойство «ТекущиеДанные» элемента управления таблицы.
|
@ -4,22 +4,22 @@
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать общую группу команд "Печать" и два варианта печати "Сразу на принтер" и "Предварительный просмотр"
|
||||
Создать общую группу команд «Печать» и два варианта печати: «Сразу на принтер» и «Предварительный просмотр».
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Добавить в конфигурацию из задания 3.1 общую команду печати для объектов "Заказ покупателя" и "Заказ поставщику". Команды должны находиться в общем подменю "Печать".
|
||||
При вызове команды "Сразу на принтер" должно выводиться сообщение "Печать объекта <представление объекта> В разработке. Здесь будет команда вывода на принтер".
|
||||
При вызове команды "Предварительный просмотр" должно выводиться сообщение "Печать объекта <представление объекта> В разработке. Здесь будет команда предварительного просмотра".
|
||||
Добавить в конфигурацию из задания 3.1 общую команду печати для объектов «Заказ покупателя» и «Заказ поставщику». Команды должны находиться в общем подменю «Печать».
|
||||
При вызове команды «Сразу на принтер» должно выводиться сообщение «Печать объекта <представление объекта> В разработке. Здесь будет команда вывода на принтер».
|
||||
При вызове команды «Предварительный просмотр» должно выводиться сообщение «Печать объекта <представление объекта> В разработке. Здесь будет команда предварительного просмотра».
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Возьмите конфигурацию из задания 3.1
|
||||
2. В ветке "Общие/Группы команд" добавьте группу команд "Печать" категории "Командная панель формы".
|
||||
3. Добавьте 2 общие команды "ПечатьНаПринтер" и "ПечатьСПредпросмотром" и поместите их в группу команд "Печать"
|
||||
4. В качестве типа параметра обеих команды укажите документы "Заказ покупателя" и "Заказ поставщику". Не забудьте установить флажок "Составной тип" в окне выбора типа, иначе можно будет выбрать только один документ
|
||||
5. В качестве значения поля "Режим использования параметра" в свойствах команды укажите "Одиночный"
|
||||
6. В каждой команде напишите код процедуры ОбработкаКоманды так, чтобы она выводила требуемое сообщение. Обратите внимание, объект, который мы печатаем будет передан в процедуру ОбработкаКоманды в параметре "ПараметрКоманды"
|
||||
1. Возьмите конфигурацию из задания 3.1.
|
||||
2. В ветке «Общие/Группы команд» добавьте группу команд «Печать» категории «Командная панель формы».
|
||||
3. Добавьте две общие команды «ПечатьНаПринтер» и «ПечатьСПредпросмотром» и поместите их в группу команд «Печать».
|
||||
4. В качестве типа параметра обеих команд укажите документы «Заказ покупателя» и «Заказ поставщику». Не забудьте установить флажок «Составной тип» в окне выбора типа, иначе можно будет выбрать только один документ.
|
||||
5. В качестве значения поля «Режим использования параметра» в свойствах команды укажите «Одиночный».
|
||||
6. В каждой команде напишите код процедуры ОбработкаКоманды так, чтобы она выводила требуемое сообщение. Обратите внимание, объект, который мы печатаем будет передан в процедуру *ОбработкаКоманды* в параметре «ПараметрКоманды».
|
||||
|
||||
|
||||
## Задание 2
|
||||
@ -30,18 +30,22 @@
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть группа команд "Быстрый доступ" отображающая список справочника "Сотрудники" с фильтрацией по полю "Уволен". Команда "Уволенные" открывает список сотрудников с фильтрацией по полю "Уволен = Истина". Команда "Работающие" - список сотрудников с фильтрацией по полю "Уволен = Ложь". Повторный вызов команд должен использовать механизм уникальности форм. Если открыта форма "Уволенные" команда "Работающие" должна все равно открывать вторую форму списка сотрудников с нужной фильтрацией. И наоборот, при открытых "Работающих" список "Уволенных" также должен открываться. Однако, повторный вызов одной и той же команды не должен открывать 2 одинаковых отфильтрованных формы.
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть группа команд «Быстрый доступ», отображающая список справочника «Сотрудники» с фильтрацией по полю «Уволен».
|
||||
|
||||
Команда «Уволенные» открывает список сотрудников с фильтрацией по полю «Уволен = Истина». Команда «Работающие» — список сотрудников с фильтрацией по полю «Уволен = Ложь». Повторный вызов команд должен использовать механизм уникальности форм.
|
||||
|
||||
Если открыта форма «Уволенные», команда «Работающие» должна всё равно открывать вторую форму списка сотрудников с нужной фильтрацией. И наоборот, при открытой форме «Работающие» список «Уволенные» также должен открываться. Но повторный вызов одной и той же команды не должен открывать две одинаковых отфильтрованных формы.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте новую подсистему "Кадровый учет"
|
||||
2. Справочник "Сотрудники" включите в подсистему "Кадровый учет"
|
||||
3. Добавьте в справочник "Сотрудники" реквизит "Уволен" с типом Булево
|
||||
4. Добавьте общую группу команд "Быстрый доступ" и включите ее в подсистему "Кадровый учет". Категория группы команд - Панель навигации
|
||||
5. Добавьте общую команду "Уволенные сотрудники", включите ее в группу команд "Быстрый доступ" и в подсистему "Кадровый учет"
|
||||
6. Добавьте общую команду "Работающие сотрудники", включите ее в группу команд "Быстрый доступ" и в подсистему "Кадровый учет"
|
||||
7. Изучите документацию метода ОткрытьФорму, пользуясь синтакс-помощником и презентацией к лекции 3.3
|
||||
8. В каждой команде в процедуре ОбработкаКоманды воспользуйтесь методом ОткрытьФорму, используя имя формы "Справочник.Сотрудники.ФормаСписка"
|
||||
9. В качестве параметров открываемой формы воспользуйтесь системным параметром формы "Отбор" в который передайте структуру со свойством "Уволен" и значением соответствующего фильтра. У вас должна получится Структура `ПараметрыФормы` со свойством "Отбор", значением отбора является структура со свойством "Уволен", т.е. Структура-в-Структуре.
|
||||
10. В качестве ключа уникальности формы используйте значение текущего статуса сотрудника - уволен или нет.
|
||||
11. В форме списка справочника Сотрудники, если форма открывается с установленным отбором, замените заголовок формы. Когда форма открывается с отбором по только работающим сотрудникам, выводите в заголовок "Работающие сотрудники", если с отбором по уволенным - "Уволенные сотрудники", если форма открывается без отбора (по стандартной команде открытия списка) заголовок меняться не должен
|
||||
1. Создайте новую подсистему «Кадровый учёт».
|
||||
2. Справочник «Сотрудники» включите в подсистему «Кадровый учёт».
|
||||
3. Добавьте в справочник «Сотрудники» реквизит «Уволен» с типом Булево.
|
||||
4. Добавьте общую группу команд «Быстрый доступ» и включите её в подсистему «Кадровый учёт». Категория группы команд — Панель навигации.
|
||||
5. Добавьте общую команду «Уволенные сотрудники», включите её в группу команд «Быстрый доступ» и в подсистему «Кадровый учёт».
|
||||
6. Добавьте общую команду «Работающие сотрудники», включите её в группу команд «Быстрый доступ» и в подсистему «Кадровый учёт».
|
||||
7. Изучите документацию метода *ОткрытьФорму*, пользуясь синтакс-помощником и презентацией к лекции 3.3.
|
||||
8. В каждой команде в процедуре *ОбработкаКоманды* воспользуйтесь методом *ОткрытьФорму*, используя имя формы «Справочник.Сотрудники.ФормаСписка».
|
||||
9. В качестве параметров открываемой формы воспользуйтесь системным параметром формы «Отбор», в который передайте структуру со свойством «Уволен» и значением соответствующего фильтра. У вас должна получиться Структура `ПараметрыФормы` со свойством «Отбор». Значение отбора — структура со свойством «Уволен», т. е. Структура-в-Структуре.
|
||||
10. В качестве ключа уникальности формы используйте значение текущего статуса сотрудника — уволен или нет.
|
||||
11. В форме списка справочника «Сотрудники» замените заголовок формы, если форма открывается с установленным отбором. Когда форма открывается с отбором только по работающим сотрудникам, выводите в заголовок «Работающие сотрудники», если с отбором по уволенным — «Уволенные сотрудники». Если форма открывается без отбора, по стандартной команде открытия списка, заголовок меняться не должен.
|
||||
|
Loading…
Reference in New Issue
Block a user