ФОРМУВАННЯ розрахункові листки

Так само як і при розрахунку зарплати, ми створимо процедуру ЛістокСотрудніка, формуючу розрахунковий листок (РЛ) для одного співробітника, і будемо використовувати її потрібне число раз, коли завдання вирішується для обраного підрозділу

Висновок РЛ будемо здійснювати в спеціально створену у формі списку ЖЗ табли

цу, якій дамо імя РЛ (рис 779)

Рис 779 Зразок для розрахункового листка

З зразка видно, що для виведення нам знадобляться змінні окл, міс, ВР, рез, годинник, начудив, поч, уд, вип, вБанк, сальдоНачісальдоКонЇх сенс розяснює рис 779

Алгоритмотримання РЛ наступний:

1 Вивести заголовок РЛ і заголовок таблиці нарахувань

2 Сформувати списки тЗначНачі тЗначУдз нарахуваннями та утриманнями співробітника, попутно обчислюючи значення змінних нач, уд, вип, вБанк, сальдоНач і сальдоКон

3 Вивести заголовок таблиці нарахувань, а потім, використовуючи таблицю тЗначНач, і самі нарахування

4 Вивести заголовок таблиці утримань, а потім, використовуючи таблицю тЗначУд,і самі утримання

5 Вивести підсумкову частину РЛ

Цей алгоритм реалізує процедура ЛістокСотрудніка, що викликається з процедури ПечатьРЛ Після програм на рис 780 наведено приклад сформованого РЛ

процедура СоздатьТЗнач (тЗнач) далі / / Допоміжні процедури формування РЛ процедура НовСтрокаВТЗнач (тЗнач, міс) далі

процедура ВиводНачУд (табл, тЗнач, начудив) далі

/ / Процедура ЛістокСотрудніка формує РЛ одного співробітника

/ / Оскільки процедура присутній в модулі форми списку ЖЗ,

/ / То всі методи ЖР викликаються без префікса

процедура ЛістокСотрудніка (Обєкт, табл, тЗначНач, тЗначУд) перем поч, уд, вип, вБанк, сальдоНач, сальдоКон, міс

/ / Ініціалізація змінних

поч = 0 уд = 0 вип = 0 вБанк = 0 сальдоНач = 0 сальдоКон = 0

/ / Памятаємо, що Оклад це періодичний реквізит довідника Сотруднікі_2 окл = ОбектОкладПолучіть (КонецТекущегоПеріода ())

/ / При виведенні застосовуємо задані за умовчанням параметри таблиці

/ / Для їх зміни слід звернутися до методу Опції

/ / Виводимо секцію Тема

таблВивестіСекцію (Заголовок)

/ / Відкриваємо вибірку розрахунків обєкта, зареєстрованих в поточному періоді ВибратьПеріодПоОбекту (Обєкт)

поки ПолучітьЗапісь () = 1 цикл

міс = ДатаМесяц (ДатаНачала)

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

/ / Додаємо в тЗначНач номер місяця, ВідРасч, Результат і ВсегоЧасов НовСтрокаВТЗнач (тЗначНач, міс)

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

уд = уд + Результат

/ / Додаємо в тЗначУдномер місяця, ВідРасч, Результат і ВсегоЧасов НовСтрокаВТЗнач (тЗначУд, міс)

іначеЕслі ВідРасч = ВідРасчетаНачСальдо_2 тоді сальдоНач = Результат

інакше / / Вид розрахунку ВБанк_2

вБанк = Результат КонецЕсли

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

вип = сальдоНач + поч уд / / Покладається до виплати

У сальдоКон = вип вБанк / / Сальдо на кінець місяця ВиводНачУд (табл, тЗначНач, 1) / / Висновок нарахувань ВиводНачУд (табл, тЗначУд, 2) / / Висновок утримань таблВивестіСекцію (Пусто) / / Порожній рядок в РЛ сальдоНач = Формат (сальдоНач, “4-102)

таблВивестіСекцію (снача) / / Виводимо сальдо на початок місяця

вип = Формат (вип, 4-102) / / Форматуємо дані поч = Формат (поч, 4-102)

уд = Формат (уд, 4-102)

вБанк = Формат (вБанк, Ч-102) таблВивестіСекцію (Підсумок)

сальдоКон = Формат (сальдоКон, 4-102)

таблВивестіСекцію (Сконе) / / Висновок сальдо на кінець місяця

/ / Забороняємо редагування результуючої таблиці таблТолькоПросмотр (1)

/ / У методі Показати задаємо порожній заголовок вікна з результуючої таблицею таблПоказать (“)

КонецПроцедури / / ЛістокСотрудніка

процедура ПечатьРЛ ()

перем співр, сЗначСотр, ин, табл, тЗначНач, тЗначУд

// тЗначНач, тЗначУдтаблиці значень для нарахувань та утримань співробітника ОчістітьОкноСообщеній ()

СоздатьТЗнач (тЗначНач) СоздатьТЗ поч (ТЗ начУ д)

табл = СоздатьОбект (Таблиця)

/ / Звяжемо змінну табл з таблицею РЛ, що містить макет розрахункового листка таблІсходнаяТабліца (РЛ)

якщо хто = 1 тоді / / РЛ обраного співробітника

Стан (Формуємо розрахунковий листок співробітника + ОбектНаіменованіе) ЛістокСотрудніка (Обєкт, табл, тЗначНач, тЗначУд)

/ / Висновок РЛ співробітників обраного підрозділу

/ / Використовуючи метод ЖР ВибратьПоЗначенію, занесемо (без повторів) значення

/ / Атрибута Обєкт розрахунків обраного підрозділу в список сЗначСотр

інакше

Стан (Формуємо список співробітників підрозділу + ОбьектРодітель)

/ / Код процедури СоздатьСЗнач см в попередньому розділі СоздатьСЗнач (сЗначСотр) / / Формуємо список співробітників підрозділу для ін = 1 по сЗначСотрРазмерСпіска () цикл

співр = сЗначСотрПолучитьЗначение (ін)

Стан (Формуємо розрахунковий листок співробітника + сотрНаіменованіе) ЛістокСотрудніка (співр, табл, тЗначНач, тЗначУд)

/ / Підготовка таблиць значень для РЛ наступного співробітника тЗначНачУдалітьСтрокі ()

тЗначУдУдалітьСтрокі ()

конецЦікла / / Для

/ / Поправляємо ятати відбору УстановітьОтбор (Батько, сотрРодітель)

КонецЕсли

КонецПроцедури / / ПечатьРЛ

/ / Створює таблицю значень з чотирма стовпцями процедура СоздатьТЗнач (тЗнач)

/ / Таблиця значень для нарахувань (утримань) співробітника тЗнач = СоздатьОбект (ТабліцаЗначеній)

/ / Формуємо стовпчики таблиці значень Опускаючи імена необовязкових параметрів,

/ / Зберігаємо розділяють їх коми тЗначНоваяКолонка (Місяць, Кількість,,,, 2) тЗначНоваяКолонка (ВідРасчета, ВідРасчета,,,,) тЗначНоваяКолонка (Сума, Рядок,,,, 10) тЗначНоваяКолонка (Годинник, Рядок,,,, 3)

КонецПроцедури / / СоздатьТЗнач

/ / Додаємо в таблицю значень номер місяця, ВР, Результат і ВсегоЧасов процедура НовСтрокаВТЗнач (тЗнач, міс)

тЗначНоваяСтрока () / / Додаємо новий рядок

/ / Визначаємо, використовуючи атрибут ідентифікатор стовпця, осередки нового рядка тЗначМесяц = ​​міс

тЗначВідРасчета = ВідРасч

/ / Форматуємо дані

тЗначСумма = Формат (Результат, Ч-102) тЗначЧаси = Формат (ВсегоЧасов, Ч-30)

КонецПроцедури / / НовСтрокаВТЗнач

/ / Виводить в РЛ, якщо начудив = 1, таблицю з нарахуваннями або з утриманнями, якщо начудив = 2

процедура ВиводНачУд (табл, тЗнач, начудив)

/ / Виводимо секцію табЗаг із заголовком для таблиці нарахувань (утримань) таблВивестіСекцію (табЗаг)

тЗначВибратьСтрокі ()

поки тЗначПолучітьСтроку () = 1 цикл міс = тЗначМесяц

ВР = тЗначВідРасчета рез = тЗначСумма

годинник = тЗначЧаси таблВивестіСекцію (Розрахунок)

конецЦікла / / Поки КонецПроцедури / / ВиводНачУд

Підприємство АТ тритію

Розрахунковий листок

Підрозділ 03 Цех Безверхний Ігор Петрович Табельний номер 301 Оклад 3100 руб

Нарахування

Міс

Вид нарахування

Сума

Годинники

12

12

12

1

12

Оклад

Премія сумою

Премія коефіцієнтом Премія коефіцієнтом Премія 1234

310000

70000

165000

165000

355000

165

165

165

Утримання

Міс

Відудержанія

Сума

Годинники

12

ПДФО

138450

Залишок минулого місяця 020

Нараховано 1065000

Утримано 138450

Покладається до виплати: 926570

Перераховано в банк 926500

Залишок на кінець місяця 070

Рис 780 Розрахунковий листок Безверхнего І П

Зауваження   Формат Ч-102, спожитий у вбудованій функції Формат, забезпечить висновок ненульового значення на поле довжиною в 10 символів з двома знаками після десяткової крапки Якщо перший параметр функції Формат дорівнює нулю, то замість нуля згідно формату Ч-102 виводитиметься символ –

Джерело: Бартеньев О В 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>

*

*