1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2025-02-10 18:10:35 +02:00
1c-homeworks/homework-1-4.md

92 lines
6.1 KiB
Markdown
Raw Permalink Normal View History

# Задание к занятию "Виды клиентов и режимы работы"
2020-02-23 17:23:45 +03:00
*Примерное время выполнения: 45 минут*
2020-02-23 17:23:45 +03:00
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
2020-02-23 17:23:45 +03:00
Любые вопросы по решению задач задавайте в чате учебной группы.
2020-02-23 17:23:45 +03:00
## Цель задания
Выполнив это задание, вы научитесь определять, где выполняется программный код и работают обработчики нескольких событий платформы
## Чеклист готовности к домашнему заданию
- [ ] Установить платформа версии 8.3.25 или выше
- [ ] Развернуть информационная база с конфигурацией **УправлениеИТФирмой**, полученная по итогу выполнения [домашнего задания к занятию Дерево метаданных](/homework-1-3.md).
## Описание задания
В рамках этого домашнего задания нужно:
1. Реализовать универсальный механизм, позволяющий узнать, в каком контексте работает программный код (на клиенте или на сервере)
2. Выяснить, где работают обработчики “ПриНачалеРаботыСистемы” модуля приложения, “УстановкаПараметровСеанса” модуля сеанса и “ОбработкаПроверкиЗаполнения” модуля объекта
## Инструкция к выполнению
Используйте для работы базу, получившуюся в результате выполнения предыдущего домашнего задания
## Задача 1. "Механизм для определения контекста"
### Процесс выполнения
1. Создайте общий модуль “КонтекстВыполненияКлиентСервер”
2. В свойствах модуля установите флажки “Клиент”, “Сервер”, “Внешнее соединение”
3. Разместите в нем функцию:
```bsl
Функция ТекущийКонтекст() Экспорт
#Если Сервер Тогда
Возврат "Сервер";
#ИначеЕсли ТонкийКлиент Тогда
Возврат "Тонкий клиент";
#ИначеЕсли ВебКлиент Тогда
Возврат "Веб-клиент";
#ИначеЕсли МобильныйКлиент Тогда
Возврат "Мобильный клиент";
#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда
Возврат "Толстый клиент (Обычное приложение)";
#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда
Возврат "Толстый клиент (Обычное приложение)";
#Иначе
Возврат "Неизвестный контекст";
#КонецЕсли
КонецФункции
```
## Задача 2 "Эксперимент с определением контекста"
### Процесс выполнения
1. Откройте модуль приложения (Правой кнопкой мыши на корень конфигурации / “Модуль приложения”) и добавьте туда код:
```bsl
Процедура ПриНачалеРаботыСистемы()
Сообщить("При начале работы системы: " + КонтекстВыполненияКлиентСервер.ТекущийКонтекст());
КонецПроцедуры
```
2. Откройте модуль сеанса (Правой кнопкой мыши на корень конфигурации / “Модуль сеанса” ) и добавьте туда код:
```bsl
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
Сообщить("Установка параметров сеанса: " + КонтекстВыполненияКлиентСервер.ТекущийКонтекст());
КонецПроцедуры
```
3. Откройте модуль объекта справочника Контрагенты (правой кнопкой мыши на справочник / “Модуль объекта”) и добавьте туда код:
```bsl
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Сообщить("Обработка проверки заполнения: " + КонтекстВыполненияКлиентСервер.ТекущийКонтекст());
КонецПроцедуры
```
4. Запустите приложение и убедитесь, что при старте вывелось 2 сообщения. Запишите любой элемент справочника “Контрагенты” и убедитесь, что вывелось сообщение
2020-12-22 11:06:15 +03:00
## Обратите внимание
Это самостоятельное задание без проверки экспертом. Мы рекомендуем выполнить его, чтобы закрепить полученные знания
## Формат сдачи
Загрузите выгрузку базы с внесенными изменениями в формате dt в поле «Ссылка на решение» и нажмите «Отправить на проверку». После загрузки решения вы получите пример решения задания от эксперта