ВИДИ РОЗРАХУНКІВ ДОКУМЕНТА ТАБЕЛЬ

771 ВИД РОЗРАХУНКУ ОКЛАД_2

Виконаємо весь ланцюжок завдання властивостей ВР Оклад_2, що включає також і написання коду процедури отримання результату

Попередньо, однак, нам буде потрібно створити групу ВР ВсеНачісленія_2, в яку ми будемо включати розрахунки-нарахування, що обкладаються ПДФО

Увійдемо до конфігурацію, додамо групу ВР ВсеНачісленія_2 (рис 753), включивши в неї зазначені на рис 754 ВР

Рис 753 Додаємо групу ВР ВсеНачісленія_2 в конфігурацію системи

Рис 754 Група ВР ВсеНачісленія_2

Розкриємо далі вікно завдання властивостей ВР Оклад_2 (рис 755)

-••           Рис 755 Вікно завдання властивостей ВР Оклад_2

Скориставшись кнопкою Налаштування витіснення, задамо ВР Оклад_2 як самовитесняющійся (рис 756)

Рис 756 Тепер ВР Оклад_2 є самовитесняющімся

Допишу м в модуль ВР наступний код:

процедура ПровестіРасчет () / / Процедура модуля ВР Оклад_2

/ / Процедура виконується при проведенні розрахунку з ВР Оклад_2 перем всегоЧасовПоКалендарю, нтп, КТП

/ / На випадок непередбаченої помилки

якщо ПустоеЗначеніе (ОбектКалендарь) = 1 тоді

Повідомити (Співробітник + СокрП (ОбектНаіменованіе) + не має календаря”) повернення

КонецЕсли

нтп = НачалоТекущегоПеріода () КТП = КонецТекущегоПеріода ()

всегоЧасовПоКалендарю = ОбектКалендарьЧасов (нтп, КТП) якщо всегоЧасовПоКалендарю> 0 тоді

результат = ОбектОкладПолучіть (КТП) * всегоЧасов / всегоЧасовПоКалендарю інакше / / На випадок непередбаченої помилки

Повідомити (У календарі співробітника + СокрП (ОбектНаіменованіе) + немає робочих днів”)

КонецЕсли

КонецПроцедури / / ПровестіРасчет

Зауваження:

\i     Значення періодичного реквізиту Оклад, повертається методом довідника Отримати Просте використання ОбектОклад дасть нульовий результат

2 Весь код, якби не перевірки, можна було б розмістити в одному операторі:

результат = ОбектОкладПолучіть (КонецТекущегоПеріода ()) * всегоЧасов / ОбектКалендарьЧасов (НачалоТекущегоПеріода (), КонецТекущегоПеріода ())

ВР НДФЛ_2 також зробимо самовитесняющімся Раніше цей ВР ми включили в групу ВР ВсеУдержанія_2, яку спожили при оцінці початкового сальдо Нам же для розрахунку податку знадобиться група ВР ВсеНачісленія_2 Її присутність скоротить код процедури обчислення результату:

процедура ПровестіРасчет () / / Процедура модуля ВР НДФЛ_2

/ / Процедура виконується при проведенні розрахунку з ВР НДФЛ_2 перем ЖЗ, нтп, КТП, податок

ЖЗ = СоздатьОбект (ЖурналРасчетовЗарплата_2) нтп = жзНачалоТекущегоПеріода ()

КТП = жзКонецТекущегоПеріода () податок = 0 жзВибратьПеріодПоОбекту (Обєкт, нтп) поки жзПолучітьЗапісь () = 1 цикл

якщо жзВидРасчВходитВГруппу(ГруппаРасчетовВсеНачисления_2) = 1 тоді

податок = податок + жзрезультат КонецЕсли

конецЦікла / / Поки

/ / Константа СтавкаНалога є періодичною

результат = податок * КонстантаСтавкаНалогаПолучить (КТП) / 100 КонецПроцедури / / ПровестіРасчет

Зауваження  Буде невірним замість методу жзВибратьПеріодПоОбекту (Обєкт, нтп) використовувати метод жзВибратьЗапісіПоОбекту (Обєкт, нтп, КТП)

оскільки останній вибирає записи, період дії яких лежить міжнтп і КТПВодночас метод ВибратьПеріодПоОбекту вибирає всі записи, зареєстровані в поточному періоді і діючі як у поточному, так і в майбутніх або минулих періодах

Щоб процедура працювала, в конфігурацію необхідно додати періодичну числову константу СтавкаНалога, поклавши її рівною, наприклад, 13% Останнє можна зробити, запустивши після створення константи наступну процедуру:

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба КонстантаСтавкаНалогаУстановить (ТекущаяДата (), 13)

КонецПроцедури / / Виконати

772 ВИД РОЗРАХУНКУ ВБАНК_2

Самовитесняющійся ВР ВБанк_2 оцінюється наступною процедурою: процедура ПровестіРасчет () / / Процедура модуля ВР ВБанк_2

/ / Процедура виконується при проведенні розрахунку з ВР ВБанк_2

/ / Формула розрахунку:

// банк = Ціла частина (Початкове сальдо + Усі нарахування Всі утримання) перем ЖЗ, нтп, ВР, банк

ЖЗ = СоздатьОбект (ЖурналРасчетовЗарплата_2) нтп = жзНачалоТекущегоПеріода ()

банк = 0

/ / Див зауваження щодо методу ВибратьЗапісіПоОбекту в попередньому розділі жзВибратьПеріодПоОбекту (Обєкт, нтп)

поки жзПолучітьЗапісь () = 1 цикл ВР = жзВідРасч

якщо (ВРВходітВГруппу (ГруппаРасчетовВсеНачисления_2) = 1) або (ВР = ВідРасчетаНачСальдо_2) тоді

банк = банк + жзрезультат

іначеЕслі ВРВходітВГруппу (ГруппаРасчетовВсеУдержания_2) = 1 тоді банк = банк жзрезультат

КонецЕсли конецЦікла / / поки

результат = Цел (банк) / / Для запису в ЖЗ беремо цілу частину результату КонецПроцедури / / ПровестіРасчет

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*