Pavel Marychev 91804a3f56 Добавил решение 4-4
Регистры сведений
2021-11-23 23:20:44 +04:00

61 lines
5.5 KiB
Plaintext
Raw 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 "Цены"
### Описание задачи
Создать периодический регистр сведений "Цены" для хранения цен номенклатуры с историей.
### Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий с новым регистром "Цены", который:
* содержит измерение Номенклатура, ресурс Цена и реквизит Установил;
* является периодическим с точностью до секунды;
* скрыт из командного интерфейса.
В форме списка справочника "Номенклатура" должен находиться динамический список с ценами и соответствующая ему таблица.
Список должен быть отобран по активному товару (услуге) и упорядочен по убыванию дат.
При создании новых записей регистра Цены в реквизит Установил должен автоматически подставляться текущий сотрудник.
### Процесс выполнения
* Создать регистр сведений "Цены", в котором:
* Указать периодичность "До секунды";
* Добавить ведущее измерение "Номенклатура", ресурс "Цена" и реквизит "Установил" (СправочникСсылка.Сотрудники);
* Снять флажок "Использовать стандартные команды", чтобы скрыть его из командного интерфейса (мы сделаем интерфейс лучше, чем предоставляет платформа автоматически);
* В модуле набора записей реализовать обработчик события ОбработкаЗаполнения, в котором:
* обойти все записи как элементы коллекции ЭтотОбъект
* для каждой записи заполнить реквизит Установил значением по умолчанию (текущим сотрудником);
* Включить в состав роли БазовыеПрава;
* В форме списка справочника "Номенклатура" из предыдущих заданий:
* Создать динамический список "Цены" с основной таблицей "РегистрСведений.Цены";
* Вывести его таблицей формы под таблицей с группами номенклатуры;
* В обработчике ПриАктивизацииСтроки таблицы с элементами номенклатуры установить отбор по измерению "Номенклатура", аналогично отбору элементов при активизации группы;
* Поскольку установка отбора динамического списка - операция популярная, лучше создать для нее процедуру в общем модуле, например, ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка().
## Задача 2 "История цен"
### Описание задачи
Создать отчет, выводящий историю цен номенклатуры.
### Требования к результату
Выгрузка информационной базы (.dt) с Отчетом "История цен", который:
* построен на СКД;
* на первом уровне группировок выводит номенклатуру по иерархии, а на уровне детальных записей - период, упорядоченный по убыванию, цену и сотрудника, установившего ее.
### Процесс выполнения
* Создать отчет "История цен", в котором:
* Создать основную схему компоновки данных;
* Добавить в нее набор данных - запрос;
* Открыв "Конструктор запроса", добавить таблицу "РегистрыСведений.Цены" со всеми ее полями.
* На закладке "Настройка", в варианте "Основной", добавить группировки:
* Номенклатура - Иерархия (под корнем "Отчет").
* Пустую (детальные записи, под группировкой "Номенклатура").
* В "Выбранные поля" перетащить поля Номенклатура, Период, Установил и Цена.
* На закладке "Сортировка" добавить сортировку по номенклатуре (по возрастанию) и по периоду (по убыванию).
* Проверить отчет в режиме Предприятия.