1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/homework-2-2.md

95 lines
9.3 KiB
Markdown
Raw Normal View History

2020-03-14 10:49:22 +02:00
# Задание к занятию "Переменные и параметры сеанса"
2023-05-24 13:14:54 +02:00
_Примерное время выполнения: 60 минут_
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
Любые вопросы по решению задач задавайте в чате учебной группы.
## Цель задания
1. Закрепить на практике работу с переменными
2. Научиться сохранять время старта сеанса
Решение задания научит вас работать с параметрами сеанса, присваивать переменным значения и менять эти значения местами. Эти навыки пригодятся для выполнения домашнего задания в дальнейшем.
## Чеклист готовности к домашнему заданию
- [ ] Установлена учебная платформа версии 8.3.20 или больше.
- [ ] Развернута информационная база с конфигурацией **УправлениеИТФирмой**, полученная по итогу выполнения [домашнего задания к занятию Модули](/homework-2-1.md)
- [ ] Подготовлена обработка **Калькулятор**, полученная по итогу выполнения [домашнего задания к занятию Внешние отчеты, обработки и расширения](/homework-1-6.md)
## Инструкция к заданию
1. Решите описанные задачи в конфигураторе.
2. Протестируйте решение в пользовательском режиме.
3. Отправьте на проверку в личном кабинете Нетологии файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решения по всем задачам и файл обработки (.epf) Калькулятор. Файлы прикрепите в раздел "решение" в практическом задании.
2020-03-14 10:49:22 +02:00
## Задача 1 "Развитие Калькулятора"
### Описание задачи
2023-05-24 13:14:54 +02:00
Вы хотите добавить в обработку **Калькулятор** стандартные для настольных калькуляторов функции работы с памятью:
2020-03-14 10:49:22 +02:00
- команду, меняющую местами значения реквизитов Значение и Результат.
- команды добавления значения к памяти, вычитания из памяти, очистки и вывода памяти в значение.
### Требования к результату
2023-05-24 13:14:54 +02:00
В обработку "Калькулятор" добавлены:
2020-03-14 10:49:22 +02:00
* реквизит и поле формы **Память**;
* кнопки:
* меняющие местами **Значение** и **Результат**.
2023-05-24 13:14:54 +02:00
* добавляющие и вычитающие **Результат** из **Памяти**.
2020-03-14 10:49:22 +02:00
* очищающие **Память** и выводящие **Память** в **Значение**.
### Процесс выполнения
1. Добавляем в обработку реквизит **Память** (Число разумной точности) и переносим его на форму как поле ввода или поле надписи.
2. Добавляем команды:
2023-05-24 13:14:54 +02:00
* **ОбменятьЗначениеРезультат** ("Значение <-> Результат");
* **ДобавитьРезультатКПамяти** ("Память+");
* **ВычестьРезультатИзПамяти** ("Память-");
* **ОчиститьПамять** ("Память Х");
* **ПамятьВЗначение** ("Память -> Значение");
3. Команды перетаскиваем на форму кнопками и создаем обработчики, вызвав команду "<Действие команды>" из контекстного меню кнопки.
4. В обработчиках команд реализуем программный код для работы с памятью. Используйте операторы присваивания и арифметические операции сложение и вычитание. Для обмена значениями понадобится временная переменная, которую можно объявить заранее.
<details>
<summary>Пример работы калькулятора</summary>
<p align="center" width="100%">
<img width="75%" src="Examples/img/example-2-2-1.gif">
</p>
</details>
2020-03-14 10:49:22 +02:00
2023-05-24 13:14:54 +02:00
## Задача 2 "Параметры сеанса"
2020-03-14 10:49:22 +02:00
### Описание задачи
2023-05-24 13:14:54 +02:00
Вам требуется создать параметр сеанса **ВремяНачалаСеанса**, который хранил бы на сервере сведения о времени начала сеанса. Реализуйте обработку для получения информации о длительности текущего сеанса в секундах.
2020-03-14 10:49:22 +02:00
### Требования к результату
2023-05-24 13:14:54 +02:00
Выгружена информационную базу с конфигурацией, в которой созданы:
- Параметр сеанса **ВремяНачалаСеанса** типа Дата и время, который после запуска клиентского сеанса хранил время, в которое был запущен сеанс;
- Обработка **ПроверкаДлительностиСеанса** с командой **Длительность сеанса** в основной форме.
2020-03-14 10:49:22 +02:00
### Процесс выполнения
2023-05-24 13:14:54 +02:00
1. Добавляем параметр сеанса **ВремяНачалаСеанса** типа **Дата** с составом даты **Дата и время**.
2. В модуле сеанса создаем обработчик **УстановкаПараметровСеанса**, в коде которого записываем в параметр сеанса текущее время, полученное с помощью метода `ТекущаяДатаСеанса()`.
3. Создаем общий модуль **СеансыВызовСервера** с флажками **Сервер** и **Вызов сервера**
4. Реализуем в модуле **СеансыВызовСервера** экспортную функцию **ВремяНачалаСеанса**, которая будет возвращать значение параметра сеанса **ВремяНачалаСеанса**
5. Создаем обработку **ПроверкаДлительностиСеанса**, основную форму обработки, на форму добавляем команду **Длительность сеанса** и назначаем обработчик
6. В обработчике команды **Длительность сеанса** получаем значение параметра сеанса и выводим пользователю информацию о длительности сеанса:
- Чтобы получить длительность сеанса в секундах необходимо из `ТекущаяДата()` вычесть время начала сеанса, полученное из функции.
- Для вывода длительности пользователю можно использовать метод `Сообщить()`
2020-03-14 10:49:22 +02:00
2023-05-24 13:14:54 +02:00
## Критерии оценки
2020-03-14 10:49:22 +02:00
2023-05-24 13:14:54 +02:00
Задание считается выполненным при соблюдении следующих условий:
1. Решение включает выгрузку в формате dt с конфигурацией **УправлениеИТФирмой** и внешнюю обработку **Калькулятор**;
2. В обработке **Калькулятор** есть функции сохранения числа в память, прибавление к памяти, вычитание из памяти, очистка памяти и чтение памяти;
3. В конфигурации **УправлениеИТФирмой** есть обработка **ПроверкаДлительностиСеанса**, которая при нажатии на команду **Длительность санса** выводит информацию сколько секунд прошло с момента запуска приложения.
2020-03-14 10:49:22 +02:00
2023-05-24 13:14:54 +02:00
## Подсказка:
2020-03-14 10:49:22 +02:00
2023-05-24 13:14:54 +02:00
Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по [ссылке](https://github.com/netology-code/1c-homeworks/blob/vy-new-format/Examples/homework-2-2-example.md)