1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00

Update diploma-b-howto-settings.md

This commit is contained in:
EleShvili 2023-01-24 21:50:30 +03:00 committed by GitHub
parent 6620198640
commit f8ba5fe2e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,74 +1,74 @@
### Настройка
Все добавляемые объекты включаем в подсистему **Настройка**.
Все добавляемые объекты включаем в подсистему **«Настройка»**.
1. Добавить перечисление **ТипыНоменклатуры** со значениями Товар и Услуга.
1. Добавить перечисление **«ТипыНоменклатуры»** со значениями «Товар» и «Услуга».
2. Добавить перечисление **СтавкиНДС** со значениями БезНДС ("Без НДС"), НДС10 ("10%"), НДС20 ("20%").
2. Добавить перечисление **«СтавкиНДС»** со значениями БезНДС («Без НДС»), НДС10 («10%»), НДС20 («20%»).
3. Добавить справочник **НоменклатурныеГруппы**:
* Синоним - "Номенклатурные группы", представление объекта - "Номенклатурная группа"
* Убрать код, дать разумную длину наименованию
3. Добавить справочник **«НоменклатурныеГруппы»**:
* синоним — «Номенклатурные группы», представление объекта — «Номенклатурная группа»;
* убрать код, дать разумную длину наименованию.
4. Добавить справочник **Номенклатура**:
* Убрать код, дать разумную длину наименованию
* Включить иерархию групп и элементов
* Добавить реквизиты, включив в "Проверке заполнения" вариант "Выдавать ошибку", и поставив флаг "Заполнять из данных заполнения":
* Тип - ПеречислениеСсылка.ТипыНоменклатуры
* НоменклатурнаяГруппа - СправочникСсылка.НоменклатурныеГруппы
* СтавкаНДС - ПеречислениеСсылка.СтавкиНДС
* В модуле объекта переопределить событие ОбработкаЗаполнения, заполнив тип и ставку НДС значениями по умолчанию (Товар, НДС20). Заполнять только для элемента (для группы эти реквизиты не определены).
* Создать форму элемента, расположив элементы разумным образом, например, такую:
4. Добавить справочник **«Номенклатура»**:
* убрать код, дать разумную длину наименованию;
* включить иерархию групп и элементов;
* добавить реквизиты, включив в «Проверке заполнения» вариант «Выдавать ошибку» и поставив флаг «Заполнять из данных заполнения»:
* тип — ПеречислениеСсылка.ТипыНоменклатуры;
* номенклатурнаяГруппа — СправочникСсылка.НоменклатурныеГруппы;
* ставкаНДС — ПеречислениеСсылка.СтавкиНДС;
* в модуле объекта переопределить событие «ОбработкаЗаполнения», заполнив тип и ставку НДС значениями по умолчанию: «Товар», «НДС20». Заполнять только для элемента, для группы эти реквизиты не определены;
* создать форму элемента, расположив элементы разумным образом, например, такую:
![Форма элемента справочника Номенклатура](diploma-b-productserviceform.png)
5. Добавить регистр сведений **Цены**:
* Установить периодичность "По позиции регистратора" и режим записи "Подчинение регистратору"
* Добавить измерение Номенклатура (СправочникСсылка.Номенклатура) с флагами "Ведущее" и "Основной отбор" и ресурс Цена (ОпределяемыйТип.Сумма)
* Роли "Базовые права" дать права на просмотр и чтение, роли "Полные права" - на добавление, изменение и запись.
* Добавить общий модуль ЦеныСервер с флажками "Сервер" и "Внешнее соединение", и создать в нем экспортную функцию ЦенаНаДату(Номенклатура, Дата), которая получит запросом срез последних на указанную дату с отбором по номенклатуре и вернет цену.
* Добавить общий модуль ЦеныВызовСервера с флажками "Сервер", "Внешнее соединение" и "Вызов сервера", и создать в нем функцию ЦенаНаДату для вызова из клиентского кода форм, которая вызовет одноименную функцию из модуля ЦеныСервер.
5. Добавить регистр сведений **«Цены»**:
* установить периодичность «По позиции регистратора» и режим записи «Подчинение регистратору»;
* добавить измерение «Номенклатура» (СправочникСсылка.Номенклатура) с флагами «Ведущее» и «Основной отбор» и ресурс «Цена» (ОпределяемыйТип.Сумма);
* роли «Базовые права» дать права на просмотр и чтение, роли «Полные права» — на добавление, изменение и запись;
* добавить общий модуль «ЦеныСервер» с флажками «Сервер» и «Внешнее соединение» и создать в нём экспортную функцию «ЦенаНаДату»(Номенклатура, Дата), которая получит запросом срез последних на указанную дату с отбором по номенклатуре и вернёт цену;
* добавить общий модуль «ЦеныВызовСервера» с флажками «Сервер», «Внешнее соединение» и «Вызов сервера» и создать в нём функцию «ЦенаНаДату» для вызова из клиентского кода форм, которая вызовет одноименную функцию из модуля «ЦеныСервер».
6. Добавить документ **УстановкаЦен**:
* Добавить ТЧ Цены с реквизитами Номенклатура (СправочникСсылка.Номенклатура) и Цена (ОпределяемыйТип.Сумма)
* В "Движениях" выбрать регистр сведений "Цены"
* Роли "Базовые права" дать права на просмотр и чтение, роли "Полные права" - на добавление, изменение и запись.
* В модуле объекта:
* Переопределить событие ОбработкаПроведения, формируя движения по регистру сведений Цены датой документа
* Создать форму документа, в которой:
* Разумным образом разместить элементы управления для реквизитов и табличных частей
* Создать клиентскую процедуру ПриИзмененииНоменклатуры с параметром ИзмененнаяСтрока (ДанныеФормыЭлементКоллекции), в которой, если Номенклатура заполнена, вызвать ЦеныВызовСервера.ЦенаНаДату и заполнить цену.
* Переопределить событие ПриИзменении поля ввода номенклатуры и вызвать в нем процедуру ПриИзмененииНоменклатуры с передачей текущих данных таблицы цен.
* Добавить команду Подбор, разместив ее в командной панели таблицы цен. В обработчике команды открыть форму выбора справочника Номенклатура с параметром ЗакрыватьПриВыборе = Ложь, указав в качестве владельца таблицу цен.
* Переопределить событие ОбработкаВыбора таблицы цен. В обработчике отказаться от стандартной обработки и, если в таблице еще нет выбранного значения - добавить строку и вызвать процедуру ПриИзмененииНоменклатуры, передав добавленную строку.
* Форма может выглядеть, например, так:
6. Добавить документ **«УстановкаЦен»**:
* добавить ТЧ «Цены» с реквизитами «Номенклатура» (СправочникСсылка.Номенклатура) и «Цена» (ОпределяемыйТип.Сумма);
* в «Движениях» выбрать регистр сведений «Цены»;
* роли «Базовые права» дать права на просмотр и чтение, роли «Полные права» — на добавление, изменение и запись.
* в модуле объекта:
* переопределить событие «ОбработкаПроведения», формируя движения по регистру сведений «Цены» датой документа;
* создать форму документа, в которой:
* разумным образом разместить элементы управления для реквизитов и табличных частей;
* создать клиентскую процедуру ПриИзмененииНоменклатуры с параметром «ИзмененнаяСтрока» (ДанныеФормыЭлементКоллекции), в которой, если Номенклатура заполнена, вызвать «ЦеныВызовСервера.ЦенаНаДату» и заполнить цену;
* переопределить событие «ПриИзменении» поля ввода номенклатуры и вызвать в нём процедуру «ПриИзмененииНоменклатуры» с передачей текущих данных таблицы цен;
* добавить команду «Подбор», разместив её в командной панели таблицы цен. В обработчике команды открыть форму выбора справочника «Номенклатура» с параметром «ЗакрыватьПриВыборе = Ложь», указав в качестве владельца таблицу цен;
* переопределить событие «ОбработкаВыбора» таблицы цен. В обработчике отказаться от стандартной обработки и, если в таблице ещё нет выбранного значения, добавить строку и вызвать процедуру «ПриИзмененииНоменклатуры», передав добавленную строку;
* форма может выглядеть, например, так:
![Форма документа УстановкаЦен](diploma-b-pricesetting.png)
* Проверить документ, убедившись в том, что:
* Введенные цены после проведения появляются в регистре.
* Выбор и подбор номенклатуры в последующих документах автоматически подставляют цены из предыдущих документов.
* проверить документ, убедившись в том, что:
* введённые цены после проведения появляются в регистре;
* выбор и подбор номенклатуры в последующих документах автоматически подставляют цены из предыдущих документов.
7. Добавить регистр сведений **Скидки** (или скопировать и переименовать **Цены**):
* Установить периодичность "По позиции регистратора" и режим записи "Подчинение регистратору"
* Добавить измерение НоменклатураНоменклатурнаяГруппа (СправочникСсылка.Номенклатура, СправочникСсылка.НоменклатурныеГруппы) с флагами "Ведущее" и "Основной отбор" и ресурс Скидка (Число)
* Роли "Базовые права" дать права на просмотр и чтение, роли "Полные права" - на добавление, изменение и запись.
* В общий модуль ЦеныСервер добавить экспортную функцию СкидкаНаДату(Номенклатура, Дата), которая получит запросом срез последних на указанную дату с отбором по номенклатуре и номенклатурной группе и вернет скидку, установленную для номенклатурной группы, если нет скидки для конкретной номенклатуры. В общий модуль ЦеныВызовСервера добавить одноименную функцию-обертку.
7. Добавить регистр сведений **«Скидки»** или скопировать и переименовать **«Цены»**:
* установить периодичность «По позиции регистратора» и режим записи «Подчинение регистратору»
* добавить измерение «НоменклатураНоменклатурнаяГруппа» (СправочникСсылка.Номенклатура, СправочникСсылка.НоменклатурныеГруппы) с флагами «Ведущее» и «Основной отбор» и ресурс «Скидка» (Число);
* роли «Базовые права» дать права на просмотр и чтение, роли «Полные права» — на добавление, изменение и запись;
* в общий модуль «ЦеныСервер» добавить экспортную функцию «СкидкаНаДату» (Номенклатура, Дата), которая получит запросом срез последних на указанную дату с отбором по номенклатуре и номенклатурной группе и вернёт скидку, установленную для номенклатурной группы, если нет скидки для конкретной номенклатуры. В общий модуль ЦеныВызовСервера» добавить одноименную функцию-обёртку.
8. Добавить документ **УстановкаСкидок** (или скопировать и переименовать **УстановкаЦен**):
* Добавить ТЧ Скидки с реквизитами НоменклатураНоменклатурнаяГруппа (СправочникСсылка.Номенклатура, СправочникСсылка.НоменклатурныеГруппы) и Скидка (Число)
* В "Движениях" выбрать регистр сведений "Скидки"
* Роли "Базовые права" дать права на просмотр и чтение, роли "Полные права" - на добавление, изменение и запись.
* В модуле объекта:
* Переопределить событие ОбработкаПроведения, формируя движения по регистру сведений Скидки датой документа
* Создать форму документа, в которой:
* Разумным образом разместить элементы управления для реквизитов и табличных частей
* Создать клиентскую процедуру ПриИзмененииНоменклатурыНоменклатурнойГруппы с параметром ИзмененнаяСтрока (ДанныеФормыЭлементКоллекции), в которой, если НоменклатураНоменклатурнаяГруппа заполнена, вызвать ЦеныВызовСервера.СкидкаНаДату и заполнить скидку.
* Переопределить событие ПриИзменении поля ввода номенклатуры / номенклатурной группы и вызвать в нем процедуру ПриИзмененииНоменклатурыНоменклатурнойГруппы с передачей текущих данных таблицы скидок.
* Форма может выглядеть, например, так:
8. Добавить документ **«УстановкаСкидок»** или скопировать и переименовать **«УстановкаЦен»**:
* добавить ТЧ «Скидки» с реквизитами «НоменклатураНоменклатурнаяГруппа» (СправочникСсылка.Номенклатура, СправочникСсылка.НоменклатурныеГруппы) и «Скидка» (Число);
* в «Движениях» выбрать регистр сведений «Скидки»;
* роли «Базовые права» дать права на просмотр и чтение, роли «Полные права» — на добавление, изменение и запись;
* в модуле объекта:
* переопределить событие «ОбработкаПроведения», формируя движения по регистру сведений «Скидки» датой документа
* создать форму документа, в которой:
* разумным образом разместить элементы управления для реквизитов и табличных частей;
* создать клиентскую процедуру «ПриИзмененииНоменклатурыНоменклатурнойГруппы» с параметром «ИзмененнаяСтрока» (ДанныеФормыЭлементКоллекции), в которой, если «НоменклатураНоменклатурнаяГруппа» заполнена, вызвать «ЦеныВызовСервера.СкидкаНаДату» и заполнить скидку;
* переопределить событие «ПриИзменении поля ввода номенклатуры / номенклатурной группы» и вызвать в нём процедуру «ПриИзмененииНоменклатурыНоменклатурнойГруппы» с передачей текущих данных таблицы скидок;
* форма может выглядеть, например, так:
![Форма документа УстановкаСкидок](diploma-b-discountsetting.png)
* Проверить документ, убедившись в том, что:
* Введенные скидки после проведения появляются в регистре.
* Выбор в последующих документах автоматически подставляет скидки из предыдущих.
* проверить документ, убедившись в том, что:
* введённые скидки после проведения появляются в регистре;
* выбор в последующих документах автоматически подставляет скидки из предыдущих.
9. Добавить журнал документов **ЦеныИСкидки**:
* В качестве регистрируемых выбрать документы **УстановкаЦен** и **УстановкаСкидок**
* Добавить графу Ответственный
9. Добавить журнал документов **«ЦеныИСкидки»**:
* в качестве регистрируемых выбрать документы **«УстановкаЦен»** и **«УстановкаСкидок»**;
* добавить графу «Ответственный».