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

С

Т

T

Т


Бухгалтерский учет


 


Перейдем на закладку «Связи» и укажем, что из таблицы «Основной» мы будем выбирать все записи, а из таблицы регистра -только те, которые соответствуют условию связи:


В заключение на закладке «Отчет» сбросим флаг «Использовать построитель отчета».

Наш отчет готов. Нажмем «ОК», запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш отчет:



Затем на закладке «ОбъединенияЯ1севдонимы» зададим псевдонимы полей регистра: «СальдоНачДт», «СальдоНачКт», «ОборотДт», «ОборотКт», «СальдоКонДт» и СальдоКонКт»:



 


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



 


 


314



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


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

] как использовать план видов характеристик дЛя

организации ведения бухгалтерского учета ____] что такое субконто

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

учета ] как создать движения документа по регистру бухгалтерии

при помощи конструктора движений ] как создать движения документа по регистру бухгалтерии

средствами встроенного языка ] как получить данные из регистра бухгалтерии запросом


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

В этой главе мы познакомимся с объектами конфигурации План видов расчета и Регистр расчета и узнаем об основных понятиях, используемых при создании сложных периодических расчетов.

В конце главы мы создадим план видов расчета и регистр расчета, на основе которых в следующих главах продемонстрируем работу механизмов периодических расчетов.


 


316



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

Зачем нужен план видов расчета и регистр расчета

В

этой главе мы рассмотрим возможности системы 1С:Предприятие, которые она предоставляет дЛя автоматизации сложных периодических расчетов.

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

В общем случае, сумма заработной платы сотрудника складывается из множества частей (например, оплата по окладу, премии, штрафы, оплаты по больничному листу, разовые выплаты и т.д.). Каждая из этих частей рассчитывается по некоторому алгоритму, присущему только этой части. Например, сумма штрафа может определяться просто фиксированной суммой, сумма премии может рассчитываться как процент от оклада, а сумма оплаты по окладу рассчитывается исходя из количества рабочих дней в месяце и количества дней, отработанных сотрудником. Поэтому для обозначения каждой такой части мы будем использовать термин вид расчета.

Алгоритм каждого вида расчета опирается в общем случае на две категории параметров: период, за который нужно получить конечные данные и набор некоторых исходных данных, используемых при расчете.

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

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


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

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

В качестве примера рассмотрим начисление премии за апрель. Премия должна начисляться в размере 10% от суммы, начисленной в качестве оплаты по окладу. Следовательно, необходимо проанализировать все записи о начислениях оплаты по окладу, которые попадают в интересующий нас базовый период, а именно апрель. Допустим, общая сумма таких начислений составила 8000 рублей - в этом случае премия должна быть начислена в размере 800 рублей:

Зависимость премии от оклада по базовому периоду

Базовый период

Во-вторых, это влияние может быть не на исходные данные, а на сам период, за который производится расчет. В качестве примера можно привести расчет оплаты по окладу и невыход на работу. Предположим, что мы начислили сотруднику оплату по окладу за март месяц. В этом случае период действия такого расчета будет с 01.03.2004 по 31.03.2004. После этого мы получили информацию от руководителя отдела, что, оказывается, сотрудник отсутствовал на работе с 1 по 10 марта по неизвестной причине. В этом случае нам нужно будет произвести расчет «Невыход» (в котором можно рассчитать какие-то удержания с сотрудника). Но кроме этого, нам


 


318



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


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


 


нужно будет пересчитать и оклад сотрудника, исходя из того, ЧТо фактический период действия расчета «Оклад» стал теперь с 11.03.2004 по 31.03.2004. Такое влияние мы будем называть вытеснением no периоду действия. В результате, если за полный месяц работы сотруднику должно было быть начислено 9300 рублей то теперь, за фактический период работы начисление составит 6300 рублей:


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

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

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

В системе 1С:Предприятие такой универсальный механизм реализован при помощи планов видов расчета и регистров расчета. И первым объектом конфигурации, с которым мы начнем знакомиться в этой главе, будет План видов расчета.


Таким образом, исходя из двух видов взаимного влияния расчетов, можно сказать, что в общем случае с каждым видом расчета будет связано три периода: период действия, фактический период и базовый период.

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

Фактический период - это то, что получилось из периода действия после анализа всех периодов действия расчетов, которые вытесняют наш по периоду действия.


320



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


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


 


Объект конфигурации План видов расчета

О

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

Отличительной особенностью плана видов расчета является то, что пользователь в процессе работы может добавлять в план видов расчета новые виды расчета. Такая возможность делает механизм периодических расчетов более гибким и позволяет пользователю создавать собственные виды расчета, помимо тех, которые заданы разработчиком как предопределенные.

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

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

Существует возможность указать один из двух видов зависимости от базы: «Зависимость по периоду действия» и «Зависимость по периоду регистрации». Оба вида этой зависимости подробно объяснены в разделе «Объект конфигурации Регистр расчета» на странице 327.

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


 

влияющих на

возможность указать три категории видов расчета, предопределенный вид расчета:

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

Вытесняющие - это те виды расчета, которые вытесняют этот
вид расчета по периоду действия.

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

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

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


 


322



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


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


 


~ Узнай больше!

О структуре объектов встроенного языка, предназначенных ^ работы с планом видов расчета можно прочитать в главе «Планы видов расчета» на странице 590.


Создание плана видов расчета ОсновныеНачисления

П

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

Откроем конфигуратор и создадим новый объект конфигурации План видов расчета. Зададим его имя -«ОсновныеНачисления».

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

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


Определим использование периода действия, зависимость от базы и базовые планы видов расчета...



 


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


324



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



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


 


руки мастер» будут «скромные», поэтому мы создадим всего три элемента:

• Невыход - с именем и наименованием «Невыход» и кодом
«Невыход»,

• Оклад - с именем, кодом и наименованием «Оклад» и
вытесняющим его видом расчета «Невыход»,

• Премия - с именем, кодом и наименованием «Премия», с
базовым видом расчета «Оклад» и ведущими видами расчета
«Невыход» и «Оклад».

Теперь мы перейдем к рассмотрению второго объекта, используемого при реализации механизмов сложных периодических расчетов - регистра расчета.


Объект конфигурации Регистр расчета

О

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

Отличительной особенностью регистра расчета является то, что он не предназначен для интерактивного редактирования пользователем. Разработчик может, при необходимости, предоставить пользователю возможность редактировать регистр расчета, но предназначение регистра расчета заключается в том, чтобы его модификация производилась на основе алгоритмов работы объектов базы данных, а не в результате непосредственных действий пользователя.

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

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

Периодичность регистра расчета может быть определена одним из следующих значений:

• День,

• Месяц,

• Квартал,

• Год.

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


 


326



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


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


 


«ПериодРегистрации» типа Дата. При записи данных в регистр платформа всегда приводит значение этого реквизита к началу того периода, в который он попадает.

Например, если в регистр расчета с периодичностью месяц записать данные, где «ПериодРегистрации» задан как 08.04.2004, то регистр сохранит эти данные со значением поля «ПериодРегистрации» 01.04.2004:

Документ


Если в этой же ситуации периодичность регистра будет год, сохраненное значение периода регистрации будет 01.01.2004:


 


328



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



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


 


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

Запись расчета Невыход вытесняет запись расчета Оклад по периоду действия

Период действия 31 день


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

Таблица фактического периода действия

Другим механизмом, который поддерживает регистр расчета, является зависимость записей по базовому периоду. Этот механизм позволяет основывать расчет зависимых (вторичных) записей регистра на данных, полученных в результате расчета первичных записей. Регистр расчета может поддерживать два вида зависимости от базы: зависимость по периоду действия и зависимость по периоду регистрации.

Зависимость по периоду действия означает, что при анализе базовых записей, будут выбираться те записи, для которых найдено пересечение их фактического периода действия и указанного базового периода.


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



Таблица регистра расчета


Таблица фактического периода действия


 


330



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


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


 


           
   
 
   


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

Таблица регистра расчета


перекрывающийся, с указанным базовым периодом, участок. При этом будут использованы данные графика, связанного с записью.

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

В качестве примера можно привести расчет штрафов при начислении зарплаты за март. В качестве базы для расчета суммы штрафов должны браться записи о прогулах, зарегистрированные в марте месяце (это могут быть как записи о мартовских прогулах, так и записи о прогулах в феврале). В этом случае, как правило, используется зависимость по периоду регистрации:

Таблица регистра расчета (периодичность регистра - «Месяц»)


 


Следует сделать два замечания к приведенному рисунку.

Поля «Начало базового периода» и «Конец базового периода» имеют смысл только для записей тех видов расчета, для которых определена зависимость по базовому периоду (в нашем случае для записи расчета премии).

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


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

У регистра расчета могут существовать подчиненные объекты Перерасчет. Они предназначены для регистрации фактов появления в регистре записей, влияющих на результат расчета уже существующих записей регистра. Объект конфигурации Перерасчет может иметь несколько измерений, каждое из которых может устанавливать связь между измерениями данного регистра расчета и влияющих регистров расчета. В частном случае это может быть один и тот же регистр.


 


332



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


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


 


В информационной структуре, созданной в базе данных на основе объекта конфигурации Перерасчет, платформа хранит информацию о том, какие записи регистра подлежат перерасчету. Таблицы перерасчета заполняются автоматически как на основании записей регистров расчета, затронутых ведущими видами расчета, так и на основании записей регистра расчета, для которых изменился фактический период действия. Исходя из этой информации разработчик может принимать решение о необходимости перерасчета записей регистра.

Последним замечанием, которое следует сделать, говоря о регистре расчета, является возможность установки связи регистра расчета с графиком времени. Такой график времени должен представлять собой регистр сведений (непериодический, с обязательным измерением типа Дата и ресурсом типа Число),в котором содержится временная схема исходных данных, участвующих в расчетах. Измерениями этого графика могут быть, например, график работы (ссылка на справочник) и дата, а ресурсом - количество рабочих часов в этой дате. В этом случае можно будет связать запись регистра расчета с каким-либо конкретным графиком работы (указав в качестве реквизита записи ссылку на справочник график работы) и в дальнейшем, средствами встроенного языка получать информацию о количестве рабочих часов в периоде действия, фактическом периоде действия или периоде регистрации этой записи.

"" Узнай больше!

О структуре объектов встроенного языка, предназначенных для
работы с регистром расчета, можно прочитать в главе «Регистры
расчета» на странице 606. Щ


Создание регистра расчета Начисления

П

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

В этом справочнике у нас будет два предопределенных графика работы - «ГрафикАдминистрации» и «ГрафикМастеров».

После этого создадим объект конфигурации Регистр сведений с именем «ГрафикиРаботы». Этот регистр будет иметь два измерения:

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

• «Дата», тип Дата.

Затем создадим единственный ресурс регистра - «Значение», с типом Число,длиной 1.