Сложные периодические расчеты. Планы видов расчетов Что такое вид расчета 1с

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

Структура

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

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

Создание и редактирование видов расчета может выполняться как разработчиком (предопределенные виды расчета), так и пользователем, в процессе работы с прикладным решением. Однако пользователь не может удалять виды расчета, созданные разработчиком.

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

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

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

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

Формы плана видов расчета

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

Форма списка

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

Многие программисты 1С никогда не сталкивались в своей практике с компонентой «Расчет»,поэтому, когда им приходится сдавать экзамены на Специалиста по Платформе 8.0, где в каждомзадании есть задача по сложным периодическим расчетам, возникают сложности, прежде всего сложности понимания.

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

Для примера будем использовать каркасную конфигурацию, устанавливаемую на экзаменах.

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

Что такое расчеты

В принципе, конечный продукт расчета зарплаты - это набор записей регистра расчета вида:

Сотрудник

Период

Вид расчета

Результат

Данные

Комментарий

Измерение

Служебный

Служебный

Реквизит

Значение в колонке «Данные» отражают базовый оклад работника (согласно трудового договора), но эта сумма может быть увеличена премиями, уменьшена штрафами и невыходами и т.п., поэтому реальная сумма к выплате заносится после выполнения расчета в колонку «Результат». В этом и заключается расчет. Сумма по колонке «Ресурс» для данного сотрудника - причитающаяся ему зарплата.

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

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

Виды расчетов

Каждая запись видов расчета имеет служебный реквизит - вид расчетов.

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

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

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

Вид расчета

Описание

Пример

По базовому периоду

Результат расчета зависимого периода зависит от результата базового периода. Если результат базового периода изменится, то результат зависимого периода нужно пересчитать.

Премия зависит по базовому периоду от оклада.

Вытеснение по периоду

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

Невыход влияет на фактический период действия оклада.

Ведущие расчеты

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

Премия зависит по базе от оклада, но также косвенно зависит и от невыхода.

В силу подобного влияния, период действия записи регистра расчетов делится на четыре периода:

Период

Описание

Период регистрации

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

Период действия

В каком периоде действует событие, т.е. к какому периоду относится событие.

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

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

Фактический период действия

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

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

Графики времени

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

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

Измерение, которое связывается с регистром расчета обычно носит смысл «вид графика».

Дата

Вид графика

Значение

11.01.05 пт

Пятидневка

11.01.05 пт

Шестидневка

12.01.05 сб

Пятидневка

12.01.05 сб

Шестидневка

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

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

Перерасчет

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

Для этого и служат перерасчеты.

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

По сути перерасчеты - это список записей регистра расчета, которые нужно перерасчитать .

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

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

Практическое задание

Достаточно теории. Попробуем изучить детали на практике. За основу возьмем каркасную конфигурацию.

Постановка задачи:

Пусть премия задается фиксированным процентом к окладу (за вычетом невыходов и командировочных).

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

Пусть за невыходы с сотрудника взымается штраф в размере половины оклада за период невыхода.

Ход выполнения:

Начальная подготовка

Создадим новый план видов расчета «Основной».

Определим виды расчета и зависимости между ними:

Базовые

Вытесняющие

Ведущие

Оклад

Невыход, Командировка

Премия

Невыход, Командировка

Оклад, Невыход, Командировка

Командировка

Невыход

Занесем эти виды расчета в план видов расчета «Основной» и в свойствахвидов расчета поставим зависимости согласно таблице.

В регистре расчета зарплаты сделаем измерение «Сотрудник» типа «ФизическиеЛица » - чтобы в регистре был разрез аналитики по сотрудникам.

В конфигурации уже имеется документ «Начисление зарплаты».

В нем две даты в шапке - «дата» и «период регистрации», а также по две даты «дата начала» и «датаконца » в каждой строчке.

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

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

Модуль документа будет выглядеть примерно так:

Для К аждого ТекСтрокаСписок Из Список Цикл

// регистр Расчеты

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

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

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

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

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

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

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

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

Движение.С отрудник = ТекСтрокаСписок.Сотрудник ;

Движение.Г рафикРаботы = ТекСтрокаСписок.График ;

Движение.Р езультат = 0;

Движение.Д анные = ТекСтрокаСписок.Размер ;

КонецЦикла ;

Реквизит Сторно нужен чтобы сторнировать записи (аналог минуса).

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

Все документы датировать будем 20.01.2003, период регистрации будем ставить 02.01.2003 (специально указываю не начальные и конечные данные, здесь это неважно, все равно при записи в ПериодРегистрации преобразуется в начало периода 01.01.2003). Январь 2003 года используем, потому что за этот период заполнены графики работ.

Заведем перерасчет «Перерасчет», добавим в него измерение «Сотрудник», связанное с измерением «Сотрудник».

Играем с Перерасчетами.

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

ВЫБРАТЬ

РасчетыПерерасчет.О бъектПерерасчета ,

РасчетыПерерасчет.В идРасчета ,

РасчетыПерерасчет.С отрудник

ИЗ

РегистрРасчета.Р асчеты.Перерасчет КАК РасчетыПерерасчет

Сформируем три документа - первым начислим оклад сотрудникам А и Б. Сотрудник А работает с 1 по 31 января, Б работает с 1 по 20 января. Вторым начислим премию сотруднику Б за период с 1 по 31 января, третьим назначим невыход сотруднику А с 20 по 25 января.

Играем с Фактическим периодом действия.

Создадим новый запрос - на этот раз в него добавим данные таблицы РегистрыРасчета.Р асчеты.ФактическийПериодДействия .

Сформируем запрос и увидим, что сотруднику А период действия оклада разбит на два периода - с 1 по 19 и с 26 по 31 января. Надеюсь вам понятно, что период был разбит на два, т.к. невыход вытеснил оклад.

Думаю, механизмы работы регистра расчета проясняются на глазах.

Изучаем графики.

Теперь попробуем начислить зарплату по окладу сотрудника.

Создадим новый запрос по регистру расчета используя виртуальную таблицу РегистрыРасчета.Р асчеты.ДанныеГрафика . У этой виртуальной таблицы можно задать параметр - условие отбора записей, например Сотрудник=&ВыбСотрудник и ВидРасчета=&ВидРасчета и График=&ВидГрафика .

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

Колонка результата

Значение

ЗначениеПериодДействия

На какой период действия в часах была запись в регистре.

ЗначениеФактическийПериодДействия

Сколько сотрудник фактически проработал в часах

ЗначениеБазовыйПериод

Для оклада смысла не имеет, для премии - количество рабочих часов в базовом периоде.

ЗначениеПериодРегистрации

Сколько рабочих часов в периоде регистрации (месяц январь)

Конфигурация: Бухгалтерия предприятия

Версия конфигурации: 3.0.40.40

Дата публикации: 22.09.2015

В программе 1С:Бухгалтерия 8.3 предусмотрен отдельный документ Оказание Услуг для отражения в бухгалтерском учете операции по оказанию услуг нескольким контрагентам. Данный документ будет удобен если вы разным контрагентам предоставляете Акты и Счета-Фактуры по одной услуге, к примеру: Аренда офиса, Ежемесячный платеж за интернет, доставка журналов... и так далее.

Первоначально зайдем в раздел Продажи (1) и выберем Оказание Услуг (2) .

Нажимаем Создать .

В документе заполняем пункты:

Организация (1) - ваша организация, от лица которой будут выставлены акты, счета-фактуры или УПД.
Вид расчетов (2) - предназначен для разделения расчетов с контрагентом по разным услугам.
Номенклатура (3) - оказываемая услуга
Через кнопку Добавить или Подбор заполняем контрагентов (4) которым будет оказана услуга. И переходи в закладку Счета-Фактуры (5)

В разделе Счета-фактуры вам потребуется настроить % НДС (1) , если НДС нету, то счета фактуры не требуется выставлять и можно выключить все галочки (2) . Если требуется, то мы можем установить галочки, у организаций которым они требуются. После того как НДС заполнен и выбраны счета-фактуры переходим в раздел Счета учета.

Заполняем счета учета доходов, счет учета НДС и счета расходов. Переходим в раздел Дополнительно.

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

Теперь выведем на печать Акты оказания услуг. Нажимаем на кнопку Печать и выбираем Акты об оказании услуг .

Для того чтобы можно было рассчитывать зарплату в конфигурации, работающей на платформе 1С Предприятие 8, необходимо умение работать с объектами конфигурации которые для этого и предназначены. Для реализации возможности расчета заработной платы, в конфигурации необходимо использовать такие объекты как планы видов расчета и регистры расчета. Без этих объектов реализовать расчет достаточно проблематично, если совсем не возможно. В этой статье хочу поведать какие объекты предназначены для расчета зарплаты и как с ними работать.
Основные используемые понятия:
Вид расчета – начисление или удержание, которое может быть применено к сотруднику.
План видов расчета – объект конфигурации, предназначенный для хранения однотипных видов расчета.
База – совокупность видов расчета, которые и являются основой для расчета конкретного вида расчета.
Период регистрации – это дата, когда документ зарегистрирован в системе. И если периодичность регистра расчета месяц, то период регистрации системой автоматически приводится к началу месяца.
Период действия – это интервал, в котором действует вид расчета. Например, зарегистрировать документ можно в одном месяце, а период действия будет находиться в другом месяце.
Сокращения, встречающиеся в тексте:
ПВР – план видов расчета;

Итак, начнем с настройки ПВР. В основном настройки ПВР схожи с настройками справочников, но настройки, характерные именно для ПВР находятся на закладке «Расчет» окна редактирования объекта. ПВР содержит однотипные виды расчета. В системе может быть несколько ПВР. Обычно, ПВР создают для основных начислений, для дополнительных начислений и для удержаний. Пример настройки ПВР приведен на рисунке 1.

Рисунок 1

Свойство «Использует период действия» - устанавливаем флаг в том случае, если виды расчета в этом ПВР будут иметь протяженность во времени (Например, Оклад). В этом случае можно будет например с 15 по 20 число месяца начислить оплату по окладу. Если этот флаг не устанавливать, то такой возможности не будет.
Свойство «Зависимость от базы» – указываем, могут ли виды расчета зависеть от базы. Зависимость от базы бывает двух видов: а) Зависимость от базы по периоду действия – это означает, что наши виды расчета, которые находятся в этом ПВР будут зависеть от периода действия. б) Зависимость от базы по периоду регистрации – виды расчета будут зависеть от базы за тот месяц, в котором была введена запись. Если есть та или другая зависимости от базы, то необходимо выбрать базовые планы видов расчета. То есть это те ПВР виды расчета которых смогут использоваться как базовые.

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

Рисунок 2

На закладке «Базовые виды расчетов» настраивается список видов расчета, которые будут включаться в базу при расчете текущего вида расчета. Соответственно, виды расчета, не вошедшие в базу при расчете данного вида расчета учитываться не будут. В списке ведущих видов расчета указывается список тех видов расчета, при изменении которых будет требоваться перерасчет данного вида расчета. Ну и в списке вытесняющих видов указываются те виды расчета, которые будут вытеснять данный вид расчета, если будет конкуренция по периоду действия у видов расчета.
Далее необходимо настроить регистры расчета. Здесь каждому регистру расчета должен соответствовать один план видов расчета, но один ПВР может соответствовать нескольким регистрам расчета. Основные настройки регистров расчета выполняются на закладке Основные диалога редактирования объекта. Пример настроек приведен на рисунке 3

Рисунок 3

Свойство «План видов расчета» - здесь указывается то, какой ПВР будет соответствовать нашему регистру расчета.
Свойство «Период действия» - указывается флаг, если регистр расчета будет поддерживать период действия видов расчета, то есть те виды расчета, которые являются периодическими. При установленном флаге, у записи регистра расчета добавляются свойства «Период действия начало» и «Период действия конец».
Свойство «График работы» - если стоит флаг периода действия, то становится доступным это свойство. Указываем регистр сведений (непериодический), в котором будет регистрироваться норма времени за конкретный день календаря.
Свойство «Значение графика» - указывается ресурс регистра сведений Графики работы. По этому значению система сможет вычислить данные базы. То есть система сможет вычислить, сколько сотрудник должен отработать в тот или иной день.
Свойство «Дата графика» - указывается измерение с типом Дата. По этому измерению система сможет понять к какой дате относится рабочий/не рабочий день.
Свойство «Базовый период» - указывается, если регистр расчета будет поддерживать базовый период видов расчета. Если флаг установлен, то у записи регистра расчета появляются дополнительные свойства «Базовый период начало» и «Базовый период конец».
Свойство «Периодичность» - указывается периодичность регистра расчета.
На вкладке Данные настраиваются измерения, ресурсы и реквизиты регистра расчета. Пример настройки приведен на рисунке 4

Рисунок 4

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

Процедура ОбработкаПроведения(Отказ, Режим) Движения.ОсновныеНачисления.Записывать = Истина; Для Каждого ТекСтрокаНачисления Из Начисления Цикл Движение = Движения.ОсновныеНачисления.Добавить(); Движение.Сторно = ТекСтрокаНачисления.Сторно; Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала; Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания); Движение.ПериодРегистрации = ПериодРегистрации; Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник; Движение.Подразделение = ТекСтрокаНачисления.Подразделение; Движение.ТипГрафика = ТекСтрокаНачисления.ТипГрафика; Движение.Размер = ТекСтрокаНачисления.Размер; КонецЦикла; Движения.Записать();//записываем рабочий набор записей РассчитатьНачисления(Отказ); КонецПроцедуры

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

Процедура РассчитатьНачисления(Отказ) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияДанныеГрафика.НомерСтроки, | ОсновныеНачисленияДанныеГрафика.РабочийДеньПериодДействия КАК ПериодДействияПлан, | ОсновныеНачисленияДанныеГрафика.РабочийДеньФактическийПериодДействия КАК ПериодДействияФакт, | ОсновныеНачисленияДанныеГрафика.ВидРасчета.СпособРасчета КАК Способ, | ОсновныеНачисленияДанныеГрафика.ВидРасчета КАК ВидРасчета |ИЗ | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(| Регистратор = &Ссылка |) КАК ОсновныеНачисленияДанныеГрафика"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Поиск = Новый Структура("НомерСтроки"); Для каждого Запись Из Движения.ОсновныеНачисления Цикл Поиск.НомерСтроки = Запись.НомерСтроки; Выборка.Сбросить(); Если Выборка.НайтиСледующий(Поиск) Тогда Если Выборка.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.ОкладПоДням Тогда Если Выборка.ПериодДействияПлан = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "График не заполнен"; Сообщение.Сообщить(); Отказ = Истина; Иначе Запись.Результат = Выборка.ПериодДействияФакт*Запись.Размер/Выборка.ПериодДействияПлан; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Движения.ОсновныеНачисления.Записать(,Истина); КонецПроцедуры // РассчитатьНачисления()

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

Рисунок 5

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

Спасибо за внимание! Если есть вопросы, постараюсь на них ответить.​

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

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

Произвольные формулы расчета в 1С ЗиУП




Давайте сразу приступим к примеру. Мне кажется так будет более наглядно. Итак, в организации есть подразделение охрана. Сотрудники этого подразделения, их 4 человека, работают сутки через 3. Для каждого сделаем отдельный график работы. Сотрудник получает полный оклад, если отработает весь свой план по графику. Если будут неотработанные дни , то оклад пересчитывается пропорционально отработанным дням. Также возможен случай, когда сотрудник отработает больше положенной нормы дней по своему графику. Это происходит, когда сотрудники заменяют другого работника, ушедшего в отпуск или выбывшего по болезни. В этом случае сотрудник, отработавшей на подмене имеет отработанных дней больше, чем положено по его графику. Надо обеспечить, чтобы в этом случае его оклад был начислен как за обычную работу в рамках плановых дней графика, а оплата за дни, отработанные сверх плана были бы отнесены на другой вид расчета «Доплата за совмещение».

Создание элементов справочника «Графики работы»

Для начала необходимо обсудить элементы справочника «Графики работы» . Его можно найти на рабочем столе программы на закладке «Кадровый учет» в средней колонке.

Для наших целей уже есть шаблон «Сутки через трое (40 час. раб. неделя)». Появится вариант, при котором отдельно программа будет считать для сотрудников, работающих по этому графику, отработанные ночные и вечерние часы. В нашем примере этого не требуется, поэтому галочки не ставим. А вот дату, с которой начинается отсчет периодичности поставим 01.07.2014. Во втором графике – «Сутки через трое 2» — эта дата сместиться на 1 день и так далее.

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

Таким образом создадим ещё три графика для каждой из смен.

Создание видов расчета для автоматизации начисления заработной платы в 1С ЗиУП

Семинар «Лайфхаки по 1C ЗУП 3.1»
Разбор 15-ти лайфхаков по учету в 1с зуп 3.1:

ЧЕК-ЛИСТ по проверке расчета зарплаты в 1С ЗУП 3.1
ВИДЕО - ежемесячная самостоятельная проверка учета:

Начисление зарплаты в 1С ЗУП 3.1
Пошаговая инструкция для начинающих:

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

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

  • Формула расчета – тут непосредственно будет формироваться формула;
  • Функции – это предопределенные разработчиками арифметические и логические операции, которые можно использовать в формуле. В справке можно ознакомиться подробнее о каждой;
  • Показатели – это во-первых, предопределенные переменные, которые принимают значения, запрограммированные разработчиками 1С. Например, параметр «ВремяВДнях» будет возвращать количество дней отработанное сотрудником, для которого выполняется расчет по этому виду расчета. Во,вторых опказатели можно создавать самостоятельно. Например, создать показатель «ПроданоШт», в зависимости от которого будет начисляться премия сотруднику, а само значение, т.е. сколько продано заполнять раз в месяц перед расчетом зарплаты.

Сразу приведу формулу, которую мы будем использовать, а потом поясню:

? (ВремяВДнях>=НормаВремениВДнях, ТарифнаяСтавкаМесячная, ТарифнаяСтавкаМесячная / НормаВремениВДнях * ВремяВДнях)

Во-первых, поясню конструкцию, в которой выполнена эта формула: ?(условие, выражение1, выражение2) .

).

Если условие, находящееся в скобках выполняется, то результат принимает значение переменной, находящейся после первой запятой (т.е. выражение1, в нашем случае этоТарифнаяСтавкаМесячная ). Если условие не выполняется, то результат принимает значение, полученное после выполнения формулы, которое находится после второй запятой (т.е. выражение2, в нашем примере это ТарифнаяСтавкаМесячная / НормаВремениВДнях * ВремяВДнях ).

Во-вторых, расшифрую показатели, которые используются в формуле:

  • ВремяВДнях – количество дней, отработанных сотрудником в текущем месяце –;
  • НормаВремениВДнях – плановое количество дней, которое сотрудник должен отработать в текущем месяце в соответствии с графиком работы — предопределенный показатель – рассчитывается программой автоматически ;
  • ТарифнаяСтавкаМесячная – сколько сотрудник заработает при полной отработке своих плановых рабочих дней – предопределенный показатель – указывается при назначении сотруднику этого вида выплаты.

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

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

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

? (ВремяВДнях > НормаВремениВДнях, ((ВремяВДнях – НормаВремениВДнях) / НормаВремениВДнях * ТарифнаяСтавкаМесячная) , 0)

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

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

Начисление зарплаты с использованием созданных видов расчета

Семинар «Лайфхаки по 1C ЗУП 3.1»
Разбор 15-ти лайфхаков по учету в 1с зуп 3.1:

ЧЕК-ЛИСТ по проверке расчета зарплаты в 1С ЗУП 3.1
ВИДЕО - ежемесячная самостоятельная проверка учета:

Начисление зарплаты в 1С ЗУП 3.1
Пошаговая инструкция для начинающих:

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

Напомню, что расчет зарплаты в 1С ЗиУП осуществляется по принципу вытеснения. Все дни графика считаются отработанными, если не было документов, вытесняющих рабочие дни графика (больничные, отпускные и т.д.). Подробнее о последовательности расчета заработной платы в ЗУП’е читайте . Пока мы в программу не вводили вытесняющих документов на наших сотрудников и если попробовать сформировать отчет «Табель учета рабочего времени» (об отчетах и печатных формах подробно ), то мы увидим, что у сотрудников отработаны все дни в августе по их графикам.

Теперь давайте предположи, что сотрудник Шелестов ушел в отпуск с 22.08 и получается, что его дни кто-то должен отработать (в августе это 24 и 28 числа). На это согласился Горин. Отпуск Шелестову отразить не сложно. Для этого используем документ «Начисление отпуска сотруднику» (подробнее об отпусках читайте ). А вот для того чтобы отразить дополнительные дни сотруднику Горину, будем использовать документ «Табель учета рабочего времени» . Ещё раз повторюсь – не путайте этот документ с одноименным отчетом. Этот документ можно найти на закладке «Расчет зарплаты» рабочего стола программы. Создадим новый документ. Установим месяц начисления Август 2014 и добавим в табличную часть документа сотрудника Горина. При этом табель сотрудника заполнится автоматически в соответствии с графиком его работы в августе. Нам лишь требуется исправить 24 и 28 августа с выходных дней на рабочие («Я 24»).

Проводим документ.

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

Итак, Шелестов отработал на 2 дня меньше в связи с отпуском, вместо 7 дней 5, поэтому его оклад рассчитывается пропорционально отработанным дням:

12 500 / 7 * 5 = 8 928,57 руб.

Ни о какой доплате конечно речи не идет, поэтому «Доплата за совмещение» равна 0.

Сотрудник Горин отработал на два дня больше своего плана, вместо 8 дней 10. Оклад начисляется в полном размере, как за 8 плановых дней – 12 500 руб. А вот доплата рассчитывается пропорционально двум дням отработанным сверх нормы в 8 рабочих дней:

12 500 / 8 * 2 = 3 125,00 руб.

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

На этом сегодня всё! Скоро будут новые интересные материалы на .

Чтобы узнать первыми о новых публикациях подписывайтесь на обновления моего блога: