1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/diploma-b-howto-settings.md
2023-01-24 21:50:30 +03:00

11 KiB

Настройка

Все добавляемые объекты включаем в подсистему «Настройка».

  1. Добавить перечисление «ТипыНоменклатуры» со значениями «Товар» и «Услуга».

  2. Добавить перечисление «СтавкиНДС» со значениями БезНДС («Без НДС»), НДС10 («10%»), НДС20 («20%»).

  3. Добавить справочник «НоменклатурныеГруппы»:

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