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

59 lines
8.1 KiB
Markdown
Raw Normal View History

2020-05-03 18:08:58 +02:00
# Задание к занятию "Иерархия и подчинение"
2020-05-03 12:53:07 +02:00
2020-05-03 18:08:58 +02:00
## Задача 1 "Номенклатура"
2020-05-03 12:53:07 +02:00
### Описание задачи
2020-05-19 08:03:49 +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
### Требования к результату
Выгрузка информационной базы (.dt) со Справочником "Номенклатура":
2020-05-03 18:08:58 +02:00
* с неограниченной иерархией групп и элементов;
2020-05-04 22:45:10 +02:00
* с реквизитами Тип (ПеречислениеСсылка.ТипыНоменклатуры) и ПолноеНаименование, определенными только для элементов;
2020-05-03 18:08:58 +02:00
* с формой списка, разделенной на дерево групп (в режиме "Дерево") и список элементов (в режиме "Список");
* с отбором элементов по принадлежности к активной группе.
2020-05-03 12:53:07 +02:00
### Процесс выполнения
2020-05-03 18:14:59 +02:00
* Создать перечисление ТипыНоменклатуры со значениями Товар, Услуга.
2020-05-09 21:22:18 +02:00
* Создать справочник Номенклатура (синоним "Товар, услуга"):
2020-05-03 18:08:58 +02:00
* С неограниченной иерархией групп и элементов.
2020-05-03 18:14:59 +02:00
* С реквизитами ПолноеНаименование (строка неограниченной длины) и Тип (ПеречислениеСсылка.ТипыНоменклатуры), определенными только для элементов. Сделать тип обязательным к заполнению.
2020-05-09 21:22:18 +02:00
* Включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление).
2020-05-03 18:08:58 +02:00
* Создать форму списка, в которой:
2020-05-04 22:45:10 +02:00
* Отключить автозаполнение общей командной панели (ее заменит командная панель списка элементов).
* Создать общую группу с горизонтальной группировкой элементов, в которой разместить две группы с вертикальным расположением, правую - для дерева групп номенклатуры, левую - для списка элементов.
* В автоматически созданном динамическом списке Список установить отбор по условию ЭтоГруппа = Ложь, а соответствующую таблицу формы перетащить в левую группу. Выбрать для нее режим отображения "Список".
* Создать в левой группе командную панель с источником команд "Список" и исключить из состава команд команду "Создать группу" (она будет только в командной панели дерева групп).
2020-05-05 10:40:50 +02:00
* Создать динамический список Группы с основной таблицей Справочник.Номенклатура и отбором по условию ЭтоГруппа = Истина.
2020-05-04 22:45:10 +02:00
* Перетащить динамический список Группы на форму, в правую группу, и для этой таблицы выбрать режим отображения "Дерево".
* Исключить из состава ее команд команду "Создать" (элемент), она останется только для списка элементов.
2020-05-03 18:08:58 +02:00
* Реализовать для таблицы Группы обработчик события ПриАктивизацииСтроки, в котором установить отбор по значению текущей группы. Для установки использовать коллекцию элементов отбора компоновки данных (Список.Отбор.Элементы), в которой:
2020-05-05 10:40:50 +02:00
* Сперва попытаться перебором найти ранее установленный отбор по значению свойства ЛевоеЗначение (оно будет равно полю компоновки данных, созданному вами по имени "Ссылка").
2020-05-04 22:45:10 +02:00
* При его наличии - установить новое значение свойства ПравоеЗначение, а в его отсутствие - добавить новый элемент отбора, установив ЛевоеЗначение, ПравоеЗначение, ВидСравнения и Использование. Обратите внимание: в качестве вида сравнения следует указывать элемент предопределенного перечисления ВидСравненияКомпоновкиДанных, а не ВидСравнения.
2020-05-03 18:08:58 +02:00
## Задача 2 "Упаковки"
2020-05-03 12:53:07 +02:00
### Описание задачи
2020-05-19 08:03:49 +02:00
Создать справочник "Упаковки", подчиненный справочнику "Номенклатура" и хранящий сведения о возможных упаковках товаров с указанием количества единиц товара в каждой упаковке. В реальных прикладных решениях, как правило, в документах товарного учета указывается товар, упаковка и количество упаковок, а общее количество единиц программа рассчитывает сама.
2020-05-03 18:08:58 +02:00
2020-05-03 12:53:07 +02:00
### Требования к результату
Выгрузка информационной базы (.dt) со Справочником "Упаковки":
2020-05-03 18:08:58 +02:00
* подчиненный Номенклатуре как владельцу;
* с синонимом стандартного реквизита "Владелец" - "Товар";
2020-05-19 08:03:49 +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
* Создать справочник "Упаковки" (синоним "Упаковка"):
* Подчиненный номенклатуре как владельцу (задать синоним стандартного реквизита - "Товар").
* С числовым реквизитом "Коэффициент", имеющим достаточную точность для упаковок штучного и весового товара.
2020-05-03 18:14:59 +02:00
* Не выводить его в общий командный интерфейс конфигурации.
2020-05-09 21:22:18 +02:00
* Включить его в роль БазовыеПрава с правом на чтение, редактирование, изменение, удаление и запись (но не на интерактивное удаление).
2020-05-03 18:14:59 +02:00
* Удостовериться в том, что для него автоматически отображается команда перехода в панели навигации формы элемента справочника "Номенклатура".