МОДУЛЬ ДОКУМЕНТА

Містить зумовлену процедуру ОбработкаПроведенія Вона для кожного співробітника табличній частині заносить в ЖЗ розрахунки Оклад_2, ПДФО 2 і ВБанк_2, а також обчислює результат кожного введеного розрахунку Оскільки запроваджувані розрахунки повинні оновлюватися при перепроведенні, то метод їх введення ВвестіРасчет, а не ЗапісатьРасчет Дати початку та закінчення всіх розрахунків збігаються з датами початку і кінця поточного періоду ЖЗ Функція НайтіХозОп повертає повязану з ВР господарську операцію Ці звязки зберігає довідник ХозОпДляВР (розд 737) Число відпрацьованих годин вводиться тільки для ВР Оклад_2

функція НайтіХозОп (хозОп, ВР) далі

процедура ВводРасчВЖЗ (ЖЗ, нтп, КТП, хозОп, ВР) далі

процедура ОбработкаПроведенія () перем ЖЗ, нтп, КТП

/ / Обєкт з різновидом типу СправочнікХозОпДляВР перем хозОп

/ / Для пошуку господарських операцій ВР

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

КТП = жзКонецТекущегоПеріода ()

ВибратьСтрокі () / / Відкриваємо вибірку рядків документа поки ПолучітьСтроку () = 1 цикл

/ / Встановлюємо реквізити для кожного введеного ВР

/ / ВР Оклад_2 жзУстановітьРеквізіт (всегоЧасов, всегоЧасов) ВводРасчВЖЗ (ЖЗ, нтп, КТП, хозОп, ВідРасчетаОклад_2)

/ / ВР НДФЛ_2

ВводРасчВЖЗ (ЖЗ, нтп, КТП, хозОп, ВідРасчетаНДФЛ_2)

/ / ВР ВБанк_2

ВводРасчВЖЗ (ЖЗ, нтп, КТП, хозОп, ВідРасчетаВБанк_2) конецЦікла / / Поки

/ / Обчислюємо результати введених розрахунків

/ / Вибірка записів ЖЗ по документу не дає вірного результату

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

жзВибратьПеріодПоОбекту (Співробітник, нтп)

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

якщо жзДокумент = ТекущійДокумент () тоді

/ / Метод Розрахувати викликає процедуру ПровестіРасчет відповідного ВР жзРассчітать () / / Або жзВиполнітьРасчет

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

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

якщо Проведено () = 0 тоді / / Якщо документ проводиться вперше

/ / Обмежуємо час показу вікна з попередженням трьома секундами Попередження (Документ проведений”, 3)

інакше

Попередження (Документ перепроведен”, 3) КонецЕсли

КонецПроцедури / / ОбработкаПроведенія

/ / Вводить нові або редагує наявні в ЖЗ розрахунки із заданим ВР процедура ВводРасчВЖЗ (ЖЗ, нтп, КТП, хозОп, ВР)

жзУстановітьРеквізіт (строкаДок, НомерСтрокі)

жзУстановітьРеквізіт (хозОп, НайтіХозОп (хозОп, ВР)) жзВвестіРасчет (Співробітник, ВР, нтп, КТП)

КонецПроцедури / / ВводРасчВЖЗ

/ / Повертає господарську операцію ВР функція НайтіХозОп (хозОп, ВР)

/ / Шукаємо простим перебором в довіднику ХозОпДляВР вид розрахунку ВР

хозОпВибратьЕлементи () прапор = 0

поки хозОпПолучітьЕлемент () = 1 цикл якщо хозОпВР = ВР тоді

прапор = 1

перервати КонецЕсли

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

якщо прапор = 1 тоді

повернення хозОпхозОп інакше

повернення ПолучітьПустоеЗначеніе (хозОп) КонецЕсли

КонецФункции / / НайтіХозОп

Частковий ЖЗ після проведення табеля, наприклад для співробітників 2-го цеху, показаний на рис 747

Рис 747 Документ Табель проведений для співробітників 2-го цеху

Зауваження:

1 Розрахунки одного обєкта розташовуються в ЖЗ в порядку черговості їх виконання

2 Щоб швидко знайти в ЖЗ співробітника, слід переміститися на поле Співробітник і почати набирати на клавіатурі його прізвище (Рис 748)

Рис 748 Локалізація співробітника у формі списку ЖЗ

При пошуку повинна бути обрана іконка , Що забезпечує відображення всіх співробітників поточного підрозділу

3 Введення нового документа Табель найпростіше виконати, скориставшись кнопкою

кой Введення розрахунку, передбаченої в діалозі форми ЖЗ (див рис 721)

4 Щоб відкрити документ Табель, що породив поточний розрахунок, достатньо, перебуваючи в ЖЗ, натиснути на праву кнопку миші і вибрати відповідний пункт меню, що зявиться (рис 749)

Рис 749 Відкриваємо документ Табель

Той же пункт можна вибрати і з колонки Дії меню інтерфейсу Учень

Команда проведення документа при виконанні перепроведення відслідковує всі можливі відбулися в документі зміни Так, якщо в зумовленою процедурі ОбработкаПроведенія після проведення документа закомментировать код, що вводить, наприклад, розрахунки з ВР ВБанк_2, то відповідні розрахунки зникнуть з ЖЗ в результаті перепроведення документа Якщо з проведеного документа видалити табель для будь-якого співробітника, то в результаті перепроведення всі раніше породжені документом розрахунки, повязані до віддаленого співробітнику, будуть видалені і з ЖЗ і т д

Якщо з якоїсь причини табель на співробітника заповнюється повторно, то його проведення не призведе до появи в ЖЗ нових розрахунків, оскільки розрахунки з ВР Оклад_2, НДФЛ_2 і ВБанк_2 створені як самовитесняющіеся Однак при цьому старі розрахунки будуть замінені на нововведені, оскільки нами використаний метод ВвестіРасчет Метод ЗапісатьРасчет також вводить розрахунки в ЖЗ, але при цьому самовитесняющіеся розрахунки залишаються в ЖЗ незміненими

Якщо ж перепроводити існуючий Табель, то методи ВвестіРасчет і ЗапісатьРасчет працюють абсолютно однаково

Результати введених документом Табель розрахунків оцінюються в процедурі ОбработкаПроведенія після введення розрахунків наступним кодом:

/ / Виконуємо розрахунок всіх введених записів жзВыбратьЗаписиПоДокументу (ТекущійДокумент ())

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

/ / Метод Розрахувати викликає процедуру ПровестіРасчет відповідного ВР жзРассчітать () / / Або жзВиполнітьРасчет ()

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

Розглянемо тепер, як задаються властивості використовуваних нами ВР, і запишемо для них код, який повертає результат розрахунку Перш, однак, задамо правила перерахунку ВР

763 ФОРМА СПИСКУ ЖУРНАЛУ ДОКУМЕНТІВ ТАБЕЛЬ

Документи Табель відображаються в однойменному журналі документів (див рис 740)

Діалог форми списку цього журналу документів створимо відповідно до рис 750

Рис 750 Діалог форми списку журналу документів Табель

Модуль форми списку журналу документів Табель містить зумовлену процедуру прочинені Призначення процедури таке ж, як і у однойменної процедури модуля форми списку журналу кадрових наказів (раз 5832)

/ / Список дій по документу Передається процедурі глобального модуля

// глДействія (ТекущійДокумент, сДейст)

перем сДейст

/ / Формує список дій і встановлює інтервал журналу,

/ / Відображає всі введені документи виду Табель процедура відкриття ()

перем дНач / / Дата початку інтервалу журналу Табель

перем прапор, док ОчістітьОкноСообщеній ()

/ / Визначаємо список дій для кнопки Дії сДейстДобавітьЗначеніе (Структура підпорядкованості) сДейстДобавітьЗначеніе (Ввести на підставі) сДейстДобавітьЗначеніе (Руху документа )

прапор = 1 / / Равен одиниці, якщо вдалося створити док

спроба

док = СоздатьОбект (ДокументТабель) виняток

прапор = 0 конецПопиткі

якщо прапор = 1 тоді / / Якщо документ Табель створений

/ / Знаходимо документ з найменшою датою За замовчуванням документи

/ / Розташовуються у вибірці по зростанню їхніх дат докВибратьДокументи ()

якщо докПолучітьДокумент () = 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>

*

*