1 что такое сложные периодические расчеты. Расчет заработной платы

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С никогда не сталкивались в своей практике с компонентой «Расчет», поэтому когда им приходится сдавать экзамены на Специалиста по Платформе 8.0, где в каждом задании есть задача по сложным периодическим расчетам, возникают сложности, прежде всего сложности понимания.
Попробуем разобраться с этой компонентой в 8.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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

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

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

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

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

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

Статья еще недописана до конца, многое можно усовершенствовать, но как курс молодого бойца пойдет.

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

Установим флаг Базовый период .

Зададим в группе параметров Периодичность параметр Месяц .

Перейдем на вкладку Данные . Зададим здесь следующие параметры, рис. 1.11 :


Рис. 1.11.

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

Ресурс Результат - тип Число , длина 10, точность 2. Именно этот ресурс будет содержать вычисленное значение вида расчета , заданного для сотрудника. Результат будет содержать значение в рублях, именно это определило параметры типа данных, использованного для него.

Реквизит ИсходныеДанные - тип число, длина 10, точность 2. В этот реквизит мы будем записывать исходные данные для расчета. Например, для вида расчета Оклад мы запишем сюда исходный размер оклада, для вида расчета Премия - процент , который должен браться от расчетной базы, для вида расчета Удержание - размер удержания в рублях.

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

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

1.6. Документ Начисление зарплаты

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

  1. Возможность ручного ввода начислений;
  2. Формирование движений по регистру расчета ;

Перейдем на вкладку Данные окна настройки свойств документа НачислениеЗарплаты , рис. 1.12 . Создадим реквизит документа ПериодРегистрации - тип Дата , состав даты - Дата .


Рис. 1.12.

Создадим табличную часть НачисленияИУдержания . Создадим в ней следующие реквизиты:

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

Нажмем на кнопку Конструктор движений . Откроется окно конструктора, рис. 1.13 .


Рис. 1.13.

При заполнении полей, задающих правила формирования движений мы заполним их следующим образом:

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

Нажмем на кнопку ОК в окне конструктора движений и посмотрим, какой код он сформировал:

Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаНачисленияИУдержания Из НачисленияИУдержания Цикл // регистр НачисленияИУдержания Движение = Движения.НачисленияИУдержания.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаНачисленияИУдержания.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаНачисленияИУдержания.ДатаНачала; Движение.ПериодДействияКонец = ТекСтрокаНачисленияИУдержания.ДатаОкончания; Движение.ПериодРегистрации = ПериодРегистрации; Движение.Сотрудник = ТекСтрокаНачисленияИУдержания.Сотрудник; Движение.ИсходныеДанные = ТекСтрокаНачисленияИУдержания.ИсходныеДанные; Движение.График = ТекСтрокаНачисленияИУдержания.График; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

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

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

Если ТекСтрокаНачисленияИУдержания.ВидРасчета= ПланыВидовРасчета.Основной.Премия Тогда Движение.БазовыйПериодНачало=НачалоМесяца(ПериодРегистрации); Движение.БазовыйПериодКонец=КонецМесяца(ПериодРегистрации); КонецЕсли;

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

Если Движение.ВидРасчета=ПланыВидовРасчета.Основной.Прогул Тогда Движение.ПериодДействияНачало = ТекСтрокаНачисленияИУдержания.ДатаНачала; Движение.ПериодДействияКонец = ТекСтрокаНачисленияИУдержания.ДатаОкончания; Иначе Движение.ПериодДействияНачало = НачалоМесяца(ПериодРегистрации); Движение.ПериодДействияКонец = КонецМесяца(ПериодРегистрации); КонецЕсли;

Этот код заменит строки

Движение.ПериодДействияНачало = ТекСтрокаНачисленияИУдержания.ДатаНачала; Движение.ПериодДействияКонец = ТекСтрокаНачисленияИУдержания.ДатаОкончания;

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

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

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

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

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

Добавим в процедуру проведения документа команду записи сформированных движений:

Движения.НачисленияИУдержания.Записать();

Эта команда должна следовать за командой закрытия цикла формирования движений.

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

Для Каждого Движение из Движения.НачисленияИУдержания Цикл Если Движение.ВидРасчета=ПланыВидовРасчета.Основной.Удержание Тогда Движение.Результат=Движение.ИсходныеДанные; КонецЕсли; КонецЦикла; Движения.НачисленияИУдержания.Записать();

Теперь займемся расчетом оклада.

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

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

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

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

И, наконец, последним этапом нашей расчетной задачи является расчет премии. Его мы реализуем с помощью следующего кода:

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

Для начала мы подготовим параметры для передачи в метод ПолучитьБазу . Это будет массив Ресурсы , который в нашем случае содержит имя ресурса базового регистра расчета в формате "ИмяРегистра.ИмяРесурса" . Так же мы готовим структуру Измерения . В структуру мы добавляем новый элемент, имя которого совпадает с именем измерения регистра расчета ("Сотрудник" ), а значение содержит список измерений (в формате "ИмяРегистра.ИмяИзмерения" ), в нашем случае это одно измерение. Эти данные будут использованы при получении расчетной базы при расчете премии.

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

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

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

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

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

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

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

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

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

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

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

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

Отчеты и обработки

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

В «1С:Предприятие 8.1» роль - это отдельный объект, расположенный в группе «Роли» ветви дерева конфигурации, в котором описывается набор прав пользователя на выполнение тех или иных действий над каждым из объектов. Например, руководитель организации может иметь полный доступ к любой информации, хранящейся в информационной базе, в то время как кладовщик должен оперировать только складскими документами и не иметь доступа к другой информации.

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

Рис. П2.20. Пример настройки ролей в конфигурации

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

Рис. П2.21. Настройка прав для каждой роли в свойствах объекта метаданных в Конфигураторе

Каждому пользователю, работающему в системе «1С:Предприятие» ставится в соответствие одна или несколько ролей (см. Практикум 1-2).

При попытке пользователя выполнить действие, на которое у него нет разрешения, действие выполнено не будет, а система выдаст окно предупреждения «Нарушение прав доступа!»

1 ФИФО – от англ. «First Input, First Output» - «первый пришел, первый ушел»

2 КУДиР – аббревиатура «Книга учета доходов и расходов»

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

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. Информации, показанной на рисунке, для расчета премия недостаточно