Что такое базовые виды расчета вытесняющие виды расчета ведущие виды расчета
Планы видов расчетов в 1С 8.3
План видов расчета — объект 1С 8.3, хранящий в себе сведений о типах видов расчетов и определяющий влияние разных расчетов друг на друга. Он так же, как и план счетов, похож на справочник, однако имеет свои особенности.
Рассмотрим особенности настройки плана видов расчета.
Особенности настройки плана видов расчетов в 1С
Самая интересная вкладка, с точки зрения разработчика, плана вида расчетов — Расчет. Рассмотрим свойства подробнее:
Использует период действия — свойство плана видов расчетов, определяющий, требуется ли использование периода в данном виде расчета. Например, вид расчета «Штраф» не требует использования периода действия в отличие от оклада.
Зависимость от базы — настройка определяет возможность расчета заработной платы от другого вида расчета. Существуют следующие варианты:
Базовые планы видов расчета — список планов расчетов, которые могут быть выбраны в качестве базы для объекта. Доступны для редактирования только в том случае, если Зависимость от базы установлено в значение, отличное от не зависит.
Свойства элемента плана расчетов в 1С
Рассмотрим свойства предопределенного элемента плана расчетов подробнее:
Флаг Период действия является базовым периодом — доступен только при установленном флаге Использует период действия, и если установлена зависимость от базы. Если флаг установлен, то базой для расчета будет являться сам период расчета.
Вкладка Базовые позволяет выбрать из имеющихся планов расчета те расчеты, которые будут являться для него базовым. Например, очень часто для отпускных базой является оклад.
Вытесняющие — расчеты, которые аннулируют данные за текущий период. Например, во время отпуска человек не должен получать оклад.
Ведущие — вкладка, на которой указываются расчеты, взаимосвязанные с этим видом расчета. Эта информация будет использоваться далее в перерасчетах. Например, если отпускные уже были рассчитаны на основании оклада, а потом оклад был изменен задним числом, в такой ситуации позволяет отследить данный механизм.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Планы видов расчета в 1С 8.3
Виды расчета
Планы видов расчета предназначены для хранения списка видов расчета. Можно сказать, что это справочник видов расчета.
Вид расчета — это некая часть заработной платы. Причем, это может быть как начисление, так и удержание. Например: оклад, премия, НДФЛ, оплата больничного, оплата командировки и т.д.
В принципе, в плане видов расчета можно хранить не только данные, используемые для расчета заработной платы. Но в большинстве случаев они используются именно в механизмах расчета заработной платы.
Так как план видов расчета мало чем отличается от справочника, то в данной статье будут рассмотрены только механизмы, используемые при расчете заработной платы.
По умолчанию для плана видов расчета создается одна таблица для хранения основных реквизитов и одна таблица для хранения предопределенной табличной части Ведущие виды расчета. У данной табличной части только один реквизит — Вид расчета.
Ведущие виды расчета — это такие виды расчета, после ввода или изменения которых нужно пересчитать текущий вид расчета. Например, если премия рассчитывается как некий процент от оклада, то для премии нужно указать оклад как ведущий вид расчета:
Если после расчета премии будет изменен оклад, то программа сможет автоматически просигнализировать, что нужно пересчитать премию.
Если в конфигурации есть несколько планов видов расчета, то тут можно указать виды расчетов из любого плана.
Помимо предопределенных табличных частей можно добавлять произвольные табличные части:
Основные настройки находятся на закладке Расчет.
Период действия
Флаг Использует период действия нужно установить, если предполагается, что в плане будут храниться виды расчета, которые обладают свойством действовать какой-то период времени. Например, оклад за месяц. Периодом действия будет являться период, за который был начислен оклад. Пример вида расчета, для которого период не имеет значения — премия, она просто регистрируется в некий момент времени.
Если данный флаг установлен, то в базе данных будет создана еще одна предопределенная табличная часть Вытесняющие виды расчетов, с одним реквизитом — Вид расчета. Здесь нужно указать те виды расчетов, которые не могут одновременно действовать в один период. Например, сотрудник не может одновременно и работать по окладу и быть в командировке :
В этом случае, если после расчета оклада за май начислить командировку с 20 по 30 мая, то командировка вытеснит оклад в период с 20 по 30 мая. Вытесняться могут только виды расчетов из одного плана.
Если у оклада в списке вытесняющих видов расчета указана командировка, то не нужно указывать оклад в списке вытесняющих видов расчета для командировки. В этом случае не сможет корректно отработать механизм вытеснения по периоду действия. Программа автоматически контролирует такие ситуации при записи, и если обнаружит, то выдаст ошибку: «Неверный список вытесняющих видов расчета: Обязательные к удалению виды расчета: Оклад.»:
Также выполняется контроль полноты указания всех вытесняющих видов расчета. Например, если больничный вытесняется командировкой, то если у оклада указать в списке вытесняющих только больничный, то программа потребует указать также и командировку: «Неверный список вытесняющих видов расчета: Необходимо внести виды расчета: Командировка, или удалить виды расчета: Больничный.»:
Зависимость от базы
Настройка Зависимость от базы позволяет указать список видов расчета, которые будут составлять базу текущего вида расчета:
Например, для премии базой может являться оклад. То есть база — это те виды расчета, на основании которых будет рассчитан текущий вид расчета.
Данная настройка имеет три значения:
Период действия — это тот период, в течении которого действует вид расчета. Например, для оклада за январь 2021 года периодом действия будет являться период с 1 января по 31 января 2021 года.
Период регистрации — это тот период, в котором был зарегистрирован вид расчета. Период регистрации не всегда совпадает с периодом действия. Например, сотрудник принес больничный лист 5 мая, следовательно больничный будет зарегистрирован в мае. Хотя реально сотрудник болел с 20 по 30 апреля и периодом действия будет являться период с 20 по 30 апреля. Другой пример это командировка, которую начислили 27 апреля, а в командировке сотрудник будет с 5 по 15 мая. В этом случае период регистрации — апрель, период действия 5 — 15 мая.
Если выбрана настройка, отличная от Не зависит, то будет добавлена еще одна предопределенная табличная часть Базовые виды расчетов, где нужно указать те виды расчетов, которые входят в базу текущего вида расчета. У данной табличной части также только один реквизит — Вид расчета:
На закладке Расчет можно отметить те планы видов расчета, элементы которых можно будет указывать в данной табличной части:
В табличной части Базовые виды расчетов нельзя дважды указать один и тот же вид расчета. При записи будет выполнена проверка и если будет обнаружено дублирование, то программа выбросит исключение «Дублирование базовых видов расчета»:
Программная работа с планом видов расчета
Программная работа с планом видов расчета ничем не отличается от программной работы со справочником, поэтому рассмотрим только основные примеры:
Взаимозависимость видов расчёта. Базовые, вытесняющие и ведущие виды расчёта.
Виды расчета, созданные в плане видов расчета, могут влиять друг на друга. Система поддерживает два вида такого влияния: зависимость по базовому периоду и вытеснение по периоду действия.
Для каждого вида расчета можно указать перечень видов расчета, от которых он будет зависеть по базовому периоду, и которые будут вытеснять его по периоду действия.
Вытеснение по периоду действия
Механизм вытеснения по периоду действия позволяет рассчитывать фактический период действия записи регистра расчета на основании анализа других записей, содержащихся в регистре.
В общем случае, запись регистра расчета содержит две даты, определяющие период, на который распространяется действие данной записи. Этот период называется периодом действия записи. Однако, если вид расчета, к которому относится данная запись, может быть вытеснен другим видом расчета, то период действия данной записи является лишь «запрашиваемым» периодом, то есть «мы хотим, чтобы запись действовала в этом периоде». Реально, фактический период действия данной записи можно будет определить лишь после анализа всех записей видов расчета, которые вытесняют данный вид расчета по периоду действия. Фактический период действия будет представлять собой набор периодов, являющихся подмножеством исходного периода действия данной записи. Если не будет найдено ни одной записи, вытесняющей данную по периоду действия, то фактический период действия данной записи будет равен ее периоду действия. Другим крайним случаем вытеснения по периоду действия является полное вытеснение данной записи другими записями. В этом случае фактический период действия записи будет отсутствовать.
Каждая запись регистра расчета содержит вид расчета, к которому она относится. Чтобы определить, какие записи должны вытеснять данную запись по периоду действия, регистр расчета использует связь с планом видов расчета, в котором описано взаимное влияние видов расчета друг на друга. Использование этой связи позволяет регистру расчета определять фактический период действия каждой записи.
Зависимость по базовому периоду
Механизм зависимости по базовому периоду позволяет получать значение базы для записи регистра расчета на основании анализа других записей, содержащихся в регистре.
Регистр расчета поддерживает два вида зависимости по базовому периоду:
зависимость по периоду действия;
зависимость по периоду регистрации.
В случае зависимости по периоду действия для получения базы будут выбираться те записи, для которых найдено пересечение их фактического периода действия с базовым периодом данной записи. Значение базы, которая будет получена от конкретной влияющей записи, в общем случае не равно результату, который содержит эта запись. База будет рассчитана пропорционально тому, какую часть от фактического периода влияющей записи составляет перекрывающийся, с указанным базовым периодом, участок. При этом будут использованы данные графика, связанного с этой записью.
В случае зависимости по периоду регистрации для получения базы будут выбираться результаты расчета тех записей, которые попадают в базовый период данной записи значением своего поля «Период регистрации».
Наиболее сложным вариантом зависимости по базовому периоду является случай, когда для вида расчета данной записи установлено свойство «Период действия является базовым периодом». Это свойство означает, что в качестве базового периода данной записи будет использоваться не базовый период, который указан в соответствующих полях записи, а фактический период действия записи, получаемый в результате работы механизма вытеснения по периоду действия и являющийся, в общем случае, набором некоторых периодов.
Вкладка Базовые позволяет выбрать из имеющихся планов расчета те расчеты, которые будут являться для него базовым. Например — очень часто для отпускных базой является оклад.
Вытесняющие — расчеты, которые аннулируют данные за текущий период. Например, во время отпуска человек не должен получать оклад.
Ведущие — вкладка, на которой указываются расчеты, которые взаимосвязаны с этим видом расчета. Эта информация будет использоваться далее в перерасчетах. Например: если отпускные уже были рассчитаны на основании оклада, а потом оклад был изменен задним числом — таким ситуации позволяет отследить данных механизм.
Ведущие виды расчета
Для автоматизации перерасчета неактуальных записей в регистрах расчета, помимо прочих средств, существует понятие ведущих видов расчета. Такой список ведущих видов расчета (т.е. оказывающих влияние на результат) определен для любого плана видов расчета вне зависимости от его настроек.
В этом небольшом материале мы рассмотрим причины по которым существует само понятие ведущих видов расчета наряду со списками вытесняющих и базовых видов расчета.
Таким образом, для каждого конкретного вида расчета список «базовых» и «вытесняющих» видов расчета полностью определяет состав видов расчета, непосредственно влияющих на результаты.
Рассмотрим пример
Теперь рассмотрим, почему подобные цепочки зависимостей не приводят к необходимости расширять список «ведущих» видов расчета за счет «вытесняющих». Дело в том, что система не допускает настройки списка вытесняющих видов расчета подобной той, которую мы рассмотрели для базовых видов расчета. Если вид расчета А вытесняет вид расчета Б, а тот в свою очередь вытесняет вид расчета В, то вид расчета В должен вытесняться и видом расчета А (см. раздел «Особенности поведения системы при записи объекта Вид расчета»). Эта особенность приводит к тому, что для последнего в подобной цепочке зависимостей вида расчета всегда будет определен «полный» список вытесняющих видов расчета.
Ведущие виды расчета
Ведущие виды расчета
1. Введение
2. Варианты зависимости между видами расчетов
Поскольку ВР связаны между собой, при изменении одних ВР может потребоваться перерасчет других ВР.
Как, правило, базовые и вытесняющие ВР однозначно определяются постановкой задачи. Указание списка ведущих ВР может вызвать некоторое затруднение.
3. Информация о ведущих видах расчета из различных источников
Документация 1С, как всегда, не балует нас подробной информацией и детальными инструкциями. В [1] о ведущих ВР сказано лишь, что «на закладке «Ведущие» указываются те виды расчета, которые определяют работу механизма перерасчетов соответствующего регистра расчета (т.е. того, которому назначен данный план видов расчета)».
В справке Конфигуратора приведено описание предопределенной табличной части ПВР ВедущиеВидыРасчета, но нет правил заполнения ведущих ВР.
В [3] содержится более подробная информация. Там указано, что ведущие виды расчета используются для перерасчета неактуальных записей в регистрах расчета. Необходимость указания ведущих видов расчета продемонстрирована на примере. Пусть ВР «А» является базовым для ВР «Б», а тот в свою очередь является базовым для ВР «В». Если механизм перерасчетов будет опираться только на базовые ВР, то при изменениях по ВР «А» выяснится необходимость перерасчета только для ВР «Б». И только после внесения изменений (перерасчета) по ВР «Б» выяснится необходимость перерасчета для «В». Правильное использование ведущих ВР позволяет избежать подобных многоэтапных перерасчетов. В данном примере для ВР «В» нужно указать ведущие ВР «А» и «В».
В [5] указано следующее: «В табличной части ‘Ведущие виды расчета’ указываются виды расчета, при вводе (изменении) которых результат текущего вида расчета должен быть пересчитан (например ‘Оклад по дням’ является ведущим видом расчета для видов расчета ‘Доплата за вредность’ и ‘Премия процентом’)».
Если «Невыход» вытесняет «Оклад» по периоду действия, а «Премия» зависит по базовому периоду от «Оклада», то в качестве ведущих для «Премии» нужно указывать следующие ВР: «Оклад», «Невыход» [9]. То есть, при формировании списка ведущих ВР нужно учитывать транзитивные (или каскадные) зависимости.
Этот пример также подробно рассмотрен в [8].
Определение из книги [5] почти ничего не добавляет к материалам предыдущих источников: «Ведущими называют виды расчетов, при вводе или изменении которых необходимо перерассчитать результат уже существующих расчетов». Но в этой книге приведен хороший пример. «Премия» зависит по базе от «Доплаты за разъезды», которая в свою очередь зависит по базе от «Командировки». Ведущими ВР для «Премии» являются «Доплата за разъезды» и «Командировка». Это транзитивная (или каскадная) зависимость по базе.
В [6] тема ведущих расчетов не рассмотрена подробно, дается отсылка к [3].
— при настройке базы,
— при определении вытеснения,
— от каскадной зависимости видов расчета,
— от специфики решаемой задачи.»
3. Выводы
Таким образом, в списке ведущих ВР указываются все ВР, при вводе, удалении или изменении которых нужно выполнять пересчет данного ВР, а именно:
— базовые ВР для данного ВР,
— вся цепочка ВР, от которых базовые ВР зависят прямо или транзитивно (каскадно), это может быть зависимость по базе или вытесняющая зависимость:
— ВР, прямо вытесняющие базовые ВР,
— ВР, транзитивно (каскадно) вытесняющие базовые ВР,
— ВР, которые являются базовыми для базовых или вытесняющих ВР.
Источники:
2. Габец А.П., Козырев Д.В., Кухлевский Д.С., Хрусталева Е.Ю. Реализация прикладных задач в системе 1С:Предприятие 8.2.
3. ИТС. Документ «Ведущие виды расчета».
4. ИТС «Глоссарий разработчика».
8. Материалы форума devtrainingforum.v8.1c.ru.
9. Радченко М.Г., Хрусталева Е.Ю. 1С:Предприятие 8.2. Практическое пособие разработчика.