# Задание к занятию "Переменные и параметры сеанса" ## Задача 1 "Развитие Калькулятора" ### Описание задачи Добавить в обработку "Калькулятор": - команду, меняющую местами значения реквизитов Значение и Результат. - команды добавления значения к памяти, вычитания из памяти, очистки и вывода памяти в значение. ### Требования к результату Обработка "Калькулятор" из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-6.md), в которой есть: * реквизит и поле формы **Память**; * кнопки: * меняющие местами **Значение** и **Результат**. * добавляющие и вычитающие **Значение** из **Памяти**. * очищающие **Память** и выводящие **Память** в **Значение**. ### Процесс выполнения 1. Добавляем в обработку реквизит **Память** (Число разумной точности) и переносим его на форму как поле ввода или поле надписи. 2. Добавляем команды: * **ОбменятьЗначениеРезультат** ("Значение <-> Результат"); * **ДобавитьЗначениеКПамяти** ("Память+"); * **ВычестьЗначениеИзПамяти** ("Память-"); * **ОчиститьПамять** ("Память Х"); * **ПамятьВЗначение** ("Память -> Значение"); 3. Команды перетаскиваем на форму кнопками и создаем обработчики, вызвав комаду "<Действие команды>" из контекстного меню кнопки. 4. В обработчиках команд реализуем очевидный код. Для обмена значениями понадобится временная переменная, которую можно объявить заранее. ## Задача 2 "Параметр сеанса" ### Описание задачи Создать параметр сеанса **ЭтоВебКлиент**, который хранил бы на сервере сведения о типе запущенного клиента. ### Требования к результату Выгрузка информационной базы (.dt) с конфигурацией, в которой был бы булевский параметр сеанса **ЭтоВебКлиент**, который после запуска клиентского сеанса хранил бы значение **Истина** (веб-клиент) или **Ложь** (другие типы клиентов или вообще без клиента). ### Процесс выполнения 1. Добавляем параметр сеанса **ЭтоВебКлиент** типа **Булево**. 2. В модуле сеанса создаем обработчик **УстановкаПараметровСеанса**, в коде которого инициализируем его значением **Ложь** (здесь мы еще не знаем, каков клиент). 3. Создаем общий модуль с флажком **Вызов сервера**, а в нем - экспортную процедуру **ЭтоВебКлиент**, которая присваивает параметру сеанса значение **Истина**. 4. В модуле приложения создаем обработчик **ПередНачаломРаботыСистемы**, в коде которого, используя инструкцию препроцессора **#Если ВебКлиент Тогда <...> #КонецЕсли**, вызываем **ЭтоВебКлиент()** при работе из веб-клиента (в иных случаях можно ничего не вызывать). ## Задача 3 "Имена переменных" ### Описание задачи Выберите хорошие названия: - глобальной переменной модуля приложения, хранящей дату последней проверки уведомлений пользователя. - локальной переменной обработчика события **ПриНачалеРаботыСистемы**, хранящей имя текущего пользователя. - реквизита формы элемента справочника Сотрудники, хранящего сведения о том, что соответствующий сотруднику пользователь информационной базы существует. ### Требования к результату В комментарии к решению описаны три полных, точных и понятных названия, удовлетворяющих требованиям к именам реквизитов и переменных. ### Процесс выполнения Придумать и дать три полных, точных и понятных названия, удовлетворяющих требованиям к именам реквизитов и переменных.