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

1. Объекты метаданных, используемые в периодических расчетах В V 8 для реализации сложных периодических расчетов предназначены следующие объекты: планы видов расчета, регистры расчета. Дополнительно: В справочниках хранятся объекты, которые используются в качестве разрезов периодических расчетов, например, физические лица, подразделения организации, должности сотрудников и т. д. Регистры сведений могут хранить любую информацию, развернутую по нескольким измерениям. При помощи регистров сведений реализуются графики учета времени (аналог календарей в версии 7. 7). Документы предназначены для ввода записей в регистры расчета. Отчеты используются для вывода детальной и сводной информации.

2. Планы видов расчета Зарплата сотрудника включает следующие промежуточные расчеты: расчет основных начислений (оклад, тариф), расчет отклонений (отпуск, больничный), расчет дополнительных начислений (премии, доплаты, дивиденды), расчет налогов и других удержаний (НДФЛ, алименты), другие расчеты (ПФР, ЕСН), расчет итоговой суммы к выдаче. Для расчета этих компонентов зарплаты предназначены виды расчета, сгруппированные в планы видов

2. 1. Назначение Каждый план видов расчета описывает схему взаимодействия записей регистра расчета и позволяет задать правила, по которым будут производиться расчеты записей, их взаимное расположение во времени и правила их перерасчета. Планов видов расчета может быть несколько. Распределение видов расчета по планам не является произвольным, так как у плана есть некоторые общие характеристики, которые будут действовать на все входящие в него виды расчетов. Например, поддержка взаимного вытеснения по периоду действия характерна для основных начислений и отклонений (оклад, отпуск) и не характерна для налогов и удержаний (НДФЛ, алименты). Замечание. Виды расчета в V 8 не являются объектами конфигурации, как это было в 7. 7. Они хранятся в планах видов расчета, т. е. являются объектами данных, а не метаданных.

2. 2. Предопределенные виды расчета В плане видов расчетов еще на этапе разработки прикладного решения могут быть заведены предопределенные виды расчетов. Остальные ВР вводятся в планы в режиме 1 С: Предприятие

2. 3. Взаимосвязь видов расчета Для каждого ВР указываются базовые, ведущие и вытесняющие его виды расчетов Базовые - это такие виды расчета, результаты которых используются при расчете данного вида расчета. Например, сумма по окладу используется при расчете доплаты к окладу, а основные начисления являются базовыми для расчета НДФЛ. Ведущие - это виды расчета, при изменении результатов которых нужно пересчитать данный вид расчета. Например, при изменении оплаты по окладу «задним числом» необходимо пересчитать оплату отпуска, поскольку при расчете отпускных используется средняя зарплата сотрудника за предыдущие месяцы. Список ведущих видов расчета может не совпадать со списком базовых.

продолжение Вытесняющие - это виды расчета, период действия которых не должен пересекаться с периодом данного вида расчета. Вытесняющие виды расчета имеют больший приоритет вытеснения, поэтому они вытесняют по времени данный вид расчета. Например, оплата отпуска вытесняет оплату по окладу, а оплата по больничному вытесняет оплату отпуска и оплату по окладу. При вытеснении записи с определенным периодом действия ее фактический период действия может измениться, т. е. уменьшится или разделится на несколько интервалов. Например, запись об отпуске с 10 по 20 число месяца вытесняет запись об окладе, у которой период действия - весь месяц. Тогда фактический период действия записи об окладе будет состоять из двух интервалов: с 1 по 9 число и с 21 по конец месяца.

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

2. 5. Предопределенные табличные части плана видов расчета Для хранения базовых, вытесняющих и ведущих ВР в Планах видов расчета предусмотрены следующие предопределенные табличные части: Базовые. Виды. Расчета, Вытесняющие. Виды. Расчета, Ведущие. Виды. Расчета. Обращение из программы к данным ТЧ – по правилам обращения к ТЧ объектов конфигурации (см. Синтаткиспомощник)

3. Регистры (см. д-т «Перенос данных» в ТК) расчета (РР) Регистры расчета предназначены для хранения записей расчета (промежуточных и итоговых результатов) – см. Журнал расчетов в V 7. 7. Отличительной особенностью регистра расчета является то, что он не предназначен для интерактивного редактирования пользователем. Разработчик может, при необходимости, предоставить пользователю возможность редактировать регистр расчета, но предназначение регистра расчета заключается в том, чтобы его модификация производилась на основе алгоритмов работы объектов базы данных, а не в результате непосредственных действий пользователя.

3. 1. Структура Регистра Расчета Структура регистра расчета определяет, какая именно информация и в каких разрезах будет храниться в регистре. Разработчик указывает измерения, ресурсы и реквизиты регистра: Измерения - это разрезы хранимой информации. Например, у регистра Основные. Начисления могут быть измерения Сотрудник, Организация, Подразделение, а у регистра Налоги измерения: Сотрудник и Организация. Ресурсы - результаты расчета, например, ресурс Результат для регистра Основные. Начисления. Ресурсы могут быть только числового типа. Реквизиты -дополнительная характеристика записи расчета. Реквизиты могут быть почти любого сохраняемого в базе данных типа. Например, реквизиты Дни и Часы для регистра Основные. Начисления, реквизит Сумма для хранения исходных данных расчета и т. д.

3. 2. Периодичность РР Отличительными особенностями регистра расчета является: 1. Периодичность регистра определяет период, с которым регистрируются движения и в пределах которого движения могут влиять друг на друга (для регистров, поддерживающих период действия). Периодичность регистра расчета может быть определена одним из следующих значений: День, Месяц, Квартал, Год.

продолжение Периодичность регистра расчета определяет промежуток времени, к которому будет относиться каждая запись регистра. Для указания факта принадлежности записи к какому либо периоду, регистр имеет служебный реквизит «Период. Регистрации» типа Дата. При записи данных в регистр платформа всегда приводит значение этого реквизита к началу того периода, в который он попадает. Например, если в регистр расчета с периодичностью месяц записать данные, где «Период. Регистрации» задан как 08. 04. 2009, то регистр сохранит эти данные со значением поля «Период. Регистрации» 01. 04. 2009

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

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

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

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

5. Частичное попадание записей регистра расчета в базовый период Рассмотрим случай, когда, базовый период не кратен периоду регистра расчета. Например, существует какая-нибудь "особая" премия (действующая в мае), которая имеет базовый период с 15. 04. 2009 по 15. 04. 2009 (для примера также можно привести следующие варианты базовых периодов: 2 последних недели, первая и последняя неделя предыдущего месяца, два последних дня, понедельники, и т. д.). При получении базы система должна сложить результаты всех записей, попавших в этот период. Очевидно, что может возникнуть ситуация, когда записи будут лежать в рассмотренном базовом периоде не полностью, а «частично» Конечно, речь идет только о тех записях, которые содержат виды расчета, заданные в плане видов расчета в качестве базовых для данной премии. Для определенности предположим, что «особая» премия в качестве базового вида расчета содержит «Оклад» . Попасть в базовый период записи могут «по периоду регистрации» или «по периоду действия» .

Продолжение Рассмотрим первый случай, когда записи попадают в базовый период по периоду регистрации. В этом случае в плане видов расчета, связанном с регистром расчета, должен быть установлен признак «Зависит по периоду регистрации» . Напомним, что период регистрации - это всегда конкретная дата, соответствующая началу периода регистра расчета. Если период регистрации (т. е. конкретная дата) не попадает в базовый период, то эта запись не будет учтена при расчете базы. То есть, если установлена зависимость базы по периоду регистрации, то «частичных» результатов не будет: или запись будет целиком учтена, или целиком не учтена. В нашем случае в базовый период «особой» премии не попадет ни одна запись, поскольку период с 15. 04. 2009 по 15. 04. 2009 не охватывает ни одну дату начала периода регистра расчета.

Продолжение Рассмотрим второй случай, когда записи попадают в базовый период по периоду действия. В этом случае в плане видов расчета, связанном с регистром расчета, должен быть установлен признак «Зависит по периоду действия» . Здесь нужно определить, какая часть результата должна быть взята при расчете базы. Чтобы придать «дискретность» таким результатам, используется объект «График» . Используя сведения графика, можно посчитать, какая часть всего результата «базовой записи» приходится на каждый день, и взять только те дни, который попали в базовый период.

6. Перерасчеты Система позволяет автоматически отслеживать записи, требующие перерасчета. Такая ситуация может возникнуть, когда их результаты каким-то образом связаны с другими видами расчета, а те были изменены (удалены или добавлены новые записи). Например, при изменении начислений сотрудника нужно пересчитать налоги. Тогда для вида расчета «НДФЛ» начисления будут являться ведущими видами расчета, что настраивается в плане видов расчета на закладке «Ведущие» . Допустим, у нас есть регистры расчета Основные. Начисления, Премии и Удержания. Налоги рассчитываются после всех начислений и премий, так как используют их результаты. Для автоматического отслеживания актуальности записей о налогах по каждому сотруднику необходимо у регистра Удержания создать перерасчет с измерением Сотрудник. В качестве данных ведущих регистров назначается измерение

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

6. Приемы программирования Для работы с РР средствами встроенного языка применяются следующие объекты (см. Синтаксис-Помощник - самостоятельно)

Пример модуля проведения документа начисления ЗП Процедура Обработка. Проведения(Отказ, Режим) Для Каждого Тек. Строка. Список Из Список Цикл // регистр Журнал. Расчета Движение = Движения. Журнал. Расчета. Добавить(); Движение. Сторно = Ложь; Движение. Регистратор=Ссылка; Движение. Вид. Расчета = Тек. Строка. Список. Вид. Расчета; Движение. Период. Действия. Начало = Тек. Строка. Список. Дата. Начала; Движение. Период. Действия. Конец = Тек. Строка. Список. Дата. Окончания; Движение. Базовый. Период. Начало = Начало. Дня(Тек. Строка. Список. Дата. Начала); Движение. Базовый. Период. Конец = Конец. Дня(Тек. Строка. Список. Дата. Окончания); Движение. Период. Регистрации = Период. Регистрации; Движение. Сотрудник = Тек. Строка. Список. Сотрудник; Движение. Результат = 0; Движение. Сумма = Тек. Строка. Список. Величина;

продолжение Если Движение. Вид. Расчета=Планы. Видов. Расчета. Виды. Расчетов. штра ф Тогда Движение. Результат=Тек. Строка. Список. Величина; Конец. Если; Если Движение. Вид. Расчета=Планы. Видов. Расчета. Виды. Расчетов. Больн ичный Тогда Движение. Результат=Тек. Строка. Список. Величина; Конец. Если; онец. Цикла; // записываем движения регистров (поле результат означивается только для тех ВР, //которые в документ введены готовым значением) Движения. Журнал. Расчета. Записать();

продолжение //получим список всех сотрудников, содержащихся в документе Запрос = Новый Запрос; Запрос. Текст= " |ВЫБРАТЬ РАЗЛИЧНЫЕ | Начисление. Зарплаты. Список. Сотрудник |ИЗ | Документ. Начисление. Зарплаты. Список | КАК Начисление. Зарплаты. Список | |ГДЕ | Начисление. Зарплаты. Список. Ссылка = &Текущий. Документ"; Запрос. Установить. Параметр("Текущий. Документ", ссылка); //сформируем список сотрудников Табл. Знач = Запрос. Выполнить(). Выгрузить(); Массив. Сотрудников = Табл. Знач. Выгрузить. Колонку("Сотрудник"); Список. Сотрудников = Новый Список. Значений;

продолжение Раcсчитать. Начисления(Движения. Журнал. Расчета, Планы. Видов. Расч ета. Виды. Расчетов. Оклад, Список. Сотрудников); Движения. Журнал. Расчета. Записать(, Истина); Раcсчитать. Начисления(Движения. Журнал. Расчета, Планы. Видов. Расчета. Виды. Расчетов. премия, Список. Сотрудников); Движения. Журнал. Расчета. Записать(, Истина);

продолжение Процедура Раcсчитать. Начисления(Набор. Движений, Выб. Вид. Расчета, Список. Сотрудников) Экспорт Если выб. Вид. Расчета = Планы. Видов. Расчета. Виды. Расчетов. Оклад Тогда Для каждого Движение из Набор. Движений Цикл Если Движение. Вид. Расчета = Планы. Видов. Расчета. Виды. Расчетов. Оклад Тогда Фактически. Отработано=Движение. получить. Данные. Графика(Вид. Пе риода. Регистра. Расчета. Фактический. Период. Действия); Отработано. Плану=Движение. Получить. Данные. Графика(Вид. Пер иода. Регистра. Расчета. Период. Действия); Движение. Результат=Движение. Сумма*Фактически. Отработано. З начение/Отработано. Плану. Значение; Конец. Если; Конец. Цикла; Конец. Если;

продолжение Если выб. Вид. Расчета = Планы. Видов. Расчета. Виды. Расчетов. премия Тогда Ресурсы=Новый Массив(1); Ресурсы="Журнал. Расчета. Результат"; Измерения=Новый Структура ("Сотрудник", "Журнал. Расчета. Сотрудник"); Для каждого Движение из Набор. Движений Цикл Если Движение. Вид. Расчета = Планы. Видов. Расчета. Виды. Расчетов. Премия Тогда База. Расчета=Движение. Получить. Базу(Ресурсы, Измерения); Движение. Результат=Движение. Сумма*База. Расчета. Результат/10 0; Конец. Если; Конец. Цикла; Конец. Если; Конец. Процедуры

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

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

14.2 Виды расчета - это..

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

14.3 Свойство "использует период действия" в плане видов расчета устанавливается, если...

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


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

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

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

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

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

1. предполагается, что в дальнейшем при определении расчетной базы для записи регистра расчета будут учитываться только те записи, у которых Период регистрации попадает в базовый период
2. предполагается, что ни один вид расчета в плане не будет обладать свойством действовать какой-то период времени
3. предполагается, что в регистре расчета, связанном с данным планом видов расчета, все виды расчета не будут обладать свойством действовать какой-то период времени

14.6 Базовые планы видов расчета - это...

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

Третий ответ подходит к предопределенной табличной части вида расчета - списку базовых видов расчета, а верный второй. Такая табличная часть (свойство БазовыеВидыРасчета) определена только для планов видов расчета со свойством "Зависимость от базы" не равным значению "Не зависит". Имеет колонки - ВидРасчета(CalculationKind) типа ПланВидовРасчетаСсылка. и Предопределенный(Predefined) типа Булево.

14.7 Отсутствие предопределенной табличной части "Базовые виды расчета" у видов расчета Плана видов расчета можно объяснить тем, что...

1. в конфигурации задано несколько Планов видов расчета и в качестве базовых можно указать виды расчета из других планов видов расчета
2. в регистре расчета не установлен признак "базовый период"
3. зависимость от базы в плане видов расчета не определена
4. верны 1 и 3 ответы

Зависимость от базы не определена, поэтому стандартная табличная часть БазовыеВидыРасчета плана видов расчета отсутствует (выделена серым):

14.8 Вытесняющие виды расчета - это такие виды расчета...

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

14.9 Вытесняться могут виды расчета, которые...

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

14.10 Понятие вытесняющие виды расчетов теряет смысл, если...

1. период действия в плане видов расчета не используется
2. фактический период действия в плане видов расчета не используется
3. период регистрации и период действия в плане видов расчета не используется
4. базовый период в плане видов расчета не используется

ВытесняющиеВидыРасчета (DisplacingCalculationTypes). Примечание: Данное свойство определено только для объектов тех планов видов расчета, которые имеют признак "Использует период действия".

14.11 Ведущие виды расчета - это...

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

14.12 В качестве ведущих можно указать...

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


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

1. можно напрямую записать в свойство "Предопределенный" значение "Истина"
2. можно воспользоваться соответствующим методом объекта
3. любым из перечисленных способов
4. нет правильного ответа


14.14 Для обращения к предопределенному виду расчета необходимо...

1. Найти его по неизменяемому коду: ПланыВидовРасчета.<Имя плана видов расчета>.НайтиПоКоду(Код)
2. Найти его по неизменяемому наименованию: ПланыВидовРасчета.<Имя плана видов расчета>.НайтиПоНаименованию(Наименование)
3. Найти его по заданному в конфигураторе имени: ПланыВидовРасчета.<Имя плана видов расчета>.<Имя предопределенного объекта>
4. Программно найти предопределенный элемент нельзя, пользователь просто его не может удалить и пометить на удаление

14.15 У предопределенного вида расчета пользователь не может...

1. изменить код
2. изменить наименование
3. изменить наименование и код
4. изменить свойство "период действия является базовым периодом"
5. нет правильного ответа

14.16 Новые виды расчета...

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


14.17 Ресурс у регистра расчета может иметь тип...

1. любой (как у реквизита)
2. только ссылочный
3. только логический и числовой
4. только числовой


Диалог редактирования свойств вида расчета на вкладке "Данные":

14.18 В качестве регистратора у регистра расчета может выступать...

1. справочник
2. план видов расчета
3. документ
4. любой объект
5. только план видов расчета или документ

14.19 Для записи в регистр расчета период регистрации...

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

14.20 Регистр расчета может заполняться...

1. только вручную
2. только при обработке проведения документов
3. программно из любого модуля конфигурации, но с обязательным указанием регистратора
4. в зависимости от состава определенных форм

14.21 Регистры расчета служат...

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

14.22 Свойства записи регистра расчета БазовыйПериодНачало, БазовыйПериодОкончание доступны только в том случае, когда...

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

14.23 Свойство записи регистра расчета ПериодРегистрации - это...

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

14.24 Периодичность ведения расчетов - месяц. В регистре расчета сделаны соответствующие настройки. К появлению какого количества записей приведет попытка ввода системой в регистр записи по больничному с 25.01.14 по 07.03.14?

1. Одной: с 25.01.14 по 07.03.14
2. Двух: с 25.01.14 по 31.01.14 и с 01.02 по 07.03.14
3. Трех: с 25.01.14 по 31.01.14, с 01.02 по 28.02.14 и с 01.03 по 07.03.14
4. Ни одной, будет выдано сообщение об ошибке


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

1. всегда совпадает со значением свойства ПериодДействияКонец
2. всегда совпадает со значением свойства ПериодДеиствияНачало
3. всегда приводится к началу периода, соответствующего значению свойства ПериодДействияНачало, и может не совпадать со значением свойства ПериодДействияНачало





14.26 Период действия записи (задаваемый датой начала и датой окончания)...

1. может не совпадать с фактическим периодом действия
2. всегда совпадает с фактическим периодом действия
3. никогда не совпадает с фактическим периодом действия

14.27 Базовый период - это...

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

14.28 Базовый период...

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

14.29 Для того, чтобы записи регистра расчета попадали в базовый период по периоду регистрации...

1. в плане видов расчета, связанном с регистром расчета, должен быть установлен признак зависимости от базы "Зависит по периоду регистрации"
2. в плане видов расчета, связанном с регистром расчета, может быть установлен любой признак зависимости от базы, записи регистра расчета всегда будут попадать в базовый период по периоду регистрации
3. в регистре расчета должен быть установлен признак "Период регистрации"

Диалоги свойств плана видов расчета и регистра расчета:

14.30 Для определения свойства "график" регистра расчета используется...

1. объект конфигурации "календарь"
2. непериодический регистр сведений
3. подчиненный справочник

14.31 Если установлена зависимость базы по периоду действия, то...

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


14.32 Регистр сведений , указанный в качестве графика регистра расчета...

1. может содержать данные о двух графиках
2. может содержать данные только об одном графике
3. может содержать данные о неограниченном количестве графиков


14.33 В качестве базовых регистров (из ресурсов которых рассчитывается база)...

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


14.34 Для определения количества отработанных сотрудником дней , необходимо в методе ПолучитьДанныеГрафика в качестве значения параметра <Вид периода> указать...

1. базовый период записи
2. фактический период действия записи
3. период регистрации записи
4. период действия записи

ПолучитьДанныеГрафика (GeScheduleData)(<Отбор>, <ВидПериода>)
<ВидПериода> - Тип: ВидПериодаРегистраРасчета - Вид периода регистра расчета.
Если "период действия", возвращаются данные календаря, собранные по фактическому периоду действия.
Если "базовый период" - данные по базовому периоду.
Если "период регистрации" - по данные календаря по периоду регистрации. Если, например, регистр расчета имеет месячную периодичность, то суммируются данные календаря за весь месяц, в котором зарегистрирована запись регистра расчета
Если выбран "фактический период действия", то приводит к вычислению данных графика по фактическому периоду действия записей (записи) регистра расчета.

14.35 Механизм вытеснения проявляется...

1. в изменении таблицы регистра расчета
2. в изменении состава записей таблицы Фактического периода действия
3. в том, что при вводе движений одними документами производится необратимое искажение движений других документов
4. все утверждения верны

14.36 Если одним документом рассчитываются зависимые по базе записи (например, Оклад и ПремияПроцентом, в состав базы которой попадает оклад), то...

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

14.37 Фактический период действия - это...

1. период, который сложился за счет правил вытеснения видов расчета, определяемых списками вытесняющих видов расчета плана видов расчета данного регистра расчета
2. то же самое, что и период действия
3. период, который сложился за счет правил вытеснения видов расчета, определяемых списками ведущих видов расчета плана видов расчета данного
регистра расчета

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

14.38 Если задать в плане видов расчета, что "Отпуск" вытесняет "Оклад", и, в тоже время, что "Оклад" вытесняет "Отпуск", и попытаться сохранить изменения, то...

1. система выдаст предупреждение и не станет сохранять изменения
2. возникнет ошибка системы
3. все сохранится

14.39 Метод ПолучитьДополнение() набора записей регистра расчета используется...

1. если текущим периодом нужно ввести запись, чтобы она "вытеснила" запись прошлого периода
2. для получения дополнения к текущему набору записей в виде таблицы значений со структурой, повторяющей структуру набора записей
3. все утверждения верны

Описание: Получает дополнительные данные, позволяющие выполнить сторнирование записей прошлых периодов регистрации при вводе текущего набора записей. Данные получаются в виде таблицы значений…

14.40 При использовании метода ПолучитьДополнение() набора записей регистра расчета..

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

14.41 Данные о перерасчетах...

1. не являются записями регистра расчета
2. являются записями регистра расчета
3. являются записями регистра перерасчета
4. являются записями таблицы фактического периода действия

Объект Перерасчет служит для хранения информации о том, для каких записей регистров расчета необходимо перерассчитать результаты расчета (ресурсы). Он является объектом конфигурации подчиненным регистру расчета. Необходимость перерасчета ресурсов может возникнуть из-за неправильной последовательности ввода документов пользователем (ввода документов "задним числом"), которая приводит к необходимости пересчитать результаты расчета тех записей, которые зависят от результатов расчета других записей, введенных в систему позже.

14.42 В окне свойств измерений "Перерасчета" на закладке "Связь" в свойстве "Измерение регистра" указывается...

1. измерение базового регистра, при изменении данных которого следует пересчитать текущую запись регистра
2. измерение текущего регистра, которое следует пересчитать при изменении данных базовых регистров
3. измерения базовых регистров, при изменении данных которых следует пересчитать текущую запись регистра

14.43 Таблица "Перерасчета" заполняется строками, каждая из которых представляет собой...

1. набор сведений о виде расчета и документе-регистраторе записи регистра расчета, которую нужно пересчитать. Также в таблице будут присутствовать измерения перерасчета
2. набор сведений о виде расчета и документе-регистраторе записи регистра расчета, которую нужно пересчитать
3. набор сведений о виде расчета, номере строки документа-регистратора и самом регистраторе записи регистра расчета, которую нужно пересчитать. Также в таблице будут присутствовать измерения перерасчета
4. нет правильных ответов

14.44 Выберите правильный ответ:

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

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

14.45 Выберите правильный ответ:

1. В процессе работы с перерасчетами разработчик может "не обращать внимания" на сведения, которые предоставляет система в таблице перерасчета, то есть отказаться от пересмотра результатов расчета
2. Принцип работы перерасчетов в системе "1С:Предприятие 8" является "уведомительным"
3. Разработчик конфигурации не может управлять процессом перерасчета записей регистра расчетов, система все делает автоматически
4. Верно 1 и 2 утверждение


14.46 Для одного регистра расчета...

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

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

14.47 Если регистр расчета поддерживает период действия, то...

1. ему обязательно должен быть указан график
2. ему не обязательно должен быть указан график
3. в плане видов расчета, связанном с регистром расчета должен быть установлен признак "использует период действия"
4. верны 1 и 3 утверждения

Если не назначить график, то при обновлении конфигурации с конфигурацией БД, то будет выдано сообщение: «РегистрРасчета.ОсновныеНачисления: Не назначен график регистру с периодом действия». Если в плане видов расчета, связанном с регистром расчета не установлен признак "использует период действия" то будет выдано сообщение: «РегистрРасчета.ОсновныеНачисления: Регистру расчета с периодом действия назначен план видов расчета, не поддерживающий период действия».

14.48 Каково соотношение планов видов расчета и регистров расчета?

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

14.49 Какие из вышеперечисленных параметров сторно-записи могут не совпадать с одноименными параметрами сторнируемой записи?

1. Период регистрации
2. Период действия начало
3. Период действия конец
4. Сторно
5. Все перечисленные


14.50 Количество формируемых сторно-записей

1. Всегда равно количеству сторнируемых записей
2. Может быть больше количества сторнируемых записей
3. Может быть меньше количества сторнируемых записей

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


На иллюстрации не видно информации о зависимости от базы.

14.52 Для вида расчета Оклад в качестве вытесняющего указан вид расчета Командировка, однако ведущим он не назначен. В каком случае в таблице перерасчетов появится информация о необходимости пересчета оклада?

1. Всегда, при вводе командировки
2. Никогда не появится
3. Только, если командировка будет введена отдельным документом
4. Только, если командировка будет введена отдельным документом нa прошлый период

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




14.54 Для вида расчета Премия в качестве базового указан вид расчета Оклад, однако ведущим он не назначен. В каком случае в таблице перерасчетов появится информация о необходимости пересчета оклада?

1. Всегда, при вводе оклада
2. Никогда не появится
3. Только, если оклад будет введен отдельным документом

4. Только, если оклад будет введен отдельным документом после того как премия была введена и рассчитана


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


Здесь зависимость от базы по периоду регистрации, а у Иванова два оклада зарегистрированы на 01.02.2014 и еще по одному и тому же подразделению.

14.56 Для вида расчета Премия в качестве базового указан вид расчета Оклад, кроме того дополнительно он назначен ведущим для премии. В каком случае в таблице перерасчетов появится информация о необходимости пересчета оклада?

1. Всегда, при вводе оклада
2. Никогда не появится

3. Только, если оклад будет введен отдельным документом
4. Только, если оклад будет введен отдельным документом после того как премия была введена и рассчитана

14.57 Периодичность ведения расчетов - месяц. В регистре расчета сделаны соответствующие настройки. Для вида расчета Оклад в качестве вытесняющего указан вид расчета Командировка. 01.03.14 в информационную базу была введена информация по окладу, однако расчет произведен не был. 20.03.14 в информационную базу была введена и рассчитана командировка. 30.03.14 был запущен расчет по окладу. Будут ли при расчете оклада учтены данные о командировке? Надо ли делать перерасчет командировки?

1. Учтены будут, командировку придется пересчитать
2. Учтены будут, перерасчет командировки не требуется
3. Учтены не будут. Надо отменить расчет командировки н заново рассчитать оба вида расчета
4. Учтены не будут. Чтобы правильно произвести расчет, оклад и командировка должны находиться в одном документе
6. Информации, показанной на рисунке, для расчета премия недостаточно

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

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

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

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

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

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

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

Значение

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

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

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

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

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

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

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

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

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

Роль измерений при параметризации виртуальной таблицы базовых данных

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

  • Организация,
  • Физлицо,
  • Подразделение.
Представим, что необходимо решить следующие задачи:
  • Получение для тех или иных записей регистра оборотов регистра по всем записям с таким же подразделением, как и у исходной записи. Это может быть, например, расчет надбавки, зависящий от начислений всего подразделения.
  • Получение оборотов по записям с таким же Физлицом и Подразделением. Т.е. получение суммы начислений работника, которые ему же начислены в том же подразделении (исключаются начисления по этому же работнику, которые он получил по другим подразделениям).
  • Получение оборотов по записям с таким же Физлицом и такой же Организацией (все начисления Физлицу в рамках той же организации).

Все перечисленные задачи решаются при помощи запросов к виртуальной таблице базовых данных. При этом параметры "Измерения основного регистра" и "Измерения базового регистра" будут для всех трех задач разными. В первом случае измерение одно - "Подразделение"; во втором - "Физлицо" и "Подразделение"; в третьем - "Организация" и "Физлицо".

Оптимизация получения базовых данных

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

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

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

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

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

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

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

Но при этом важно помнить о порядке измерений регистра расчета...

О порядке измерений в регистре расчета

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

В нашем примере, если в качестве базовых выбраны измерения "Физлицо" и "Подразделения", то, переставив их местами, мы не изменим скорость получения базовых данных по физлицу и подразделению, но радикально ухудшим ситуацию с получением данных по физлицу и организации. При сравнении значений в полях "Организация" и "Физлицо" система не сможет использовать индекс Подразделение+Физлицо, так как поле "Физлицо" в нем не является первым, а на подразделение условие не налагается. А в случае индекса Физлицо+Подразделение выиграют и получение базовых данных по подразделению и физлицу, и получение базовых данных по организации и физлицу, так как поле "Физлицо" будет в индексе первым, то система сможет его использовать "частично" (по одному полю). Вместе с тем поле "Физлицо" обладает гораздо большей "селективностью", чем поле "Организация" и на отработку условия по организации не потребуется много времени.

Если базовое измерение одно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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