Виды расчетов в 1с 8.2. Механизм сложных периодических расчетов. Что такое расчеты

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

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

Специализация регистра – накапливать цифры. Сами по себе голые цифры не интересны – вместо «всего продано 3000» нам будет полезнее узнать «продано телефонов 2900, продано гарнитур 100».

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

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

Где же они хранятся?

План счетов 1С

Бухгалтерский учет построен на основе плана счетов 1С. Это список счетов, в разрезе которых производится движение денег. Для каждого счета может быть несколько аналитик – разрезов по справочникам («субконто»).

На самом деле учет в бухгалтерии ведется не в плане счетов 1С, а в регистрах бухгалтерии, где хранится список собственно проводок с указанием справочников (аналитик) и сумм.

План счетов 1С – это настройка регистра бухгалтерии, которая определяет:

  • Список счетов, по которым могут быть сделаны проводки
  • Виды учета по счету (например, возможность указать сумму в валюте; возможно считать не только сумму, но и количество)
  • Виды учета по субконто (т.е. в разрезе справочников, аналогично как и со счетами).

План видов расчетов 1С

Аналогичная ситуация в учете заработной платы. Есть регистры расчетов – в них производится начисление собственно сумм в разрезе работников, организаций и т.п. И есть план видов расчетов 1С – это настройка, определяющая использование регистра расчета в будущем.

Примеры видов расчета 1С:

  • Заработная плата
  • Доплата за напряженный труд
  • Сдельная доплата за результат.

Почему нужно выносить это в разные настройки?

Потому что разные виды оплаты труда по разному рассчитываются:

  • Отражение начисления в налогах и разных фондах
  • Могут быть связаны друг с другом
  • o Одна запись вытесняет другую (зарплата начисляется за весь месяц, кроме тех дней, когда начислен больничный; то есть больничный вытесняет зарплату)
    o Одна запись зависит [за период] от другой (алименты за период начисляются на основании зарплаты за период, а не наоборот).

План видов характеристик 1С

План видов характеристик 1С (ПВХ 1С) – содержит характеристики.

Характеристики – это свойства любого объекта, которые определяет сам пользователь.

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

Как это устроено?

  • Сама характеристика 1С (ее имя) – хранится в ПВХ в режиме 1С Предприятие
  • Какие могут быть значения (т.е. варианты значений) – хранятся в произвольном справочнике 1С
  • Пары характеристика = значение хранятся в регистре сведений 1С.

Как это использовать?

  • Программист в конфигураторе определяет в ПВХ 1С
    o Вид характеристик 1С (например, «Дополнительные свойства справочников»)
    o Дополнительный справочник 1С, в котором будут хранится варианты значений
    o Возможные к использованию пользователем справочники 1С (типовые и дополнительный, указанный выше)
  • Пользователь в ПВХ «Дополнительные свойства» определяет характеристику «Степень крутости»
  • На форме соответствующего справочника нужно организовать установку пользователем значений, которые будут хранится в регистре сведений 1С.

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

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

  • Щелкнуть правой кнопкой мыши на справочник, в меню выбрать Характеристики 1С
  • В таблице указать настройку, которая будет использоваться в отчетах СКД и динамических списках для автоматического связывания справочника с его характеристиками
    o Виды характеристик 1С – таблица и имя поля, где хранятся виды характеристик (отбор по ссылке)
    o Значения характеристик 1С – таблица и имя поля, где хранятся собственно значения (отбор по ссылке).

Механизм сложных периодических расчетов предназначен в первую очередь для решения задач, связанных с начислением заработной платы. Он позволяет описать сложные зависимости зарплаты от каких-либо показателей. В состав механизма входят два основных прикладных объекта:

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

Вопрос 14.01 экзамена 1С:Профессионал по платформе. Планы видов расчета предназначены...

  1. для описания множеств возможных видов расчета
  2. для накопления информации о периодических расчетах
  3. для хранения информации о перерасчетах
  4. верно все вышеперечисленное
  5. верны утверждения 1 и 3

Правильный ответ первый, разбор в посте.

Вопрос 14.02 экзамена 1С:Профессионал по платформе. Виды расчета - это...

  1. объекты базы данных
  2. объекты конфигурации
  3. объекты встроенного языка

Правильный ответ первый, например в ПВР "Основные начисления организаций" могут входить такие виды расчетов как Оклад по дням, ГПД на месяц, и т.д.

Вопрос 14.16 экзамена 1С:Профессионал по платформе. Новые виды расчета...

  1. можно создавать только в режиме "1С:Предприятие"
  2. можно создавать только в режиме "Конфигуратор"
  3. можно создавать в режиме "1С:Предприятие" и в режиме "Конфигуратор"

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

Вопрос 14.21 экзамена 1С:Профессионал по платформе. Регистры расчета служат...

  1. для накопления информации о периодических расчетах
  2. для описания множеств однотипных видов расчета
  3. для хранения сведений о перерасчетах

Правильный ответ первый.

Вопрос 14.44 экзамена 1С:Профессионал по платформе. Выберите правильный ответ:

  1. Регистр расчета может быть связан с несколькими планами видов расчета
  2. Регистр расчета может быть связан только с одним планом видов расчета
  3. Регистр расчета может быть связан только с тремя планами видов расчета

Правильный ответ второй, см. в посте скриншот регистра расчета.

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

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

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

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

    Работа механизма сложных периодических расчетов обеспечивается двумя объектами прикладного решения:

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

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

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

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

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

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

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

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

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

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

    А вид расчета Оклад может вытесняться видом расчета Невыход:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Планы видов расчета для целей регламенированного учета:

    • Основные начисления организаций — предназначен для хранения описании видов расчета начислений, имеющих протяженность во времени, а также начислений, которые могут назначаться в плановом порядке
    • Дополнительные начислении организаций — предназначен для хранения описаний видов расчета разовых единовременных начислений не имеющих длительности во времени
    • Удержания организаций — предназначен для хранения описаний видов расчета удержаний, используемых в регламентированном учете
    • Средний заработок — содержит специализированный нерасширяемый перечень видов расчета, используемых при расчете оплаты по среднему заработку

    Планы видов расчета для целей управленческого учета:

    • Управленческие начисления — предназначен для хранения описаний видов расчета начислений, используемых при расчете управленческой заработной платы
    • Управленческие удержания — предназначен для хранения описаний видов расчета удержаний (взысканий), используемых при расчете управленческой заработной платы

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

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

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

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

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

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

    Многие программисты 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 января. Надеюсь вам понятно, что период был разбит на два, т.к. невыход вытеснил оклад.

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

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

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

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

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

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

    Значение

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

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

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

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

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

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

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

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

    Поддержите проект — поделитесь ссылкой, спасибо!
    Читайте также
    Как вызвать фею Винкс — магия для юных волшебников Где можно найти фей в жизни Как вызвать фею Винкс — магия для юных волшебников Где можно найти фей в жизни Неизвестный хищник терроризирует Украину Неизвестный хищник терроризирует Украину О прилипании предметов к телу человека Если ложка прилипает к телу О прилипании предметов к телу человека Если ложка прилипает к телу