1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/homework-4-3.md

59 lines
8.1 KiB
Markdown
Raw Normal View History

2023-01-18 19:51:56 +02:00
# Задание к занятию «Иерархия и подчинение»
2020-05-03 12:53:07 +02:00
2023-01-18 19:51:56 +02:00
## Задача 1. «Номенклатура»
2020-05-03 12:53:07 +02:00
### Описание задачи
2023-01-18 19:51:56 +02:00
Создать иерархический справочник «Номенклатура» для хранения сведений о товарах и услугах. В форме списка, по аналогии с реальными прикладными решениями, сделать таблицу для групп и таблицу для элементов с отбором элементов по активной группе. Выглядеть это должно примерно так:
2020-05-19 08:05:37 +02:00
![Exapmle](https://github.com/netology-code/1c-homeworks/blob/master/homework-4-2-1.png)
2020-05-03 18:08:58 +02:00
2020-05-03 12:53:07 +02:00
### Требования к результату
2023-01-18 19:51:56 +02:00
Выгрузка информационной базы (.dt) со Справочником «Номенклатура»:
2020-05-03 18:08:58 +02:00
* с неограниченной иерархией групп и элементов;
2023-01-18 19:51:56 +02:00
* с реквизитами Тип (ПеречислениеСсылка.ТипыНоменклатуры) и ПолноеНаименование, определёнными только для элементов;
* с формой списка, разделенной на дерево групп (в режиме «Дерево») и список элементов (в режиме «Список»);
2020-05-03 18:08:58 +02:00
* с отбором элементов по принадлежности к активной группе.
2020-05-03 12:53:07 +02:00
### Процесс выполнения
2023-01-18 19:51:56 +02:00
1. Создать перечисление ТипыНоменклатуры со значениями Товар, Услуга.
2. Создать справочник Номенклатура (синоним «Товар, услуга»):
* с неограниченной иерархией групп и элементов.
* с реквизитами ПолноеНаименование (строка неограниченной длины) и Тип (ПеречислениеСсылка.ТипыНоменклатуры), определенными только для элементов. Сделать тип обязательным к заполнению.
3. Включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление).
4. Создать форму списка, в которой:
* отключить автозаполнение общей командной панели — её заменит командная панель списка элементов;
* создать общую группу с горизонтальной группировкой элементов, в которой разместить две группы с вертикальным расположением: правую — для дерева групп номенклатуры, левую — для списка элементов;
* в автоматически созданном динамическом списке Список установить отбор по условию ЭтоГруппа = Ложь, а соответствующую таблицу формы перетащить в левую группу. Выбрать для нее режим отображения «Список»;
* из состава команд таблицы формы «Список» исключить команду «Создать группу» — она будет только в командной панели дерева групп;
* создать динамический список Группы с основной таблицей Справочник.Номенклатура и отбором по условию ЭтоГруппа = Истина;
* перетащить динамический список Группы на форму в правую группу и для этой таблицы выбрать режим отображения «Дерево»;
* исключить из состава её команд команду «Создать» (элемент) — она останется только для списка элементов;
* реализовать для таблицы Группы обработчик события ПриАктивизацииСтроки, в котором установить отбор по значению текущей группы. Для установки использовать коллекцию элементов отбора компоновки данных (Список.Отбор.Элементы), в которой:
* сперва попытаться перебором найти ранее установленный отбор по значению свойства ЛевоеЗначение — оно будет равно полю компоновки данных, созданному вами по имени «Родитель»;
* при его наличии установить новое значение свойства ПравоеЗначение, а при его отсутствии добавить новый элемент отбора, установив ЛевоеЗначение, ПравоеЗначение, ВидСравнения и Использование. Обратите внимание: в качестве вида сравнения следует указывать элемент предопределенного перечисления ВидСравненияКомпоновкиДанных, а не ВидСравнения.
## Задача 2. «Упаковки»
2020-05-03 18:08:58 +02:00
2020-05-03 12:53:07 +02:00
### Описание задачи
2023-01-18 19:51:56 +02:00
Создать справочник «Упаковки», подчинённый справочнику «Номенклатура» и хранящий сведения о возможных упаковках товаров с указанием количества единиц товара в каждой упаковке. В реальных прикладных решениях, как правило, в документах товарного учета указывается товар, упаковка и количество упаковок, а общее количество единиц программа рассчитывает сама.
2020-05-03 18:08:58 +02:00
2020-05-03 12:53:07 +02:00
### Требования к результату
2023-01-18 19:51:56 +02:00
Выгрузка информационной базы (.dt) со Справочником «Упаковки»:
2020-05-03 18:08:58 +02:00
* подчиненный Номенклатуре как владельцу;
2023-01-18 19:51:56 +02:00
* с синонимом стандартного реквизита «Владелец» — «Товар»;
* с числовым реквизитом «Коэффициент» — количество единиц товара в упаковке;
* со списком, открывающимся по ссылке в панели навигации формы элемента справочника «Номенклатура».
2020-05-03 18:08:58 +02:00
2020-05-03 12:53:07 +02:00
### Процесс выполнения
2020-05-03 18:08:58 +02:00
2023-01-18 19:51:56 +02:00
* Создать справочник «Упаковки» (синоним «Упаковка»):
* подчинённый номенклатуре как владельцу (задать синоним стандартного реквизита — «Товар»);
* с числовым реквизитом «Коэффициент», имеющим достаточную точность для упаковок штучного и весового товара;
* не выводить его в общий командный интерфейс конфигурации;
* включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление);
* удостовериться в том, что для него автоматически отображается команда перехода в панели навигации формы элемента справочника «Номенклатура».