1c что такое расчетная база

Обновлено: 02.07.2024

Получение базовых данных в регистрах расчета

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

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

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

Метод ПолучитьБазу()

Метод ПолучитьБазу() определен для объектов РегистрРасчетаМенеджер.<Имя регистра расчета> и РегистрРасчетаЗапись.<Имя регистра расчета> . Метод позволяет задать ресурсы базовых регистров, по которым необходимо получить обороты, задать поля, в разрезе которых нужно получить обороты и задать правила сопоставления измерений основного и базовых регистров расчета.

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

Имена измерений и ресурсов базовых регистров задаются в формате <ИмяРегистраРасчета>.<ИмяПоля>.

Пример использования метода:

В приведенном выше примере измерение "Физлицо" основного регистра при получении оборотов будет сопоставляться с измерением "Физлицо" базового регистра "ОсновныеНачисления" и измерением "Работник" базового регистра "ДополнительныеНачисления".

Таблица языка запросов для получения базовых данных

Для получения базовых данных в языке запросов определены виртуальные таблицы "РегистрРасчета.<Имя регистра расчета>.База<Имя базового регистра расчета>". В качестве параметров виртуальной таблицы задаются измерения основного регистра, измерения базового регистра и поля, в разрезе которых нужно получить базовые данные. Измерения и разрезы задаются как массив (или список значений) строк с именами измерений.

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

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

Сравнение

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

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

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

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

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

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

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

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

  • Ежемесячно;
  • По отдельному документу;
  • В перечисленных месяцах;
  • Только если введено значение показателя;
  • Только если введен вид учета времени.

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

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

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

Минимум (СреднийЗаработокОбщий, Приработок x ПроцентПремииОтПриработка / 100),

где:
СреднийЗаработокОбщий - это предустановленный показатель, его нужно выбрать из списка;
Приработок - это новый показатель, он создается нажатием на кнопку «Создать показатель».

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

Рис. 1. Настройка показателя «Приработок»

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

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

Рис. 2. Настройка показателя «ПроцентПремииОтПриработка»

Формулу, составленную из показателей, можно увидеть на рис. 3.

Рис. 3. Отредактированная формула

В формуле не используется расчетная база, поэтому закладка Расчет базы не доступна.

На закладке Учет времени автоматически установлено, что это дополнительная оплата за уже оплаченное время и на стаж не влияет.

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

На закладке Приоритет заполнять ничего не нужно, поскольку расчет этой премии не связан с другими начислениями этого же периода

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

На закладке Налоги, Взносы, Бухучет установите флаг облагается НДФЛ и укажите код дохода премии – 2002 или 2003 в зависимости от назначения премии и средств из которых она выплачивается. Поле Вид дохода для страховых взносов заполняется автоматически и не доступно для редактирования, поскольку выбрано назначение начисления - Премия. Премии - это Доходы, целиком облагаемые страховыми взносами. Аналогично вид расхода по ст. 255 для налога на прибыль устанавливается автоматически в соответствии с назначением начисления и учитывается в расходах на оплату по статье пп. 2 ст. 255 НК РФ, как начисления стимулирующего характера.

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

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

Итак, настройка для начисления премии создана (рис. 4). Как ею воспользоваться?

Рис. 4. Настроенный вид расчета

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

Рис. 5. Настройка шаблона для ввода приработка

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

Процент премии для сотрудников удобнее вносить списком, поэтому настройте шаблон соответствующим образом. В меню Настройка -> Шаблоны ввода исходных данных на закладке Дополнительно установите флаг. Установите флаг, что в документе используется несколько сотрудников. В результате в меню Расчет зарплаты -> Данные для расчета документ для ввода процента премии из приработка приобретает табличный вид.

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

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

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

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

По умолчанию для Доплаты до МРОТ предлагается использовать следующую формулу:

То есть МРОТ пересчитывается пропорционально отработанному времени и далее минусуется то, что начислено сотруднику. То, что начислено можно получить через показатель РасчетнаяБаза . В предыдущих версиях ЗУП 3 если в расчетную базу доплаты входило начисление, не зависящее от времени, для которого приоритет не настроен, и у сотрудника имелась неявка, которая вытесняла доплату до МРОТ, то доплата до МРОТ считалась неверно. Это происходило из-за того, что для Доплаты до МРОТ вытеснение необходимо настроить, чтобы получить отработанное время (показатель ВремяВДнях ), которое считается за фактический период действия начисления. Однако это влияло и на получение РасчетнойБазы , для которой суммы начислений также необходимо получать за фактический период действия. Поэтому РасчетнаяБаза получалась совсем не та, что ожидал увидеть пользователь.

Теперь в ЗУП 3.1.13 в параметрах начисления добавлена настройка получения расчетной базы по периоду действия, которая позволяет решать описанную проблему:


Смоделируем несколько ситуаций, посмотрим какие возникают проблемы и как их можно решить.

Пример 1. Расчет Доплаты до МРОТ, когда нет неявок и кадрового перевода

Получается, что Доплата до МРОТ составит:

  • 12 130 (МРОТ) – 5 000 (Премия разовая (процентом)) – 5 000 (Сдельный заработок) = 2 130 руб.


Здесь никаких проблем с расчетом Доплаты до МРОТ не возникло.

Пример 2. Расчет Доплаты до МРОТ, когда появляется неявка и нет кадрового перевода

В этом случае при расчете Доплаты до МРОТ видно, что Расчетная база вместо ожидаемых 10 000 руб. получилась равной 9 473,68 руб.:


Соответственно и сумма Доплаты до МРОТ получается неверной.

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

  • 5 000 (Премия разовая (суммой)) / 19 (норма дней) * 17 (кол-во отработанный дней) = 4 473,68 руб.

В итоге расчетная база получается:

  • 5 000 (сдельный заработок) + 4 473,68 (Премия разовая (процентом)) = 9 473,68 руб.

Доплата до МРОТ составит:

  • 12 130 (МРОТ) / 19 (норма дней) * 17 (кол-во отработанных дней) – 9 473,68 (Расчетная база) = 1 379,47 руб.

Это неверное значение.

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

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

В версии ЗУП 3.1.13 вышеописанная проблем по премии решается путем того, что в настройках Доплаты до МРОТ переключатель Базовый период устанавливаем в положение Период действия :


В этом случае в расчетную базу Доплаты до МРОТ премия и Сдельный заработок входят в полном объеме, поэтому она получается равной 10 000 руб.:


Доплата до МРОТ составит:

  • 12 130 (МРОТ) / 19 (норма дней) * 17 (кол-во отработанных дней) – 10 000 (Расчетная база) = 853,16 руб.


Расчет получился корректным.

Пример 3. Расчет Доплаты до МРОТ, когда появляется неявка и кадровый перевод

Оставим условия из Примера 2 и добавим Кадровый перевод с 17.02.2020 г.

Так как появился Кадровый перевод , то в Начислении зарплаты и взносов расчет каждого из основных начислений и всех начислений, зависящих от времени, разобьется на две строки, в т.ч. и по Доплате до МРОТ (с 1 по 16 февраля и с 17 по 29 февраля):


Результат расчета Доплаты до МРОТ получается неожиданным, т.к. отдельно идет расчет по каждому «кусочку» и при определенных условиях общая суммы доплаты может быть рассчитана некорректно.

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


Причина в том, что в Доплате до МРОТ используется показатель времени ( ВремяВДнях ). В этом случае становится не важным присутствие накапливаемого показателя и начисление разбивается на две строки.

Проблему можно обойти способом, описанным в кейсе Реализация доплаты до МРОТ.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

Карточка публикации

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (1)

Благодарю за полезную информацию

Добавить комментарий Отменить ответ

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

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

В пятницу о приятном: в ЗУП 3.1.18 появились новые возможности быстрой донастройки отчетов.

Изменения в 2021 году, о которых нужно знать бухгалтеру

С 9 ноября — новые коды доходов и вычетов по НДФЛ

Заполнение статистической формы №57-Т (ЗУП 3.1.4)

Подсобите, есть ли функция в ЗУП, которая позволяет получить расчетную базу за произвольный период? Аналог 77 глПолучитьБазуВР().

(1) требуется собрать базу для премии, но премия берется за произвольный период, т.е. не полный месяц. Стандартной настройки не нашел.
(2)хм, это как?

(2) есть запись "оплата по окладу" с 01.01 по 20.01
Период премии с 10.01 по 15.01, вот и нужно выцепить базу за этот период

(6) если где-то будет найдено что-то готовое, то оно будет использовать некоторые процедуры или функции, в параметрах которых будет торчать тип "Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБаза"

(6) т.к. готового решения у меня нет, но стало интересно - а как бы я решил такую задачу - полез смотреть.

(10)
хм, что такое запрос и где отбор по периодам, не читается

(3) В начале прошлого года делал так
Создал ВР Премия, указал из чего состоит расчетная база и прочие настройки. В доке Премия указывал свой ВР, в разделе Прериод, по итогам указывал произвольный период. И все работало, проверял, база собиралась верно.
Будет ли работать сейчас, учитывая нынешнее качество типовых - надо проверять

(9) Только что проверил через создания нового ВР и с использованием типового документа Премия. Расчетная база подтягивается точно за тот период, который указан в шапке документа.

(14) о как, значит "золотые руки растут из жопы".
Понял, спасибо, проверю

(15) Не факт
В прошлом же году по весне в очередном из релизов был адский баг, который всю схему из (13) выводил из строя.
Суть бага - документ не реагировал на переключатель Период, по итогам .
Указание своего произвольного интервала ничего не давало. Исправили через пару релизов. Так что не всегда руки из опы виноваты.

А так просто не получится? Если выгрузить из вида начисления "Премия" базовые виды начислений в массив БазовыеВидыРасчета и сотрудников в массив Сотрудники.

Наведи порядок в своей работе используя конфигурацию 1C "Управление IT-отделом 8"

Читайте также: