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

Регистр расчета (1Cv8)

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

Свойства регистра расчета

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

Редактирование регистра расчета выполняется в окне редактирования.

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

План видов расчета — основная характеристика регистра. Выбирается один из объектов типа «План видов расчетов».

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

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

Значение графика — свойство доступно, если установлено свойство Период действия. В свойстве выбирается ресурс регистра сведений, определенного в свойстве График.

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

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

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

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

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

На закладке «Прочее» задается режим блокировки объекта (автоматический или управляемый) и устанавливается признак полнотекстового поиска по объектам данного типа.

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

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

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

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

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

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

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

Реквизиты — дополнительная характеристика записи расчета. Реквизиты могут быть почти любого сохраняемого в базе данных типа. Например, реквизиты Дни и Часы для регистра ОсновныеНачисления, реквизит ДокументОснование для регистра Удержания. Нижена рисунке показана структура регистра расчета НачисленияСотрудников.

Графики

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

Ниже приведен пример регистра сведений, который служит графиком работы.

Перерасчеты

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

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

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

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

Ниже на примере показана схема работы перерасчета:

Регистр расчета «Основные начисления»

Физлицо ВидРасчета Сумма
Иванов Оклад 8100
Иванов Отпуск 2000
Петров Оклад 6000
Петров Отпуск 3200

Регистр расчета «Премии»

Физлицо ВидРасчета Сумма
Сидоров Премия 1600
Иванов Премия 2000
Петров Премия 1500

Регистр расчета «Удержания»

Физлицо ВидРасчета Сумма
Иванов НДФЛ 1100
Иванов Алименты 2100
Петров НДФЛ 690
Сидоров НДФЛ 195

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

Измерение ВидРасчета ОбъектПерерасчета
Иванов НДФЛ Док.РасчетНалогов №1
Петров НДФЛ Док.РасчетНалогов №1
Сидоров НДФЛ Док.РасчетНалогов №2

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

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

Запросы к регистрам расчета

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

  • основная таблица записей регистра расчета,
  • таблица фактического периода действия,
  • таблица перерасчета.

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

Взаимозависимость видов расчёта. Базовые, вытесняющие и ведущие виды расчёта.

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

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

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

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

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

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

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

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

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

Регистр расчета поддерживает два вида зависимости по базовому периоду:

зависимость по периоду действия;

зависимость по периоду регистрации.

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

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

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

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

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

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

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

© cyberpedia.su 2017-2020 — Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

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

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

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

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

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

Сотрудник Период Вид расчета Результат Данные Комментарий
Измерение Служебный Служебный Ресурс Ресурс Реквизит
Иванов1 января – 31 январяОклад10001000
Петров1 январь – 31 январяОклад6001000
Петров1 января – 10 февраляНевыход00Болезнь

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

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

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

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

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

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

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

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






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

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

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

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

В силу подобного влияния, период действия записи регистра расчетов делится на четыре периода:
1. Период регистрации . В каком периоде зарегистрировано событие, т.е. обычно когда введен документ.
2. Период действия . В каком периоде действует событие, т.е. к какому периоду относится событие.
3. Базовый период . Имеет смысл только для периодов, имеющих базовый период – описывает интервал базового периода.
4. Фактический период действия . Если период действия вытесняется другими видами расчетов, то фактический период действия состоит из нескольких периодов, когда этот вид расчета фактически действует.

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

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

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

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




Дата Вид графика Значение
11.01.05 птПятидневка8
11.01.05 птШестидневка8
12.01.05 сбПятидневка0
12.01.05 сбШестидневка8

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

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

Перерасчет

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

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

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

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

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

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

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

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

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

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

Вид расчетаБазовыеВытесняющиеВедущие
Оклад Невыход,Командировка
ПремияОкладНевыход,Командировка
КомандировкаОклад
НевыходОклад

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Структура

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

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

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

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

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

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

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

Периодичность

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

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

Подчинение регистратору

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

Связь с графиком времени

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

Например, график времени, имеющий следующую структуру:

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

может содержать информацию о количестве рабочих часов:

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

Перерасчеты

Регистр расчета может включать в себя специальные объекты — Перерасчеты:

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

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

Уникальность записей

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

Механизмы, реализуемые регистром расчета

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

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

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

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

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

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

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

  • зависимость по периоду действия;
  • зависимость по периоду регистрации.

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

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

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

Формирование записей перерасчета

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

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

Функциональные возможности регистра расчета

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

Регистры расчета в 1С для чайников(Часть 3)

В данной статье на примерах покажем принцип действия «механизма зависимости по базовому периоду«, а также покажем принцип действия перерасчётов в 1С. В качестве примера для расчёта возьмём расчёт премии сотрудника процентом от оклада, пусть премия сотруднику начисляется ежемесячно и её размер зависит от начисленного оклада за 2 предыдущих месяца.

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

Добавим в конфигурацию план видов расчёта «ДополнительныеНачисления». Перейдём на вкладку «Расчет».

Флаг «Использует период действия» не устанавливаем так как план видов расчёта «ДополнительныеНачисления» не будет хранить виды расчётов обладающие протяжённостью во времени. Установим флаг «Зависимость от базы» в значение «Зависит по периоду действия«(в нашем случае база для расчета премии будет зависеть от периода действия оклада), если «Зависимость от базы» установить в значение «Зависит по периоду регистрации» тогда база для расчета премии будет зависеть от периода регистрации записи по окладу(поле ПериодРегистрации регистра расчёта).

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

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

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

На вкладке «Ведущие» укажем такие же виды расчёта «Оклад» и «Премия». На вкладке ведущие указываются виды расчётов при изменении которых требуется пересчитать текущий вид расчёта «Премия»(т.е. в данном случае при изменении оклада за прошлые периоды мы должны пересчитать премию за текущий период, а также при изменении премии за прошлые периоды мы должны пересчитать премию за текущий период). С вкладкой «Ведущие» связан объект «Перерасчёты«. Перерасчёт показывает какие данные необходимо пересчитать при изменении ведущих видов расчёта.

Создадим регистр расчёта «Дополнительные начисления».

На вкладке «Основное» укажем созданный ранее план видов расчета «Дополнительные начисления». Поставим флаг «Базовый период» — у нас стали доступны поля «Базовый период начало» и «Базовый период конец«. Укажем периодичность — месяц. В качестве регистратора укажем документ «Начисление зарплаты». Структура регистра показана выше — измерение «Сотрудник», ресурс «Сумма», реквизит «Параметр» для хранения процента премии.

В полях «Базовый период начало» и «Базовый период конец» мы указываем за какой период брать базу для расчёта премии.

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

Добавим табличную часть «Дополнительные начисления».

Реквизит «ВидРасчета» имеет тип «ПланВидовРасчетаСсылка.ДополнительныеНачисления», типы остальных реквизитов очевидны.

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

Заполним в документе табличную часть «ДополнительныеНачисления» и проведём документ:

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

Базовый период для расчета премии у нас 01.01.2017-28.02.2017, процент премии-10, сотрудник Иванов.

Выполним расчёт премии:

Для этого дополним общий модуль «Расчет» кодом расчета премии, полный текст общего модуля расположен ниже:

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

Проверим, считается ли премия:

Создадим 2 документа с видом расчёта «Оклад» по сотруднику Иванов за Январь 2017 и Февраль 2017. На основе этих документов и будет собираться база для расчёта премии.

Перепроведём документ(за март 2017) в котором начисляем премию. В движениях документа видим, что премия рассчиталась и начислена в размере 12000 рублей.

Проверим расчёт премии: По сотруднику Иванов за период Январь 2017 — Февраль 2017 было начислено 120000 рублей оклада. (120000/100)*10 = 12000 рублей.

Перерасчёты

Теперь поговорим про перерасчеты.

Создадим в регистре расчёта «ДополнительныеНачисления» перерасчёт «Перерасчет1» с измерением «Сотрудник».

Свяжем измерение перерасчёта «Сотрудник» с измерением «Сотрудник» регистра «ДополнительныеНачисления» и измерениями регистров, указанных на вкладке «Ведущие».

Благодаря этой связи премия, начисленная на основании «Оклада» при изменении этого «Оклада» попадёт в перерасчёт. Это значит, что при изменении базы для премии по сотруднику Иванов, премия по сотруднику Иванов попадёт в перерасчёт.

Проверим так ли это…

Создадим отчёт на СКД на основе данных «Перерасчет1».

Изначально отчёт пустой…

Теперь изменим значение оклада по сотруднику Иванов за Февраль 2017 — было 60000 рублей, изменим на 80000 рублей.

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

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

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

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

До1.png

Рис.1. До работы механизма вытеснения

Пересечение периода действия текущей записи и вытесняющих записей равно пустому интервалу. В этом случае фактический период действия данной записи будет равен периоду действия текущей записи (Рис.2).

До1.png

Рис.2. После работы механизма вытеснения

До2.png

Рис.3. До работы механизма вытеснения

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

После2.png

Рис.4. После работы механизма вытеснения

До3.png

Рис.5. До работы механизма вытеснения

Пересечение периода действия текущей записи и вытесняющих записей составляет интервал равный периоду действия данной записи. В этом случае фактический период действия данной записи будет равен пустому интервалу(Рис.6).

После3.png

Рис.6. После работы механизма вытеснения

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

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

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

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

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

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

Существует возможность выбрать одну из двух видов зависимостей регистра расчета по базовому периоду зависимость по периоду действия и по периоду регистрации.

Зависимость по периоду действия.

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

Пересечение базового периода текущей записи и период действия базовой записи равно пустому интервалу, то влияние базовой записи на текущую запись отсутствует (Рис.7).

Нет.png

Рис.7. Влияние базовой записи на текущую запись отсутствует

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

ФактическийПериодБазовой.png

Рис.8. Влияние базовой записи на текущую запись несколькими интервалами

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

Полностью.png

Рис.8. Базовая запись полностью влияет на текущую запись

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

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

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

Зависимость по периоду регистрации.

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

Установлено свойство «Период действия является базовым периодом»

В случае, когда в виде расчета текущей записи установлено свойство «Период действия является базовым периодом», в качестве базового периода текущей записи будет использоваться не базовый период, а фактический период действия (Рис.8).

Много.png

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

Регистры расчёта в 1С

Приветствую, коллеги! В данной статье будет описано, что такое регистры расчёта в 1С, какую они имеют структуру и функциональность. Также на реальном практическом примере будет рассмотрено применение регистров расчёта.

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

1. Структура регистров расчёта

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

Измерение в регистре означает «координаты» нахождения данных, а ресурс – это сама информация. Как пример, пусть внутри регистра расчёта «Начисления» действует структура регистра, как показано на скриншоте ниже:

Рис.1 Структура регистра «Начисление»

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

Рис. 2 Записи регистра расчета «Начисления»

2. Связь с планом по видам расчёта

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

3. Периодичность регистров расчета в 1С

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

Рис. 3 Периодичность регистров расчета

4. Управление регистратором

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

5. Соединение регистров расчета в 1С по временному графику

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

Как пример, рассмотрим такой временной график работ:

Рис. 4 Временной график работы в 1С

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

Рис. 5 Данные о рабочих часах во временном графике работ

6. Перерасчёт в регистре расчетов

В регистре расчёта также могут находится особые объекты – «Перерасчёты», которые выглядят следующим образом:

Рис. 6 Перерасчёт в регистре расчетов

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

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

7. Механизм вытеснения по периоду действия

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

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

8. Зависимость регистра расчета в 1С от базового периода

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

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

Есть два вида зависимостей от базового периода:

1. Зависимость от периода регистрации;

2. Зависимость от периода действия.

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

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

9. Записи по перерасчёту в регистре расчета в 1С

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

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

10. Функционал регистра расчёта в 1С 8.3

Регистр расчёта в 1С имеет следующие возможности:

· выбирать записи, опираясь на регистратор;

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

· читать, менять записи в набор записей в регистре расчёта;

· выбирать записи согласно выбранному интервалу, опираясь на нужные критерии;

· получать значения в базе согласно избранным правилам, для базы в регистре расчёта;

· получать информацию про записи, которые следует пересчитать.

Специалист компании «Кодерлайн»

Вас могут заинтересовать следующие статьи:

94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —>

Вас могут заинтересовать следующие вебинары:

1С: Конвертация данных [1] => Конвертация данных [2] => Программирование в 1С [3] => Как сделать в 1С [4] => 1С:Бухгалтерия [5] => Отчеты в 1С [6] => Обмен между базами [7] => Закрытие месяца [8] => 1С:Управление производственным предприятием [9] => 1С: Розница [10] => 1С: CRM [11] => Оценка задач [12] => СКД [13] => РСБУ [14] => Администрирование 1С [15] => Оптимизация [16] => 1С: ERP [17] => Моделирование [18] => Продажи [19] => 1С: Управление торговлей [20] => Бюджетирование [21] => HTTP [22] => Управление проектами [23] => MS SQL Server [24] => МСФО [25] => БУ [26] => Внедрение ERP [27] => com-объекты [28] => 1С: WMS Управление складом [29] => Перенос данных [30] => Торговое оборудование [31] => 1С: Сценарное тестирование [32] => 1С: Колледж [33] => Запросы 1С [34] => LINUX [35] => WEB [36] => Лицензии 1С [37] => 1С:Зарплата и Управление Персоналом [38] => 1С: Документооборот [39] => Excel [40] => ADO [41] => Транспортная логистика [42] => Внедрение [43] => Техническое задание [44] => Отчетность [45] => Ценообразование [46] => 1С:Комплексная автоматизация [47] => Производство [48] => Интеграция 1С [49] => Планирование [50] => Налоги [51] => Отпуск [52] => Полезные обработки [53] => Расширение конфигурации [54] => XML [55] => Word [56] => WEB-сервисы 1С [57] => Лизинг [58] => 1С:Управление нашей фирмой [59] => 1С:Управление корпоративными финансами [60] => 1С: Аренда и управление недвижимостью [61] => Правила обмена [62] => 1С: Платформа [63] => Финансовый учет ) —>

Горин Павел/ автор статьи

Павел Горин — психолог и автор популярных статей о внутреннем мире человека. Он работает с темами самооценки, отношений и личного роста. Его экспертность основана на практическом консультировании и современных психологических подходах.

Понравилась статья? Поделиться с друзьями:
psihologiya-otnosheniy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: