Регистр расчета предназначен для

Регистр расчета предназначен для

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

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

Свойства и настройка регистра расчета в 1С 8.2

Регистры расчета отличаются изобилием новых свойств, которые Вы не увидите в других объектах системы:

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

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

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

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

График регистра расчета 1С 8

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

Пример графика, хранящего в себе информацию в часах:

  • Дата — 04.05.2013 Значение — 0
  • Дата — 05.05.2013 Значение — 0
  • Дата — 06.05.2013 Значение — 8
  • Дата — 07.05.2013 Значение — 8
  • Дата — 08.05.2013 Значение — 8
  • Дата — 09.05.2013 Значение — 0

Из графика ясно, что 4, 5, 9 число — выходной, а 6, 7, 8 — восьмичасовые рабочие дни.

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

Такая процедура заполнит рабочие дни значением 8, а выходные — 0.

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

Пример создания записей в регистр расчета 1С

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

Рассмотрим типичный способ создания записей регистра расчета.

Первый этап — формирование предварительных записей:

Получите 267 видеоуроков по 1С бесплатно:

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

Второй этап — сам расчет:

Обратите внимание на параметры конструкции Дополнительные.Записать(, Истина). Установленный параметр номер 2 -ТолькоЗапись позволяет оптимизировать запись набора записей путём отключения пересчета итогов при повторной записи в общем модуле.

Читайте также:  Процессор intel pentium e2220

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

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

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

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

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

Имена измерений и ресурсов базовых регистров задаются в формате . .

Пример использования метода:
Код 1C v 8.х

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

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

Пример написания запроса с использованием виртуальных таблиц базовых данных:
Код 1C v 8.х

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

Читайте также:  Конфиг nginx где находится

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

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

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

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

Регистры расчета в 1с8 для чайников

Введение

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

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

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

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

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

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

1 января – 31 января

1 январь – 31 января

1 января – 10 февраля

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

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

Читайте также:  Как объединить слои в афтер эффект

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

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

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

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

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

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

По базовому периоду

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

Премия зависит по базовому периоду от оклада.

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

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

Невыход влияет на фактический период действия оклада.

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

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

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

В каком периоде зарегистрировано событие, т.е. обычно когда введен документ.

В каком периоде действует событие, т.е. к какому периоду относится событие.

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

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

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

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

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

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

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

Измерение, которое связывается с регистром расчета обычно носит смысл «вид графика».

Ссылка на основную публикацию
Работа с far manager
Фар менеджер - один из самых удобных файловых менеджеров, рассчитанный на работу с файлами и папками на дисках, прежде всего,...
Программы для поиска транспорта
Грузы Широкие возможности фильтров позволяют найти точно подходящую для вашего транспорта загрузку. Несколько тысяч свежих предложений. Каждый сможет найти себе...
Программы для полной очистки жесткого диска
Подборка программ, которые помогут очистить жёсткий диск Windows компьютера и его съёмные устройства от ненужных файлов. Эти инструменты помогут найти...
Работа с классами python
Серия контента: Этот контент является частью # из серии # статей: Этот контент является частью серии: Следите за выходом новых...
Adblock detector