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-deals.md
2020-07-20 12:14:29 +03:00

12 KiB

Сделки

Все добавляемые объекты включаем в новую подсистему Сделки

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