2021-11-21 22:53:59 +04:00

59 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Задание к занятию "Иерархия и подчинение"
## Задача 1 "Номенклатура"
### Описание задачи
Создать иерархический справочник "Номенклатура" для хранения сведений о товарах и услугах. В форме списка, по аналогии с реальными прикладными решениями, сделать таблицу для групп и таблицу для элементов, с отбором элементов по активной группе. Выглядеть это должно примерно так:
![Exapmle](https://github.com/netology-code/1c-homeworks/blob/master/homework-4-2-1.png)
### Требования к результату
Выгрузка информационной базы (.dt) со Справочником "Номенклатура":
* с неограниченной иерархией групп и элементов;
* с реквизитами Тип (ПеречислениеСсылка.ТипыНоменклатуры) и ПолноеНаименование, определенными только для элементов;
* с формой списка, разделенной на дерево групп (в режиме "Дерево") и список элементов (в режиме "Список");
* с отбором элементов по принадлежности к активной группе.
### Процесс выполнения
* Создать перечисление ТипыНоменклатуры со значениями Товар, Услуга.
* Создать справочник Номенклатура (синоним "Товар, услуга"):
* С неограниченной иерархией групп и элементов.
* С реквизитами ПолноеНаименование (строка неограниченной длины) и Тип (ПеречислениеСсылка.ТипыНоменклатуры), определенными только для элементов. Сделать тип обязательным к заполнению.
* Включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление).
* Создать форму списка, в которой:
* Отключить автозаполнение общей командной панели (ее заменит командная панель списка элементов).
* Создать общую группу с горизонтальной группировкой элементов, в которой разместить две группы с вертикальным расположением, правую - для дерева групп номенклатуры, левую - для списка элементов.
* В автоматически созданном динамическом списке Список установить отбор по условию ЭтоГруппа = Ложь, а соответствующую таблицу формы перетащить в левую группу. Выбрать для нее режим отображения "Список".
* Из состава команд таблицы формы "Список" исключить команду "Создать группу" (она будет только в командной панели дерева групп).
* Создать динамический список Группы с основной таблицей Справочник.Номенклатура и отбором по условию ЭтоГруппа = Истина.
* Перетащить динамический список Группы на форму, в правую группу, и для этой таблицы выбрать режим отображения "Дерево".
* Исключить из состава ее команд команду "Создать" (элемент), она останется только для списка элементов.
* Реализовать для таблицы Группы обработчик события ПриАктивизацииСтроки, в котором установить отбор по значению текущей группы. Для установки использовать коллекцию элементов отбора компоновки данных (Список.Отбор.Элементы), в которой:
* Сперва попытаться перебором найти ранее установленный отбор по значению свойства ЛевоеЗначение (оно будет равно полю компоновки данных, созданному вами по имени "Родитель").
* При его наличии - установить новое значение свойства ПравоеЗначение, а в его отсутствие - добавить новый элемент отбора, установив ЛевоеЗначение, ПравоеЗначение, ВидСравнения и Использование. Обратите внимание: в качестве вида сравнения следует указывать элемент предопределенного перечисления ВидСравненияКомпоновкиДанных, а не ВидСравнения.
## Задача 2 "Упаковки"
### Описание задачи
Создать справочник "Упаковки", подчиненный справочнику "Номенклатура" и хранящий сведения о возможных упаковках товаров с указанием количества единиц товара в каждой упаковке. В реальных прикладных решениях, как правило, в документах товарного учета указывается товар, упаковка и количество упаковок, а общее количество единиц программа рассчитывает сама.
### Требования к результату
Выгрузка информационной базы (.dt) со Справочником "Упаковки":
* подчиненный Номенклатуре как владельцу;
* с синонимом стандартного реквизита "Владелец" - "Товар";
* с числовым реквизитом "Коэффициент" (количество единиц товара в упаковке);
* со списком, открывающимся по ссылке в панели навигации формы элемента справочника "Номенклатура".
### Процесс выполнения
* Создать справочник "Упаковки" (синоним "Упаковка"):
* Подчиненный номенклатуре как владельцу (задать синоним стандартного реквизита - "Товар").
* С числовым реквизитом "Коэффициент", имеющим достаточную точность для упаковок штучного и весового товара.
* Не выводить его в общий командный интерфейс конфигурации.
* Включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление).
* Удостовериться в том, что для него автоматически отображается команда перехода в панели навигации формы элемента справочника "Номенклатура".