Регистр расчета 1с это
Объект 1С "Регистры бухгалтерии" - это прикладные объекты конфигурации, которые используются в механизме бухгалтерского учета и позволяют:
- вести многоуровневый и многомерный аналитический учет;
- вести учет по нескольким планам счетов;
- опциональное ведение количественного, суммового и валютного учета по отдельным разрезам аналитики и т.д.
Регистр бухгалтерии связывается с одним из используемых планов счетов, и хранит бухгалтерские итоги в соответствии с его структурой.
Регистры бухгалтерии по свой сути похожи на регистры накопления, но более сложны. Аналогично регистрам накопления регистры бухгалтерии содержат ресурсы, измерения и реквизиты.
Функциональные возможности регистра бухгалтерии
Основными функциональными возможностями, которые предоставляет регистр бухгалтерии разработчику, являются:
- выбор записей в заданном интервале по заданным критериям;
- выбор записей по регистратору;
- получение остатков и оборотов на указанный момент времени по заданным значениям параметров (счет, субконто, измерения, кор. счет, кор. субконто, кор. измерения);
- получение остатков на указанный момент времени по заданным значениям параметров (счетДт, субконтоДт, счетКт, субконтоКт, измеренияКт, измерения (для балансовых) и измеренияДт, измеренияКт (для не балансовых));
- режим работы с разделением итогов, который обеспечивает более высокую параллельность записи в регистр;
- отключение использования текущих итогов;
- расчет итогов на указанную дату;
- чтение, изменение и запись набора записей в регистр;
- возможность записи в регистр без пересчета итогов;
- полный пересчет итогов и пересчет итогов за указанный период.
Структура объекта 1С "Регистры бухгалтерии"
По своему виду регистр бухгалтерии напоминает регистр накопления и может:
- иметь набор изменений, в разрезе которых накапливаются числовые значения ресурсов;
- содержать набор реквизитов для хранения дополнительной информации, связанной с записями регистра.
Информация в регистре бухгалтерии хранится в виде записей, структура которых строится системой динамически, в зависимости от настроек различных элементов учета, выполненной при редактировании плана счетов.
Например, запись может содержать поля для ввода корреспондирующих счетов, сумм, субконто, количества, вида валюты и суммы в валюте:
Набор стандартных реквизитов регистра бухгалтерии будет изменяться в зависимости от настроек конкретного плана счетов (максимального числа субконто).
Измерения и ресурсы регистра бухгалтерии
Субконто (от англ. subcount - субсчет) - термин из бухгалтерского учета, может иметь следующие значения:
- Субконто — аналитический признак («разрез») счета бухгалтерского учёта. Низший иерархический элемент в структуре бухгалтерских счетов. Используется в бухгалтерских программах. Например, в программе 1C — аналитический признак бухгалтерского счета. По назначению схож с субсчетом.
- Субконто — объект аналитического учета. Под видом субконто понимается множество однотипных объектов аналитического учета, из которого выбирается объект.
В общем случае, аналитичность регистра бухгалтерии определяется значениями субконто плана счетов, на который данный регистр ссылается.
Но на практике возможна ситуация, когда субконто должно быть сквозным - то есть все-все хозяйственные операции нужно учитывать в разрезе, скажем, организаций. Добавлять именно сквозное субконто для это цели было бы неверным, поскольку каждое лишнее субконто нагружает систему. Для таких случаев, есть возможность добавить измерение непосредственно в регистр бухгалтерии.
Признак "Балансовый" при этом означает, что по данному измерению может быть построен баланс. Также, в записях регистра балансовое измерение будет заполняться один раз для всей проводки, а небалансовое - два, для Дт и Кт.
Особенности работы с регистрами бухгалтерии 1С:
- Регистры бухгалтерии необходимо использовать для хранения данных бухгалтерского и налогового учета.
- Из любого регистра бухгалтерии можно получить остатки и обороты.
- Несколько регистров бухгалтерии могут быть привязаны к одному плану счетов.
- Периодичность хранения итоговых данныхдля регистров бухгалтериипредопределена платформой, можно задать только периодичность "Месяц" ( подробнее. ).
- Периодичность получения итоговых данных для регистров бухгалтерии можно определить из списка предлагаемых вариантов.
- не выбран план счетов;
- у плана счетов нет субконто;
- у плана счетов не указано максимальное количество субконто.
- по каждому значению балансового измерения будет вестись отдельный баланс;
- значение балансового измерения вводится в запись один раз для регистра с поддержкой корреспонденции.
- по небалансовым ресурсам не поддерживается равенство сумм по дебету и кредиту по регистру для балансовых счетов (например, Количество - небалансовый ресурс, т.к. нет требований по нему к сходимости Дт и Кт).
- с поддержкой корреспонденции по сути ближе всего к проводке;
- без поддержки корреспонденции по сути ближе всего к записи в регистр накопления с видом «Остатки» (одна запись отражает лишь часть проводки).
- выбран план счетов и
- у регистра бухгалтерии включено использование корреспонденции.
Режимы работы регистра бухгалтерии:
- с поддержкой корреспонденции (установлен флаг "Корреспонденция" на вкладке "Основные"), будет задействован механизм двойной записи и каждая запись регистра будет содержать обязательные поля "СчетДт" (счет дебета) и "СчетКт" (счет кредита) , а также два комплекта колонок с субконто ;
- без поддержки корреспонденции (каждая запись регистра будет содержать только одно поле - "Счет" и один комплект колонок с субконто).
Использование корреспонденции возможно, если одновременно выбран план счетов и у регистра бухгалтерии включено использование корреспонденции.
Как правило, ведение бухгалтерского учета подразумевает двойную запись (корреспонденцию); если почему-то она для плана счетов не требуется, то ее можно отключить.
Связь объекта 1С "Регистры бухгалтерии" с регистратором
Поскольку записи регистра бухгалтерии отражают те или иные хозяйственные операции, выполняемые на предприятии, каждая из них связана с документом-регистратором, номером строки этого документа, и датой-периодом.
Состав документов, которые могут создавать записи в регистре бухгалтерии, задается разработчиком в процессе создания прикладного решения.
Конструктор движений объекта 1С "Регистры бухгалтерии"
Алгоритмы, по которым формируются записи в регистре, описываются средствами встроенного языка в процедурах соответствующих документов. Система содержит конструктор движений, который помогает разработчику создавать алгоритмы проведения документа.
Уникальность записей объекта 1С "Регистры бухгалтерии"
Система обеспечивает контроль уникальности записей, хранящихся в регистре бухгалтерии. Благодаря этому в регистре бухгалтерии не может находиться двух записей, относящихся к одной и той же строке одного и того же документа.
Формы объекта 1С "Регистры бухгалтерии"
Форма списка регистра бухгалтерии
Форма списка регистра бухгалтерии предназначена для просмотра данных, содержащихся в регистре бухгалтерии. Она позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям.
Система может автоматически генерировать эту форму.
Форма набора записей регистра бухгалтерии
Форма набора записей регистра бухгалтерии позволяет добавлять, изменять и удалять записи регистра бухгалтерии.
Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо формы по умолчанию.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Регистры расчета — это прикладные объекты конфигурации. Они используются в механизме сложных периодических расчетов и служат для хранения записей о тех или иных видах расчета, которые необходимо выполнить, а также для хранения промежуточных данных и самих результатов выполненных расчетов.
Структура
Информация в регистре расчета хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.
Измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию. Например, для регистра расчета Начисления, который имеет следующую структуру:
записи, хранимые в базе данных, будут выглядеть следующим образом:
Связь с планом видов расчета
Регистр расчета связан с одним из планов видов расчета, существующих в прикладном решении. Эта связь обуславливает наличие у каждой записи регистра поля Вид расчета, благодаря которому механизмы регистра могут отслеживать взаимное влияние записей расчета друг на друга.
Периодичность
Регистр расчета хранит данные не только в разрезе созданных измерений, но и в разрезе времени. Это является причиной существования у каждой записи регистра расчета еще одного обязательного поля — Период действия. При создании регистра расчета разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:
Подчинение регистратору
Изменение состояния регистра расчета происходит, как правило, при проведении документа. Поэтому каждая запись регистра связана с определенным документом — регистратором и номером строки этого документа. Добавление записей в регистр, их изменение и удаление возможно только одновременно для всех записей, относящихся к одному документу.
Связь с графиком времени
Для регистра расчета может быть указана связь с графиком времени. График времени представляет собой регистр сведений, в котором содержится временная схема исходных данных, участвующих в расчетах. Измерениями этого графика могут быть, например, график работы и дата, а ресурсом — количество рабочих часов в этой дате. Тогда можно будет связать запись регистра расчета с каким-либо конкретным графиком работы и в дальнейшем, средствами встроенного языка получать информацию о количестве рабочих часов, необходимую для выполнения расчетов.
Например, график времени, имеющий следующую структуру:
может содержать информацию о количестве рабочих часов:
Перерасчеты
Регистр расчета может включать в себя специальные объекты — Перерасчеты:
В этих объектах система будет хранить информацию о том, какие записи регистра расчета утратили свою актуальность и подлежат перерасчету в результате работы механизмов зависимости по базовому периоду и вытеснения по периоду действия.
Уникальность записей
Система обеспечивает контроль уникальности записей, хранящихся в регистре расчета. Поэтому в регистре расчета не может находиться двух записей, относящихся к одной и той же строке одного и того же документа.
Механизмы, реализуемые регистром расчета
Вытеснение по периоду действия
Механизм вытеснения по периоду действия позволяет рассчитывать фактический период действия записи регистра расчета на основании анализа других записей, содержащихся в регистре.
В общем случае, запись регистра расчета содержит две даты, определяющие период, на который распространяется действие данной записи. Этот период называется периодом действия записи. Однако, если вид расчета, к которому относится данная запись, может быть вытеснен другим видом расчета, то период действия данной записи является лишь «запрашиваемым» периодом, то есть «мы хотим, чтобы запись действовала в этом периоде». Реально, фактический период действия данной записи можно будет определить лишь после анализа всех записей видов расчета, которые вытесняют данный вид расчета по периоду действия. Фактический период действия будет представлять собой набор периодов, являющихся подмножеством исходного периода действия данной записи. Если не будет найдено ни одной записи, вытесняющей данную по периоду действия, то фактический период действия данной записи будет равен ее периоду действия. Другим крайним случаем вытеснения по периоду действия является полное вытеснение данной записи другими записями. В этом случае фактический период действия записи будет отсутствовать.
Каждая запись регистра расчета содержит вид расчета, к которому она относится. Чтобы определить, какие записи должны вытеснять данную запись по периоду действия, регистр расчета использует связь с планом видов расчета, в котором описано взаимное влияние видов расчета друг на друга. Использование этой связи позволяет регистру расчета определять фактический период действия каждой записи.
Зависимость по базовому периоду
Механизм зависимости по базовому периоду позволяет получать значение базы для записи регистра расчета на основании анализа других записей, содержащихся в регистре.
База представляет собой числовое значение, которое должно быть использовано для расчета результата данной записи. База рассчитывается путем анализа результатов расчета других записей, от которых данная запись зависит по базовому периоду. Таким образом, в общем случае, запись регистра расчета содержит две даты, определяющие период, в котором нужно анализировать записи видов расчета, от которых данный вид расчета зависит по базе — базовый период. Использование связи с планом видов расчета позволяет регистру расчета определять виды расчета, от которых данный вид расчета зависит по базовому периоду.
- зависимость по периоду действия;
- зависимость по периоду регистрации.
В случае зависимости по периоду действия для получения базы будут выбираться те записи, для которых найдено пересечение их фактического периода действия с базовым периодом данной записи. Значение базы, которая будет получена от конкретной влияющей записи, в общем случае не равно результату, который содержит эта запись. База будет рассчитана пропорционально тому, какую часть от фактического периода влияющей записи составляет перекрывающийся, с указанным базовым периодом, участок. При этом будут использованы данные графика, связанного с этой записью.
В случае зависимости по периоду регистрации для получения базы будут выбираться результаты расчета тех записей, которые попадают в базовый период данной записи значением своего поля «Период регистрации».
Наиболее сложным вариантом зависимости по базовому периоду является случай, когда для вида расчета данной записи установлено свойство «Период действия является базовым периодом». Это свойство означает, что в качестве базового периода данной записи будет использоваться не базовый период, который указан в соответствующих полях записи, а фактический период действия записи, получаемый в результате работы механизма вытеснения по периоду действия и являющийся, в общем случае, набором некоторых периодов.
Формирование записей перерасчета
Механизм формирования записей перерасчета отслеживает факт появления в регистре записей, влияющих на результат расчета уже существующих записей. Возможность влияния новых записей на существующие определяется в результате анализа взаимного влияния видов расчета и на основании работы механизмов вытеснения по периоду действия и зависимости по базовому периоду.
Результатом работы механизма формирования записей перерасчета является набор записей перерасчета, содержащий информацию о том, какие записи регистра должны быть рассчитаны заново (перерасчитаны).
Функциональные возможности регистра расчета
Основными функциональными возможностями, которые предоставляет регистр расчета разработчику, являются:
В процессе изучения любого предмета иногда возникает потребность в дополнительной систематизации знаний. Эта статья - попытка систематизировать общие сведения о видах регистров в 1с, их общих чертах и различиях. Возможно, начинающим программистам она поможет "удобнее" уложить знания в голове.
В любой конфигурации 1с 8.2 можно увидеть такой вид объектов, как регистры. Основное их предназначение — оптимизация получения данных для отчетов. Существует четыре вида реистров: регистры сведений, регистры накоплений, регистры бухгалтерии и регистры расчета. И хотя предназначены эти виды для решения разных задач, уже по тому, что они все называются «регистрами» можно догадаться, что они имеют и нечто общее.
Во-первых, как уже упоминалось, как объекты конфигурации они нужны для более быстрого считывания информации из базы данных, например в запросах. Регистры можно сравнить с каталогом книжной библиотеки (раньше их составляли на бумажных карточках). То есть это не только хранение информации (данных), но и ее систематизация (создание определенной структуры), когда в конкретный регистр попадают данные (например, из документов разного вида) и при необходимости ее можно достаточно быстро оттуда извлечь и вывести, например, в отчет или обработать иным образом. В общем случае основное использование регистров в 1с можно изобазить следующей схемой: «Документ — Регистр — Отчет», хотя существуют и исключения.
Во-вторых - все регистры, независимо от их вида, имеют ресурсы, измерения и реквизиты. То есть определяется что (ресурс) в каких разрезах (измерения) нужно учесть. Применимо к библиотеке — мы учитываем книги в разрезе авторов, жанров и издательств. А с помощью реквизитов можно дополнить информацию, например, годом издания. И здесь есть один важный момент — структура регистра должна быть определена очень тщательно в зависимости от того, какую информацию мы собираемся из него извлекать. Например, если в нашей библиотеке поиск чаще всего производится по фамилии автора — в карточке сначала должен стоять автор (первое измерение), а ужа после него — жанр (второе измерение).
В-третьих, регистры имеют табличную структуру, но она отличается от структуры объектных таблиц. Так что вы не найдете таких классов, как РегистрСсылка или РегистрОбъект. Состав таблицы регистра зависит от его свойств.
В-четвертых, данные в регистры записываеются в виде наборов записей. Каждый набор состоит из одной или нескольких записей. При этом на запись в наборе нельзя сослаться или обратиться к ней. А также ни набор записей, ни запись в наборе не могут иметь состояния «пометка на удаление».
В-пятых, при обращении в запросах к регистрам для получения данных существует возможность обратиться не только к физическим таблицам регистра, но и к виртуальным таблицам, которые представляют из себя вложенный запрос, получающий данные по определенным параметрам. Параметры виртуальной таблицы задаются в зависимости от конкретных потребностей по получению данных из таблиц регистров.
Терперь поговорим об особенностях каждого вида регистров:
1. Регистры сведений
Пожалуй, самый простой вид регистра. В отличие от регистров другого вида, его ресурс может имень не только числовое значение, но и другой тип данных.
Имеет особое свойство, не используемое в других видах регистров — периодичность.
Может не иметь регистратора, то есть быть независимым, в этом случае записи производятся непосредственно в регистр, минуя регистрирующий документ (то самое исключение из общей схемы использования регистров в 1с). Тогда как остальные виды регистров должны иметь хотя бы один документ-регистратор.
Кроме того, данный вид регистра имеет автоматический контроль уникальности записей по периоду (периодичность, указанная в свойствах регистра) и измерениям. То есть среди записей регистра не может быть более одной записи с одинаковыми показателями период+измерение+регистратор(если он есть). Уникальность записей в других видах регистров осуществляется по регистратору.
2. Регистры накоплений
Предназначен для накопления числовых покателей (ресурсов) и делится на два подвида — Остатки и Обороты. Отличие между ними заключается в том, что Регистр накопления Остатки предназначен для получения информации о состоянии «на момент времени», а Обороты — информации о данных «за период».
Данные регистра накопления хранятся в БД в виде двух таблиц — таблица движений и таблица итогов. Обращение напрямую возможно только к таблице движений.
3. Регистры бухгалтерии
Похож на регистр накопления, но предназназначен для систематизации данных о бухгалтерских проводках. Впрочем он может использоваться не только для бухгалтерского, но и для любого другого вида учета.
Его основная особенность заключается в возможности учета данных методом двойной записи по принципу Дебет-Кредит. Для реализации возможности формирования проводок Регистр бухгалтерии должен быть связан со специальным объектом - План счетов.
4. Регистры расчета
Этот вид регистра предназначен не только для хранения, накопления и систематизации данных, но и для реализации сложных механизмов периодческих расчетов. Для этого в свойствах регистра расчета необходимо определить еще один объект 1с — план видов расчета. То есть работа регистра этого вида невозможна без определения для него конкретного плана видов расчета.
Можно сказать, что регистр расчета используется и для хранения информации о видах расчета, и для хранения результатов расчетов, и для промежуточных значений расчетов. Основное его предназначение в конфигурациях 1с — это расчеты начислений, например, заработной платы и других выплат сотрудникам. И для реализации этих задач при определении параметров регистра расчета, в нем возможно указать связь с графиком времени, что позволяет производить расчеты в зависимости от того времени, которое задано в этом графике. Сам график времени должен быть определен с помощью соответствующего регистра сведений.
Таким образом, можно сказать, что регистр расчета имеет в итоге самую сложную структуру по сравнению с другими видами регистров в 1с.
Многие программисты 1С никогда не сталкивались в своей практике с компонентой «Расчет»,поэтому, когда им приходится сдавать экзамены на Специалиста по Платформе 8.0, где в каждомзадании есть задача по сложным периодическим расчетам, возникают сложности, прежде всего сложности понимания.
Попробуем разобраться с этой компонентой в 8.0. Вместо того чтобы решать различные задачи на расчет попробуем разобраться с этой компонентой так, чтобы можно было решить любую задачу по расчету. Изучив это пособие, вы поймете, как устроены иработают регистры расчета.
Для примера будем использовать каркасную конфигурацию, устанавливаемую на экзаменах.
Честно говоря, я долго пытался придумать, для чего еще нужны расчеты, но не придумал, поэтому будем рассматривать задачу расчета зарплаты.
Что такое расчеты
В принципе, конечный продукт расчета зарплаты – это набор записей регистра расчета вида:
Сотрудник
Период
Вид расчета
Результат
Данные
Комментарий
1 января – 31 января
1 январь – 31 января
1 января – 10 февраля
Значение в колонке «Данные» отражают базовый оклад работника ( согласно трудового договора), но эта сумма может быть увеличена премиями, уменьшена штрафами и невыходами и т.п., поэтому реальная сумма к выплате заносится после выполнения расчета в колонку «Результат». В этом и заключается расчет. Сумма по колонке «Ресурс» для данного сотрудника – причитающаяся ему зарплата.
Таким образом регистр расчета – по сути набор записей, по структуре похож на оборотный регистр накопления. Просто для выполнения сложных расчетов для него указываются дополнительные настройки, которые позволяют затем строить много виртуальных таблиц для регистра расчета, хотя, по сути этот регистр – просто набор записей, указанных на рисунке.
Каждая запись регистра расчетов относится к определенному виду расчета и периоду времени.
Виды расчетов
Каждая запись видов расчета имеет служебный реквизит – вид расчетов.
Вид расчетов можно представлять себе как элемент особого справочника типа «План видов расчетов» - он также имеет реквизиты, табличные части, предопределенные и заведенные пользователем элементы. В системе может быть несколько таких «справочников».
Для примера заведем план видов расчета Основной и в нем предопределенные виды расчета оклад, премия, невыход, командировка.
Виды расчета используются функционально для того, чтобы отразить влияние записей регистра расчета друг на друга. Но сокращенно говорят о влиянии видов расчета друг на друга:
Вид расчета
Описание
Пример
По базовому периоду
Результат расчета зависимого периода зависит от результата базового периода. Если результат базового периода изменится, то результат зависимого периода нужно пересчитать.
Премия зависит по базовому периоду от оклада.
Вытеснение по периоду
Период действия зависимого периода вытесняет период действия базового периода, таким образом у базового периода появляется фактический
Невыход влияет на фактический период действия оклада.
Расчет зависит от ведущего расчета, но не прямо а косвенно, т.е. расчет А зависит от базового расчета Б, а расчет Б зависит от базового расчета В, следовательно А косвенно зависит от В, т.е. А зависит от ведущего расчета В. В самом деле, при изменении расчета В может измениться Б и следовательно может измениться А. Система автоматически не отслеживает такие сложные зависимости, поэтому нужно указывать какие расчеты являются ведущими.
Премия зависит по базе от оклада, но также косвенно зависит и от невыхода.
В силу подобного влияния, период действия записи регистра расчетов делится на четыре периода:
Период
Описание
В каком периоде действует событие, т.е. к какому периоду относится событие.
Имеет смысл только для периодов, имеющих базовый период – описывает интервал базового периода.
Фактический период действия
Если период действия вытесняется другими видами расчетов, то фактический период действия состоит из нескольких периодов, когда этот вид расчета фактически действует.
Период регистрации задается одним числом – началом периода, соответствующим периодичности регистра расчета. Даже если мы установим в это служебное поле другую дату, он все равно заменится на начало периода. Остальные периоды задаются двумя полями – началом и концом периода.Фактический период действия – это набор периодов, т.к. он может состоять из нескольких интервалов дат.
Графики времени
В системе имеется возможность связывать данные из регистров расчета с графиками времени, чтобы по любому периоду можно было получить количество рабочих часов.
График времени – это простой регистр сведений, одно измерение которого хранит дату, другое связывается с измерением регистром расчета, а один из ресурсов используется для учета времени.
Измерение, которое связывается с регистром расчета обычно носит смысл «вид графика».
Дата
Вид графика
Значение
Почему используется измерение дата, а не периодический регистр сведений? Все очень просто – если 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 января. Надеюсь вам понятно, что период был разбит на два, т.к. невыход вытеснил оклад.
Думаю, механизмы работы регистра расчета проясняются на глазах.
Изучаем графики.
Теперь попробуем начислить зарплату по окладу сотрудника.
Создадим новый запрос по регистру расчета используя виртуальную таблицу РегистрыРасчета .Р асчеты.ДанныеГрафика . У этой виртуальной таблицы можно задать параметр - условие отбора записей, например Сотрудник=&ВыбСотрудник и ВидРасчета=&ВидРасчета и График=&ВидГрафика .
Зададим в параметрах запроса конкретных сотрудников, виды расчета и графиков и посмотрим, сколько часов получается в результате.
Колонка результата
Значение
На какой период действия в часах была запись в регистре.
Сколько сотрудник фактически проработал в часах
Для оклада смысла не имеет, для премии – количество рабочих часов в базовом периоде.
Сколько рабочих часов в периоде регистрации (месяц январь)
Специальные предложения
Понятно расписано. До исх пор все как-то не укладывался в голове механизма расчета. А тут все ясно и наглядно. Плюс!
Период действия зависимого периода вытесняет период действия базового периода, таким образом у базового периода появляется фактический
Ты сам хоть понял, шо написал?
Бедные, бедные чайники.
(14) ты написал такое, что суть не только не прояснилась, а оказалась просто вывернутой наизнанку.
А кто-то ведь читает и с благоговением внимает "гению 1С".
Период действия зависимого периода вытесняет период действия базового периода, таким образом у базового периода появляется фактический
Что такое "период действия базового периода"? Ведь "базовый период" - это логическое и программное понятие расчетных механизмов, а "период действия базового периода" - это нонсенс, такого понятия нет. Если бы "базовый период" не обозначал конкретного понятия расчетного механизма, то еще ничего, а так - возникает путаница, тем более у чайников.
Базовый период : Имеет смысл только для периодов, имеющих базовый период – описывает интервал базового периода.
Базовый период имеют не "периоды", а виды расчета. Опять путаешь народ.
Ты знаешь, как отреаговал бы, например, Аксенов на экзамене на такую путаницу? У Аксенова два очка за малейший промах в расчетах - как два пальца.
Потом - ты ведь не раскрыл, как работают с расчетными механизмами, не дал ни одного запроса к виртуальным таблицам РР, не дал решения ни для одного способа расчета. Ну, положим, это ты отложил на следующую статью. Но ведь чайники-то и подумают, что код создания исходной записи РР, который ты только и привел - это и есть решение. И получат банан - даже не у Аксенова, а у Гончарова.
Ну, и понятно, без обид. Я понял, что ты искренне старался. Но вот получилось не очень. Я бы попробовал уточнить понятия и дать целостное решение хотя бы для простенькой задачи.
В данной статье на примерах покажем принцип действия «механизма вытеснения по периоду действия«.
Для наглядности расчета Оклада добавим в структуру регистра расчета ресурс «ОтработаноЧасов» и реквизит «ЧасовПлан».
Следует понимать, что реквизиты регистра расчёта служат только для хранения справочных данных, ни в вытеснении, ни при получении базы для расчёта они не участвуют(мы не получаем базу для расчёта на основе реквизитов регистра расчета) поэтому «ЧасовПлан»(количество плановых рабочих часов в месяце) мы делаем реквизитом. На основе ресурсов регистра расчёта мы можем получать базу для расчета(скажем премии) поэтому «ОтработаноЧасов»(количество фактически отработанных работником часов в месяце) делаем ресурсом.
Будем заполнять добавленные поля при расчёте Оклада:
Перепроведём ранее созданный документ:
В движениях документа видно, что плановых часов в месяце 184, оклад сотрудника составляет 60000 рублей, отработанных часов в месяце 64, начисленная зарплата 20 869,57 рублей. Проверим, правильно ли рассчитался оклад: (60000/184) * 64 = 20 869,57 рублей.
В прошлой статье(см.Регистры расчета в 1С для чайников(Часть 1)) мы познакомились с виртуальной таблицей «ДанныеГрафика» регистра расчёта, сейчас изучим виртуальную таблицу «ФактическийПериодДействия«.
Виртуальная таблица «ФактическийПериодДействия» в результате выполнения запроса вернёт нам интервал(или интервалы т.к. их может быть несколько) времени на которых действовал вид расчёта Оклад.
Сформируем запрос к таблице «ФактическийПериодДействия» и выполним его в консоли запросов:
В качестве параметра «РегистраторДок» укажем ссылку на наш документ «Начисление зарплаты», в качестве параметра «Оклад» укажем вид расчёта «Оклад».
Результат выполнения запроса представлен ниже:
Как мы видим результат запроса выдал 1 строку с видом расчета «Оклад» и полями: «ПериодДействияНачало» равным 01.03.17, «ПериодДействияКонец» равным 10.03.17, «ОтработаноЧасов» равным 64. Таблица «ФактическийПериодДействия» вернула нам интервал действия вида расчёта Оклад до вытеснения командировкой.
Введём в плане видов расчёта «Основные начисления» новый вид расчёта «Командировка», командировка будет вытеснять «Оклад» по периоду действия.
В качестве вытесняющих видов расчёта для вида расчёта «Оклад» укажем вид расчёта «Командировка».
Дополним обработку проведения документа «Начисление зарплаты», для вида расчёта «Командировка» сразу же будем начислять фиксированную сумму:
Добавим в существующем документе вид расчёта командировка c 03.03.2017 по 05.03.2017 для сотрудника Иванов. Проведём документ.
В движениях документа видим 2 записи — по окладу и командировке.
По командировке сразу же начислена фиксированная сумма 5000 рублей. Так же мы видим, что поле «Отработано часов» по окладу также уменьшилось(было 64 часа, стало 56 часов). Произошло вытеснение вида расчёта «Оклад» видом расчёта «Командировка» по периоду действия т.к. период действия командировки расположен на периоде действия оклада и командировка имеет больший, чем оклад приоритет.
Примечание: Вытесняющий и вытесняемый виды расчетов должны принадлежать одному плану видов расчёта и обладать протяжённостью во времени. Механизм вытеснения не имеет смысла для видов расчётов не протяжённых во времени.
Командировкой был вытеснен 1 рабочий день(03.03.2017) вместо 3(03.03.2017-05.03.2017) так как даты 04.03.2017 и 05.03.2017 являются выходными днями исходя из графика работы.
Сформируем запрос к таблице «ФактическийПериодДействия» и выполним его в консоли запросов, мы получим результат после вытеснения оклада командировкой:
В результате выполнения запроса мы получили 2 записи по виду расчёта Оклад, 1 запись с периодом действия 01.03.2017-02.03.2017, 2 запись с периодом действия 06.03.2017-10.03.2017. Между этими 2 записями и действует вид расчёта «Командировка». P.S. Все остальные поля виртуальной таблицы «ФактическийПериодДействия» полностью аналогичны физической таблице регистра расчёта «Основные начисления».
Читайте также: