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-4.md
2023-01-18 19:20:42 +03:00

5.5 KiB

Задание к занятию «Регистры сведений»

Задача 1. «Цены»

Описание задачи

Создать периодический регистр сведений «Цены» для хранения цен номенклатуры с историей.

Требования к результату

Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий с новым регистром «Цены», который:

  • содержит измерение Номенклатура, ресурс Цена и реквизит Установил;
  • является периодическим с точностью до секунды;
  • скрыт из командного интерфейса.

В форме списка справочника «Номенклатура» должен находиться динамический список с ценами и соответствующая ему таблица. Список должен быть отобран по активному товару (услуге) и упорядочен по убыванию дат. При создании новых записей регистра Цены в реквизит Установил должен автоматически подставляться текущий сотрудник.

Процесс выполнения

  1. Создать регистр сведений «Цены», в котором:
  • указать периодичность «До секунды»;
  • добавить ведущее измерение «Номенклатура», ресурс «Цена» и реквизит «Установил» (СправочникСсылка.Сотрудники);
  • снять флажок «Использовать стандартные команды», чтобы скрыть его из командного интерфейса (мы сделаем интерфейс лучше, чем предоставляет платформа автоматически);
  • в модуле набора записей реализовать обработчик события ОбработкаЗаполнения, в котором:
    • обойти все записи как элементы коллекции ЭтотОбъект;
    • для каждой записи заполнить реквизит Установил значением по умолчанию (текущим сотрудником).
  1. Включить в состав роли БазовыеПрава.
  2. В форме списка справочника «Номенклатура» из предыдущих заданий:
  • создать динамический список «Цены» с основной таблицей «РегистрСведений.Цены»;
  • вывести его таблицей формы под таблицей с группами номенклатуры;
  • в обработчике ПриАктивизацииСтроки таблицы с элементами номенклатуры установить отбор по измерению «Номенклатура» аналогично отбору элементов при активизации группы;
    • поскольку установка отбора динамического списка — операция популярная, лучше создать для неё процедуру в общем модуле, например, ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка().

Задача 2. «История цен»

Описание задачи

Создать отчёт, выводящий историю цен номенклатуры.

Требования к результату

Выгрузка информационной базы (.dt) с Отчётом «История цен», который:

  • построен на СКД;
  • на первом уровне группировок выводит номенклатуру по иерархии, а на уровне детальных записей — период, упорядоченный по убыванию, цену и сотрудника, установившего её.

Процесс выполнения

Создать отчёт «История цен», в котором:

  • создать основную схему компоновки данных;
  • добавить в неё набор данных — запрос;
  • открыв «Конструктор запроса», добавить таблицу «РегистрыСведений.Цены» со всеми её полями;
  • на закладке «Настройка» в варианте «Основной» добавить группировки:
    • Номенклатура — Иерархия (под корнем «Отчёт»);
    • Пустую (детальные записи, под группировкой «Номенклатура»);
  • в «Выбранные поля» перетащить поля Номенклатура, Период, Установил и Цена;
  • на закладке «Сортировка» добавить сортировку по номенклатуре (по возрастанию) и по периоду (по убыванию);
  • проверить отчёт в режиме Предприятия.