Регистры расчета в 1С для чайников(Часть 1)
В данной статье рассмотрим теоретические основы работы с регистрами расчёта, а также выполним расчёт заработной платы сотрудника пропорционально количеству отработанных часов.
Теория
Регистр расчета(РР) — объект метаданных конфигурации, служащий для реализации периодических расчетов в системе 1С. Из очевидных областей применения регистров расчета можно выделить следующие: расчет заработной платы, расчет квартплаты, расчет арендной платы.
По своей структуре регистры расчета похожи на регистры накопления или регистры сведений. Они так же как и регистры накопления имеют измерения, ресурсы, реквизиты, но принцип действия регистров расчета абсолютно другой.
По сути своей измерения в регистре накопления служат «фильтром» в разрезе которого мы получаем данные из регистра накопления. Как пример, когда мы берём «остатки» по регистру накопления «Остатки товаров» в разрезе определённой номенклатуры или «срез последних» по регистру сведений «Оклады сотрудников» в разрезе определённого сотрудника. В отличии от регистра накопления измерения в периодическом регистре расчета служат для реализации «механизма вытеснения по периоду действия«(это когда протяженные во времени виды расчета конкурируют между собой на интервале периода действия записи т.е. как пример, вид расчета командировка вытесняет вид расчета оклад по периоду действия) и «механизма зависимости по базовому периоду«(это когда вид расчета премия зависит от вида расчета оклад за прошлые периоды).
На рисунке выше графически показан принцип «механизма вытеснения по периоду действия«:
Здесь мы видим что вид расчёта «Командировка» обладает протяжённостью во времени и действует с 10 по 20 апреля, «Командировка» указана как вытесняющий вид расчёта для вида расчета «Оклад». «Оклад» также обладает протяжённостью во времени и действует с 1 по 30 апреля. Так как «Командировка» указана как вытесняющий вид расчёта для вида расчета «Оклад»(имеет больший приоритет, чем оклад) и действует на периоде действия оклада, то происходит вытеснение оклада командировкой и формируется «Фактический период действия оклада».»Фактический период действия оклада» это период действия оклада после вытеснения командировкой, в нашем случае он состоит из 2 периодов — с 1 по 9 апреля и с 21 по 30 апреля и в сумме составляет 19 дней. Механизм вытеснения по периоду действия работает только для протяжённых во времени расчетов.

На рисунке выше графически показан принцип «механизма зависимости по базовому периоду«:
Допустим, в конце апреля 2017 мы хотим начислить сотруднику премию в размере 10% от оклада. В качестве базовых видов расчёта для премии указан оклад.
Но в качестве «базы» для расчета премии мы возьмём не весь месяц апрель, а только интервал с 10 по 20 апреля(11 дней). Рассчитаем базу для премии, оклад сотрудника составляет 60000 рублей, в месяце имеем 30 дней, дневной оклад = 60000/30 = 2000 руб. Далее 2000*11 = 22000 руб. База для расчета премии составляет 22000 рублей.
Рассчитаем премию: (22000/100)*10 = 2200 руб. Премия в размере 10% от оклада составляет 2200 рублей.
С регистром расчета тесно связан прикладной объект метаданных «План видов расчета».
План видов расчета(ПВР) — объект метаданных конфигурации, хранящий в себе сведения о типах видов расчетов и определяющий влияние разных расчетов друг на друга.
Один план видов расчета может использоваться в нескольких регистрах расчета, но один регистр расчета не может использовать несколько планов видов расчета одновременно.
Регистр расчета является таблицей в которой хранятся рассчитанные данные, а в плане видов расчета хранятся алгоритмы расчета этих данных. Регистр расчета обязательно должен иметь хотя бы один документ регистратор, который делает движения по регистру расчета(например Начисление зарплаты).
Механизмы расчета в системе 1С Предприятие устроены таким образом, что сперва требуется сделать записи в регистр расчета и только после этого выполнить расчет на основе этих данных. К примеру, нельзя рассчитать премию на основе оклада пока этот самый оклад не записан в регистр расчета.
Практика
Рассмотрим подробнее регистры расчета на практике:
Шаг 1.Начнём с плана видов расчета. План видов расчета необходимо создать перед созданием регистра расчета. План видов расчета создаём перед регистром расчёта потому, что перед созданием таблицы для хранения рассчитанных данных(т.е. регистра расчета) необходимо задать алгоритмы расчета этих данных(т.е. план видов расчета).
Создадим план видов расчета «Основные начисления». Сразу же перейдём на вкладку «Расчет». Здесь мы сразу же видим флаг «Использует период действия«, при установке данного флага все виды расчета входящие в данный план будут обладать протяжённостью во времени(например Оклад, Командировка), а также для данного плана видов расчета включается «механизма вытеснения по периоду действия«. Если флаг «Использует период действия» не установлен, то виды расчета не будут обладать протяжённостью во времени(например Премия, Штраф) и «механизма вытеснения по периоду действия» действовать не будет. Также на данной вкладке есть разделы «Зависимость от базы» и «Базовые планы видов расчета» — они служат для реализации «механизма зависимости по базовому периоду«, но об нём поговорим позже. Пока оставим «Зависимость от базы» в режиме «Не зависит».
Далее перейдём на вкладку «Прочее». Нажмём кнопку «Предопределенные». Откроется окно предопределённых видов расчета.

Создадим предопределённый вид расчета «Оклад». На вкладке «Основное» всё просто. Задаём имя и код вида расчета.

Благодаря тому, что мы установили флаг «Использует период действия» у нас появилась вкладка «Вытесняющие» и включился «механизм вытеснения по периоду действия«.
На данной вкладке мы указываем виды расчета, которые будут вытеснять оклад по периоду действия(например Командировка).
Примечание: в «Вытесняющие» можно добавить виды расчета принадлежащие только данному плану видов расчета.
Также есть вкладка «Ведущие» — на ней указываются виды расчета при изменении которых должен пересчитываться текущий вид расчёта. Здесь можно указать и виды расчёта из других планов видов расчёта. Например, вид расчета «Оклад» является ведущим для вида расчёта «Премия» т.е. при изменении оклада у нас должна пересчитаться и премия т.к. премия начисляется в зависимости от оклада. В данном случае вид расчёта «Оклад» принадлежит ПВР «Основные начисления» использующем период действия, а вид расчета «Премия» принадлежит ПВР «Дополнительные начисления» не использующем период действия.
Шаг 2.Создадим справочник «Графики» со структурой по-умолчанию. В справочнике «Графики» будем хранить режимы работы сотрудников(пятидневка, шестидневка и.т.д.).
Шаг 3.Также нам нужен объект в котором мы будем хранить Производственный календарь(рабочие и выходные дни). Для этих целей используем непериодический независимый регистр сведений.
Создадим непериодический независимый регистр сведений «Графики работы» с 2 измерениями «Дата» и «График» и ресурсом «Количество часов».
Благодаря регистру сведений «Графики работы» мы сможем начислять заработную плату от оклада пропорционально количеству отработанных дней.
Шаг 4.Создадим документ «Начисление зарплаты» со структурой реквизитов показанной ниже:

Сотрудник — тип «СправочникСсылка.ФизическиеЛица»;
Вид расчета — тип «ПланВидовРасчетаСсылка.ОсновныеНачисления»;
График — тип «СправочникСсылка.Графики»;
Оперативное проведение ставим в значение «Запретить» т.к. оно не имеет смысла для механизма периодических расчётов в 1С — ни премию, ни оклад, ни штраф мы никогда не начисляем в реальном времени.
Создадим форму документа с настройками по-умолчанию.
Шаг 5. Наконец-то мы дошли и до создания регистров расчета.
Объект метаданных регистр расчета расположен в ветке «Регистры расчета» конфигуратора.
Создадим регистр расчета «Основные начисления». Настройки регистра расчета рассмотрим ниже:

1.В поле «План видов расчета» указываем ПВР «Основные начисления» созданный на шаге 1.
2.Ставим флаг «Период действия» в значение «Истина» т.к. ПВР, указанный на шаге 1 обладает протяжённостью во времени.
После установки данного флага у нас сразу же становятся доступны стандартные реквизиты «ПериодДействия», «ПериодДействияНачало», «ПериодДействияКонец» это значит, что виды расчета регистрируемые в данном регистре расчета также обладают протяжённостью во времени и у нас становится доступен «механизма вытеснения по периоду действия«.
P.S. Если указать ПВР, обладающий протяжённостью во времени у РР с флагом «Период действия» в значении «Ложь», то данный ПВР будет работать как ПВР не обладающий протяжённостью во времени.
3.После установки флага «Период действия» в значение «Истина» у нас становятся доступны поля «График», «Значение графика», «Дата графика».
В поле «График» указываем регистр сведений «Графики работы», созданный на шаге 3.
В поле «Значение графика» указываем ресурс «КоличествоЧасов» регистра сведений «Графики работы».
В поле «Дата графика» указываем измерение «Дата» регистра сведений «Графики работы».
4.В поле «Периодичность» указываем значение «Месяц» это значит, что данные в регистр у нас будут заноситься ежемесячно.
Ниже представлена структура метаданных регистра:
Флаг «Базовое» у измерения влияет только на производительность, его можно и не проставлять, но если поставить, то поле «Сотрудник» будет проиндексировано.
Измерение «Сотрудник» — оно применяется в «механизме вытеснения по периоду действия» и «механизме зависимости по базовому периоду«.
Ресурс «Сумма» — туда запишется рассчитанная зарплата.
Реквизит «График» указан как реквизит, а не измерение регистра т.к. ни его, ни он ничего не вытесняет — по сути справочное поле. Важно. Не забудьте заполнить поле «Связь с графиком» у реквизита «График», там должно быть указано измерение «График» регистра сведений «Графики работы» иначе размер заработной платы не будет рассчитываться.
Реквизит «Параметр» будет хранить значение оклада.
Вот теперь когда мы указали связь с РС «Графики работы» у нас будет рассчитываться заработная плата сотрудника пропорционально количеству отработанных дней.
В качестве регистратора указываем документ «Начисление зарплаты«, созданный на шаге 4.
Шаг 6. Делаем движения по регистру расчета «Основные начисления».
Вернёмся к документу «Начисление зарплаты» созданному на шаге 4.
Опишем обработку проведения в модуле объекта документа:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) // регистр ОсновныеНачисления Движения.ОсновныеНачисления.Записывать = Истина; Движения.ОсновныеНачисления.Очистить(); ПериодРегистрации=НачалоМесяца(Дата); Для Каждого ТекСтрокаОсновныеНачисления Из ОсновныеНачисления Цикл Движение = Движения.ОсновныеНачисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаОсновныеНачисления.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаОсновныеНачисления.ДатаНачала; Движение.ПериодДействияКонец = КонецДня(ТекСтрокаОсновныеНачисления.ДатаОкончания); Движение.ПериодРегистрации = ПериодРегистрации; Движение.Сотрудник = ТекСтрокаОсновныеНачисления.Сотрудник; Движение.График = ТекСтрокаОсновныеНачисления.График; Движение.Параметр = ТекСтрокаОсновныеНачисления.Размер; КонецЦикла; КонецПроцедуры
Создадим тестовый документ и проведём его:
Перейдём в «Движения документа»:
Видим, что период регистрации установился как начало месяца т.к. периодичность РР указана «Месяц». Так же видим, что заполнились все поля кроме суммы(ЗП ещё не рассчитана).
Шаг 7.Напишем код расчета заработной платы.
Создадим общий модуль «Расчет» со следующими флагами:

В данном общем модуле у нас и будет происходить сам расчёт.
Напишем в модуле «Расчет» экспортную функцию «Рассчитать начисления»:
Так как мы заполнили в настройках РР «Основные начисления» поля «График», «Значение графика», «Дата графика» у нас стала доступна виртуальная таблица регистра расчета ДанныеГрафика, в запросе к виртуальной таблице нас интересуют поля:
«КоличествоЧасовФактическийПериодДействия» — содержит рассчитанное на основании данных графика количество фактически отработанных часов
«КоличествоЧасовПериодДействия» — содержит рассчитанное на основании данных графика количество рабочих часов в периоде расчёта
Процедура РассчитатьНачисления(Регистратор, НаборЗаписей) Экспорт //Оклад Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.КоличествоЧасовФактическийПериодДействия, 0) КАК ЧасовФакт, | ОсновныеНачисленияДанныеГрафика.Параметр, | ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.КоличествоЧасовПериодДействия, 0) КАК ЧасовПлан, | ОсновныеНачисленияДанныеГрафика.НомерСтроки |ИЗ | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика( | Регистратор = &Регистратор | И ВидРасчета = &ВидРасчетаОклад) КАК ОсновныеНачисленияДанныеГрафика"; Запрос.УстановитьПараметр("Регистратор", Регистратор); // передаём документ регистратор чтобы поиск выполнялся только по текущему документу Запрос.УстановитьПараметр("ВидРасчетаОклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад); //устанавливаем вид расчёта оклад т.к. рассчитываем оклад Выборка=Запрос.Выполнить().Выбрать(); СтруктураПоиска=Новый Структура; СтруктураПоиска.Вставить("НомерСтроки",0); //создадим структуру для поиска данных для расчёта по номеру строки Для Каждого Запись Из НаборЗаписей Цикл //цикл по набору записей текущего документа СтруктураПоиска.НомерСтроки=Запись.НомерСтроки; //заполняем номер строки для поиска Если Выборка.НайтиСледующий(СтруктураПоиска) Тогда //ищем в выборке данные для расчёта по текущему номеру строки Запись.Сумма =?(Выборка.ЧасовПлан=0,0, Выборка.ЧасовФакт/Выборка.ЧасовПлан * Выборка.Параметр); //рассчитываем ЗП пропорционально отработанным дням, в Параметр - текущий оклад КонецЕсли; Выборка.Сбросить(); //сбросим выборку, нужно чтобы следующая запись набора записей делала поиск по выборке сначала КонецЦикла; НаборЗаписей.Записать(,Истина); //записываем рассчитанные записи в базу, передаём параметр Замещать = Истина КонецПроцедуры
Вызовем процедуру «Рассчитать начисления» в конце обработки проведения документа, перед этим записав коллекцию движений документа:
Движения.Записать(); Расчет.РассчитатьНачисления(Ссылка, Движения.ОсновныеНачисления);
Шаг 8.Рассчитаем заработную плату сотрудника.
Предварительно заполним РС «Графики работы» за 2017 год, график Пятидневка, в каждом рабочем дне 8 часов:
Перепроведём ранее созданный документ Начисление зарплаты и увидим, что зарплата у нас рассчиталась пропорционально отработанному времени:
Регистры расчета в 1С
Для хранения и обработки данных в программе 1С используются регистры. Это сводные таблицы со свойствами и количеством полей, определяющихся видом регистра. Актуальная информация используется для формирования различных отчетов.

Отличительной особенностью регистров является запрет на удаление записей. Таблицы обновляются после проведения относящихся к ним документов. Для изменения содержимого части полей используется режим корректировки.
К сводным информационным массивам 1С относятся регистры расчетов. Чтобы сформировать новые записи, используются планы видов расчетов. Основное применение регистров расчетов – операции, связанные с заработной платой. Свойства массивов похожи на «Регистры накопления». Одним из параметров является «План вида расчета». Все регистры отчетов – периодические массивы. Каждая запись относится к определенному периоду времени. Параметр периода может быть
Как правило, заработная плата начисляется каждый месяц. Поэтому для расчетов с сотрудниками подходят ежемесячные регистры. Ограничения по периодам получения, а также выплаты доходов важны при исчислении НДФЛ. Регистрация каждой записи выполняется с выбором вида расчета и регистрационного периода.
Обзор посвящен регистрам расчета, актуальным для пользователей программы «1С:Бухгалтерия 3.0».
Просмотр регистров расчета
Журнал «Все начисления» содержит раздел «Зарплата и кадры». Из подраздела «Зарплата» следует выбрать пункт «Начисление зарплаты». Строки содержат информацию о начислениях зарплаты, удержаниях НДФЛ. Для просмотра данных регистров расчета предназначена опция «Показать проводки и другие движения документа».

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

Для включения или исключения информации устанавливается или снимается галочка напротив соответствующего пункта.

Такая настройка удобна для исключения лишних отчетов, не относящихся к деятельности компании. Чаще всего анализируются регистры начислений, выплат, удержаний, относящихся к отдельным подразделениям или сотрудникам.
Расчетный регистр «Зарплата к выплате» содержит основные данные. Например, в феврале после проведения документа «Начисление зарплаты» появилось две строки. Это «Приход на сумму начисленной заработной платы» и «НДФЛ».

В процессе внесения документа-основания используется дата начала периода, связанная с регистром. Например, для февральской «Зарплаты к выплате» графа «Период взаиморасчетов» будет заполнена «01.02.2019». Если информационный массив является годовым, приводится дата на начало года, – «01.01.2020». Вид регистра «Взаиморасчеты с сотрудниками» содержит сведения по начисленным и удержанным суммам, относящимся к каждому сотруднику.

Вид регистра «Начисления удержания по сотрудникам» включает все возможные виды расчетов.

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

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

В примере сотруднику было выплачено 10180 руб. (Начисление – 21660, минус НДФЛ 2816 с авансом 8664). Виды регистров «Зарплата к выплате», а также «Взаиморасчеты с сотрудниками» отражают информацию о выплате текущей задолженности.


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

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


Упорядоченная информация используется для формирования справок, аналитических и налоговых отчетов. Например, чтобы составить «Справку 2-НДФЛ для передачи в ИФНС», необходимо открыть соответствующий пункт меню. Возможны два варианта – «Отчеты», «1С-Отчетность», «Регламентированная отчетность», или альтернативный «Зарплата и кадры», «НДФЛ». Готовый вариант содержит уже известную информацию – начисления зарплаты 21660 руб. и НДФЛ 2816 руб. Не отражены операции по удержаниям и перечислениям.

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

Для оплаты ведомостей используется отдельный вид документов «Списание с расчетного счета».

Эти платежи – основание для внесения данных в соответствующие регистры. После проведения «Списания с расчетного счета» изменяются данные строк «Расход» в «Расчетах налогоплательщиков с бюджетом по НДФЛ».

После проведения «Списания с расчетного счета», если составить «Справку 2-НДФЛ для передачи в ИФНС», то в графе «НДФЛ удержанный» возникнут перечисленные суммы.

«Списание с расчетного счета» должно относиться к виду операции «Уплата налога». После проведения происходит изменение регистров «Расчеты налоговых агентов с бюджетом по НДФЛ», а также «Уплата НДФЛ налоговыми агентами (к распределению)». Эти сведения необходимы для формирования налоговых отчетов.


Откройте сформированные «Справки 2-НДФЛ для передачи в ИФНС». Суммы перечисленных налогов должны корректно отразиться в отчетах.

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

Проверка базы 1С на ошибки со скидкой 50%
- Неправильное указание НДС в документах;
- Ошибки во взаиморасчетах («красные» и развернутые сальдо по документам расчетов или договоров на счетах 60, 62, 76.);
- Отсутствие счетов-фактур, проверка дублей;
- Неправильный учет ТМЦ (пересорт, неверная последовательность прихода и расхода);
- Дублирование элементов (номенклатура, валюты, контрагенты, договоры и счета и т.д.);
- Контроль заполнения реквизитов в документах (контрагенты, договоры);
- Контроль (наличие, отсутствие) движений в документах и другие;
- Проверка корректности договоров в проводках.
Анализ регистров
Чтобы получить подробную информацию, относящуюся к различным регистрам, используется «Универсальный отчет». Для составления документа необходимо открыть подменю «Отчеты», «Стандартные». В качестве основания следует выбрать «Регистры накопления». Необходимо указать конкретный вид регистра. Опция «Настройки» используется для отбора обязательных параметров.

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

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

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

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

Понимание роли регистров в формировании отчетов поможет избежать многих ошибок. Очень важно использовать корректные первичные документы, правильно вводить все необходимые данные. Если обнаружены проблемы с информацией, относящейся к прошлым периодам, переносом данных из предыдущих версий, производится корректировка регистров.
Регистр расчета 1C
Прикладные объекты конфигурации включают в себя регистры расчета. Они задействованы в механизме реализации сложных периодических расчетов, используются для хранения записей с информацией о том или ином виде расчета, который должен быть выполнен. Также в регистрах расчетов сохраняются промежуточные данные и непосредственно результаты расчетов.
Структура регистра расчета 1С
Данные в регистрах расчетов находятся в форме записей, содержащих в себе значения измерений и связанные с ними значения ресурсов. Измерения описывают разрезы для хранения информации. Ресурсы сохраняют данную информацию.
Взаимосвязь с планом вида расчета
Каждый из регистров расчета связывается с 1 из имеющихся в системе планов видов расчета. За счет наличия этой связи, любая из записей регистра имеет специальное поле Вид расчета. С ним связаны механизмы, отвечающие за отслеживание влияния записей расчета на друг друга.
Периодичность записей
В регистре расчета информация сохраняется, как в разрезе имеющихся измерений, так и в разрезе относительно указанного временного промежутка. Это обуславливает наличие у каждой записи еще одного поля, а именно «Периода действия». Минимальная периодичность указывает в момент создания регистра расчета непосредственно разработчиком. Именно эта периодичность определяет то, как часто заносятся записи в регистр.
Связь с регистратором
В большинстве случае изменение состояния регистра расчета связано с проводкой того или иного документа. Поэтому вполне логично, что записи регистра, каждая в отдельности, связываются с определенным регистратором, а точнее с номером строк из него. Важно отметить, что доступно только одновременное удаление, изменение или добавление записей регистра, связанных с одним и тем же регистратором, т.е. документом.
График времени
В регистре расчета можно указать связь с графиком времени. Это своеобразный регистр сведений, содержащий в себе временную схему с исходными данными, задействованными при расчетах. К примеру, график работы и дата, имеют ресурс в виде количества рабочих часов в определенной дате. В этом случае запись из регистра расчета связывается с выбранным графиком работы сотрудника. Затем за счет средств встроенного языка получает данные о количестве рабочих часов этого сотрудника, которые должно учитываться при выполнении расчета заработной платы.
Перерасчеты
В регистр расчета разрешено добавлять такой специализированный объект, как «Перерасчет». В них располагаются данные о том, какая из записей утратила свою актуальность и должна быть пересчитана вследствие работы механизмов, отвечающих за взаимосвязь базового периода и вытеснения по периоду действия.
Уникальность
В системе осуществляется автоматический контроль над тем, чтобы каждая запись из регистра расчета была уникальна. Это исключает риск того, что появятся 2 записи, соотнесенные с одной и той же строкой одного регистратора.
Механизмы регистра расчета
Вытеснение по периоду действия
Механизм вытеснения по периоду действия, отвечает за расчет фактического периода действия записи в регистре расчета, с учетом анализа других записей, расположенных в нем же.
Типовой вариант записи предполагает наличие 2-х дат, отвечающих за выставление границ периода, который действует на данную запись. Данный период именуется периодом действия записи. В случае, если вид расчета, соотнесенный с записью, вытесняется другим видом, то в таком случае период считается «запрашиваемым», т.е. определяет срок действия рассматриваемой записи.
Как показывает практика, точно установить фактический период действия той или иной записи возможно только после окончания анализа всех записей видов расчета, которые могут вытеснить вид расчета в соответствии с периодом действия. Фактический период – это набор разных временных отрезков, выполняющих роль подмножеств исходного периода действия. В тех случаях, когда в регистре не обнаруживаются записи, способные вытеснить ее по периоду действия, то фактический период = периоду действия. Еще одним случаем вытеснения можно назвать 100% вытеснение рассматриваемой записи другими записями из регистра. В такой ситуации фактический период отсутствует.
Важно помнить о том, что любая запись регистра расчета, включается вид расчета. Поэтому для вытеснения этой записи в зависимости от периода действия, регистр обращается к плану видов расчета, где подробно описывается взаимное влияние этих видов друг на друга. Именно наличие этой связи делает возможным определение фактического периода для каждой из записей в регистре расчета.
Зависимости по базовому периоду
Для получения значений базы записей регистра расчета, используется специализированный механизм зависимости по базовому периоду. В его основе лежит анализ всех записей из регистра.
База – это числовое значение, используемое для расчета результата конкретной записи регистра. Она рассчитывается при проведении анализа результатов расчетов записей, связанных с рассматриваемой записью по базовому периоду. Из этого следует, что при условии наличия у записи расчета 2-х дат, обозначающих период, для которого требуется проведение анализа записи видов расчета, а также от которых напрямую зависит вид расчета по базе, определяется и базовый период. За счет взаимосвязи плана видов расчета с регистром расчета определяются виды расчета, которые оказывают влияние на базовый период.
В соответствии с базовым периодом в регистре расчета доступны следующие зависимости:
- по периоду действия;
- по периоду регистрации.
В первом случае система выбирает те записи, у которых наблюдается пересечение фактического периода действия и базового периода рассматриваемой записи. При этом значение базы, полученное от определенной записи, не приравнивается к результату этой самой записи. База рассчитывается пропорционально тому, какая часть фактического периода от влияющей записи пересекается с базовым периодом рассматриваемой записи. Обязательно учитываются и данные графика, связанного с записью.
Если выбирается зависимость по периоду регистрации, то для формирования базы система используется результаты расчета только тех записей, которые входят в базовый период рассматриваемой записи и имеют собственное поле «Период регистрации».
Усложненный вариант зависимости по базовому периоду выглядит следующим образом. Вид расчета записи имеет свойство «Период действия является базовым периодом». На практике это обозначает то, что базовый период рассматриваемой записи не используется в качестве базового периода. Вместо него система обращается к фактическому периоду действия этой записи, который определяется механизмом вытеснения по периоду действия, и в большинстве случае представляет собой набор отдельных периодов.
Формирование записей перерасчета
Благодаря наличию встроенного механизма формирования записей перерасчета, система в автоматическом режиме отслеживает момент появления в регистре записи, способной оказать влияние на результат расчета созданных ранее записей. Сам факт возможности данного действия определен благодаря анализу влияния друг на друга разных видов расчетов, а также за счет работы таких механизмов, как вытеснение по периоду действия, зависимость по базовому периоду.
В результате работы этого механизма система составляет набор записей перерасчета, в котором отображаются данные о том, какая из записей регистра должна быть рассчитана по новой, т.е. пересчитана.
Функциональные возможности регистра
Регистр расчета предоставляет доступ разработчикам к следующему списку функциональных возможностей:
- отбор записей по заданным параметрам и выбранному временному отрезку;
- сортировка по связанному документу, т.е. регистратору;
- выведение значения базы, в соответствии с указанными параметрами отбора;
- предоставление информации о графике ведения записей в регистре, соответствующих указанным параметрам отбора;
- выведение данных о тех записях, которые должны быть пересчитаны;
- просмотр, корректировка или удаление записей регистра перерасчета.
Регистры расчёта в 1С
1. Структура регистров расчёта 2. Связь с планом по видам расчёта 3. Периодичность регистров расчета в 1С 4. Управление регистратором 5. Соединение регистров расчета в 1С по временному графику 6. Перерасчёт в регистре расчетов 7. Механизм вытеснения по периоду действия 8. Зависимость регистра расчета в 1С от базового периода 9. Записи по перерасчёту в регистре расчета в 1С 10. Функционал регистра расчёта в 1С 8.3
Приветствую, коллеги! В данной статье будет описано, что такое регистры расчёта в 1С, какую они имеют структуру и функциональность. Также на реальном практическом примере будет рассмотрено применение регистров расчёта.
Регистр расчёта – это прикладные объекты конфигурации, которыми реализуются сложные механизмы периодичных расчётов. Также регистры расчёта нужны для нахождения в них информации о состоянии расчётов, которые нужно провести. Также в регистрах расчёта находятся временные данные и, конечно же, сами результаты расчётов.
1. Структура регистров расчёта
Все данные внутри регистра расчёта в 1С 8.3 оформлены в виде записей, при этом у каждой записи есть значение по измерениям, а также соответствующее значение ресурса.
Измерение в регистре означает «координаты» нахождения данных, а ресурс – это сама информация. Как пример, пусть внутри регистра расчёта «Начисления» действует структура регистра, как показано на скриншоте ниже:
Рис.1 Структура регистра «Начисление»
А сами записи, которые находятся внутри базы с данными, будут иметь следующий вид:
Рис. 2 Записи регистра расчета «Начисления»
2. Связь с планом по видам расчёта
Также важной особенностью является то, что регистр расчёта имеет связь с каким-то из планов по видам расчёта, который находится внутри прикладного решения. Данная связь означает наличие у каждой из записей в регистре поля «Вид расчёта», при помощи этого поля происходит отслеживание всех влияний записей на другие записи.
3. Периодичность регистров расчета в 1С

Ещё одной значимой чертой регистра расчётов является хранение данных относительно времени, а не только по измерениям, которые были созданы. То есть для каждой записи существует обязательное поле «Период действия». При создании программист может создать наименьшую периодичность регистра, опираясь на которую записи будут вноситься в регистр, как показано на скриншоте далее:
Рис. 3 Периодичность регистров расчета
4. Управление регистратором
В регистре расчёта состояние меняется во время проводки документации. Так что можно сделать вывод, что любая запись в регистре имеет связь с конкретным документом. Это – регистратор, а также номер строчки данного документа. Для управления регистратором во время добавления записей для регистра, а также для их перемены и удаления нужно пользоваться одновременно этими процедурами для каждой из записей, которые относятся к конкретному документу.
5. Соединение регистров расчета в 1С по временному графику
В регистре расчёта есть возможность указания связи с временным графиком работ. Временной график – это некоторый регистр со сведениями, внутри которого есть схема времени по начальным данным, которые используются во время расчётов. Измерения для данного графика – это рабочий график, а также дата, а ресурс графика – это сумма рабочих часов за конкретную дату. При помощи временного графика записи в регистре расчёта могут быть привязаны к рабочему графику, что также позволит получать данные о том, сколько необходимо рабочих часов для проведения тех или иных расчётов.
Как пример, рассмотрим такой временной график работ:
Рис. 4 Временной график работы в 1С
В такой схеме могут быть данные о рабочих часах, как показано ниже:
Рис. 5 Данные о рабочих часах во временном графике работ
6. Перерасчёт в регистре расчетов

В регистре расчёта также могут находится особые объекты – «Перерасчёты», которые выглядят следующим образом:
Рис. 6 Перерасчёт в регистре расчетов
Внутри каждого Перерасчета в регистре расчета находятся данные о записях в регистре, которые больше не актуальны, а также о тех, которые должны быть пересчитаны согласно периоду действия данных.
В регистре расчёта реализована система, которая следит за тем, чтобы записи были уникальными, так что одинаковых записей, которые относятся к одной и той же строке в одном документе быть не может.
7. Механизм вытеснения по периоду действия
В регистре расчёта осуществлён механизм по вытеснению согласно действенному периоду. При помощи данного механизма вытеснения происходит расчёт периода действия записей, основываясь на других записях.
Обычно запись внутри регистра расчёта имеет две даты, которые определяют срок действия данной записи: начальное и конечное число периода действия. Но когда вид расчёта, которому запись принадлежала, был вытеснен другим расчётным видом, период действия этой записи будет только тем, который запрашивался. А фактический период записи можно определить только при помощи анализа каждой из записей по видам расчёта, из-за которых происходит «вытеснение» данного вида расчёта.
8. Зависимость регистра расчета в 1С от базового периода
В регистре расчёта есть ещё один не совсем обычный механизм – это зависимость от базового периода, которая отвечает за получение тех значений базы для записи регистра, которые были получены на основании анализа всех записей, которые находятся внутри регистра расчёта.
Базовый период – это некоторое число, которым необходимо воспользоваться во время счёта результирующей конкретной записи. Базу можно просчитать, анализируя результаты расчётов всех иных записей, от которых у нашей записи есть зависимость.
Есть два вида зависимостей от базового периода: 1. Зависимость от периода регистрации; 2. Зависимость от периода действия.
В первом случае, чтобы получить базу нужно будет выбрать результирующие расчёты по тем записям, которые находятся в базовом периоде по полю «Период регистрации».
Во случае зависимостей по периоду действия, чтобы получить базу нужно будет выбрать записи, которые имеют пересечение периода по факту действия и базового периода текущей записи.
9. Записи по перерасчёту в регистре расчета в 1С
Механизм по формировке записей для перерасчёта производит анализ, на основании которого можно отследить влияние новых записей на старые. Вероятность влияния новых записей на старые определяется анализом взаимовлияний по видам расчёта, а также на основании системы вытеснения согласно периоду действия и базовому периоду.
Результат работы данного механизма – это формировка записей по перерасчёту, в наборе которых находятся данные про записи регистра, которые следует подвергнуть перерасчёту.
10. Функционал регистра расчёта в 1С 8.3
Регистр расчёта в 1С имеет следующие возможности: · выбирать записи, опираясь на регистратор; · получать информацию по графику для записей в регистре, которые соответствуют избранному поиску; · читать, менять записи в набор записей в регистре расчёта; · выбирать записи согласно выбранному интервалу, опираясь на нужные критерии; · получать значения в базе согласно избранным правилам, для базы в регистре расчёта; · получать информацию про записи, которые следует пересчитать.
Специалист компании «Кодерлайн» Анна Лисовая
