1С периодические расчеты

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

В соответствующих полях указываются:

Наименование. Указывается наименование начисления.

Код. Код данного вида начисления.

Закладка «Расчеты».

Способ расчета. Из заданного перечня выбирается способ расчета данного начисления.

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

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

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

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

Закладка «Время».

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

Вид учета времени. По какому виду времени рассчитывается данное начисление.

Отработанное время по графику, Праздничные по графику, Выходные, Сверхурочные. Устанавливается признак оплачиваемого времени при расчете данного начисления.

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

Способ расчета ставки. Указываем, по какой норме времени рассчитывается ставка.

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

Закладка «Учет».

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

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

Входит в базу ФСЗН, Входит в базу обязательного страхования, Фонд оплаты труда, Фонд использования прибыли. Признак того, что вид расчета входит в данные фонды.

Из средств ФСЗН. Признак того, что вид расчета выплачивается из средств ФСЗН.

Является доходом в натуральной форме. Галочка устанавливается в том случае, если начисление является доходом в натуральной форме.

Способ отражения отчислений по сотруднику.

Вид стажа. Указывается только для начислений, которые рассчитываются по шкале. Выбирается из справочника «Виды стажа».

Коэффициент стажа. Выбирается из справочника «Коэффициенты стажа».

Закладка «Прочее».

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

Базовые расчеты, Ведущие расчеты. Заполняется база, от которой рассчитывается данный вид расчета, если такова нужна. Базовые расчеты выбираются из справочника «Основные начисления организаций» после нажатия кнопки «Подбор».

Вытесняющие расчеты. Не заполняются.

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

Введение

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

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

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

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

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

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

Сотрудник

Период

Вид расчета

Результат

Данные

Измерение

Служебный

Служебный

Ресурс

Ресурс

Реквизит

Иванов

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

Оклад

Петров

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

Оклад

Петров

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

Невыход

Болезнь

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

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

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

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

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

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

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

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

Вид расчета

Описание

Пример

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

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

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

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

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

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

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

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

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

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

Период

Описание

Период регистрации

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

Период действия

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

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

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

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

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

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

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

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

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

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

Дата

Вид графика

Значение

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

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

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

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

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

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

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

Значение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расчетные механизмы являются наиболее сложным функционалом в платформе «1С:Предприятие 8». Именно на расчетных задачах больше всего «сыпятся» на Аттестации 1С:Специалист по платформе. Причем не из-за вредности преподавателей, а из-за множества нюансов.

Поэтому мы периодически будем публиковать статьи, посвященных расчетным механизмам платформы «1С:Предприятие».

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

Технология реализации расчетных задач

Что Вы узнаете из этой статьи?

  • Термины и определения, которые лежат в основе расчетных механизмов платформы «1С:Предприятие 8»
  • Виды связей между расчетами, которые возникают в процессе автоматизации бизнес-процессов.
  • Применение механизма сложных периодических расчетов.

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

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

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

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

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

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

Период регистрации

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

Рисунок 1

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

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

Рисунок 2

Важно понять, что периодом регистрации командировки будет именно тот месяц, в котором она начислена. Несмотря на то, что фактически командировка будет в марте, ее расчет и начисление произошли в феврале. То есть в этом случае период регистрации командировки – 01.02.

Вид расчета

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

Упрощая, можно сказать, что вид расчета – это «кирпичик», из которого формируются начисления и удержания сотрудника. Примеры видов расчетов: оплата по окладу, оплата за работу в ночные часы, расчет по больничному листу, расчет отпуска, удержание за прогул. Причем последний вид расчета влияет на зарплату отрицательно, то есть уменьшает ее.

Период действия записи

Записи, участвующие в расчетах, могут как быть, так и не быть протяженными во времени. Что это значит?

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

Рисунок 3

Период действия имеет ряд особенностей.

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

В отличие от периода регистрации, период действия записи задается датой начала и датой окончания.

Например, факт болезни сотрудника с 11.02 по 20.02 можно представить следующим образом.

Рисунок 4

В этом случае запись «больничный» будет иметь период действия 11.02 – 20.02 и период регистрации 01.02.

Период действия записи неделим и непрерывен.

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

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

Например, необходимо отразить больничный сотрудника с 10.02 по 15.03. Учет зарплаты ведется помесячно (то есть период расчетов – месяц). Что будет, если запись «Больничный» мы отразим одной записью с периодом действия 10.02 – 15.03?

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

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

При этом «месяц” периода расчетов (для помесячного расчета зарплаты) не обязательно должен совпадать с месяцем периода действия, они могут быть равны, а могут быть разными – все будет зависеть от момента регистрации факта события. Именно тогда можно однозначно идентифицировать запись.

Для нашего примера предполагаем, что больничный лист сотрудник предъявил в марте. Поэтому, регистрируя больничный сотрудника, получим две записи: первая запись с периодом регистрации 01.03 и периодом действия 10.02 – 28.02, вторая запись с периодом регистрации 01.03 и периодом действия 01.03 – 15.03.

Как видим, у первой записи месяц периода расчетов не совпадает с месяцем периода регистрации (см. рис. 6).

Рисунок 6 Период действия может не принадлежать периоду регистрации.

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

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

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

Рисунок 7

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

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

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

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

Рисунок 8

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

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

Рассмотрим формирование фактического периода действия записей из приведенного выше примера.

Рисунок 9

Ключевые моменты формирования фактического периода действия:

  • До вытеснения фактический период действия записи «Оклад» содержал один интервал 01.02 – 28.02, который совпадал с периодом действия.
  • При вводе записи о больничном виды расчета «Оклад» и «Больничный» конкурируют между собой за период действия 11.02 – 20.02.
  • В результате конкуренции видов расчетов произошло разбиение фактического периода действия записи «Оклад» на два интервала: 01.02 – 11.02 и 20.02 – 28.02. Механизмы вытеснения не оказывают влияния на периоды действия записей конкурирующих видов расчетов, изменения происходят на уровне фактического периода действия.
  • Фактический период действия записи «Больничный» представляет собой один интервал: 11.02 – 20.02, который совпадает с периодом действия.

Примечание

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

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

Рисунок 10

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

Зависимость по базовому периоду

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

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

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

Рисунок 11

Продолжим наш пример расчетом премии. Для этого определим величины оклада и процент премии.

Пусть у некоторого сотрудника оклад распределился следующим образом: Январь – 15 000 р., Февраль – 21 000 р., Март – 20 000 р. Процент премии равен 10%. Стало известно, что в феврале у сотрудника был штраф в размере 5 000 р., и его также нужно учесть при расчете премии, то есть в базу расчета премии входят оклад и штраф. Соответственно, виды расчета «Оклад» и «Штраф» являются базовыми по отношению к виду расчета «Премия» (см. рис. 12).

Рисунок 12

Все необходимые данные определены, переходим к расчету. Первым делом рассчитаем базу премии. В нашем случае база расчета премии составляет 51 000 рублей и состоит из суммы начислений по окладу за 3 месяца и начисленного в феврале штрафа (уменьшает базу):

База = 15 000 р. + 21 000 р. + 20 000 р. – 5 000 р. = 51 000 р.

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

Премия = База * Процент премии = 51 000 р. * 10 / 100 = 5 100 р.

Итак, размер премии рассчитан, он составляет 5 100 р.

Ключевые моменты произведенного расчета:

  • При расчете результата зависимости по базовому периоду анализируются суммы базовых видов расчетов за определенный период, который называется базовым.
  • Базовый период может покрывать несколько расчетных периодов. Он не обязательно кратен периодам расчета, его интервал может быть задан произвольно, например, он может быть определен как 15.02 – 15.03, 25.01 – 01.04 и т.д.
  • Суммы всех базовых видов расчета, попавших в базовый период, образуют расчетный показатель – базу. Вхождение вида расчета не всегда увеличивает базу, в нашем случае штраф – это удержание, его вхождение уменьшает базу.
  • Расчет по базовому периоду может быть реализован для всех видов расчетов – как для протяженных во времени (с периодом действия), так и для непротяженных во времени. В нашем примере премия не имеет периода действия, хотя базовый период у нее определен и равен трем предшествующим месяцам.

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

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

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

Применение механизма сложных периодических расчетов

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

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

Общая схема решения большинства задач с использованием механизма сложных периодических расчетов может быть представлена так:

Рисунок 13

Как видно из схемы, решение расчетных задач не ограничивается использованием только «расчетных» объектов.

В справочниках обычно хранят данные объектов, определяющих разрезы, в которых следует выполнять расчет (например, справочники «Организации», «Физические Лица») или описывается дополнительная аналитика расчета (например, справочник «Статьи расходов»).

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

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

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

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

Хочется отметить, что разделение на схеме объектов метаданных по контурам (НСИ, первичные данные, алгоритмы расчета) является условным и в зависимости от контекста задачи может меняться.

Например, в типовом решении ЗУП 3.1 регистр сведений «Графики работы по видам времени» носит смешанный характер. С одной стороны, он хранит эталонные графики работы (базовая НСИ), назначенные сотрудникам, с другой – при окончательном расчете зарплаты в него пишется фактический график, по которому работал сотрудник, если в течении месяца у него были отклонения от эталона.

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

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

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

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

P. S.

На текущий момент в качестве продолжения готовятся статьи на такие темы:

  • Расчетные объекты системы «1С Предприятие»: план видов расчета и регистры расчета. Детальная настройка и конфигурирование.
  • Экспресс-решение задачи, подобной задачам уровня экзамена «1С:Специалист по платформе».
  • Расчетные объекты в типовых конфигурациях (на примере прикладных решений семейства ЗУП).

Если вам интересна тема, касающаяся механизма сложных периодических расчетов, то напишите в комментарии:

  • О каких компонентах механизма вам хотелось бы в первую очередь узнать?
  • Какие моменты задач для подготовки к экзамену «1С:Специалист по платформе» было бы хорошо осветить?

Об авторе

Автор статьи – Дмитрий Игоревич Макаревич

УК «Содружество”, г. Калининград

1.5. Регистры расчета

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

Рис. 1.10. Настройка вкладки Основные окна свойств регистра расчета

В поле План видов расчета зададим недавно созданный план видов расчета Основной.

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

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

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

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

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

Рис. 1.11. Настройка вкладки Данные окна свойств регистра расчета

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

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

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

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

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

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

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

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

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

Рис. 1.12. Настройка вкладки Данные окна свойств документа

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

Сотрудник — тип СправочникСсылка.Сотрудники ;
ВидРасчета — тип ПланВидовРасчетаСсылка.Основной ;
График — тип СправочникСсылка.ГрафикиРаботы ;
ИсходныеДанные — число, длина 10, точность 2;
ДатаНачала и ДатаОкончания — Дата, состав даты — Дата.

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

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

Рис. 1.13. Работа с конструктором движений

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

ВидРасчета — ТекСтрокаНачисленияИУдержания.Вид расчета — это поле мы заполняем, взяв соответствующий параметр из табличной части
ПериодДействияНачало — это поле мы заполняем значением реквизита табличной части ДатаНачала
ПериодДействияКонец — это поле мы заполняем значением реквизита табличной части ДатаОкончания
ПериодРегистрации — это поле мы заполним значением реквизита ПериодРегистрации ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

увеличить изображение
Рис. 1.15. Результаты начисления заработной платы в регистре расчета

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

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

1.7. О перерасчетах

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

Как мы видели выше, между различными видами расчета возможны достаточно сложные взаимосвязи. Например, у нас есть вид расчета А, базовым видом расчета для которого является вид расчета Б. Запись регистра с видом расчета А должна быть пересчитана в том случае, если изменилась запись с видом расчета Б. Информация, предоставляемая перерасчетами носит уведомительный характер — то есть разработчик должен самостоятельно принять решение о том, нужно ли производить перерасчет.

1.8. Рекомендации по дальнейшему изучению

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

Кроме того, рекомендуется изучить соответствующие части тиражных конфигураций. Эти конфигурации можно и нужно изучать, при необходимости внося изменения в код и в состав объектов конфигурации. Как правило, изначально конфигурации поставляются в закрытом для редактирования виде. Это сделано для того, чтобы даже неподготовленные пользователи могли без проблем обновлять такие конфигурации с помощью периодически выпускаемых комплектов обновлений. Для того, чтобы открыть подобную конфигурацию для редактирования, нужно в Конфигураторе сначала выполнить команду Конфигурация>Открыть конфигурацию — в том случае, если дерево конфигурации не отображается в окне Конфигуратора, такое бывает, когда конфигурация открыта в Конфигураторе впервые. Когда дерево конфигурации отобразится, нужно выполнить команду Конфигурация > Поддержка > Настройка поддержки. В появившемся окне Настройка поддержки, рис. 1.16, нужно нажать на кнопку Включить возможность изменения.

увеличить изображение
Рис. 1.16. Включение возможности редактирования конфигурации

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

Рис. 1.17. Запрос системы о подтверждении разрешения редактировании конфигурации

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

Еще один ценный, постоянно обновляемый источник информации по различным аспектам разработки для 1С:Предприятие — это диски ИТС (Информационно-Технологическое Сопровождение), которые распространяются фирмой 1С по подписке среди зарегистрированных пользователей системы. Если в вашей организации пользуются одной из тиражных конфигураций (бюджетной или хозрасчетной), для получения обновлений организация должна быть подписана на ИТС. Особенно ценны в плане получения дополнительной информации ИТС-диски серии ПРОФ — они, помимо обновлений, содержат множество полезных статей, справочников и других данных.

1.9. Выводы

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

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