init
Первоначальная загрузка данных
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
.DS_Store
|
@ -0,0 +1,38 @@
|
||||
# Задание к занятию "Введение в платформу"
|
||||
|
||||
## Задача 1 "Создание пустой конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Следует создать информационную базу с пустой конфигурацией, дать ей имя и сохранить конфигурацию в файл.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл конфигурации с расширением .cf, содержащий пустую конфигурацию с каким-нибудь именем.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Скачайте и установите дистрибутив платформы "1С-Предприятие" для обучения программированию (https://v8.1c.ru/podderzhka-i-obuchenie/uchebnye-versii/).
|
||||
2. Запустите платформу в режиме толстого клиента (1c8t.exe). Добавьте в список информационных баз пустую базу "Управление ИТ-фирмой".
|
||||
3. Запустите эту информационную базу в режиме Конфигуратора.
|
||||
4. Переименуйте конфигурацию в **УправлениеИТФирмой**.
|
||||
5. Сохраните конфигурацию в файл .cf и предъявите как результат выполнения задания.
|
||||
|
||||
## Задача 2 "Выгрузка и загрузка информационной базы и конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Следует загрузить демонстрационную базу, загрузить ее конфигурацию в пустую информационную базу и выгрузить пустую информационную базу с демо-конфигурацией.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл выгрузки информационной базы с расширением .dt, содержащий конфигурацию демобазы, но без ее данных.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Скачайте и установите дистрибутив платформы "1С-Предприятие" для обучения программированию (https://v8.1c.ru/podderzhka-i-obuchenie/uchebnye-versii/).
|
||||
2. Запустите платформу в режиме толстого клиента (1c8t.exe). Добавьте в список информационных баз пустую базу "Курс 1С-разработчик (демо)" и загрузите в нее демо-базу из файла (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
3. Сохраните конфигурацию в произвольный файл .cf.
|
||||
4. Добавьте в список информационных баз пустую базу "Курс 1С-разработчик (пустая)" и загрузите в нее конфигурацию, выгруженную из демо-базы на предыдущем шаге.
|
||||
5. Согласитесь с предложением обновить конфигурацию базы данных и запустите пустую базу в режиме "Предприятие". Убедитесь, что вам доступны списки "Блоки", "Модули", "Лекции" и "Задания", и что они пусты.
|
||||
6. Выгрузите пустую информационную базу с конфигурацией в .dt и предъявите как результат выполнения задания.
|
@ -0,0 +1,81 @@
|
||||
# Задание к занятию "Среда разработки и конфигурация"
|
||||
|
||||
## Задача 1 "Основные свойства конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно создать с нуля пустую конфигурацию, заполнить ее имя и основные свойства.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .cf конфигурации с заполненным именем и несколькими основными свойствами.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте пустую конфигурацию и назовите ее **УправлениеИТФирмой**. Можно взять конфигурацию из практическго задания предыдущей лекции.
|
||||
2. В дальнейшем эта конфигурация будет вашим дипломным проектом. Задайте осмысленным образом ее основные свойства: синоним, комментарий, краткое и подробное описание, а также информацию о правах.
|
||||
3. Загрузите подходящий логотип и заставку.
|
||||
4. Обновите конфигурацию базы данных.
|
||||
5. Запустите конфигурацию в режиме Предприятия. Убедитесь, что информация и картинки на заставке и в "Сведениях о программе" выглядят нормально и соответствуют введенному вами.
|
||||
6. Сохраните конфигурацию в .cf и предъявите как результат выполнения задания.
|
||||
|
||||
## Задача 2 "Сравнение и объединение конфигураций"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно объединить конфигурацию демобазы с конфигурацией из файла, взяв из файла новый справочник **Студенты**, удалив неиспользуемый справочник **УдалитьПользователи** и сохранив неизменным справочник **Лекции**.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .cf конфигурации, содержащий:
|
||||
- справочник **Студенты**.
|
||||
- табличную часть **ВыполнениеСтудентами** справочника **Задания**.
|
||||
В форме элемента справочника **Лекции** должна остаться закладка **Задания**.
|
||||
Справочник **УдалитьПользователи** должен отсутствовать.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте пустую ИБ и загрузите в нее демо-базу "Курс 1С-разработчик" (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
2. В режиме сравнения объедините ее с конфигурацией (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-students.cf). При этом:
|
||||
- Возьмите из объединяемой конфигурации новый справочник **Студенты** и все изменения в справочнике **Задания**.
|
||||
- В настройках объединения включите режим "Разрешить удаление объектов основной конфигурации" и удалите отсутствующий в загружаемой конфигурации справочник **УдалитьПользователи**.
|
||||
- Справочник **Лекции**, напротив, оставьте неизменным: в объединяемой конфигурации там нет важной закладки "Задания", которая есть в основной.
|
||||
3. Закончите объединение и запустите ИБ в режиме "Предприятие", обновив конфигурацию БД. Удостоверьтесь в том, что в интерфейсе появился новый справочник "Студенты", а в формах заданий появилась закладка "Выполнение".
|
||||
4. Сохраните конфигурацию в файл .cf и предъявите как результат выполнения задания.
|
||||
|
||||
## Задача 3 "Проверка конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Требуется проверить демо-конфигурацию на предмет двух специально привнесенных ошибок и исправить их согласно тексту комментариев рядом с ошибками.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .cf конфигурации, не выдающий ошибок проверки.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте пустую ИБ и загрузите в нее демо-базу "Курс 1С-разработчик" (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
2. Запустите проверку конфигурации в самом придирчивом режиме, установив все флажки, кроме флажков мобильного приложения.
|
||||
3. Исправьте выявленные ошибки согласно комментариям в коде, пока проверка не перестанет выводить ошибки.
|
||||
4. Сохраните исправленную конфигурацию в .cf и предъявите как результат.
|
||||
|
||||
## Задача 4 "Обновление конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно обновить конфигурацию демобазы до версии 1.0.0.2 файлом обновления.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл конфигурации демобазы (.cf), обновленный до версии 1.0.0.2, в котором есть заставка и удален справочник УдалитьПользователи.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте пустую ИБ и загрузите в нее демо-базу "Курс 1С-разработчик" (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
2. Обновите ее конфигурацией (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-1.0.0.2.cfu).
|
||||
3. Запустите конфигурацию, обновив конфигурацию ИБ, и удостоверьтесь, что:
|
||||
- версия конфигурации изменилась (например, в окне "О программе");
|
||||
- появилась заставка;
|
||||
- справочник "(не исп) Пользователи" исчез.
|
||||
4. Обновленную конфигурацию сохраните как результат выполнения задания.
|
@ -0,0 +1,65 @@
|
||||
# Задание к занятию "Дерево метаданных"
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результатом выполнения всех трех задач может быть общий файл .CF конфигурации, содержащий все, созданное в ходе выполнения задач.
|
||||
Для выполнения всех трех задач, используйте базу с конфигурацией **УправлениеИТФирмой**, созданную Вами ранее
|
||||
|
||||
(частая ошибка: Не следует использовать конфигурацию "Курс1СРазработчик" со справочниками "Блоки", "Лекции" и т.д. Возьмите пустую конфигурацию, для которой задавали наименование, логотип и заставку, добавляйте объекты в нее. Далее мы будем развивать функционал этой конфигурации и лишние объекты могут вам мешать)
|
||||
|
||||
## Задача 1 "Создание справочника **Сотрудники**"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно создать справочник **Сотрудники** и функциональную опцию **ВестиРасчетЗарплаты**, включив в ее состав реквизиты сотрудников, относящиеся к зарплате.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .CF конфигурации, содержащий справочник **Сотрудники** с реквизитами **Email**, **Телефон**, **Оклад** и **СтавкаЧаса**, и функциональную опцию, в состав которой включены реквизиты, относящиеся к расчету зарплаты.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой**, созданную в первом задании.
|
||||
2. Создайте в ней справочник **Сотрудники**.
|
||||
3. Добавьте в справочник реквизиты **EMail** и **Телефон** (строки разумной длины). Подумайте, какова максимальная длина номера телефона? С учетом дополнительного номера, а также пробелов и скобок, которые может ввести пользователь?
|
||||
4. Добавьте определяемый тип **Сумма** (число с двумя знаками после запятой и разумной разрядностью).
|
||||
5. Добавьтье в справочник реквизиты **Оклад** и **СтавкаЧаса** определяемого типа "Сумма".
|
||||
6. Добавьте булевскую константу и функциональную опцию **ВестиРасчетЗарплаты**, включив в ее состав реквизиты **Оклад** и **СтавкаЧаса**.
|
||||
7. Запустите конфигурацию в режиме Предприятия, обновив конфигурацию ИБ. Удостоверьтесь, что в формах справочника "Сотрудники" скрыт оклад и ставка часа, и что они становятся видимы после включения функциональной опции (установки в Истина константы) **ВестиРасчетЗарплаты**. Константу можно изменить, например, через команду "Все функции".
|
||||
8. Конфигурацию сохраните как результат выполнения задания.
|
||||
|
||||
## Задача 2 "Создание справочника **Контрагенты**"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно создать перечисление **ЮридическоеФизическоеЛицо** и справочник **Контрагенты**, использующий его.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .CF конфигурации, содержащий перечисление **ЮридическоеФизическоеЛицо** и справочник **Контрагенты** с реквизитами **ПолноеНаименование**, **ЮридическийАдрес**, **ПочтовыйАдрес**, **ИНН**, **КПП** и **ЮридическоеФизическоеЛицо**.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Используйте ту же конфигурацию "УправлениеИТФирмой".
|
||||
2. Создайте в ней справочник **Контрагенты**.
|
||||
3. Добавьте реквизиты **ПолноеНаименование**, **ЮридическийАдрес** и **ПочтовыйАдрес** (строки разумной длины).
|
||||
4. Добавьте реквизиты **ИНН** и **КПП**. Какой длины должны быть эти строки для контрагентов-физических лиц и контрагентов-юридических лиц?
|
||||
5. Добавьте перечисление **ЮридическоеФизическоеЛицо** со значениями **ЮридическоеЛицо** и **ФизическоеЛицо**.
|
||||
5. Добавьте реквизит **ЮридическоеФизическоеЛицо** в справочник **Контрагенты**, использующий это перечисление.
|
||||
6. Конфигурацию сохраните как результат выполнения задания.
|
||||
|
||||
## Задача 3 "Создание подсистемы **Справочники**"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Нужно создать подсистему **Справочники**, включающую справочники **Сотрудники** и **Контрагенты**.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Результат - файл .CF конфигурации, содержащий подсистему **Справочники** со справочниками **Контрагенты** и **Сотрудники**.
|
||||
|
||||
1. В конфигурации **УправлениеИТФирмой** создайте подсистему **Справочники**.
|
||||
2. Дайте ей подходящую картинку.
|
||||
3. Включите в нее справочники **Контрагенты** и **Сотрудники**.
|
||||
4. Запустите конфигурацию в режиме Предприятия, обновив конфигурацию ИБ. Удостоверьтесь, что в командном интрфейсе есть раздел "Справочники" с командами справочников "Контрагенты" и "Сотрудники".
|
||||
5. Конфигурацию сохраните как результат выполнения задания.
|
After Width: | Height: | Size: 212 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 20 KiB |
@ -0,0 +1,57 @@
|
||||
# Задание к занятию "Виды клиентов и режимы работы программы"
|
||||
|
||||
## Задача 1 "Публикация информационной базы на веб-сервере"
|
||||
|
||||
### Описание задачи
|
||||
Нужно опубликовать учебную информационную базу на веб-сервере, установив его, если необходимо.
|
||||
|
||||
### Требования к результату
|
||||
Результат - снимок экрана, в котором должно быть окно браузера, а в нем - одна из учебных информационных баз с открытым окном "О программе".
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
Процесс выполнения описан для операционных систем Windows. Если вы работаете под управлением операционной системы Linux, то установить веб-сервер и выполнить публикацию необходимо по инструкции от вендора: https://its.1c.ru/db/metod8dev#content:5979:hdoc.
|
||||
|
||||
#### Установка веб-сервера
|
||||
|
||||
1. Определите разрядность установленной платформы 1С:Предприятие. Если у вас учебная версия, значит установлена 32-разрядная платформа. В противном случае посмотрите каталог установки платформы. Если путь содержит каталог "/Program Files (x86)/", то установлена 32-разрядная, если содержит "Program Files", то 64-разрядная.
|
||||
2. Убедитесь, что для платформы установлен модуль расширения веб-сервера. Для этого откройте окно "Установка и удаление программ", выберите пункт 1С:Предприятие 8 (учебная версия) и нажмите на кнопку изменить:
|
||||
|
||||

|
||||
|
||||
Выберите действие изменить:
|
||||
|
||||

|
||||
|
||||
Установите настройку для модуля расширения веб-сервера в значение Данный компонент будет установлен на локальный жесткий диск и нажмите Далее:
|
||||
|
||||

|
||||
|
||||
3. Скачайте дистрибутив веб-сервера Apache с сайта https://www.apachehaus.com/cgi-bin/download.plx. При этом если платформа 64-битная, то нужно скачить сервер с приставкой "x64", если 32-битная, то без нее.
|
||||
4. Разархивируйте папку в Apache24 в каталог C:\Apache24.
|
||||
5. Запустите командную строку от имени администратора: В строке найти меню пуск ввести "Командная строка", нажать на нее правой кнопкой мыши и выбрать пункт Запустить от имени администратора
|
||||
6. В командной строке перейтите в директорию установки апача, для этого последовательно введите команды: "C:", "cd C:\Apache24\bin"
|
||||
|
||||

|
||||
|
||||
7. Установить веб-сервер как службу, для этого введите в командной строке команду "httpd.exe -k install"
|
||||
8. Запустите веб-сервер, для этого введите в командной строке команду "httpd.exe -k start"
|
||||
|
||||

|
||||
|
||||
9. Проверьте работу веб-сервера. Откройне браузер и перейдите по ссылке http://localhost. Если страница выглядит как на картинке ниже, значит веб-сервер установлен правильно и можно переходить к публикации информационной базы.
|
||||
|
||||

|
||||
|
||||
#### Публикация информационной базы
|
||||
|
||||
1. Убедитесь, что база "УправлениеИТФирмой" не содержит в пути символов кириллицы (только латиница). Если это не так, то перенесите ее в каталог, путь которого состоит только из латинских символов. Желательно поближе к корню диска.
|
||||
2. Запустите информационную базу "УправлениеИТФирмой" в конфигураторе от имени Администратора.
|
||||
3. Откройте окно публикации на веб-сервере (Администрирование / Публикация на веб-сервере). Укажите Имя: "IT-company-management", Каталог: "C:\Apache24\htdocs\IT-company-management\", остальные настройки оставьте по умолчанию и нажмите Опубликовать.
|
||||
4. После публикации платформа предложит перезапустить веб-сервер, сделайте это.
|
||||
5. Пройдите по ссылке http://localhost/IT-company-management и убедитесь, что опубликованная база успешно открывается.
|
||||
6. В качестве результата пришлите снимок экрана с окном браузера, в которой работает эта информационная база. В окне браузера должно быть открыто окно "О программе".
|
||||
|
||||
### Типичные ошибки
|
||||
1. Разрядность веб-сервера должна совпадать с разрядностью версии платформы. Например, если вы используете 32-разрядную учебную версию, Apache тоже должен быть 32-разрядным.
|
||||
2. Веб-сервер может не запускаться (служба запускается и сразу останавливается), если используемый им порт 80 занят другой программой. Для того, чтобы изменить порт веб-сервера можно открыть файл "C:\Apache24\conf\httpd.conf", найти строку "Listen 80" и поменять в ней порт 80 на 81 или 8000, после этого в ссылке после доменного имени нужно будет добавлять имя порта http://localhost:81 или http://localhost:8000.
|
After Width: | Height: | Size: 342 KiB |
@ -0,0 +1,56 @@
|
||||
# Задание к занятию "Пользователи и отладка"
|
||||
|
||||
## Задача 1 "Создание ролей и пользователей"
|
||||
|
||||
### Описание задачи
|
||||
Нужно создать роли **ПолныеПрава**, **БазовыеПрава**, **ДобавлениеИзменениеКонтрагентов** и **ДобавлениеИзменениеСотрудников** и назначить их четырем пользователям.
|
||||
|
||||
### Требования к результату
|
||||
Результат - выгрузка (.dt) информационной базы, в которой есть роли **ПолныеПрава** и **БазовыеПрава**, а также:
|
||||
- пользователь **Администратор** с полными правами;
|
||||
- пользователь с базовыми правами;
|
||||
- пользователь с базовыми правами и правом на редактирование контрагентов;
|
||||
- пользователь с базовыми правами и правом на редактирование сотрудников;
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Используйте конфигурацию **УправлениеИТФирмой**.
|
||||
2. Создайте в ней роль **ПолныеПрава**, включив в ней все права и предписав установку прав для новых объектов. Проще всего назначать права не отдельным объектам метаданных, с сразу их классам ("Справочники", "Документы") и т.д. Сделайте эту роль основной для конфигурации.
|
||||
3. Создайте в ней роль **БазовыеПрава**, включив в ней права на просмотр и чтение всех данных конфигурации, а также право на запуск тонкого клиента и веб-клиента.
|
||||
4. Создайте роли **ДобавлениеИзменениеСотрудников** и **ДобавлениеИзменениеКонтрагентов**, дающие права на интерактивное добавление и редактирование контрагентов и сотрудников.
|
||||
5. Создайте пользователей ИБ:
|
||||
- **Администратор** с ролью **ПолныеПрава**;
|
||||
- произвольного пользователя с ролью **БазовыеПрава**;
|
||||
- пользователя с ролями **БазовыеПрава** и **ДобавлениеИзменениеКонтрагентов**;
|
||||
- пользователя с ролями **БазовыеПрава** и **ДобавлениеИзменениеСотрудников**.
|
||||
6. Обновите конфигурацию БД и запустите конфигурацию в режиме Предприятия подо всеми четырьмя пользователями. Убедитесь, что администратор может редактировать, что угодно; пользователь с базовыми правами может только просматривать данные; а два пользователя с ролью "ДобавлениеИзменение..." могут редактировать данные одного вида, и только просматривать все остальные.
|
||||
7. Выгрузите ИБ в .dt как результат выполнения задания.
|
||||
|
||||
## Задача 2 "Поиск ошибки с помощью точки останова"
|
||||
|
||||
### Описание задачи
|
||||
Нужно найти в учебной демобазе и исправить специально привнесенную ошибку с помощью остановки по ошибке.
|
||||
|
||||
### Требования к результату
|
||||
Результат - файл .CF конфигурации, в котором исправлена ошибка, возникавшая при попытке записать блок.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте пустую ИБ и загрузите в нее демо-базу (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
2. Запустите ее в режиме Предприятия с отладкой и воспроизведите ошибку, открыв любой блок из списка и попытавшись записать его.
|
||||
3. Найдите строку с ошибкой с помощью функции "Остановка по ошибке" и исправьте ее.
|
||||
4. Сохраните конфигурацию как результат выполнения задания.
|
||||
|
||||
## Задача 3 "Поиск ошибки с помощью журнала регистрации"
|
||||
|
||||
### Описание задачи
|
||||
Нужно найти в учебной демобазе и исправить специально привнесенную ошибку с помощью журнала регистрации.
|
||||
|
||||
### Требования к результату
|
||||
Результат - файл .CF конфигурации, в котором исправлена ошибка, возникавшая при работе фонового задания.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте пустую ИБ и загрузите в нее демо-базу (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
2. Запустите ее в режиме Предприятия с отладкой и найдите в журнале регистрации ошибки работы фонового задания.
|
||||
3. Найдите в конфигурации строку с этой ошибкой и исправьте ее.
|
||||
4. Убедитесь, снова запустив конфигурацию в режиме "Предприятия", что ошибка перестала воспроизводиться.
|
||||
5. Сохраните конфигурацию как результат выполнения задания.
|
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 31 KiB |
@ -0,0 +1,55 @@
|
||||
# Задание к занятию "Внешние отчеты, обработки и расширения"
|
||||
|
||||
## Задача 1 "Создание внешней обработки"
|
||||
|
||||
### Описание задачи
|
||||
Создать внешнюю обработку **Калькулятор** с четырьмя арифметическими действиями
|
||||
|
||||
### Требования к результату
|
||||
Результат - файл внешней обработки (.epf), в которой будут:
|
||||
- два реквизита формы **Результат** и **Значение**;
|
||||
- два соответствующих им поля ввода;
|
||||
- четыре команды: **Сложить**, **Вычесть**, **Разделить** и **Умножить** и четыре кнопки.
|
||||
|
||||
Команды должны проводить соответствующее арифметическое действие, помещая его результатат в реквизит **Результат**.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Вызовем команду "Новый" из подменю "Файл" и выберем вид документа "Внешняя обработка".
|
||||
2. Дадим ей имя **Калькулятор** и создадим форму, нажав на кнопку с лупой.
|
||||
3. На форму обработки добавим два реквизита типа "Число": **Значение** и **Результат**.
|
||||
4. Перетащим их на форму, где они станут полями ввода.
|
||||
5. Добавим команды **Сложить**, **Вычесть**, **Разделить** и **Умножить**.
|
||||
6. Перетащим команды на форму, чтобы они стали кнопками.
|
||||
7. Из контекстного меню каждой кнопки создадим обработчик, выбрав пункт "<Действие команды>" с вариантом "Создать на клиенте".
|
||||
8. В коде каждого обработчика (в процедурах с именем "Сложить", "Вычесть", "Разделить", "Умножить") напишем, заменив "+" на нужную операцию:
|
||||
Результат = Результат + Значение;
|
||||
9. Сохраним обработку как файл "Калькулятор.epf".
|
||||
|
||||
## Задача 2 "Создание внешнего отчета"
|
||||
|
||||
### Описание задачи
|
||||
Создать внешний отчет "Лекции", который выведет все лекции курса в виде детальных записей. В качестве конфигурации нужно использовать конфигурацию "Курс 1С Разработчик (демо)" из прошлых лекций (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
|
||||
|
||||
### Требования к результату
|
||||
Результат - файл внешнего отчета (*.erf) с единственным набором данных, содержащим поля:
|
||||
- **Наименование**
|
||||
- **Дата**
|
||||
- **Модуль**
|
||||
|
||||
Отчет должен выводить детальные записи с колонками "Наименование", "Дата" и "Модуль".
|
||||
|
||||
### Процесс выполнения
|
||||
1. Вызовем команду "Новый" из подменю "Файл" и выберем вид документа "Внешний отчет".
|
||||
2. Назовем его **Лекции** и создадим основную схему компоновки данных, нажав на кнопку с лупой.
|
||||
3. Добавим единственный набор данных типа **Запрос** и откроем "Конструктор запроса".
|
||||
4. В таблицу "Поля" перетащим нужные нам в отчете реквизиты справочника **Лекции**: **Модуль**, **Наименование** и **Дата**:
|
||||
|
||||

|
||||
|
||||
Закроем конструктор.
|
||||
5. Перейдем на закладку "Настройка" и под корнем "Отчет" добавим группировку без указания поля группировки (конструктор назовет ее "Детальные записи"):
|
||||
|
||||

|
||||
|
||||
6. На закладке "Выбранные поля" перетащим вправо, из таблицы "Доступные поля", поля **Наименование**, **Дата** и **Модуль**.
|
||||
7. Сохраним отчет в файл "Лекции.erf".
|
BIN
01. Среда разработки и конфигурация/certificate.pdf
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_2.dt
Normal file
BIN
02. Встроенный язык/01. Модули/Задание_2_1_3.dt
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. Переменные/Калькулятор.epf
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. Типы данных/Задание_2_3_2.dt
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
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_2.dt
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
@ -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
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. Переделайте код, подсчитывающий число уникальных слов, на работу с содержимым этого текстового документа.
|
BIN
02. Встроенный язык/08. Объекты платформы/СлучайныйИНН.epf
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. Встроенный язык/certificate.pdf
Normal file
72
03. Интерфейс/01. Интерфейс конфигурации/homework-3-1.md
Normal file
@ -0,0 +1,72 @@
|
||||
# Интерфейс конфигурации
|
||||
|
||||
## Задание 1
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создайте конфигурацию с требуемыми настройками интерфейса.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Конфигурация "Управление ИТ-фирмой", имеющая в своем составе все нужные объекты метаданных и интерфейс, позволяющий выполнять навигацию по данным.
|
||||
Конфигурация должна соответствовать требованиям:
|
||||
|
||||
* При запуске конфигурации панель навигации по разделам должна располагаться слева. Открытые окна - сверху, как в браузере Chrome.
|
||||
* В разделе "Закупки" на самом видном месте должны быть расположены документы "Заказ поставщику" и справочник "Контрагенты".
|
||||
* В разделе "Закупки" должен быть выделен отдельно подраздел "Складской учет" содержащий справочник "Склады" и отчет "Остатки по складам" Логику отчета реализовывать не надо.
|
||||
* Раздел "Продажи" на самом видном месте должен содержать пункт "Заказы покупателей"
|
||||
* Раздел отчетность должен содержать отчеты "Остатки по складам" и "Отчет по продажам"
|
||||
* Сразу при старте приложения должен отображаться список документов "Заказы покупателей".
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
В созданной ранее конфигурации "Управление ИТ-фирмой", заведите 3 подсистемы:
|
||||
|
||||
* Закупки
|
||||
* Продажи
|
||||
* Отчетность
|
||||
|
||||
Создайте все объекты метаданных, описанные в разделе "Требование к результату":
|
||||
|
||||
* 2 документа
|
||||
* 2 справочника
|
||||
* 2 отчета
|
||||
|
||||
При создании документов, добавьте им основные формы списков и формы объектов.
|
||||
При создании отчетов, добавьте им основную форму или схему компоновки данных. Это необходимо, чтобы отчет появился в меню командного интерфейса.
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Развитие конфигурации "Управление ИТ-фирмой", добавление общих функций, улучшение юзабилити подписей.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Обеспечьте следующие требования к интерфейсу:
|
||||
|
||||
* Все формы списков должны отображать представление во множественном числе, а формы объектов - в единственном. "Заказы покупателей" -> "Заказ покупателя" и т.п.
|
||||
* Все документы конфигурации должны иметь кнопку "Печать" в формах списков и объектов. Нажатие на кнопку печать должно показывать предупреждение "Демо-версия. Печать будет реализована позднее". Окно предупреждения должно иметь заголовок "Мы работаем над этим..."
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Добавьте общую команду "Печать". В качестве типа параметра команды укажите документы "Заказ поставщику" и "Заказ покупателю". Добавьте команду в группу "Командная панель формы: Важное"
|
||||
2. Напишите процедуру ОбработкаКоманды для команды "Печать" в соответствии с требованиями
|
||||
3. Задайте правильное представление объекта и представление списка для всех справочников и документов конфигурации.
|
||||
|
||||
# Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
На главной странице приложения требуется отображать сразу 2 формы: список заказов поставщикам и список заказов покупателям. Также, требуется добавить команду быстрой отправки заказа поставщику по электронной почте и быстрого создания документа "Заказ поставщику".
|
||||
|
||||
### Требование к результату
|
||||
|
||||
На главной странице приложения отображаются два списка, один под другим, документов "Заказ поставщику" и "Заказ покупателя". В документе "Заказ поставщику" создана команда "Отправить заказ". При нажатии на кнопку должно выдаваться предупреждение "Демо-версия. Данная возможность не реализована". В командах раздела "Продажи" видна команда "Создать" для документа "Заказ покупателя".
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Возьмите конфигурацию из заданий 1 и 2. Сохраните ее отдельно и на основании нее создайте новую, так, чтобы результатом заданий 1 и 2 был один файл, а результатом задания 3 - другой файл.
|
||||
2. Откройте рабочую область начальной страницы. Разместите в одной колонке 2 формы списка: документов "заказы покупателей" и "заказы поставщикам"
|
||||
3. Откройте командный интерфейс раздела "Продажи". Установите флажок "Видимость" у команды "Заказ покупателя: Создать"
|
||||
4. Добавьте в документ "Заказ поставщику" команду "Отправить заказ". Реализуйте процедуру "ОбработкаКоманды" согласно требованиям. Добавьте команду в группу "Командная панель формы: Важное"
|
BIN
03. Интерфейс/01. Интерфейс конфигурации/Задание_3_1_1_2.dt
Normal file
BIN
03. Интерфейс/01. Интерфейс конфигурации/Задание_3_1_2.dt
Normal file
BIN
03. Интерфейс/01. Интерфейс конфигурации/Задание_3_1_3.dt
Normal file
@ -0,0 +1,62 @@
|
||||
# Формы, их реквизиты и данные
|
||||
|
||||
## Задание 1
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать форму внешней обработки "Приглашение на вечеринку"
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма внешней обработки, позволяющая ввести имя гостя и такие параметры его размещения как: "Буду с ночевкой", "Что ест", "Что пьет". При нажатии команды "Сохранить" выдается предупреждение вида "<Имя> принял приглашение. Ест <Что ест>, пьет <что пьет>. Спальное место <потребуется/не потребуется>"
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку и добавьте в нее реквизиты:
|
||||
|
||||
* Имя (строка)
|
||||
* Что ест (строка)
|
||||
* Что пьет (строка)
|
||||
* БудетСНочевкой (булево)
|
||||
|
||||
2. Создайте основную форму внешней обработки и разместите на ней реквизиты обработки.
|
||||
3. Создайте в форме команду "Сохранить" и в обработчике команды создайте вывод текста в виде предупреждения, использовав обращение к данным формы вида "Объект.<Имя реквизита обработки>"
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Развитие обработки "Приглашение на вечеринку"
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Поля "Имя", "Что ест", "Что пьет" должны быть обязательны для заполнения и подчеркиваться волнистой линией, если они не заполнены. В случае, если нажата кнопка "Сохранить", а одно из обязательных полей не заполнено - должно выдаваться окно с указанием незаполненного реквизита.
|
||||
|
||||
Результат выполнения должен быть сохранен в отдельной обработке с именем "Задание 2.epf"
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Скопируйте обработку, являющуюся результатом выполнения задания 1. Назовите ее "Задание 2"
|
||||
2. Укажите для полей "Имя", "Что ест", "Что пьет", что свойство "Проверка заполнения" имеет значение "Выдавать ошибку"
|
||||
3. В процедуре обработчике команды "Сохранить" вызовите метод ПроверитьЗаполнение и выводите окно "Принял приглашение" только в том случае если проверка пройдена
|
||||
|
||||
# Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Работа с данными формы и преобразование в прикладные объекты. Закрепление знаний о различии между данными формы и общими объектами
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Внешняя обработка с табличным полем, имеющим колонки "Товар" и "Сумма". При нажатии кнопки "Объединить строки" должна происходить свертка (группировка) таблицы по одинаковым значениям поля "Товар"
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Создайте новую внешнюю обработку
|
||||
2. Создайте основную форму внешней обработки
|
||||
3. В реквизитах формы создайте новый реквизит "Товары" с типом ТаблицаЗначений. Добавьте в него колонки "Товар" (строка) и "Сумма" (число 18.2)
|
||||
4. Добавьте на форму команду "Объединить строки" и обработчик команды
|
||||
5. Добавьте в модуль формы процедуру с директивой &НаСервере с именем "СверткаСтрок"
|
||||
6. Конвертируйте таблицу "Товары" (`ДанныеФормы`) в универсальную коллекцию `ТаблицаЗначений`
|
||||
7. Воспользуйтесь штатным методом "Свернуть" таблицы значений, чтобы выполнить свертку одинаковых товаров и сложение сумм по ним. Воспользуйтесь синтакс-помощником для корректного применения метода "ТаблицаЗначений.Свернуть"
|
||||
8. Конвертируйте полученную таблицу обратно в данные формы
|
BIN
03. Интерфейс/02. Формы, их реквизиты и данные/Задание_3_2_1.epf
Normal file
BIN
03. Интерфейс/02. Формы, их реквизиты и данные/Задание_3_2_2.epf
Normal file
BIN
03. Интерфейс/02. Формы, их реквизиты и данные/Задание_3_2_3.epf
Normal file
71
03. Интерфейс/03. Элементы управления/homework-3-3.md
Normal file
@ -0,0 +1,71 @@
|
||||
# Элементы управления
|
||||
|
||||
## Задание 1
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать форму с полями ввода различных типов
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма внешней обработки с полями ввода, привязанными к разным типам элементов управления
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку, добавьте в нее основную форму
|
||||
2. На форме разместите реквиты с типом: "Строка", "Булево", "Дата", "Число"
|
||||
3. Строковый реквизит отобразите на форме в виде поля надписи без заголовка (только значение), установив свойство "Положение заголовка" в "Нет"
|
||||
4. Строковый реквизит также отобразите на форме в виде поля ввода
|
||||
5. Реквизит типа "Булево" отобразите на форме в виде флажка
|
||||
6. Реквизит типа "Булево" также отобразите на форме в виде элемента "Поле ввода" с позициями "Так точно" и "Никак нет", соответствующими значениям Истина и Ложь Воспользуйтесь для этого свойством "Список выбора" элемента управления "Поле ввода". Обратите внимание на различное поведение поля при установленном и снятом флажке "Режим выбора из списка". Выберите наиболее подходящий задаче вариант значения флажка "Режим выбора из списка"
|
||||
7. Реквизит типа "Число" отобразите на форме без кнопки "калькулятор" (кнопка выбора). Также задайте свойство "Формат" таким образом, чтобы число отображалось без группировки разрядов и с отделением дробной части числа дефисом. Пример: "25520-71"
|
||||
8. Реквизит типа "Дата" отобразите в виде поля ввода в виде обязательного поля ввода. Используйте для этого признак "Автоотметка незаполненного"
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Обработчики событий поля ввода. Механика выбора значений
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Внешняя обработка с двумя формами. Из поля ввода первой формы по кнопке выбора должна открываться вторая форма. В ней пользователь может ввести новый текст. Выбранное значение должно попасть в поле ввода первой формы.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте внешнюю обработку. Добавьте в нее основную форму. Назовите ее "ПерваяФорма".
|
||||
2. Добавьте в обработку еще одну форму, при создании укажите тип "Произвольная форма". Назовите ее "ВтораяФорма"
|
||||
3. В первой форме разместите строковый реквизит "ВажныеДанные" и добавьте его на форму в виде элемента управления "Поле ввода"
|
||||
4. Установите свойство "Кнопка выбора" для данного поля в значение "Да", а флаг "Редактирование текста" снимите.
|
||||
5. Добавьте полю ввода обработчик события "НачалоВыбора"
|
||||
6. Во второй форме добавьте параметр "ТекущееЗначение" строкового типа. Укажите, что форма должна блокировать окно владельца
|
||||
7. Во второй форме добавьте текстовое поле "НовоеЗначение" и команду "Применить". Текстовому полю установите признак "Многострочное"
|
||||
8. Во второй форме создайте обработчик "ПриСозданииНаСервере" в котором обеспечьте присваивание полю "НовоеЗначение" значение параметра "ТекущееЗначение"
|
||||
9. Также во второй форме создайте обработчик команды "Применить" в котором с помощью метода "ОповеститьОВыборе" передайте в первую форму значение, указанное в поле "НовоеЗначение"
|
||||
10. Сделайте так, чтобы команда "Применить" выдавала ошибку, если поле "НовоеЗначение" не заполнено
|
||||
11. В обработчике события укажите СтандартнаяОбработка = Ложь, после чего добавьте вызов метода ОткрытьФорму, открывающий вторую форму и передающий в нее в качестве владельца сам элемент управления, событие которого мы обрабатывам (параметр `Элемент` обработчика события) и текущее значение поля "ВажныеДанные"
|
||||
12. Добавьте полю ввода "ВажныеДанные" обработчик события "ОбработкаВыбора". В обработчике присвойте полю "ВажныеДанные" значение входящего параметра "ВыбранноеЗначение"
|
||||
|
||||
# Задание 3
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Изучение табличного поля
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Форма с табличным полем, колонки которого расположены в нестандартной группировке
|
||||
|
||||
### Порядок выполнения
|
||||
|
||||
1. Создайте новую внешнюю обработку
|
||||
2. Создайте основную форму внешней обработки
|
||||
3. В реквизитах формы создайте новый реквизит "Товары" с типом ТаблицаЗначений. Добавьте в него колонки
|
||||
* "Товар" (строка)
|
||||
* "Количество" (число 18.2)
|
||||
* "Сумма" (число 18.2)
|
||||
* "СуммаНДС" (число 18.2)
|
||||
5. Добавьте таблицу на форму
|
||||
6. Добавьте с помощью кнопки (+) в колонки таблицы группу колонок с группировкой "Вертикальная"
|
||||
7. Сделайте так, чтобы в форме поля Количество и Сумма находились друг-под-другом, поместив их в группу колонок
|
||||
8. Добавьте обработчик события "ПередОкончаниемРедактирования" табличного поля "Товары". В обработчике напишите алгоритм вычисления суммы НДС (20% от суммы). Сумма НДС должна попасть в поле "СуммаНДС" при окончании редактирования строки. Для получения редактируемой строки воспользуйтесь свойством ТекущиеДанные элемента управления таблицы.
|
BIN
03. Интерфейс/03. Элементы управления/Задание_3_3_1.epf
Normal file
BIN
03. Интерфейс/03. Элементы управления/Задание_3_3_2.epf
Normal file
BIN
03. Интерфейс/03. Элементы управления/Задание_3_3_3.epf
Normal file
50
03. Интерфейс/04. Команды/homework-3-4.md
Normal file
@ -0,0 +1,50 @@
|
||||
# Команды
|
||||
|
||||
## Задание 1
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать общую группу команд "Печать" и два варианта печати "Сразу на принтер" и "Предварительный просмотр"
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Добавить в конфигурацию из задания 3.1 общую команду печати для объектов "Заказ покупателя" и "Заказ поставщику". Команды должны находиться в общем подменю "Печать".
|
||||
При вызове команды "Сразу на принтер" должно выводиться сообщение "Печать объекта <представление объекта> В разработке. Здесь будет команда вывода на принтер".
|
||||
При вызове команды "Предварительный просмотр" должно выводиться сообщение "Печать объекта <представление объекта> В разработке. Здесь будет команда предварительного просмотра".
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Возьмите конфигурацию из задания 3.1
|
||||
2. В ветке "Общие/Общие команды" добавьте группу команд "Печать" категории "Командная панель формы".
|
||||
3. Добавьте 2 общие команды "ПечатьНаПринтер" и "ПечатьСПредпросмотром" и поместите их в группу команд "Печать"
|
||||
4. В качестве типа параметра обеих команды укажите документы "Заказ покупателя" и "Заказ поставщику". Не забудьте установить флажок "Составной тип" в окне выбора типа, иначе можно будет выбрать только один документ
|
||||
5. В качестве значения поля "Режим использования параметра" в свойствах команды укажите "Одиночный"
|
||||
6. В каждой команде напишите код процедуры ОбработкаКоманды так, чтобы она выводила требуемое сообщение. Обратите внимание, объект, который мы печатаем будет передан в процедуру ОбработкаКоманды в параметре "ПараметрКоманды"
|
||||
|
||||
|
||||
## Задание 2
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать команду, открывающую формы объектов с заданными параметрами.
|
||||
|
||||
### Требование к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть группа команд "Быстрый доступ" отображающая список справочника "Сотрудники" с фильтрацией по полю "Уволен". Команда "Уволенные" открывает список сотрудников с фильтрацией по полю "Уволен = Истина". Команда "Работающие" - список сотрудников с фильтрацией по полю "Уволен = Ложь". Повторный вызов команд должен использовать механизм уникальности форм. Если открыта форма "Уволенные" команда "Работающие" должна все равно открывать вторую форму списка сотрудников с нужной фильтрацией. И наоборот, при открытых "Работающих" список "Уволенных" также должен открываться. Однако, повторный вызов одной и той же команды не должен открывать 2 одинаковых отфильтрованных формы.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Создайте новую подсистему "Кадровый учет"
|
||||
2. Справочник "Сотрудники" включите в подсистему "Кадровый учет"
|
||||
3. Добавьте в справочник "Сотрудники" реквизит "Уволен" с типом Булево
|
||||
4. Добавьте общую группу команд "Быстрый доступ" и включите ее в подсистему "Кадровый учет". Категория группы команд - Панель навигации
|
||||
5. Добавьте общую команду "Уволенные сотрудники", включите ее в группу команд "Быстрый доступ" и в подсистему "Кадровый учет"
|
||||
6. Добавьте общую команду "Работающие сотрудники", включите ее в группу команд "Быстрый доступ" и в подсистему "Кадровый учет"
|
||||
7. Изучите документацию метода ОткрытьФорму, пользуясь синтакс-помощником и презентацией к лекции 3.3
|
||||
8. В каждой команде в процедуре ОбработкаКоманды воспользуйтесь методом ОткрытьФорму, используя имя формы "Справочник.Сотрудники.ФормаСписка"
|
||||
9. В качестве параметров открываемой формы воспользуйтесь системным параметром формы "Отбор" в который передайте структуру со свойством "Уволен" и значением соответствующего фильтра. У вас должна получится Структура `ПараметрыФормы` со свойством "Отбор", значением отбора является структура со свойством "Уволен", т.е. Структура-в-Структуре.
|
||||
10. В качестве ключа уникальности формы используйте значение текущего статуса сотрудника - уволен или нет.
|
||||
11. В форме списка справочника Сотрудники добавьте над ДинамическимСписком новое `ПолеНадписи` и реквизит формы "ИмяТекущегоФильтра". Полю надписи снимите флажок "Видимость" в палитре свойств.
|
||||
12. В обработчике "ПриСозданииНаСервере" формы списка проверьте значение свойства Параметры.Отбор. Если там находится структура со свойством "Уволен" - установите видимость поля надписи `ИмяТекущегоФильтра` в Истина, а в качестве текста надписи укажите "Уволенные" или "Работающие", в зависимости от текущего значения параметра `Параметры.Отбор.Уволен`
|
||||
13. Если же в параметрах формы не задан отбор (нет свойства "Уволен" в параметре Параметры.Отбор), то поле надписи отображаться не должно.
|
||||
14. В случае возникновения сложностей воспользуйтесь отладчиком, установив точку останова в процедуре ПриСозданииНаСервере формы списка сотрудников и изучите содержимое структуры Параметры с помощью клавиши Shift+F9
|
BIN
03. Интерфейс/04. Команды/Задание_3_4.dt
Normal file
BIN
03. Интерфейс/certificate.pdf
Normal file
@ -0,0 +1,67 @@
|
||||
# Задание к занятию "Справочники"
|
||||
|
||||
## Задача 1 "Версия конфигурации"
|
||||
|
||||
### Описание задачи
|
||||
Добавить константу **ВерсияКонфигурации**, которая будет хранить версию конфигурации из свойств метаданных, с которой программа запускалась в последний раз. Хранение версии в данных позволит обнаружить запуск программы с измененной версией и запустить код, заполняющий недостающие данные при обновлении версии.
|
||||
|
||||
### Требования к результату
|
||||
Выгрузка информационной базы (.dt) с конфигурацией из диплома блока А, в которой:
|
||||
* Присутствует константа ВерсияКонфигурации, скрытая из командного интерфейса.
|
||||
* Присутствует код, при начале работы системы сравнивающий версию из метаданных и версию из константы, и, при обнаружении отличий, устанавливающий значение константы равным версии из свойств метаданных.
|
||||
|
||||
### Процесс выполнения
|
||||
* Создать константу **ВерсияКонфигурации** типа **Строка**, которая будет хранить текущую версию конфигурации. Скрыть ее из командного интерфейса, сняв флажок "Использовать стандартные команды".
|
||||
* Создать общий модуль **ОбновлениеИнформационнойБазыВызовСервера** с экспортной процедурой **ПриНачалеРаботыСистемы**, которая:
|
||||
* Проверит, совпадает ли версия конфигурации (Метаданные.Версия) со значением константы (Константы.ВерсияКонфигурации.Получить()).
|
||||
* При совпадении ничего не сделает.
|
||||
* При выявлении разницы вызовет ОбновлениеИнформационнойБазы.ПриИзмененииВерсии(СтараяВерсия, НоваяВерсия).
|
||||
* И установит значение константы равным новой версии из метаданных.
|
||||
* Таким образом, при обновлении информационной базы старой версии на конфигурацию новой версии будут выполнены обработчики обновления, необходимые новой версии. Сами обработчики обновления писать пока не нужно (процедура ПриИзмененииВерсии будет пустой).
|
||||
* Проверьте, что при изменении версии в метаданных и запуске программы значение константы обновляется. Открыть константу можно через режим технического специалиста.
|
||||
|
||||
## Задача 2 "Контактная информация"
|
||||
|
||||
### Описание задачи
|
||||
Добавить в справочник "Контрагенты" табличную часть "Контактная информация" для хранения адресов, телефонов и т.п. в разрезе видов контактной информации, так, как это делается в реальных прикладных решениях, вместо хранения каждого вида контактной информации в отдельном реквизите, как мы это делали раньше. Заполнить предопределенные виды контактной информации недостающими данными и сделать обработчик переноса контактной информации из отдельных реквизитов в табличную часть - так, как это делается при обновлении в реальных прикладных решениях.
|
||||
|
||||
**Важно!** Чтобы проверить успешность переноса, не забудьте предварительно заполнить контактную информацию некоторых контрагентов в отдельных реквизитах.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурацией из диплома блока А, в которой:
|
||||
|
||||
* Присутствует справочник ВидыКонтактнойИнформации с пятью предопределенными элементами: ЮридическийАдресКонтрагента, ПочтовыйАдресКонтрагента, ФактическийАдресКонтрагента, ТелефонКонтрагента, EMailКонтрагента и реквизитом Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации).
|
||||
* В справочнике Контрагенты присутствует табличная часть КонтактнаяИнформация, данные которой выведены на форму контрагента таблицей (а прежние реквизиты, напротив, имеют префикс Удалить и скрыты).
|
||||
* Присутствует код, при начале работы системы сравнивающий версию из метаданных и версию из константы, и:
|
||||
* при переходе на версию 1.0.0.1 или более новую, а также при первом запуске инициирующий заполнение типов предопределенных элементов справочника ВидыКонтактнойИнформации.
|
||||
* при переходе на версию 1.0.0.2 или более новую, а также при первом запуске инициирующий перенос контактной информации из реквизитов Удалить<...> в ТЧ КонтактнаяИнформация.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
#### Виды контактной информации
|
||||
|
||||
* Создать перечисление ТипыКонтактнойИнформации со значениями: Адрес, Телефон, EMail.
|
||||
* Создать справочник ВидыКонтактнойИнформации с реквизитом Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации), включив его в роль БазовыеПрава на просмотр и чтение. Справочник будет расширяемым для пользователей, а значение реквизита Тип позволит программе понять, как работать с этим видом КИ.
|
||||
* Создать предопределенные виды контактной информации: ЮридическийАдресКонтрагента, ПочтовыйАдресКонтрагента, ФактическийАдресКонтрагента, ТелефонКонтрагента, EMailКонтрагента.
|
||||
* В модуле менеджера справочника создать экспортную процедуру ЗаполнитьПредопределенныеЭлементы(), которая заполнит тип у всех предопределенных элементов этого справочника (в Конфигураторе можно задать только код и наименование предопределенных элементов, но не другие реквизиты).
|
||||
* Установить версию конфигурации в метаданных на произвольное значение (напримере, 1.0.0.1).
|
||||
* В процедуре ОбновлениеИнформационнойБазы.ПриИзмененииВерсии:
|
||||
* Проверить, не находится ли версия 1.0.0.1 между значениями параметров СтараяВерсия и НоваяВерсия, включая границы (если старая версия пуста - значит, она меньше любой текущей).
|
||||
* Если версия 1.0.0.1 находится между старой и новой версией, включая границы - вызвать процедуру ЗаполнитьПредопределенныеЭлементы().
|
||||
* Таким образом, и при первом запуске, и при обновлении будут заполнены предопределенные элементы.
|
||||
|
||||
#### Контрагенты
|
||||
|
||||
* Нужно использовать справочник Контрагенты из диплома блока А.
|
||||
* Стандартному реквизиту Наименование дать синоним "Краткое наименование".
|
||||
* Добавить табличную часть КонтактнаяИнформация с реквизитами Вид (СправочникСсылка.ВидыКонтактнойИнформации) и Значение (Строка).
|
||||
* Прежним реквизитам, отвечавшим за контактную информацию, нужно дать префикс Удалить (УдалитьЮридическийАдресКонтрагента и т.д.) и скрыть их из форм. Совсем удалять их нельзя, чтобы можно было перенести старые данные.
|
||||
* Добавить в форму контрагента (лучше на отдельную закладку) новую табличную часть.
|
||||
* В модуле менеджера справочника создать экспортную процедуру ЗаполнитьТабличнуюЧастьКонтактнаяИнформация(), которая:
|
||||
* Откроет выборку всех элементов справочника (Справочники.Контрагенты.Выбрать()).
|
||||
* Для каждого элемента очистит ТЧ КонтактнаяИнформация и заполнит ее значениями старых реквизитов (с префиксом Удалить).
|
||||
* Запишет каждый элемент.
|
||||
* В процедуре ОбновлениеИнформационнойБазы.ПриИзмененииВерсии при обновлении на версию 1.0.0.2 вызвать процедуру ЗаполнитьТабличнуюЧастьКонтактнаяИнформация().
|
||||
* Взвести версию в метаданных на 1.0.0.2.
|
||||
* Запустить программу и удостовериться, что ранее введенная контактная информация не утеряна и доступна теперь уже через новую табличную часть, как в реальных прикладных решениях.
|
@ -0,0 +1,226 @@
|
||||
# Диплом блока А "Настройки и справочники"
|
||||
|
||||
## Описание задачи
|
||||
Создать конфигурацию "Управление ИТ-фирмой" с базовым набором справочников, поддерживающую управление пользователями ИБ в режиме Предприятия.
|
||||
|
||||
## Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурация с именем "УправлениеИТФирмой", содержащей:
|
||||
|
||||
### Перечисление ЮридическоеФизическоеЛицо
|
||||
|
||||
#### Со значениями
|
||||
ЮридическоеЛицо, ФизическоеЛицо
|
||||
|
||||
### Справочник Контрагенты
|
||||
|
||||
#### С реквизитами
|
||||
ПолноеНаименование, ИНН, КПП, EMail, Телефон, ФактическийАдрес, ЮридическийАдрес, Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо), Ответственный (СправочникСсылка.Сотрудники).
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
|
||||
#### С формой элемента
|
||||
|
||||
КПП должен быть доступен только для контрагентов-юридических лиц. Доступность должна отрабатываться как при изменении типа, так и при перечитывании элемента справочника из ИБ.
|
||||
|
||||
При изменении наименования полное наименование должно заполняться с разворачиванием распространенных сокращений организационно-правовых форм (например, *АО "Вектор"* должно превращаться в *Акционерное общество "Вектор"*).
|
||||
|
||||
Должна быть реализована проверка корректности ИНН как для физических, так и для юридических лиц. Проверять нужно и при попытке записи (с выдачей предупреждения и отказом), и при изменении ИНН (с подсветкой поля ввода и/или выводом текста ошибки рядом с ним).
|
||||
|
||||
#### С формой списка
|
||||
|
||||
В форме списка должны присутствовать все существенные реквизиты в разумном порядке.
|
||||
|
||||
#### С модулем объекта
|
||||
|
||||
В коде которого определено заполнение по умолчанию:
|
||||
* Тип - Юридическое лицо.
|
||||
* Ответственный - текущий сотрудник из параметра сеанса **ТекущийСотрудник**.
|
||||
|
||||
### Перечисление Пол
|
||||
|
||||
#### Со значениями
|
||||
Мужской, Женский
|
||||
|
||||
### Справочник Сотрудники
|
||||
|
||||
#### С реквизитами
|
||||
EMail, ДатаРождения, ИдентификаторПользователяИБ, Оклад, Пол, СтавкаЧаса, Телефон.
|
||||
Типы должны быть подходящими, их длина и точность - разумно достаточными.
|
||||
Для сумм нужно использовать определяемый тип.
|
||||
|
||||
#### С модулем менеджера
|
||||
|
||||
В котором переопределено получение формы объекта в зависимости от права доступа "Администрирование".
|
||||
|
||||
#### С формой элемента ФормаАдминистратора
|
||||
|
||||
Которая открывается для пользователей с правом доступа "Администрирование".
|
||||
|
||||
В которой, помимо реквизитов сотрудника, есть флажок "Вход разрешен" и поля ввода "Имя для входа" и "Пароль", отражающие свойства пользователя ИБ.
|
||||
|
||||
При записи сотрудника из этой формы при необходимости должно выполняться:
|
||||
* создание пользователя ИБ с ролью **БазовыеПрава**;
|
||||
* изменение его пароля и имени для входа;
|
||||
* при снятии флажка - отключение стандартной аутентификации.
|
||||
|
||||
Рядом с полем ввода пароля должна быть команда "Случайный пароль", генерирующая случайный пароль и показывающая его пользователю.
|
||||
|
||||
#### С формой элемента ФормаПользователя
|
||||
|
||||
Которая открывается для пользователей без права доступа "Администрирование" и содержит элементы управления для реквизитов сотрудника, упорядоченные по смыслу.
|
||||
|
||||
### Константу и функциональную опцию ВестиРасчетЗарплаты
|
||||
|
||||
Константа не должна присутствовать в командном интерфейсе сама по себе (флажок "Использовать стандартные команды" должен быть снят).
|
||||
В состав ФО должны входить зарплатные реквизиты справочника **Сотрудники**, а константа должна присутствовать флажком в общей форме **НастройкаПрограммы**.
|
||||
|
||||
### Общую форму и общую команду **НастройкаПрограммы**
|
||||
|
||||
Форма должна содержать основной реквизит типа **НаборКонстант** и поле флажка для константы **ВестиРасчетЗарплаты**.
|
||||
Общая команда должна открывать общую форму, принадлежать подсистеме **Настройки** и присутствовать в командном интерфейсе раздела "Настройки".
|
||||
|
||||
### Параметр сеанса ТекущийСотрудник
|
||||
|
||||
Типа **СправочникСсылка.Сотрудники**. Должен заполняться элементом справочника **Сотрудники**, идентификатор пользователя ИБ которого совпадает с идентификатором текущего пользователя ИБ.
|
||||
|
||||
### Роли БазовыеПрава и ПолныеПрава
|
||||
|
||||
Роль **ПолныеПрава** должна давать права на все, кроме:
|
||||
* интерактивного удаления элементов справочников;
|
||||
* пометки на удаление и удаления помеченных предопределенных элементов справочников.
|
||||
|
||||
Роль **БазовыеПрава** должна давать права на чтение, просмотр и ввод по строке всех данных. Редактирование, добавление и изменение разрешается только для справочника **Контрагенты**. Роль не должна давать права на открытие настроек программы.
|
||||
|
||||
### Подсистему "Настройки"
|
||||
|
||||
Содержащую все справочники и общую команду **НастройкаПрограммы**.
|
||||
|
||||
## Процесс выполнения
|
||||
|
||||
Старайтесь использовать наработки, выполненные ранее в домашних заданиях блока А.
|
||||
|
||||
### Подсистема Настройки
|
||||
|
||||
Создайте подсистему **Настройки**, куда будете включать все добавляемые далее объекты метаданных.
|
||||
|
||||
### Константа и ФО
|
||||
|
||||
Создайте константу **ВестиРасчетЗарплаты** типа **Булево** и соответствующую ФО.
|
||||
Константу включите в подсистему **Настройки**. Не забудьте снять флажок "Использовать стандартные команды", чтобы константа не появилась в командном интерфейсе сама по себе.
|
||||
|
||||
### Настройка программы
|
||||
|
||||
Создайте общую форму **НастройкаПрограммы**.
|
||||
Добавьте в нее основной реквизит типа **НаборКонстант**.
|
||||
Выведите константу **ВестиРасчетЗарплаты** на форму полем флажка. Заголовок флажка по общим правилам разместите справа.
|
||||
Создайте общую команду **НастройкаПрограммы**, в модуле которой реализуйте открытие общей формы.
|
||||
Включите команду и форму в подсистему **Настройки**.
|
||||
|
||||
### Справочник Сотрудники
|
||||
|
||||
Создйте справочник и наполните его указанным в Требованиях набором реквизитов.
|
||||
Включите зарплатные реквизиты в состав ФО **ВестиРасчетЗарплаты**.
|
||||
|
||||
Создайте две формы элемента, **ФормаАдминистратора** и **ФормаПользователя**. Форма администратора будет основной.
|
||||
|
||||
В модуле менеджера определите обработчик события **ОбработкаПолученияФормы()**. В нем, в зависимости от наличия права доступа **Администирование**, открывайте форму администратора или форму пользователя. Право администрирования проверяйте так:
|
||||
|
||||
Если ПравоДоступа("Администрирование", Метаданные) Тогда
|
||||
|
||||
Выбранную форму лучше возвращать не по имени, а как объект метаданных, например:
|
||||
|
||||
Метаданные.Справочники.Сотрудники.Формы.ФормаАдминистратора
|
||||
|
||||
|
||||
#### ФормаПользователя
|
||||
|
||||
Выведите в нее реквизиты сотрудника в разумном порядке.
|
||||
|
||||
#### ФормаАдминистратора
|
||||
|
||||
Можно создать копированием формы **ФормаПользователя**.
|
||||
Создайте в ней две группы, левую и правую.
|
||||
В левую выведите реквизиты сотрудника в разумном порядке (как в форме пользователя).
|
||||
Добавьте реквизиты формы **ВходРазрешен** (Булево), **ИмяДляВхода** и **Пароль** и выведите их в правую группу флажком и двумя полями ввода. Для поля ввода **Пароль** включите режим пароля, чтобы введенное забивалось звездочками.
|
||||
|
||||
##### Случайный пароль
|
||||
Создайте команду и кнопку **СлучайныйПароль**.
|
||||
В обработчике создайте случайный пароль из 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. Создайте пользователя ИБ с полными правами.
|
||||
3. Запустив программу под ним, удостоверьтесь в видимости раздела "Настройки", всех справочников и команды "Настройка программы".
|
||||
4. Включите ФО "Вести расчет зарплаты".
|
||||
5. В справочнике "Сотрудники" создайте одного или нескольких сотрудников, разрешив вход.
|
||||
6. Запустив программу под ними, удостоверьтесь в видимости раздела "Настройки" и всех справочников.
|
||||
7. Открыв какого-нибудь сотрудника, убедитесь, что открывается именно форма пользователя.
|
||||
8. Проверьте создание и редактирование контрагентов, введя реальные данные.
|
||||
|