Сложни периодични изчисления. Основно измервателно свойство на изчислителния регистър Замяна на стойността в изчислителния регистър 1s 8.2

информационен регистър, който ще съдържа графиката, използвана при изчислението. В нашия случай това е регистърът Насрочени работни дни. В полето Значение на графикатада изберем Работен ден- точно в този ресурс информационен регистърще се съхранява 1, ако денят е работен. В полето Дата на графикизберете измерение на регистъра Дата.

Да поставим знамето Базов период.

Задайте в групата параметри Периодичностпараметър месец.

Да отидем на раздела данни. Нека зададем следните параметри тук, Фиг.


1.11:

ориз. 1.11. Измерванеслужител - вид DirectoryLink.Служители , флагОсновен

инсталиран. В това измерение ще съхраняваме служителя, за когото се прави изчислението. Ресурсслужител РезултатНомер

, дължина 10, точност 2. Именно този ресурс ще съдържа изчислената стойност на типа изчисление, посочен за служителя. Резултатът ще съдържа стойност в рубли, което определя параметрите на типа данни, използвани за него. РеквизитИзходни данни - тип номер, дължина 10, точност 2. В този атрибут ще запишем първоначалните данни за изчислението. Например за типа изчислениеЗаплата тук ще напишем първоначалния размер на заплатата за вида на изчислениетонаграда - процент, който следва да се вземе от базата за изчисление за вида на изчислениетоЗадръжте

, дължина 10, точност 2. Именно този ресурс ще съдържа изчислената стойност на типа изчисление, посочен за служителя. Резултатът ще съдържа стойност в рубли, което определя параметрите на типа данни, използвани за него. - размер на приспадане в рубли.служител График DirectoryLink.GraphsWorks . В този детайл ще съхраняваме график, който съответства на служителя, за когото изчисляваме заплатите. В свойството на този атрибутВръзка с графика - размер на приспадане в рубли. информационен регистър задайте измерванетоРаботно време

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

калкулационен регистър

1.6. Документи за заплати Нека създадем нов документ и да му дадем имеНачисляване на заплата

  1. . Този документ трябва да има следната функционалност:
  2. Възможност за ръчно въвеждане на такси; , ще трябва да създадем документ, който ще създава движения ;

Да отидем на раздела данниФормиране на движения съобразно Нека създадем нов документ и да му дадем имеПрозорци за настройки на свойствата на документа , ориз. 1.12. Нека създадем подробности за документаслужител ДатаРегистрационен период Дата.


, състав на датата -

ориз. 1.12. Нека създадем секция за таблицаНачисления и удръжки

Сега да отидем на раздела Движения. Да забраним оперативно притежаващ документ, ще добавим към регистрите, по които документът генерира движения, регистър Нека създадем секция за таблица.

Кликнете върху бутона Motion Builder. Ще се отвори прозорецът на дизайнера, фиг.


1.13.

ориз. 1.13.

При попълване на полетата, които определят правилата за формиране на движенията, ще ги попълним както следва: BasePeriodStart И BasePeriodEnd тук ще напишем първоначалния размер на заплатата за вида на изчислениетоНяма да попълваме конструктора. Имаме нужда от тези полета за типа изчисление

Кликнете върху бутона , така че ще ги попълним в кода на процедурата за обработка на осчетоводяване за този вид изчисление.добре

в прозореца на дизайнера на движение и вижте какъв код е генерирал:

Процедура ProcessingProcessing(Failure, Mode) //((__CONSTRUCTOR_MOVEMENT_REGISTERS // Този фрагмент е изграден от конструктора. // Ако използвате повторно конструктора, направените ръчно промени ще бъдат загубени!!! За всяка техническа линия на натрупване и задържане от натрупване и задържане Цикъл на натрупване и задържане. Движение. Регистрационен период. Служител = Техническа линия за натрупване и задържане. Диаграма; //))__CONSTRUCTOR_MOVEMENT_REGISTERSEndProcedure Очевидно за всеки ред от табличната част се създава нов елемент от колекцията документиДвижения. Начисления и задържания

, след което се попълват свойствата на новия елемент. Нека модифицираме този код, за да зададем параметритебазов период тук ще напишем първоначалния размер на заплатата за вида на изчислениетоза тип начисляване тук ще напишем първоначалния размер на заплатата за вида на изчислението. За да направим това, ще проверим вида на изчислението, наличен в реда, който се обработва, ако е - Нека модифицираме този код, за да зададем параметрите- зададени параметри

. Нека поставим следния код в цикъла за обработка на редове в табличния раздел:

Ако TechLine of Accural and Retention.Calculation Type = Планове за базови типове изчисления, Начало на основния период = Начало на месеца (Регистрационен период). Movement.BasePeriodEnd=EndMonth(RegistrationPeriod); endIf; Сега нека леко променим частта от кода, която задава началото и краясрок на валидност начисления. В нашия случай трябва да се „оборудва“ само един вид начисляване. За всички останали срокът на валидност ще бъде равен на един месец - началото на периода ще съвпадне с началото на месеца, за който се изчисляват заплатите, краят Movement.BasePeriodEnd=EndMonth(RegistrationPeriod);ще съвпадне с края на месеца. Ето защо, за да запазите потребителския документ Нека създадем нов документ и да му дадем имеот въвеждане на ненужни стойности, ще добавим следния код към нашия модул, като го поставим в цикъла за обработка на редове в табличния раздел:

Ако Movement.CalculationType=PlansCalculationTypes.Main.Absenteeism Then Movement.ActionPeriodStart =TexLineAccrualAndRetention.StartDate;

Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate;

В противен случай Movement.ActionPeriodStart = BeginningofMonth(RegistrationPeriod);

Movement.ActionPeriodEnd = EndMonth(RegistrationPeriod); endIf;Този код ще замени редовете Movement.ActionPeriodStart = AccrualAndDeductionTechLine.StartDate; Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate; След всички тези стъпки документът, когато бъде публикуван, ще добави данни за изчисление към регистъра за изчисления. Нека да го проверим. Нека стартираме нашата конфигурация в режим 1C:Enterprise, създайте нов документ.

ТРЗ задайте измерването, попълнете го с данни и проверете как са отразени тези данни калкулационен регистърслед

извършване на документа Movement.ActionPeriodStart = AccrualAndDeductionTechLine.StartDate;Преди да създадете истински документ за заплати, трябва да влезете в директорията

поне няколко графики и попълнете регистър за тях

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

Основната цел на нашия образователен пример е да покаже принципите, чрез които се решават изчислителните проблеми, така че тук се фокусираме конкретно върху основните принципи, без да обръщаме внимание на оптималността на кода или неговата производителност. След всички тези стъпки документът, когато бъде публикуван, ще добави данни за изчисление към регистъра за изчисления. Нека да го проверим. Нека стартираме нашата конфигурация в режим 1C:Enterprise, създайте нов документНека добавим към процедурата

команда за запис на генерирани движения:

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

Тази команда трябва да следва командата за затваряне на цикъла за формиране на движение. РеквизитНека добавим блок за изчисляване на задържането към кода. В съответствие с логиката на посочените по-рано видове изчисления, тук само копираме ЗаЗадържа Ресурс.

V

За всяко движение от Movement.AccrualAndRetention Cycle If Movement.Type of Calculation=PlansTypes of Calculation.Main.Retention Then Movement.Result=Movement.InitialData;

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

Сега нека започнем да изчисляваме заплатата. За всяко движение от Movement.AccrualsAndDeductions Cycle If Movement.CalculationType=PlansCalculationTypes.Basic.Salary Then Plan = Movement.GetGraphData(CalculationRegisterPeriodType.ActionPeriod);Факт = Movement.GetGraphData(CalculationRegisterPeriodType.ActualActionPeriod); Преди да продължите да конфигурирате настройките Movement.Result = Movement.InitialData*Act.WorkingDay/Plan.WorkingDay; endIf; EndCycle; Движения.НачисленияИУдържания.Запис();Метод GetDataGraphicsзаписи връща данни от диаграмата под формата на таблица със стойности и този метод се извиква с параметър типТип регистър на изчисленията Период . Ако го извикате с изгледа на периода.

ПериодДействие - данните ще бъдат върнати по график, отразяващ в нашия случай пълния брой работни дни. Извикване на метод с тип период ActualPeriodAction Работен денвръща дадените данни информационен регистървидове изместване на изчисляване

Запис от тип факт ви позволява да получите достъп до ред в таблица със стойности. И чрез записване

Факт. Работен ден

Ресурси=Нов масив(1);

Ресурси="AccrualsAndDeductions.Result"; Размери = Нова структура ("Служител", "НачисленияИЗадържания.Служител");За всяко движение от Movement.AccrualsAndRetentions Cycle If Movement.CalculationType=PlansCalculationTypes.Main.Premium Then DataBase=Movement.GetBase(Resources, Dimensions); Movement.Result = Movement.InitialData*BaseData.Result/100; endIf; Преди да продължите да конфигурирате настройките EndCycle; Движения.НачисленияИУдържания.Запис();Първо, ще подготвим параметрите, които да бъдат предадени на метода GetBase. Това ще бъде масив Преди да продължите да конфигурирате настройките (Ресурси, което в нашия случай съдържа името на основния ресурс във формат"RegisterName.ResourceName"

. Подготвяме и конструкцията Измервания. Добавяме нов елемент към структурата, чието име съвпада с името на измерението Размери = Нова структура ("Служител", "НачисленияИЗадържания.Служител");"служител" Преди да продължите да конфигурирате настройките), а стойността съдържа списък с измерения (във формат тук ще напишем първоначалния размер на заплатата за вида на изчислението"RegisterName.DimensionName" Размери = Нова структура ("Служител", "НачисленияИЗадържания.Служител");), в нашия случай това е едно измерение. Тези данни ще се използват за получаване на базата за изчисляване на премията.

В цикъла записваме в променлива Преди да продължите да конфигурирате настройкитеБази данни Ресурсрезултати от изпълнението на метода

за текущия запис

(т.е. за типа изчисление

). Метод

връща таблица със стойности, чиито редове съхраняват данните, поискани при извикване на метода.

Нека си припомним как се нарича ресурсът

, в който се съхраняват резултатите от изчисленията - това е ресурс

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

План на видовете изчисления- основната характеристика на регистъра. Изберете един от обектите от типа "План на видове изчисления".

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

- размер на приспадане в рубли. Срок на валидност. Имотът представлява връзка към информационния регистър, който описва времевата схема на изходните данни, включени в изчислението. Графикът трябва да бъде посочен за тези изчисления, които зависят от първоначалните данни, разпределени в рамките на периода на валидност съгласно определено правило. Например, това може да бъде график за записване на работните часове на организацията, разбити по дни, записване на часовете за лекции, разбити по часове и т.н.

Значение на графиката- имотът е наличен, ако имотът е зададен Срок на валидност. В свойството се избира ресурсът на информационния регистър, определен в свойството - размер на приспадане в рубли..

Дата на график- имотът е наличен, ако имотът е зададен Срок на валидност. В свойството изберете измерението на информационния регистър, дефиниран в свойството - размер на приспадане в рубли.и имащ тип Дата. Стойността на това свойство се използва за свързване към стойностите на ресурса на информационния регистър, зададен в свойството Стойност на диаграмата.

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

Периодичност- определя периода, с който се записват движенията и в рамките на който движенията могат да си влияят едно на друго (за регистри, които поддържат период на действие).

Преизчисления- подчинени регистрови обекти, които ви позволяват да задавате правила за взаимно влияние на движенията на регистъра. В палитрата със свойства на обекта, в групата Relationship in Property Измерванерегистърът определя основното измерение на текущия регистър, което трябва да се преизчисли при промяна на данните на водещите регистри, посочени в свойството данниводещи регистри. Например, преизчисляването на размера на приспадането за физическо лице ще се формира, когато начисленията (заплати, бонуси) се променят.

Ако свойството е зададено Базов период, тогава генерирането на данни за преизчисление ще се извърши автоматично. Ако свойството не е зададено, генерирането на данни за преизчисление трябва да се извърши ръчно от потребителя (по време на проектирането трябва да се разработи специална форма за въвеждане на преизчисления и механизъм за тяхното изпълнение).

В раздела „Други“ задавате режима на блокиране на обекти (автоматичен или контролиран) и настройвате функцията за пълнотекстово търсене за обекти от този тип.

Изчислителни регистри

Изчислителните регистри са предназначени за съхраняване на изчислителни записи (междинни и крайни резултати). Регистрационните формуляри ви позволяват да преглеждате записите за сетълмент. Например фигурата по-долу показва формата на главния регистър на начисленията.

Както можете да видите, резултатите от изчисляването на основните начисления (заплата, отпуск) и т.н. се съхраняват в този регистър за всяко лице. Двойното щракване върху запис отваря документа на записващото устройство, който е въвел този запис в регистъра на изчисленията.

Всеки селищен регистър се основава на конкретен план на видовете селища. При редактиране на регистъра на изчисленията се посочват и другите му характеристики, например честотата на изчисленията, поддръжката на механизма за получаване на базата, поддръжката на периода на валидност (за механизма за изпреварване), графици, по които ще бъдат периодите на валидност контролирани и др.

Структурата на изчислителния регистър определя каква информация и в какви раздели ще се съхранява в регистъра. Разработчикът определя размери, ресурси и подробности за регистъра:

Размерите са секции от съхранена информация. Например регистърът на главните начисления ще има измеренията Индивид, Организация, Подразделение, Позиция, докато регистърът на данъците ще има само две измерения: Индивид и Организация.

Ресурси - резултати от изчисление, например ресурсът Начислени за регистър Основни начисления, ресурсът Удържани за регистър Данъци и др. Ресурсите могат да бъдат само от числов тип.

Детайлите са допълнителна характеристика на изчислителния запис. Подробностите могат да бъдат от почти всякакъв тип, съхранявани в базата данни. Например подробностите Дни и часове за главния регистър на начисленията, подробностите DocumentBase за регистъра на удържаните данъци. Фигурата по-долу показва структурата на регистъра за изчисляване на начисленията на служителите.

Графики

Ако регистърът има отметка в квадратчето „Период на валидност“, тогава можете да попълните свойствата „График“, „Стойност на график“ и „Дата на график“. Всъщност графиката е непериодичен регистър на информация, който описва разпределението във времето на първоначалните данни за изчислението. Например, това може да бъде работният график на организацията, разбит по работни дни и часове, продължителността на работните смени, графикът на часовете за лекции и др.

По-долу е даден пример за информационен регистър, който служи като работен график.

Преизчисления

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

Например, когато начисленията на служител се променят, данъците трябва да бъдат преизчислени. След това, за типа изчисление „NDFL“, начисленията ще бъдат водещите типове изчисления, които са конфигурирани по отношение на типовете изчисления в раздела „Водещи“.

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

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

Примерът по-долу показва как работи преизчисляването:

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

По този начин преизчисляването е таблица, която съхранява стойностите на размерите, за които е необходимо преизчисляване. В допълнение към измерванията, тази таблица съхранява типове изчисления и връзки към документи за запис. Използвайки таблицата за преизчисляване, можете да определите кои записи са станали неуместни и изискват преизчисляване (или поне по-внимателно внимание).

Заявки към изчислителни регистри

Заявките към данните от регистъра на изчисленията ви позволяват да извлечете информация за извършените изчисления. Можете да получите достъп до следните изходни таблици в заявки:

  • основна таблица на записи в регистъра на изчисленията,
  • таблица с действителния период на валидност,
  • таблица за преобразуване.

С помощта на механизма за заявки можете да групирате резултатите от изчисленията в необходимите секции, да изчислявате суми и да избирате само необходимите записи за изчисления. Това ви позволява да генерирате цялата гама от необходими отчети, например ведомости за заплати, лични сметки, извлечения за заплати и др. Механизмът на заявките е описан подробно в главата „Заявки“. Списъкът с полета в изходните таблици на регистъра на изчисленията е даден в документацията.

Изчислителни регистри- това са обекти за конфигурация на приложението. Те се използват в механизма на сложни периодични изчисления и служат за съхраняване на записи за определени видове изчисления, които трябва да бъдат извършени, както и за съхраняване на междинни данни и резултатите от самите изчисления.

Структура

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

GetBaseрегистрите описват секциите, в които се съхранява информация, и ресурсирегистрите директно съдържат съхранената информация. Например за калкулационен регистър Начисления, който има следната структура:

Записите, съхранявани в базата данни, ще изглеждат така:

Връзка с калкулационните видове план

Регистърът за изчисление е свързан с един от плановете за тип изчисление, които съществуват в приложното решение. Тази връзка кара всеки запис в регистъра да има поле Вид изчисление, благодарение на които регистрационните механизми могат да проследяват взаимното влияние на изчислителните записи един върху друг.

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

Изчислителният регистър съхранява данни не само по отношение на създадените измервания, но и по отношение на времето. Това е причината за съществуването на още едно задължително поле за всеки запис в регистъра на изчисленията - Срок на валидност. Когато създава регистър за изчисления, разработчикът може да посочи минималната честота, с която ще се въвеждат записи в регистъра:

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

Промяна в състоянието на регистъра на изчисленията обикновено възниква при осчетоводяване на документ. Следователно всеки запис в регистъра е свързан с определен документ - регистратор и номера на реда на този документ. Добавянето на записи в регистъра, промяната им и изтриването им е възможно само едновременно за всички записи, свързани с един документ.

Връзка с времевата линия

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

Например времева линия със следната структура:

Преизчисления

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

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

Уникалност на записите

Системата осигурява контрол върху уникалността на записите, съхранявани в изчислителния регистър. Следователно регистърът на изчисленията не може да съдържа два записа, свързани с един и същ ред на един и същи документ.

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

Предимство по срок на валидност

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

По принцип записът в регистъра за сетълмент съдържа две дати, които определят периода, през който записът е валиден. Този период се нарича период на валидност на записа. Въпреки това, ако типът изчисление, към който принадлежи даден запис, може да бъде заменен от друг тип изчисление, тогава периодът на валидност на дадения запис е само „заявен“ период, тоест „ние искаме записът да е валиден в този период .” В действителност действителният период на валидност на този запис може да бъде определен само след анализ на всички записи от видове изчисления, които заместват този тип изчисления по период на валидност. Действителният период на валидност ще бъде набор от периоди, които са подмножество от първоначалния период на валидност на записа. Ако не се намери запис, който да измества дадения по срок на валидност, тогава действителният период на валидност на този запис ще бъде равен на неговия период на валидност. Друг краен случай на доживотно изгонване е, когато даден запис е напълно изместен от други записи. В този случай няма да има действителен срок на валидност на записа.

Всеки запис в регистъра за сетълмент съдържа типа сетълмент, за който се отнася. За да определи кои записи трябва да заменят даден запис по период на валидност, регистърът на заплатите използва връзка към плана за видовете заплати, който описва взаимното влияние на видовете заплати един върху друг. Използването на тази връзка позволява на регистъра за заплати да определи действителния период на валидност на всеки запис.

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

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

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

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

  • зависимост от срока на годност;
  • зависимост от периода на регистрация.

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

В случай на зависимост от периода на регистрация, за да се получи базата, ще бъдат избрани резултатите от изчислението на онези записи, които попадат в базовия период на този запис по стойността на тяхното поле „Период на регистрация“.

Най-сложната версия на зависимостта от базовия период е случаят, когато свойството „Периодът на валидност е базовият период“ е зададено за вида на изчислението на този запис. Това свойство означава, че базовият период на този запис ще се използва не базовият период, който е посочен в съответните полета на записа, а действителният период на валидност на записа, получен в резултат на работата на механизма за изваждане за срока на валидност и който в общия случай е съвкупност от няколко срока.

Генериране на записи за преизчисление

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

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

Функционалност на регистъра на изчисленията

Основната функционалност, която регистърът за изчисления предоставя на разработчика, е:

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

Както знаете, когато четете данни, платформата 1C има достъп до таблици на база данни. Но за регистрите платформата 1C, базирана на реални таблици, може да генерира виртуални маси, които не се съхраняват физически в базата данни. Това позволява на разработчика, вместо да прави сложна заявка към реална таблица, незабавно да получи данни от виртуална с проста заявка. Освен това елиминира възможните грешки. Следователно винаги трябва да използвате виртуални таблици, когато е възможно. Особено при преминаване на изпита за 1C: Специалист. Нека да разгледаме различните типове регистри и да видим какви виртуални таблици предлага платформата за всеки тип регистър.

Информационни регистри

Платформата генерира виртуални таблици само за периодични информационни регистри. Предлагат се следните видове:

  • Парче от Първия
  • Парче от последния

Регистри за натрупване

За регистрите за натрупване наборът от предоставени виртуални таблици също зависи от вида на регистъра. Както знаете, има два вида регистри за натрупване: Остатъци BasePeriodStart Революции

Регистър за натрупване на баланс

Налични са следните виртуални маси

  • Остатъци
  • Революции
  • Остатъци и обороти

Регистър за натрупване на обороти

Налична е само една виртуална маса

  • Революции

Изчислителни регистри

Тук в зависимост от настройките са налични и следните виртуални маси:

Счетоводни регистри

Счетоводните регистри имат най-голям набор от виртуални таблици

  • Остатъци
  • Революции
  • ОборотDtKt
  • Остатъци и обороти
  • Подконто
  • MovementsSubconto

Но скоростта на достъп до счетоводните регистри е най-ниска. Следователно, ако е възможно да се получат същите салда или обороти с помощта на регистри за натрупване, тогава те трябва да се използват.

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

Настройки на обекта за преизчисляване

Информацията за записите, изискващи преизчисляване, може да се съхранява в различни подробности.

Записите за разпределение съдържат предварително дефинирани полета:

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

За по-точно идентифициране на остарели записи в регистъра за сетълмент, можете да въведете измервания на разпределението. Това ще ви позволи да стесните списъка със записи, които изискват преизчисляване.

Нека разгледаме един пример.

Ако регистърът за изчисления съхранява данни за начислената основна заплата на служителите на организацията и по този начин регистърът за изчисления има измерение „Служител“, тогава преизчисляването може да има и измерение „Служител“. Това ще доведе до факта, че записите за преизчисляване ще означават необходимостта от преизчисляване на тези записи в регистъра, които принадлежат на конкретен регистратор, имат определен тип изчисление и съдържат връзка към конкретен служител.

Таблицата за преобразуване може да се попълва автоматично от системата въз основа на настройките, направени по време на конфигурацията. Автоматичното проследяване на записите, за които се изисква ревизия на резултата, е основната цел на обекта за преизчисляване.

Размерите на разпределението са един от инструментите, които ви позволяват да конфигурирате това автоматично попълване на разпределение.

Това се прави с помощта на свойствата на измерението за разпределение:

  • Размерност на регистъра – връзка към размерността на регистъра за изчисление „родител“, на който е подчинено преизчислението.
  • Данни от водещи регистри – връзки към измервания и подробности за регистри за водещи изчисления.
За да опишем особеностите на настройката на измерванията за преизчисляване, ще се споразумеем за следните условия:
  • Основният регистър е регистърът на изчисленията, на който е подчинено преизчисляването и който „следи“ за уместността на резултатите.
  • Водещите регистри са изчислителни регистри, чиито записи влияят върху резултата от изчислението на основните записи в регистъра.
Ако системата вече има основни записи в регистъра, тогава всяка промяна в състава на водещите записи в регистъра трябва да доведе до появата на записи за преизчисляване. Тези записи за преизчисляване ще сигнализират за необходимостта от преизчисляване на един или друг набор от записи в главния регистър.

За да се опише точно какви промени във водещите записи в регистъра ще доведат до появата на преизчисления, се използват преизчислени измервания. За да посочите необходимостта от преизчисляване на записи за същия служител, за който са въведени (променени) водещи регистрационни записи, направете следното. Връзка към измерението „Служител“ на главния регистър се въвежда в свойството „Измерение на регистър“, а връзките към измерението „Служител“ на всички водещи регистри се въвеждат в свойството „Водещи данни от регистъра“. С тази настройка, в случай на промяна в състава на записите на водещия регистър (т.е. при запис на съответния набор от записи), ще се случи следното:

  • Анализиран е набор от водещи регистрационни записи (да кажем, че наборът от записи съдържа записи за служител Иванов, които имат определен период на валидност (например март)
  • Главният регистър ще бъде поискан автоматично
  • Ако той вече съдържа записи, според Иванов, и техният резултат потенциално зависи от записите на водещия регистър (какво означава „потенциално зависи...“ ще бъде обсъдено по-долу), тогава в преизчисляването ще бъдат въведени редове със следните данни:

В този случай редовете ще бъдат въведени само ако такива редове вече не са в таблицата за преобразуване.

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

Настройки на плана за тип изчисление, свързани с разпределенията

Зависимостта на някои записи в регистъра от други се изгражда чрез настройките на плановете за видове изчисления. За това се използват следните понятия:

  • Вариант на зависимост от базата – свойство на плана на видове изчисления;
  • Основни планове на видове калкулации – свойство на плана на видове калкулации;
  • Водещи видове калкулация – свойство на вида калкулация;
  • Базов период – подробности за записа в регистъра на изчисленията;
  • Срок на валидност – подробности за записа в калкулационния регистър;
  • Период на регистрация – подробности за записа в регистъра на изчисленията.
Да кажем, че на главния регистър на изчисленията е присвоен план за тип изчисление „Основен“, а на водещия регистър е присвоен план за тип изчисление „Спомагателен“. Тогава основният план на типовете изчисления трябва да зададе следните свойства на групата свойства "Изчисление":
Зависимост от базата – „по срок на валидност” или „по период на регистрация”;
Основни планове за видове калкулации – план за видове калкулации „Спомагателни”.

Това ще означава, че основният регистър за изчисление, който се държи според плана за тип изчисление „Основен“, зависи от онези регистри, към които е присвоен планът за тип изчисление „Спомагателен“ (т.е. в нашия случай водещият регистър за изчисление) и при в същото време вписванията Основният регистър зависи от главните записи по период на валидност или по период на регистрация.

Когато настройвате план за типове изчисления „Основни“, неговите типове изчисления (например типа на изчисление „Допълнителна надбавка“) трябва да бъдат зададени в списъка с водещи типове изчисления за видовете изчисления на плана „Спомагателни“ (например видове изчисления „Лично доплащане” и „Месечно доплащане”). Това ще означава, че резултатите от изчисляването на главните записи в регистъра с типа изчисление „Допълнителна надбавка“ зависят от резултатите от водещите записи в регистъра с видовете изчисление „Лично доплащане“ и „Месечно доплащане“ и трябва да бъдат преизчислени в случай на всяка промяна (поява или изтриване).

В същото време, за да разбере кои записи трябва да бъдат преизчислени, системата ще сравни записите на водещите и главните изчислителни регистри:

  • по вид изчисление,
  • когато периодът на валидност (или периодът на регистрация) на водещите записи в регистъра попада в базовия период на записите в основния регистър
  • и чрез измерението Служител, което беше описано по-горе.
Този материал ще ви позволи да направите настройки, които ще доведат до автоматично попълване на таблици за преобразуване. За някои задачи автоматичното изпълнение може да не е достатъчно. В такива случаи трябва да генерирате записи за разпределение, като използвате вградения език на системата. Това е разгледано подробно в раздела „Въвеждане на разпределения с помощта на вградения език“.