mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
Уточнение требований к итоговой работе
This commit is contained in:
parent
5805bf35ba
commit
3eb3180cea
@ -32,7 +32,7 @@
|
||||
* С корреспонденцией
|
||||
* С ресурсами:
|
||||
* **Сумма** (ОпределяемыйТип.Сумма)
|
||||
* **Количество** (ОпределяемыйТип.Количество) - с признаком учета **Количественный**
|
||||
* **Количество** (ОпределяемыйТип.Количество) - с признаком учета **Количественный** и со снятым флажком **Балансовый**
|
||||
* В регистраторы добавить документы:
|
||||
* **ПоступлениеТоваровИУслуг**
|
||||
* **РеализацияТоваровИУслуг**
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
5. Доработать обработчик проведения документа **РеализацияТоваровИУслуг**:
|
||||
* Формировать движение Дт **РасчетыСПокупателями** с заполнением субконто Контрагенты - Кт **Доходы** на общую сумму продажи (по всем строкам).
|
||||
* Для строк с номенклатурой вида Товар формировать движение Дт **Расходы** - Кт **Товары** с заполнением субконто Номенклатура на сумму себестоимости списанного товара. Себестоимость должна рассчитываться по данным регистра бухгалтерии, а не по данным регистра накопления **Товары**. Данные регистра бухгалтерии нужно получать запросом к виртуальной таблице **РегистрБухгалтерии.Управленческий.Остатки** на МоментВремени() проводимого документа.
|
||||
* Для строк с номенклатурой вида Товар формировать движение Дт **Расходы** - Кт **Товары** с заполнением субконто Номенклатура на сумму себестоимости списанного товара. Себестоимость должна рассчитываться по данным регистра бухгалтерии, а не по данным регистра накопления **Товары**. Данные регистра бухгалтерии нужно получать запросом к виртуальной таблице **РегистрБухгалтерии.Управленческий.Остатки** на МоментВремени() проводимого документа. При списании необходимо проверять, что количества товара достаточно для списания.
|
||||
|
||||
6. Доработать документ **ПоступлениеДенежныхСредств**:
|
||||
* Тип реквизита **Плательщик** сделать составным и расширить его типом **СправочникСсылка.Сотрудники**.
|
||||
|
@ -39,23 +39,20 @@
|
||||
* Создать для него понятную форму документа.
|
||||
* На закладке "Движения" сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий**
|
||||
* В обработке проведения:
|
||||
* Запросом выбрать оклады (реквизит **Оклад** из справочника **Сотрудники**) по сотрудникам из табличной части. Проще всего передать в запрос массив сотрудников, выгруженный из табличной части методом **ВыгрузитьКолонку**.
|
||||
* Записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом:
|
||||
* В качестве периода регистрации указать дату документа, а в качестве периода действия - начало и конец месяца даты **ЗаМесяц**.
|
||||
* В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ОплатаПоОкладу.
|
||||
* Записав движения, обойти их повторно и для каждой записи рассчитать сумму оплаты по окладу. При этом:
|
||||
* Оклад определить, найдя сотрудника в ранее выбранных данных.
|
||||
* Факт и норму определить вызовом метода **ПолучитьДанныеГрафика**, а сумму - умножением оклада на частное деления факта на норму:
|
||||
* После записи движений документа, выполнить запрос к ним, в запросе:
|
||||
* Получить оклад для каждого сотрудника.
|
||||
* Получить факт и норму из соответствующей виртуальной таблицы регистра расчета.
|
||||
* Получить номер строки движений для последующего обращения к нужному.
|
||||
* Обойти результат запроса, на каждой итерации цикла выполнив расчет сумму путем умножения оклада на частное деления факта на норму:
|
||||
|
||||
```bsl
|
||||
ТаблицаНорма = Движение.ПолучитьДанныеГрафика(
|
||||
ВидПериодаРегистраРасчета.ПериодДействия);
|
||||
Норма = ТаблицаНорма[0].Рабочий;
|
||||
ТаблицаФакт = Движение.ПолучитьДанныеГрафика(
|
||||
ВидПериодаРегистраРасчета.ФактическийПериодДействия);
|
||||
Факт = ТаблицаФакт[0].Рабочий;
|
||||
Движение.Сумма = ?(Норма = 0, 0, Оклад * Факт / Норма);
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Движение = Движения.Зарплата[Выборка.НомерСтроки - 1];
|
||||
Движение.Сумма = Выборка.Оклад * Выборка.Факт / Выборка.План;
|
||||
КонецЦикла;
|
||||
```
|
||||
|
||||
* Определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудникми**, заполнив субконто **Сотрудник**.
|
||||
@ -74,39 +71,13 @@
|
||||
* Записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом:
|
||||
* В качестве периода регистрации указать дату документа, а в качестве периода действия и базового периода действия - начало и конец месяца даты **ЗаМесяц**.
|
||||
* В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ПремияПроцентом.
|
||||
* Записав движения, получить базу запросом:
|
||||
|
||||
```bsl
|
||||
Запрос = Новый Запрос(
|
||||
"ВЫБРАТЬ
|
||||
| ЗарплатаБазаЗарплата.Сотрудник КАК Сотрудник,
|
||||
| ЗарплатаБазаЗарплата.СуммаБаза КАК СуммаБаза
|
||||
|ИЗ
|
||||
| РегистрРасчета.Зарплата.БазаЗарплата(
|
||||
| &Измерения,
|
||||
| &Измерения,
|
||||
| ,
|
||||
| Регистратор = &Регистратор
|
||||
| И ВидРасчета = &ВидРасчета) КАК ЗарплатаБазаЗарплата");
|
||||
Запрос.УстановитьПараметр("Регистратор", Ссылка);
|
||||
Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.Начисления.ПремияПроцентом);
|
||||
Измерения = Новый Массив;
|
||||
Измерения.Добавить("Сотрудник");
|
||||
Запрос.УстановитьПараметр("Измерения", Измерения);
|
||||
База = Запрос.Выполнить().Выгрузить();
|
||||
```
|
||||
|
||||
* Обойти движения повторно и для каждой записи рассчитать сумму премии процентом. При этом:
|
||||
* Базу определить, найдя сотрудника в ранее выбранной таблице **База**.
|
||||
* Сумму определить, умножив базу на процент премии и поделив на 100.
|
||||
* Записав движения, получить базу запросом к соответствующей виртуальной таблице.
|
||||
* Обойти результат запроса, на каждой итерации цикла выполнив расчет премии, умножив базу на процент премии и поделив на 100.
|
||||
|
||||
```bsl
|
||||
Для Каждого Движение Из Движения.Зарплата Цикл
|
||||
СтрокаБазы = База.Найти(Движение.Сотрудник);
|
||||
Если СтрокаБазы = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Движение.Сумма = СтрокаБазы.СуммаБаза * Процент / 100;
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Движение = Движения.Зарплата[Выборка.НомерСтроки - 1];
|
||||
Движение.Сумма = Выборка.СуммаБаза * Процент / 100;
|
||||
КонецЦикла;
|
||||
```
|
||||
|
||||
|
@ -1,4 +1,14 @@
|
||||
## Требования к результату
|
||||
# Требования к результату
|
||||
|
||||
## Технические требования
|
||||
|
||||
* Программный код всех модулей должен быть оформлен в соответствии со стандартами разработки на платформе 1С:Предприятие по ссылке: https://its.1c.ru/db/v8std#content:456:hdoc
|
||||
|
||||
* Недопустимо выполнять запросы в цикле, в том числе неявные при обращении через точку к реквизиту ссылки. То есть обращение `Строка.Номенклатура.ТипНоменклатуры` недопустимо.
|
||||
|
||||
* При работе с регистрами расчета необходимо получать данные для расчета через виртуальные таблицы. Недопустимо использовать объектную модель для обращения к регистрам расчета.
|
||||
|
||||
## Функциональные требования
|
||||
|
||||
Выгрузка информационной базы (файл с расширением dt), включающий демоданные и конфигурацию с именем "УправлениеИТФирмой" из диплома блока Б, дополненную:
|
||||
|
||||
@ -35,7 +45,7 @@
|
||||
* Для услуг - Дт **Расходы** - Кт **РасчетыСПоставщиками** с заполнением субконто Контрагенты на сумму закупки.
|
||||
* Документ **РеализацияТоваровИУслуг**:
|
||||
* Для всех строк - Дт **РасчетыСПокупателями** с заполнением субконто Контрагенты - Кт **Доходы** на сумму продажи.
|
||||
* Для товаров - Дт **Расходы** - Кт **Товары** с заполнением субконто Номенклатура на сумму себестоимости списанного товара. Себестоимость должна рассчитываться по данным регистра бухгалтерии, а не по данным регистра накопления **Товары**.
|
||||
* Для товаров - Дт **Расходы** - Кт **Товары** с заполнением субконто Номенклатура на сумму себестоимости списанного товара. Себестоимость должна рассчитываться по данным регистра бухгалтерии, а не по данным регистра накопления **Товары**. Недопустимо списание товара в минус.
|
||||
* Документ **ПоступлениеДенежныхСредств** (после расширения типа реквизита **Плательщик** типом **СправочникСсылка.Сотрудники**):
|
||||
* Для контрагентов - Дт **ДенежныеСредства** - Кт **РасчетыСПокупателями** с заполнением субконто **Контрагенты** на сумму платежа.
|
||||
* Для сотрудников - Дт **ДенежныеСредства** - Кт **РасчетыССотрудниками** с заполнением субконто **Сотрудники** на сумму платежа.
|
||||
|
Loading…
Reference in New Issue
Block a user