1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2025-02-10 18:10:35 +02:00

Update diploma-b-howto-deals.md

This commit is contained in:
Stanislav Wilf 2020-07-20 13:14:50 +03:00 committed by GitHub
parent 6f0da946e4
commit 4c80df704f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,9 +31,9 @@
* В таблице товаров и услуг включить отображение подвала и вывести в него итог по колонкам "Сумма" и "Сумма НДС", поставив флаг "Отображать в подвале" и задав путь к данным подвала.
* Создать клиентские процедуры:
* ПриИзмененииКоличества(ИзмененнаяСтрока), ПриИзмененииЦены(ИзмененнаяСтрока), в которых:
* Рассчитывать сумму по цене и количеству и вызывать ПриИзмененииСуммы
* Рассчитывать сумму по цене и количеству и вызывать ПриИзмененииСуммы()
* ПриИзмененииСуммы(ИзмененнаяСтрока), ПриИзмененииСтавкиНДС(ИзмененнаяСтрока), в которых:
* Рассчитывать сумму НДС по сумме и ставке
* Рассчитывать сумму НДС по сумме и ставке вызовом НДСКлиентСервер.СуммаНДСПоСтавке()
* Переопределить обработчики событий ПриИзменении полей ввода для количества, цены, суммы и ставки НДС, и вызывать из них процедуры ПриИзменении<...>, передавая в качестве параметра ТекущиеДанные таблицы.
* Форма может выглядеть, например, так:
![Форма документа ПоступлениеТоваровИУслуг](diploma-b-purchase.png)
@ -62,25 +62,32 @@
* Создать форму документа, в которой:
* Разумным образом разместить элементы управления для реквизитов и табличных частей
* В таблице товаров и услуг включить отображение подвала и вывести в него итог по колонкам "Сумма" и "Сумма НДС".
* Создать клиентскую функцию СуммаПоСтроке(Строка), которая возвращает сумму с учетом количества, цены и скидки
* Создать клиентские процедуры:
* ПриИзмененииНоменклатуры(ИзмененнаяСтрока), в которой:
* Заполнять цену и скидку аналогично документам **УстановкаЦен** и **УстановкаСкидок** и вызывать процедуры ПриИзмененииЦены и ПриИзмененииСкидки
* Заполнять цену и скидку аналогично документам **УстановкаЦен** и **УстановкаСкидок**, а также заполнять ставку НДС и вызывать процедуры ПриИзмененииЦены, ПриИзмененииСкидки и ПриИзмененииСтавкиНДС
* ПриИзмененииКоличества(ИзмененнаяСтрока), ПриИзмененииЦены(ИзмененнаяСтрока), ПриИзмененииСкидки(ИзмененнаяСтрока), в которых:
* Рассчитывать сумму по цене, количеству и скидке и вызывать ПриИзмененииСуммы
* Рассчитывать сумму вызовом СуммаПоСтроке() и вызывать ПриИзмененииСуммы()
* ПриИзмененииСуммы(ИзмененнаяСтрока), ПриИзмененииСтавкиНДС(ИзмененнаяСтрока), в которых:
* Рассчитывать сумму НДС по сумме и ставке
* Рассчитывать сумму НДС по сумме и ставке вызовом НДСКлиентСервер.СуммаНДСПоСтавке()
* Переопределить обработчики событий ПриИзменении полей ввода номенклатуры, количества, цены, скидки, суммы и ставки НДС, и вызывать из них процедуры ПриИзменении<...>, передавая в качестве параметра ТекущиеДанные таблицы.
* Реализовать подбор аналогично документу **УстановкаЦен**, в обработчике события **ОбработкаВыбора** вызывая процедуру ПриИзмененииНоменклатуры, чтобы обеспечить получение цен и скидок и автоматический пересчет.
* Реализовать подбор аналогично документу **УстановкаЦен**, передавая в качестве владельца открываемой формы таблицу ТоварыИУслуги, а в обработчике события ОбработкаВыбора вызывая процедуру ПриИзмененииНоменклатуры, чтобы обеспечить получение цен и скидок и автоматический пересчет сумм.
* Форма может выглядеть, например, так:
![Форма документа РеализацияТоваровИУслуг](diploma-b-sale.png)
* В модуле объекта:
* Создать обработчик события ОбработкаПроведения и формировать движения:
* Создать обработчик события ОбработкаПроведения и формировать движения, выбрав предварительно запросом данные табличной части документа с типами номенклатуры и соединив с виртуальной таблицей Остатки регистра Товары по номенклатуре:
* По регистру Взаиморасчеты - одно движение вида "Приход" с указанием контрагента-покупателя и общей суммы
* По регистру Товары - движения вида "Расход" по каждой строке с номенклатурой типа Товары с указанием номенклатуры, количества и суммы. Сумму рассчитывать, выбрав запросом остатки по номенклатуре в табличной части, определив среднюю стоимость единицы делением суммы на количество и умножив среднюю стоимость на реализуемое количество. При нехватке остатков отказываться от проведения, выводя пользователю разумное сообщение.
* По регистру Товары - движения вида "Расход" по каждой строке с номенклатурой типа Товары с указанием номенклатуры, количества и суммы. Сумму рассчитывать, определив среднюю стоимость единицы делением суммы остатка на количество остатка и умножив среднюю стоимость на реализуемое количество. При нехватке остатков отказываться от проведения, выводя пользователю разумное сообщение.
* По регистру Расходы - движения по каждой строке с номенклатурой типа Товары с указанием номенклатуры и суммы, равной сумме расхода по регистру Товары.
* По регистру Доходы - движения по каждой строке с указанием номенклатуры, количества и суммы
* Создать обработчик события ПередЗаписью и сохранять в реквизит шапки Сумма итог по одноименному реквизиту табличной части для отображения в списках
* Проверить документ, убедившись в том, что:
* При изменении количества, цены и скидки пересчитывается сумма и сумма НДС, а при изменении суммы и ставки НДС - сумма НДС
* Формируются движения по четырем регистрам накопления, и сумма движения по Взаиморасчетам равна итогу по колонке Сумма и сумме движений по Доходам, а суммы движений по Расходам и Товарам совпадают. Пример движений для документа со снимка выше:
![Движения документа РеализацияТоваровИУслуг по регистру Взаиморасчеты](diploma-b-sale-1.png)
![Движения документа РеализацияТоваровИУслуг по регистру Доходы](diploma-b-sale-2.png)
![Движения документа РеализацияТоваровИУслуг по регистру Расходы](diploma-b-sale-3.png)
![Движения документа РеализацияТоваровИУслуг по регистру Товары](diploma-b-sale-4.png)
8. Добавить журнал документов **Сделки**:
* В качестве регистрируемых выбрать документы **ПоступлениеТоваровИУслуг** и **РеализацияТоваровИУслуг**