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
2020-07-10 10:00:20 +03:00

5.3 KiB

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

Задача 1 "Цены"

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

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

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

Конфигурация из предыдущих заданий с новым регистром "Цены", который:

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

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

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

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

Задача 2 "История цен"

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

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

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

Отчет "История цен", который:

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

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

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