Прежде, чем мы начнем создавать объект конфигурации Регистр расчета «Начисления», нам потребуется создать два дополнительных объекта конфигурации - регистр сведений «ГрафикиРаботы» и справочник «ВидыГрафиковРаботы». Справочник понадобится нам для того, чтобы хранить информацию о том, какие графики работы существуют в OOO «На все руки мастер», а регистр сведений - для указания того, какие дни в месяце являются рабочими, поскольку сумма оплаты по окладу будет рассчитываться исходя из того, сколько дней отработал сотрудник в расчетном месяце. Откроем конфигуратор и создадим новый объект конфигурации Справочник с именем «ВидыГрафиковРаботы». В этом справочнике у нас будет два предопределенных графика работы - «ГрафикАдминистрации» и «ГрафикМастеров».
После этого создадим объект конфигурации Регистр сведений с именем «ГрафикиРаботы». Этот регистр будет иметь два измерения:
• «ГрафикРаботы», тип СправочникСсылка.ВидыГрафиковРаботы,
• «Дата», тип Дата.
|
|
Затем создадим единственный ресурс регистра - «Значение», с типом Число, длиной 1.
Запустим 1С:Предприятие в режиме отладки и заполним регистр данными о рабочих днях марта графика мастеров. Чтобы проще выполнить эту довольно однообразную работу, можете воспользоваться возможностью добавления элементов в справочник копированием (Действия | Скопировать). Не забудьте, что 8 марта выходной день, и у вас должно получиться 22 рабочих дня в марте.
Теперь все готово для создания регистра расчета.
Создадим новый объект конфигурации Регистр расчета с именем «Начисления». В качестве плана видов расчета, используемого регистром, выберем план видов расчетов «ОсновныеНачисления». Установим, что регистр будет использовать период действия, график будет задаваться в регистре сведений «ГрафикиРаботы», значение графика будет находиться в ресурсе «Значение», а дата графика - в измерении «Дата».
Укажем, что регистр расчета будет использовать базовый период, и периодичность регистра будет «Месяц».
Затем перейдем на закладку «Данные» и создадим:
• измерение «Сотрудник», тип СправочникСсылка.Сотрудники, базовое,
• ресурс «Результат», тип Число, длина 15, точность 2,
• реквизит «ГрафикРаботы», тип СправочникСсылка.ВидыГрафиковРаботы, связь с графиком по измерению «ГрафикРаботы»,
• реквизит «ИсходныеДанные», тип Число, длина 15, точность 2.
Реквизит «ГрафикРаботы» мы будем использовать для того, чтобы связать запись регистра с используемым графиком работы, а реквизит «ИсходныеДанные» - чтобы хранить в нем данные, которые могут понадобиться при расчете или перерасчете (в нашем примере это будет расчет оклада.
|
|
Теперь перейдем на закладку «Перерасчеты». Создадим объект конфигурации Перерасчет, который так и назовем - «Перерасчет», у него будет единственное измерение - «Сотрудник», для которого в установке связи мы укажем измерение регистра «Сотрудник» и в качестве данных ведущих регистров выберем то же самое измерение «Сотрудник» регистра расчета «Начисления».
Создание документа НачисленияСотрудникам
Для того, чтобы иметь возможность регистрировать в базе данных начисления производимые сотрудникам OOO «На все руки мастер», нам понадобится специальный документ.
Откроем конфигуратор и создадим новый документ. Назовем его «НачисленияСотрудникам».
Этот документ будет иметь табличную часть «Начисления», содержащую следующие реквизиты:
• «Сотрудник», тип СправочникСсылка.Сотрудники,
• «ГрафикРаботы», типСправочникСсылка.ВидыГрафиковРаботы,
• «ДатаНачала», тип Дата,
• «ДатаОкончания», тип Дата,
• «ВидРасчета», тип ПланВидовРасчетаСсылка.ОсновныеНачисления,
• «Результат», Число, длина 15, точность 2.
Реквизиты «ДатаНачала» и «ДатаОкончания» понадобятся нам для того, чтобы задавать период, в котором должна действовать запись расчета. На закладке «Движения» запретим оперативное проведение документа, отметим, что документ будет создавать движения по регистру расчета «Начисления» и запустим конструктор движений.
В окне конструктора выберем табличную часть «Начисления» нажмем «ЗаполнитьВыражения». Для реквизитов «ПериодДействияКонец» и «БазовыйПериодКонец» укажем выражение «КонецДня(ТекСтрокаНачисления.ДатаОкончания)» Реквизиту «ИсходныеДанные» поставим в соответствие реквизит табличной части «Результат», а для реквизита «Результат» наоборот удалим выражение, присвоенное ему конструктором:
Нажмем «ОК» и посмотрим текст обработчика, созданный конструктором:
Запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш документ.
Начислим оклад за март всем сотрудникам OOO «На все руки мастер», как показано на рисунке:
Проведем документ и посмотрим, какие движения он сформировал в регистре «Начисления»:
Обратите внимание на то, что платформа привела период регистрации каждой записи к началу периода регистра расчета (в обработчике проведения мы указывали значение даты документа - 08.04.2004). Кроме этого заметьте, что с каждой записью мы сохранили в реквизите «ИсходныеДанные» размер оклада сотрудника, введенный в документе, чтобы в дальнейшем рассчитать сумму оплаты по окладу.
Для дальнейшего изучения работы регистра расчета нам понадобится служебный отчет, с помощью которого мы сможем посмотреть содержимое записей перерасчета.