mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-30 08:06:56 +02:00
190 lines
15 KiB
Markdown
190 lines
15 KiB
Markdown
|
# Задание к занятию «Ссылочные типы»
|
||
|
|
||
|
*Примерное время выполнения: 60 минут*
|
||
|
|
||
|
## Цель задания
|
||
|
|
||
|
1. Научиться создавать справочники и документы в 1С.
|
||
|
2. Подготовить конфигурацию к последующей работе.
|
||
|
|
||
|
## Чеклист готовности к домашнему заданию
|
||
|
|
||
|
- [ ] Установить учебную платформу версии 8.3.22 или больше.
|
||
|
- [ ] Подготовить разработанную ранее конфигурацию "УправлениеИТФирмой"
|
||
|
- [ ] Просмотреть материал занятия «Ссылочные типы».
|
||
|
|
||
|
## Инструкция к заданию
|
||
|
|
||
|
1. Решите описанные задачи в конфигураторе.
|
||
|
|
||
|
В тексте задания приведен программный код для решения задач. Конечно, Вы можете использовать его. Но для более продуктивного обучения, старайтесь, сначала, самостоятельно написать код. Если все же, самостоятельно решить задачу не удалось, используйте код из текста задачи но обязательно пройдите его в отладке, посмотрите, что попадает в переменные, как преобразуются значения. Старайтесь максимально детально разобраться в механизме.
|
||
|
|
||
|
2. Протестируйте решение в пользовательском режиме, обязательно введите данные в базу, убедитесь, что все работает.
|
||
|
3. Отправьте на проверку в личном кабинете Нетологии один общий файл базы данных (.dt), содержащей решение всех задач.
|
||
|
|
||
|
## Задача 1. Создание справочников
|
||
|
|
||
|
### Описание задачи
|
||
|
|
||
|
Требуется подготовить конфигурацию для дальнейшей разработки. Предположим, что мы провели декомпозицию предметной области и определили, что нам потребуются справочники со следующими реквизитами:
|
||
|
|
||
|
- Сотрудники:
|
||
|
|
||
|
- Табельный номер
|
||
|
- ФИО
|
||
|
- Пол (ПеречислениеСсылка.Пол варианты "Мужской" / "Женский")
|
||
|
- ДатаРождения
|
||
|
- Оклад
|
||
|
- СтавкаЧаса
|
||
|
- Телефон
|
||
|
- Email
|
||
|
- ИдентификаторПользователяИБ
|
||
|
|
||
|
- Должности:
|
||
|
|
||
|
- Код
|
||
|
- Наименование
|
||
|
|
||
|
- Контрагенты:
|
||
|
|
||
|
- Код
|
||
|
- Наименование
|
||
|
- ПолноеНаименование
|
||
|
- ИНН
|
||
|
- КПП
|
||
|
- Email
|
||
|
- Телефон
|
||
|
- ФактическийАдрес
|
||
|
- ЮридическийАдрес
|
||
|
- Тип (ПеречислениеСсылка.ЮридическоеФизическоеЛицо варианты "Физическое лицо" / "Юридическое лицо")
|
||
|
- Ответственный (СправочникСсылка.Сотрудники, Заполняется значением текущего сотрудника, связанного с пользователем, из параметра сеанса)
|
||
|
|
||
|
- Контактные лица:
|
||
|
|
||
|
- Код
|
||
|
- ФИО
|
||
|
- Телефон
|
||
|
- Должность (СправочникСсылка.Должности)
|
||
|
|
||
|
- Упаковки:
|
||
|
|
||
|
- Код
|
||
|
- Наименование
|
||
|
|
||
|
- Номенклатура
|
||
|
|
||
|
- Код
|
||
|
- Наименование
|
||
|
- СтандартнаяУпаковка (СправочникСсылка.Упаковки)
|
||
|
- ТипНоменклатуры (ПеречислениеСсылка.ТипыНоменклатуры варианты "Товар" / "Услуга"), обязательное поле
|
||
|
|
||
|
### Процесс выполнения
|
||
|
|
||
|
1. Используйте конфигурацию "Управение ИТ Фирмой", разработанную ранее.
|
||
|
2. Создайте перечисления Пол, ЮридическоеФизическоеЛицо (если они не созданы), ТипыНоменклатуры. Добавьте их в подсистему "Справочники".
|
||
|
|
||
|
<details>
|
||
|
<summary>Важно</summary>
|
||
|
При создании объектов, не забывайте про свойства "Представление объекта" и "Представление списка". Хорошим тоном при конфигурировании является заполнение данных свойств.
|
||
|
Так же, важно настраивать права на объекты. В роль ПолныеПрава объекты будут добавлены автоматически, не забудьте настроить, роль БазовыеПрава.
|
||
|
Помните о том, что права на Интерактивное удаление не должны быть предоставлены даже роли Полные права
|
||
|
</details>
|
||
|
|
||
|
3. Справочник "Сотрудники" в этой конфигурации уже должен быть создан. Если нет, создайте его, добавьте в подсистему "Справочники".
|
||
|
Для лучшего отображения справочника, доработаем его: Для стандартного реквизита "Наименование" укажем синоним "ФИО", а для реквизита Код - "Табельный номер"
|
||
|
4. Справочник "Контрагенты", так же, должен быть уже создан. Если нет, создайте его, добавьте в подсистему "Справочники".
|
||
|
5. Создайте простые справочники "Должности" и "Упаковки", справочники не имеют дополнительных реквизитов или табличных частей добавьте их в подсистему "Справочники"
|
||
|
6. Создайте справочник "Контактные лица". Добавьте необходимые реквизиты, подумайте, какие типы данных для них указать. Вместо добавления реквизита ФИО, установите синоним для Наименования. Добавьте справочник в подсистему "Справочники".
|
||
|
|
||
|
<details>
|
||
|
<summary>Дополнительно</summary>
|
||
|
Вспомните, как настраивается командный интерфейс подсистемы, справочники "Должности", "Упаковки" и "Контактные лица" уместно будет разместить в разделе "См. также"
|
||
|
</details>
|
||
|
|
||
|
7. Создайте справочник "Номенклатура". Добавьте необходимые реквизиты. Добавьте справочник в подсистему "Справочники".
|
||
|
8. Подумайте, какая длина наименования должна быть в каждом справочнике, достаточна ли она сейчас
|
||
|
|
||
|
## Задача 2. Создание документа "Событие"
|
||
|
|
||
|
### Описание задачи
|
||
|
|
||
|
В системе будем регистрировать события связанные с нашими контрагентами, для этого создадим специальный документ.
|
||
|
Документ оформляется при взаимодействии с контрагентом. Например, при звонке. Содержит информацию о сути взаимодействия.
|
||
|
Документ должен иметь следующие реквизиты:
|
||
|
|
||
|
- Контрагент (СправочникСсылка.Контрагенты)
|
||
|
- КонтактноеЛицо (СправочникСсылка.Контактные лица)
|
||
|
- Ответственный (СправочникСсылка.Сотрудники, Заполняется значением текущего сотрудника, связанного с пользователем, из параметра сеанса)
|
||
|
- ТипСобытия (ПеречислениеСсылка.ТипыСобытий варианты "Звонок" / "Встреча" / "Письмо")
|
||
|
- Содержание (Многострочная строка)
|
||
|
Все реквизиты должны быть обязательны к заполнению
|
||
|
|
||
|
### Процесс выполнения
|
||
|
|
||
|
1. Используйте ту же базу данных.
|
||
|
2. Создайте новую подсистему верхнего уровня "Сделки" (чтобы в пользовательском режиме был создан отдельный раздел)
|
||
|
3. Создайте перечисление ТипыСобытий, добавьте его в подсистему "Сделки"
|
||
|
4. Создайте документ с необходимыми реквизитами
|
||
|
5. Для Содержания укажите тип Строка длиной 1024 символа (максимальная длина строки, перед неограниченной) в свойствах реквизита установите флажок "Многострочный режим"
|
||
|
6. Пропишите заполнение реквизита Ответственный
|
||
|
|
||
|
<details>
|
||
|
<summary>Частая ошибка</summary>
|
||
|
|
||
|
Вспомните, из модуля посвященного встроенному языку, где прописывается заполнение реквизитов для новых элементов.
|
||
|
|
||
|
Часто встречается ошибка, когда код прописыват в событии "ПриСозданииНаСервере", но "ПриСозданииНаСервере" - это событие формы, оно срабатывает, когда создается **форма**. То есть, в таком случае, у Вас Ответственный будет заполняться при каждом открытии формы документа, даже если пользователь открывает документ просто для просмотра.
|
||
|
|
||
|
Необходимо обрабатывать событие самого документа. То есть, использовать модуль объекта
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## Задача 3. Открытие списка документов из контрагента
|
||
|
|
||
|
### Описание задачи
|
||
|
|
||
|
В нашей конфигурации уже можно вводить данные, но мы хотим упростить для Пользователя поиск событий по конкретному контрагенту.
|
||
|
Для этого, нам необходимо в формах справочника Контрагенты отображать кнопку "События", которая откроет список документов с отбором по конкретному контрагенту.
|
||
|
|
||
|
### Процесс выполнения
|
||
|
|
||
|
Необходимо создать команду, в которую параметром будет передан контрагент, а сама команда должна располагаться в форме списка и форме объекта документа. При этом, команда связана непосредственно с документом, по этому:
|
||
|
|
||
|
1. В дереве конфигурации разверните Документы - События - Выберите строку Команды.
|
||
|
2. Добавьте новую команду, назовите ее "События"
|
||
|
3. В поле "Тип параметра команды" укажите СправочникСсылка.Контрагенты, Режим использования параметра - Одиночный, Группа - Командная панель формы.Важное
|
||
|
4. В модули команды, пропишите код, открывающий список документов Событие с установленным отбором по Контрагенту, переданному в ПараметрКоманды, в качестве значения Уникальности формы, так же используйте Контрагента
|
||
|
|
||
|
<details>
|
||
|
<summary>Код</summary>
|
||
|
|
||
|
```bsl
|
||
|
ЗначениеОтбора = Новый Структура("Контрагент", ПараметрКоманды);
|
||
|
ПараметрыОткрытияФормы = Новый Структура("Отбор", ЗначениеОтбора);
|
||
|
ОткрытьФорму("Документ.Событие.ФормаСписка", ПараметрыОткрытияФормы, , ПараметрКоманды); // Уникальность - Контрагент
|
||
|
```
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## Пример
|
||
|
|
||
|
[Пример выполнения домашнего задания](examples/HW_4_1_example.md)
|
||
|
|
||
|
## Критерии оценки
|
||
|
|
||
|
Зачёт ставится, если:
|
||
|
|
||
|
1. Программа запускается, не возникает явных ошибок, исключений при выполнении программы (в том числе, если Вы начали делать дополнительную задачу, ее функционал не должен приводить к ошибкам и исключениям)
|
||
|
2. Созданы все справочники и документы
|
||
|
3. Типы данных для реквизитов установлены корректно
|
||
|
4. Все объекты отображаются в интерфейсе
|
||
|
5. Корректно работает переход к списку контрагентов
|
||
|
6. При открытии формы списка, правильно устанавливается уникальность открываемой формы
|
||
|
7. Введены тестовые данные
|
||
|
|
||
|
Все задачи обязательны к выполнению (кроме текста под спойлером "Дополнительно" - эти задачи делать не обязательно. Возможно, Вы вернетесь к ним позднее, после того, как изучите дополнительный материал).
|
||
|
|
||
|
Пожалуйста, присылайте на проверку все задачи сразу, одним файлом выгрузки информационной базы (dt)
|
||
|
|
||
|
Любые вопросы по решению задач задавайте в чате учебной группы.
|