init
Первоначальная загрузка данных
This commit is contained in:
43
02. Встроенный язык/01. Модули/homework-2-1.md
Normal file
43
02. Встроенный язык/01. Модули/homework-2-1.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Задание к занятию "Модули"
|
||||
|
||||
## Задача 1 "Обработчики событий модуля приложения"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработчик события **ПриНачалеРаботыСистемы**, выводящий простейшее приветствие.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, при запуске выводящей простейшее приветствие.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой**.
|
||||
2. В модуле приложения создайте обработчик события **ПриНачалеРаботыСистемы**.
|
||||
3. В его коде выведите простейшее приветствие вызовом **Сообщить()** или **ПоказатьПредупреждение()**.
|
||||
|
||||
## Задача 2 "Обработчики событий модуля формы"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработчик события **ПриИзменении** элемента **Наименование** формы справочника **Контрагенты**, заполняющий полное наименование - измененным наименованием.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть справочник **Контрагенты** с реквизитом **ПолноеНаименование**, который заполняется значением стандартного реквизита **Наименование** при его изменении.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой** со справочником **Контрагенты** (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-3.md).
|
||||
2. Выберите в форме элемента стандартный реквизит **Наименование** и создайте обработчик события **ПриИзменении** этого элемента.
|
||||
* Проще всего - выбрать это событие из контекстного меню элемента.
|
||||
3. В коде обработчика присвойте реквизиту **Объект.ПолноеНаименование** значение наименования.
|
||||
4. В режиме Предприятия удостоверьтесь, что любое изменение наименования отражается в полном наименовании, но не наоборот.
|
||||
|
||||
## Задача 3 "Обработчики событий модуля объекта"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработчик заполнения справочника **Контрагенты**, назначающий по умолчанию тип **ЮридическоеЛицо**.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть справочник **Контрагенты** с реквизитом **ЮридическоеФизическоеЛицо**, который при создании заполняется автоматически значением **ЮридическоеЛицо**.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой** со справочником **Контрагенты** и перечислением **ЮридическоеФизическоеЛицо** (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-3.md).
|
||||
2. Откройте модуль справочника **Контрагенты** и создайте в нем обработчик события **ОбработкаЗаполнения**.
|
||||
3. Присвойте значению реквизита **ЮридическоеФизическоеЛицо** значение **Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо**.
|
||||
4. В режиме Предприятия удостоверьтесь в том, что новым контрагентам сразу назначается тип **ЮридическоеЛицо**.
|
BIN
02. Встроенный язык/01. Модули/Задание_2_1_1.dt
Normal file
BIN
02. Встроенный язык/01. Модули/Задание_2_1_1.dt
Normal file
Binary file not shown.
BIN
02. Встроенный язык/01. Модули/Задание_2_1_2.dt
Normal file
BIN
02. Встроенный язык/01. Модули/Задание_2_1_2.dt
Normal file
Binary file not shown.
BIN
02. Встроенный язык/01. Модули/Задание_2_1_3.dt
Normal file
BIN
02. Встроенный язык/01. Модули/Задание_2_1_3.dt
Normal file
Binary file not shown.
58
02. Встроенный язык/02. Переменные/homework-2-2.md
Normal file
58
02. Встроенный язык/02. Переменные/homework-2-2.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Задание к занятию "Переменные и параметры сеанса"
|
||||
|
||||
## Задача 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 "Имена переменных"
|
||||
|
||||
### Описание задачи
|
||||
Выберите хорошие названия:
|
||||
- глобальной переменной модуля приложения, хранящей дату последней проверки уведомлений пользователя.
|
||||
- локальной переменной обработчика события **ПриНачалеРаботыСистемы**, хранящей имя текущего пользователя.
|
||||
- реквизита формы элемента справочника Сотрудники, хранящего сведения о том, что соответствующий сотруднику пользователь информационной базы существует.
|
||||
|
||||
### Требования к результату
|
||||
В комментарии к решению описаны три полных, точных и понятных названия, удовлетворяющих требованиям к именам реквизитов и переменных.
|
||||
|
||||
### Процесс выполнения
|
||||
Придумать и дать три полных, точных и понятных названия, удовлетворяющих требованиям к именам реквизитов и переменных.
|
BIN
02. Встроенный язык/02. Переменные/Задание_2_2_2.dt
Normal file
BIN
02. Встроенный язык/02. Переменные/Задание_2_2_2.dt
Normal file
Binary file not shown.
BIN
02. Встроенный язык/02. Переменные/Калькулятор.epf
Normal file
BIN
02. Встроенный язык/02. Переменные/Калькулятор.epf
Normal file
Binary file not shown.
41
02. Встроенный язык/03. Типы данных/homework-2-3.md
Normal file
41
02. Встроенный язык/03. Типы данных/homework-2-3.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Задание к занятию "Типы данных"
|
||||
|
||||
## Задача 1 "Булевский калькулятор"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку-булевский калькулятор, в которой значение и результат обрабатывались бы операциями **И**, **НЕ**, **ИЛИ**.
|
||||
|
||||
### Требования к результату
|
||||
Обработка, аналогичная созданной в задании (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-6.md), где значения и операции были бы булевскими. Операций должно быть три: бинарные **И**, **ИЛИ** и унарная **НЕ** (со значением реквизита **Значение**).
|
||||
|
||||
### Процесс выполнения
|
||||
1. Вызовем команду "Новый" из подменю "Файл" и выберем вид документа "Внешняя обработка".
|
||||
2. Дадим ей имя **БулевскийКалькулятор** и создадим форму, нажав на кнопку с лупой.
|
||||
3. На форму обработки добавим два реквизита типа "Булево": **Значение** и **Результат**.
|
||||
4. Перетащим их на форму, где они станут полями ввода.
|
||||
5. Добавим команды **ОперацияИли**, **ОперацияИ** и **ОперацияНе**.
|
||||
6. Перетащим команды на форму, чтобы они стали кнопками.
|
||||
7. Из контекстного меню каждой кнопки создадим обработчик, выбрав пункт "<Действие команды>" с вариантом "Создать на клиенте".
|
||||
8. В коде каждого обработчика (в процедурах с именами "ОперацияИли", "ОперацияИ", "ОперацияНе") напишем код, проводящий соответствующую операцию со значениями реквизитов **Результат** и **Значение** (операция НЕ - унарная и проводится только со значением реквизита **Результат**);
|
||||
9. Сохраним обработку как файл "БулевскийКалькулятор.epf".
|
||||
|
||||
## Задача 2 "Реквизиты справочника Сотрудники"
|
||||
|
||||
### Описание задачи
|
||||
Создать справочник **Сотрудники** с описанными ниже реквизитами, типы которых соответствуют их смыслу и назначению.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой был бы справочник **Сотрудники** с реквизитами, типы которых соответствуют их смыслу и назначению.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой** из предыдущих заданий (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-3.md).
|
||||
2. Справочник **Сотрудники** измените так, чтобы в нем были реквизиты:
|
||||
* **ДатаРождения**, **ДатаПриема** и **ДатаУвольнения**.
|
||||
* **ИдентификаторПользователяИнформационнойБазы**.
|
||||
* **ИНН** (какова длина ИНН физического лица)?
|
||||
* **Комментарий** (подумайте, нужно ли ограничивать длину комментария).
|
||||
* **Недействителен**.
|
||||
* **Оклад** и **СтавкаЧаса** (Число разумной длины и точности или определяемый тип; можно оставить из предыдущего задания).
|
||||
* **Пол**.
|
||||
* **Фотография** для хранения данных фотографии.
|
||||
Реквизиты, созданные в ходе выполнения предыдущего задания, можно не трогать.
|
BIN
02. Встроенный язык/03. Типы данных/БулевскийКалькулятор.epf
Normal file
BIN
02. Встроенный язык/03. Типы данных/БулевскийКалькулятор.epf
Normal file
Binary file not shown.
BIN
02. Встроенный язык/03. Типы данных/Задание_2_3_2.dt
Normal file
BIN
02. Встроенный язык/03. Типы данных/Задание_2_3_2.dt
Normal file
Binary file not shown.
36
02. Встроенный язык/04. Даты и строки/homework-2-4.md
Normal file
36
02. Встроенный язык/04. Даты и строки/homework-2-4.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Задание к занятию "Даты и строки"
|
||||
|
||||
## Задача 1 "Приветствие"
|
||||
|
||||
### Описание задачи
|
||||
При начале работы программы приветствовать пользователя, подставляя в приветствие текущую дату и время в минутах, прошедшее с начала рабочего дня.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, при запуске приветствующей пользователя выводом сообщения или предупреждения, подставляя в приветствие текущую дату в разумном формате и время в минутах, прошедшее с начала рабочего дня (например, с 9:00). Запуск до начала рабочего дня можно никак специально не обрабатывать.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте произвольную конфигурацию.
|
||||
2. В модуле приложения создайте обработчик **ПриНачалеРаботыСистемы**, если его еще нет.
|
||||
3. В обработчике:
|
||||
* Соберите приветствие в локальную переменную, используя функцию **СтрШаблон()**.
|
||||
* Для получения даты используйте функцию **ТекущаяДата()**.
|
||||
* Не забудьте отформатировать ее функцией **Формат()**.
|
||||
* При расчете времени, прошедшего с начала рабочего дня, считайте началом 9:00 текущего дня.
|
||||
* Запуск до начала рабочего дня можно никак специально не обрабатывать (результат будет отрицательным).
|
||||
* Выведите приветствие (например, "Сегодня 31.12 (минут с начала рабочего дня: 15)") вызовом **Сообщить()** или **ПоказатьПредупреждение()**.
|
||||
|
||||
## Задача 2 "Нестрогое сравнение строк"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку, выводящую "Да" или "Нет" в зависимости от того, равны ли две введенные строки без учета регистра и пробелов.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка, в которой есть два строковых реквизита и поля ввода, а также кнопка "Сравнить", при нажатии на которую обработка выводит "Да", если строки равны без учета регистра (разряда) и пробелов, и Ложь в противном случае.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте внешнюю обработку с именем, например, **НестрогоеСравнениеСтрок**.
|
||||
2. Добавьте в нее два реквизита (строки неограниченной длины) и перетащите их на форму, сделав многострочными полями ввода.
|
||||
3. Добавьте команду **Сравнить** и перетащите ее кнопкой на форму.
|
||||
4. В обработчике команды:
|
||||
* Сохраните результат сравнения строк в локальную булевскую переменную так, чтобы сравнение игнорировало разряд букв и пробелы (например, "ПРИВЕТмир" и "Привет мир" считаются равными).
|
||||
* Выведите результат сравнения, **Истина** или **Ложь**, вызовом **Сообщить()**.
|
BIN
02. Встроенный язык/04. Даты и строки/Задание_2_4_1.dt
Normal file
BIN
02. Встроенный язык/04. Даты и строки/Задание_2_4_1.dt
Normal file
Binary file not shown.
Binary file not shown.
34
02. Встроенный язык/05. Условия/homework-2-5.md
Normal file
34
02. Встроенный язык/05. Условия/homework-2-5.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Задание к занятию "Условия"
|
||||
|
||||
## Задача 1 "Поздравления"
|
||||
|
||||
### Описание задачи
|
||||
При начале работы программы поздравлять пользователя с одной из праздничных дат, если она приходится на сегодня или на завтра.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt), при запуске поздравляющая пользователя выводом сообщения или предупреждения, если сегодняшний или завтрашний день приходится на одну из нескольких праздничных дат (набор праздников - произвольный). Приветствие должно содержать название праздника и собираться функцией **СтрШаблон()**.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте произвольную конфигурацию.
|
||||
2. В модуле приложения создайте обработчик **ПриНачалеРаботыСистемы**, если его еще нет.
|
||||
3. В обработчике:
|
||||
* Проверьте условиями, приходится ли сегодняшняя или завтрашняя дата на праздник из небольшого произвольного набора.
|
||||
* Соберите поздравление в локальную переменную, используя функцию **СтрШаблон()**, название праздника и указание на день ("сегодня" или "завтра").
|
||||
* Выведите поздравление (например, "Поздравляем, сегодня - День монгольского флота!") вызовом **Сообщить()** или **ПоказатьПредупреждение()**.
|
||||
|
||||
## Задача 2 "Проверка введенных данных"
|
||||
|
||||
### Описание задачи
|
||||
Реализовать проверку на заполненность и длину ИНН и КПП перед записью справочника **Контрагенты**.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть справочник **Контрагенты** с ИНН, КПП и видом контрагента ("Юридическое лицо", "Физическое лицо"). Перед записью формы должна выполняться проверка на заполненность и длину ИНН и КПП в зависимости от вида контрагента.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой** со справочником **Контрагенты** из предыдущего задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-1-3.md).
|
||||
2. В форме создайте обработчик события **ПередЗаписью**, в коде которого реализуйте проверку на заполненность и длину ИНН и КПП в зависимости от вида контрагента:
|
||||
* Для юридического лица ИНН и КПП должны быть заполнены; ИНН должен быть длиной 10 знаков, КПП - 9 знаков.
|
||||
* Для физического лица ИНН должен быть длиной 12 знаков, КПП - не заполнен.
|
||||
* Контрольную сумму ИНН и наличие только цифр в ИНН и КПП проверять пока не нужно.
|
||||
* Для получения значения перечисления на клиенте используйте функцию **ПредопределенноеЗначение()**.
|
||||
* При выявлении ошибок устанавливайте параметр обработчика **Отказ** в **Истина** и выводите разумное сообщение вызовом **Сообщить**.
|
BIN
02. Встроенный язык/05. Условия/Задание_2_5_1.dt
Normal file
BIN
02. Встроенный язык/05. Условия/Задание_2_5_1.dt
Normal file
Binary file not shown.
BIN
02. Встроенный язык/05. Условия/Задание_2_5_2.dt
Normal file
BIN
02. Встроенный язык/05. Условия/Задание_2_5_2.dt
Normal file
Binary file not shown.
39
02. Встроенный язык/06. Циклы/homework-2-6.md
Normal file
39
02. Встроенный язык/06. Циклы/homework-2-6.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Задание к занятию "Циклы"
|
||||
|
||||
## Задача 1 "Подсчет числа дней"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку, подсчитывающую число рабочих и выходных дней в указанном пользователем интервале.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка с двумя реквизитами и полями ввода, задающими начало и конец интервала, и кнопкой "Подсчитать", по нажатию на которую подсчитывается и выводится пользователю число рабочих и выходных дней в указанном интервале дат.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте внешнюю обработку с именем, например, **ПодсчетЧислаДней**.
|
||||
2. Добавьте в нее два реквизита типа Дата - например, **ДатаНач** и **ДатаКон** - и перетащите их на форму.
|
||||
3. Добавьте команду **Подсчитать** и перетащите ее кнопкой на форму.
|
||||
4. В обработчике команды:
|
||||
* Объявите две переменных-счетчика числа рабочих и выходных дней.
|
||||
* Обойдите в цикле все даты от начальной до конечной включительно.
|
||||
* В зависимости от дня недели даты прибавьте единицу к одному из двух счетчиков.
|
||||
* Выведите результаты вызовом **Сообщить()** или **ПоказатьПредупреждение()**, формируя строку с помощью **СтрШаблон()**.
|
||||
|
||||
|
||||
## Задача 2 "Обработка текста"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку, находящую во введенном тексте самое длинное и самое короткое слово.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка с реквизитом и многострочным полем ввода для текста и кнопкой "Найти", по нажатию на которую определяется и выводится пользователю самое длинное и самое короткое слово.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте внешнюю обработку с именем, например, **ОбработкаТекста**.
|
||||
2. Добавьте в нее реквизит типа **Строка** - например, **Текст** - и перетащите его на форму, сделав многострочным полем ввода.
|
||||
3. Добавьте команду **НайтиСлова** и перетащите ее кнопкой на форму.
|
||||
4. В обработчике команды:
|
||||
* Объявите две переменных для самого длинного и самого короткого слова.
|
||||
* Разделите текст на слова вызовом **СтрРазделить()**.
|
||||
* Обойдите в цикле все слова.
|
||||
* В зависимости от длины сохраните текущее слово как самое длинное или самое короткое.
|
||||
* Выведите результаты вызовом **Сообщить()** или **ПоказатьПредупреждение()**, формируя строку с помощью **СтрШаблон()**.
|
BIN
02. Встроенный язык/06. Циклы/ОбработкаТекста.epf
Normal file
BIN
02. Встроенный язык/06. Циклы/ОбработкаТекста.epf
Normal file
Binary file not shown.
BIN
02. Встроенный язык/06. Циклы/ПодсчетЧислаДней.epf
Normal file
BIN
02. Встроенный язык/06. Циклы/ПодсчетЧислаДней.epf
Normal file
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
# Задание к занятию "Универсальные коллекции"
|
||||
|
||||
## Задача 1 "Универсальное поздравление"
|
||||
|
||||
### Описание задачи
|
||||
Переделать поздравления из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) на поиск даты в массиве структур.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt), при начале работы системы выводящая подравление с сегодняшней или завтрашней праздничной датой, находя ее в заранее подготовленном массиве структур.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию из прошлого задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md).
|
||||
2. Объявите переменную-массив праздничных дат.
|
||||
3. Добавьте в него несколько праздничных дат в виде структур со свойствами **День**, **Месяц**, **Название**.
|
||||
4. Определите, не является ли текущая дата праздничной или предпраздничной, обходя в цикле этот заранее подготовленный массив структур, и покажите соответствующее поздравление.
|
||||
|
||||
## Задача 2 "Подсчет числа уникальных слов"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку, подсчитывающую число уникальных слов во введенном пользователем тексте.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка с реквизитом и многострочным полем ввода для текста и кнопкой "Подсчитать", по нажатию на которую определяется и выводится пользователю число уникальных слов в тексте без учета регистра. Иначе говоря, слово, встречающееся в тексте несколько раз, учитывается в итоговом результате лишь однажды.
|
||||
|
||||
_Например: для текста "Привет привет ПрИвЕт Нетология" результат должен быть 2_
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте внешнюю обработку с именем, например, **ПодсчетЧислаУникальныхСлов**.
|
||||
2. Добавьте в нее реквизит типа **Строка** - например, **Текст** - и перетащите его на форму, сделав многострочным полем ввода.
|
||||
3. Добавьте команду **Подсчитать** и перетащите ее кнопкой на форму.
|
||||
4. В обработчике команды:
|
||||
* Создайте **Соответствие** для хранения уникальных слов.
|
||||
* Разделите текст на слова вызовом **СтрРазделить()**.
|
||||
* Обойдите в цикле все слова.
|
||||
* Вставляйте в соответствие слово, приведя его к верхнему или нижнему регистру.
|
||||
* Выведите результат - число элементов соответствия - вызовом **Сообщить()** или **ПоказатьПредупреждение()**, формируя строку с помощью **СтрШаблон()**.
|
BIN
02. Встроенный язык/07. Универсальные коллекции/Задание_2_7_1.dt
Normal file
BIN
02. Встроенный язык/07. Универсальные коллекции/Задание_2_7_1.dt
Normal file
Binary file not shown.
Binary file not shown.
33
02. Встроенный язык/08. Объекты платформы/homework-2-8.md
Normal file
33
02. Встроенный язык/08. Объекты платформы/homework-2-8.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Задание к занятию "Объекты платформы"
|
||||
|
||||
## Задача 1 "Случайный ИНН"
|
||||
|
||||
### Описание задачи
|
||||
Создать обработку, генерирующую случайный 10-значный ИНН с верным контрольным разрядом.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка с кнопкой **Сгенерировать**, по нажатию выводящая случайный 10-значный ИНН с верным контрольным разрядом.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте внешнюю обработку с названием, например, **СлучайныйИНН**.
|
||||
2. Добавьте команду **Сгенерировать** и перетащите ее кнопкой на форму.
|
||||
3. В обработчике команды:
|
||||
* Создайте новый **ГенераторСлучайныхЧисел**.
|
||||
* Объявите переменную для хранения ИНН.
|
||||
* В цикле добавьте к ИНН 9 случайных цифр, подсчитывая контрольный разряд.
|
||||
* Контрольный разряд определяется получением остатка от деления контрольной суммы на 11 (остаток 10 - разряд 0).
|
||||
* Контрольная сумма определяется сложением произведений разрядов ИНН последовательно на 2, 4, 10, 3, 5, 9, 4, 6, 8.
|
||||
* Добавьте к ИНН контрольный разряд и выведите ИНН.
|
||||
|
||||
## Задача 2 "Текстовый документ"
|
||||
|
||||
### Описание задачи
|
||||
Переделать обработку "Подсчет числа уникальных слов" (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-7.md) на работу с текстовым документом.
|
||||
|
||||
### Требования к результату
|
||||
Внешняя обработка с реквизитом типа "Текстовый документ" и полем текстового документа, в которой есть кнопка "Подсчитать", по нажатию на которую определяется и выводится пользователю число уникальных слов в текстовом документе без учета регистра.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте обработку из прошлого задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-7.md).
|
||||
2. Вместо строкового реквизита **Текст** добавьте в нее реквизит **Текст** типа "Текстовый документ" и перетащите его на форму.
|
||||
3. Переделайте код, подсчитывающий число уникальных слов, на работу с содержимым этого текстового документа.
|
Binary file not shown.
BIN
02. Встроенный язык/08. Объекты платформы/СлучайныйИНН.epf
Normal file
BIN
02. Встроенный язык/08. Объекты платформы/СлучайныйИНН.epf
Normal file
Binary file not shown.
40
02. Встроенный язык/09. Процедуры и функции/homework-2-9.md
Normal file
40
02. Встроенный язык/09. Процедуры и функции/homework-2-9.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Задание к занятию "Процедуры и функции"
|
||||
|
||||
## Задача 1 "Поздравление с днем рождения"
|
||||
|
||||
### Описание задачи
|
||||
Дополнить поздравления (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-7.md, https://github.com/netology-code/1c-homeworks/blob/master/homework-2-3.md) поздравлением сотрудников с днем рождения.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt), в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой** из прошлых заданий, в которой есть справочник **Сотрудники** с датой рождения и механизм поздравлений.
|
||||
2. Создайте параметр сеанса **СотрудникТекущегоПользователя** типа **СправочникСсылка.Сотрудники**.
|
||||
3. В модуле сеанса создайте обработчик **УстановкаПараметровСеанса**, в коде которого:
|
||||
* Определите полное имя текущего пользователя (**ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя**).
|
||||
* Найдите соответствующего сотрудника в справочнике поиском по наименованию (**Справочники.Сотрудники.НайтиПоНаименованию()**). **Обратите внимание**: это сработает, лишь если наименование элемента справочника и полное имя пользователя ИБ совпадают до символа.
|
||||
* Проинициализируйте найденным сотрудником параметр сеанса.
|
||||
4. Создайте общий модуль **СотрудникиСервер**, в котором реализуйте экспортные функции:
|
||||
* **СотрудникТекущегоПользователя()**, возвращающую значение одноименного параметра сеанса.
|
||||
* **ДеньРожденияТекущегоПользователя()**, возвращающую значение реквизита **ДеньРождения** сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку.
|
||||
5. Создайте общий модуль **СотрудникиВызовСервера**, в котором реализуйте экспортную функцию-интерфейс для функции **СотрудникиСервер.ДеньРожденияТекущегоПользователя()**.
|
||||
6. В обработчике **ПриНачалеРаботыСистемы** модуля приложения определите день рождения текущего пользователя вызовом **СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя()**, и, если он совпадает с текущей датой - выведите поздравление.
|
||||
|
||||
## Задача 2 "Проверка ИНН контрагента"
|
||||
|
||||
### Описание задачи
|
||||
Дополнить проверку реквизитов контрагента из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) проверкой контрольной суммы 10-значного ИНН.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, изолированной от контекста формы.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте конфигурацию из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md).
|
||||
2. В модуле формы реализуйте функцию **ИННВерен()**:
|
||||
* С директивой компиляциии **&НаКлиентеНаСервереБезКонтекста**.
|
||||
* В качестве параметра принимающую ИНН.
|
||||
* Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
|
||||
* Проверяющую контрольный разряд 10-значного ИНН аналогично задаче "Случайный ИНН" (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-8.md).
|
||||
* 12-значный ИНН для простоты можно не проверять (например, считать верным).
|
||||
3. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.
|
BIN
02. Встроенный язык/09. Процедуры и функции/Задание_2_9.dt
Normal file
BIN
02. Встроенный язык/09. Процедуры и функции/Задание_2_9.dt
Normal file
Binary file not shown.
BIN
02. Встроенный язык/certificate.pdf
Normal file
BIN
02. Встроенный язык/certificate.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user