Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Документ.НачисленияСотрудникам.Начисления 2 страница




Запустим 1С:Предприятие в режиме отладки и заполним регистр данными о рабочих днях марта графика мастеров. Чтобы проще выполнить эту довольно однообразную работу, можете воспользоваться возможностью добавления элементов в справочник


 


334



Использование основных объектов конфигурации


План видов расчета, регистр расчета


 


копированием (Действия | Скопировать). Не забудьте, что 8 марта выходной день, и у вас должно получиться 22 рабочих дня в марте.


Укажем, что регистр расчета будет использовать базовый период, и периодичность регистра будет «Месяц».


 


Теперь все готово для создания регистра расчета.

Создадим новый объект конфигурации Регистр расчета с именем «Начисления». В качестве плана видов расчета, используемого регистром, выберем план видов расчетов «ОсновныеНачисления». Установим, что регистр будет использовать период действия, график будет задаваться в регистре сведений «ГрафикиРаботы», значение графика будет находиться в ресурсе «Значение», а дата графика - в измерении «Дата».


Затем перейдем на закладку «Данные» и создадим:

• измерение «Сотрудник»,

тип СправочникСсылка.Сотрудники, базовое,

• ресурс «Результат», тип Число, длина 15, точность 2,

• реквизит «ГрафикРаботы»,

тип СправочникСсылка.ВидыГрафиковРаботы, связь с графиком по измерению «ГрафикРаботы»,

• реквизит «ИсходныеДанные», тип Число, длина 15, точность
2.

Реквизит «ГрафикРаботы» мы будем использовать для того, чтобы связать запись регистра с используемым графиком работы, а реквизит «ИсходныеДанные» - чтобы хранить в нем данные, которые могут понадобиться при расчете или перерасчете (в нашем примере это будет расчет оклада).


 


336



Использование основных объектов конфигурации


План видов расчета, регистр расчета


 


Теперь перейдем на закладку «Перерасчеты». Создадим объект конфигурации Перерасчет, который так и назовем - «Перерасчет», у него будет единственное измерение - «Сотрудник», для которого в установке связи мы укажем измерение регистра «Сотрудник» и в качестве данных ведущих регистров выберем то же самое измерение «Сотрудник» регистра расчета «Начисления».

На этом создание объекта конфигурации Регистр расчета «Начисления» завершено.


Что нового мы узнали

- что такое сложные периодические расчеты

- что такое вид расчета, база

- какая разница между базовым периодом, фактическим

периодом и периодом действия - что такое зависимость по базовому периоду - что такое вытеснение по периоду действия - для чего предназначен объект конфигурации План видов

расчета

- каковы основные свойства плана видов расчета - какая разница между базовыми, вытесняющими и

ведущими видами расчетов - как создать план видов расчета - что такое объект конфигурации Регистр расчета - каковы отличительные особенности регистра расчета - что такое график времени - что такое перерасчет

- по какому принципу формируются записи перерасчета - как создать регистр расчета.


 


338



Использование регистра расчета


Глава 10. Использование регистра расчета

Теперь у нас все готово для того, чтобы начать разработку системы расчета заработной платы OOO «На все руки мастер». В этой главе мы создадим документ, с помощью которого будут выполняться различные виды начислений, посмотрим, как и когда платформа формирует записи перерасчета, увидим, как работают механизмы вытеснения по периоду действия и зависимости по базовому периоду.

Кроме этого мы создадим отчет, показывающий начисления сотрудникам OOO «На все руки мастер» и сделаем так, чтобы данные расчетов можно было поддерживались в актуальном состоянии.

В заключение мы познакомимся с новым элементом управления -Диаграмма Ганта, - и с его помощью наглядно проиллюстрируем работу некоторых механизмов расчета.


Создание документа НачисленияСотрудникам

Д

ля того, чтобы иметь возможность регистрировать в базе данных начисления производимые сотрудникам OOO «На все руки мастер», нам понадобится специальный документ.

Откроем конфигуратор и создадим новый документ. Назовем его «НачисленияСотрудникам».

Этот документ будет иметь табличную часть «Начисления», содержащую следующие реквизиты:

• «Сотрудник», тип СправочникСсылка.Сотрудники,

• «ГрафикРаботы»,
типСправочникСсылка.ВидыГрафиковРаботы,

• «ДатаНачала», тип Дата,

• «ДатаОкончания», тип Дата,

• «ВидРасчета»,

тип ПланВидовРасчетаСсылка.ОсновныеНачисления,

• «Результат», Число, длина 15, точность 2.

Реквизиты «ДатаНачала» и «ДатаОкончания» понадобятся нам для того, чтобы задавать период, в котором должна действовать запись расчета.

На закладке «Движения» запретим оперативное проведение документа, отметим, что документ будет создавать движения по регистру расчета «Начисления» и запустим конструктор движений.


 


340



Использование основных объектов конфигурации


Использование регистра расчета


 


В окне конструктора выберем табличную часть «Начисления»
нажмем «ЗаполнитьВыражения». Для реквизитов

«ПериодДействияКонец» и «БазовыйПериодКонец» укажем
выражение «КонецДня(ТекСтрокаНачисления.ДатаОкончания)»

Реквизиту «ИсходныеДанные» поставим в соответствие реквизит табличной части «Результат», а для реквизита «Результат» наоборот удалим выражение, присвоенное ему конструктором:

Нажмем «ОК» и посмотрим текст обработчика, созданный конструктором:


Движение.Сторно = Ложь; Движение.ПериодРегистрации = Дата; Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала; Движение.ПериодДействияКонец =

КонецДня(ТекСтрокаНачисления.ДатаОкончания); Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала; Движение.БазовыйПериодКонец =

КонеиДня(ТекСтрокаНачисления.ДатаОкончания); Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник; Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы; Движение.йсходныеДанные = ТекСтрокаНачисления.Результат; КонецЦтота;

// записываем движения регистров Движения.Начисления.Записать(); //} }_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

Запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш документ.

Начислим оклад за март всем сотрудникам OOO «На все руки мастер», как показано на рисунке:


Процедура ОбработкаПроведения(Отказ. Режим) //{{_KOHCTPyKTOP_ДВИЖЕНИЙ_PЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаНачисления Из Начисления Цикл

// регистр Начисления

Движение = Движения.Начисления.Добавить();


342



Использование основных объектов конфигурации


Использование регистра расчета


 


Проведем документ и посмотрим, какие движения он сформировал в регистре «Начисления»:


Иллюстрация механизмов вытеснения и зависимости от базы


 






оздадим новый объект конфигурации Отчет. Назовем его «Перерасчет». На закладке «Макеты» откроем конструктор выходной формы, и выберем следующие поля из виртуальной таблицы перерасчета «Начисления.Перерасчет»:


 


Обратите внимание на то, что платформа привела период регистрации каждой записи к началу периода регистра расчета (в обработчике проведения мы указывали значение даты документа -08.04.2004). Кроме этого заметьте, что с каждой записью мы сохранили в реквизите «ИсходныеДанные» размер оклада сотрудника, введенный в документе, чтобы в дальнейшем рассчитать сумму оплаты по окладу.

Для дальнейшего изучения работы регистра расчета нам понадобится служебный отчет, с помощью которого мы сможем посмотреть содержимое записей перерасчета.


На закладке «Отчет» сбросим флаг «Использовать построитель отчета» и нажмем «OK» - наш отчет готов.

Запустим 1С:Предприятие в режиме отладки, сформируем отчет «Перерасчет» и убедимся, что пока он не содержит никаких данных.

Создадим новый документ Начисление сотрудникам №2, в котором начислим премию за март Гусакову и Деловому:


 


344



Использование основных объектов конфигурации

Этим документом мы зафиксируем тот факт, что сотрудникам Гусакову и Деловому нужно начислить премию по итогам работы за март. Поскольку размер премии нам неизвестен (он будет рассчитываться по некоторому алгоритму), поля «Результат» мц оставляем пустыми. Нажмем «ОК».

Теперь снова откроем документ Начисление Сотрудникам №i и изменим оклад Гусакова с 10 000 на 7 000. Нажмем «ОК» Сформируем отчет «Перерасчет»:


Использование регистра расчета

На этом примере мы с вами познакомились с тем, как работает механизм поддержки зависимости по базовому периоду у регистра расчета.

Теперь посмотрим, как работает механизм вытеснения по периоду действия. Для этого нам понадобится создать третий документ НачисленияСотрудникам №3:


 


Как видите, отчет теперь содержит какие-то данные. В самом деле, вид расчета «Премия» зависит у нас по базовому периоду от вида расчета «Оклад». Как только мы изменили существовавшие в регистре записи по виду расчета «Оклад» - платформа сразу же сформировала набор записей перерасчета, которые должны быть рассчитаны заново, т.к. изменилась их база.

Вы можете спросить: «почему в перерасчет попали записи как про Делового, так и про Гусакова, хотя оклад мы меняли только Гусакову»? Дело в том, что платформа не отслеживает конкретные изменения, которые пользователь внес в записи документа. Она отслеживает лишь факт изменения набора записей регистра расчета в результате проведения (перепроведения) документа. Поэтому в набор записей перерасчета она включает информацию о ВСЕХ записях регистра, значение ресурсов которых МОЖЕТ измениться в результате перепроведения документа, создавшего базовые записи регистра.

Перепроведем документ Начисления сотрудникам №2 (которым мЫ начисляли премию) и сформируем отчет «Перерасчет». Он снова не содержит никаких данных - система отметила тот факт, что M& «пересчитали» зависимые записи и очистила таблицу перерасчета.


Этим документом мы зафиксируем тот факт, что Гусаков не выходил на работу с 1 по 10 марта. Очевидно, что в этом случае потребуется пересчитать его оплату по окладу и, как следствие, начисленную премию.

Нажмем «ОК» и сформируем отчет «Перерасчет»:

Как вы видите, в перерасчет попала запись о начислении оклада Усакову. Это явилось результатом работы механизма вытеснения по


 


346



Использование основных объектов конфигурации


Использование регистра расчета


 


периоду действия, ведь вид расчета «Невыход» вытесняет у нас вил расчета «Оклад».

Обратите внимание, что в перерасчет попала и запись о начислении премии Гусакову. Если вы помните, при создании предопределенных видов расчета мы указали, что результат вида расчета премия будет зависеть от изменения результата вида расчета «Невыход». Эта зависимость косвенная, но поскольку явно указали такую зависимость платформа ее отследила.

Перепроведем документы Начисление сотрудникам №1 и №2 и убедимся, что таблица перерасчета очистилась.


Создание процедуры расчета записей регистра Начисления

Д

о сих пор мы с вами просто заносили в регистр расчета «Начисления» записи о том, что необходимо выполнить какой-либо вид расчета. Но каким именно образом получать эти результаты мы не говорили. Теперь настало время описать алгоритмы формирования различных видов расчетов.

Поскольку эти алгоритмы нам понадобится использовать не только в документе «Начисление сотрудникам», удобнее всего будет разместить их в отдельном общем модуле.

Откроем в конфигураторе текст обработчика проведения документа «НачислениеСотрудникам» и добавим в него вызов процедуры из общего модуля:


Процедура ОбработкаПроведения(Отказ, Режим) //{{_КОНСТ?УКТОР ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаНачисления Из Начисления Цикл

// регистр Начисления

Движение = Движения.Начисления.Добавить();

Движение.Сторно = Ложь;

Движение.ПериодРегистрации = Дата;

Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;

Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;

Движение.ПериодДействияКонец =

КонецДня(ТекСтрокаНачисления.ДатаОкончания);

Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;

Движение.БазовыйПериодКонец =

КонецДня(ТекСтрокаНачисления.ДатаОкончания);

Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;

Движение.ГрафикРаботы = ТекетрокаНачисления.ГрафикРаботы;

Движение.ИсходныеДанные = ТекСтрокаНачисления.Результат; КонецЦикла;

// записываем движения регистров Движения.Начисления.Записать();

//получим список всех сотрудников, содержащихся в документе
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
__ I НачисленияСотрудникамНачисления. Сотрудник_____________________________




Использование основных объектов конфигурации


Использование регистра расчета


 


|ИЗ




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 1294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.048 сек.