ВИДАЛЕННЯ ЗАПИСІВ ЖУРНАЛУ ЗАРПЛАТИ І М’ЯКІ ЗМІНА розрахунковий період

На період налагодження вам може знадобитися процедура видалення записів ЖЗ поточного періоду Її код простий:

процедура ОчістітьЖЗ ()

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

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

конецЦікла / / поки КонецПроцедури / / ОчістітьЖЗ

Однак у цієї процедури є особливість: записи видаляються через одну Це пояснюється тим, що після проставлення DBF-помітки видалення запис з ЖЗ зникає і поточної стає наступна запис Далі вступає в дію метод ПолучітьЗапісь, що переміщає позицію ЖЗ ще на одну запис Тому процедуру ОчістітьЖЗ потрібно запускати неодноразово, що досягається наступним кодом:

функція ОчістітьЖЗ (ЖЗ, нтп)

перем прапор / / Журнал заробітної плати прапор = жзВибратьПеріод (НТП)

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

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

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

КонецЕсли

повернення прапор / /прапор = О, якщо в ЖЗ немає записів КонецФункции / / ОчістітьЖЗ

процедура Виконати ()

перем ЖЗ

//

Журнал заробітної плати

перем нтп

//

Початок поточного періоду

перем прапор

ЖЗ = СоздатьОбект (ЖурналРасчетовЗарплата_2)

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

поки прапор = 1 цикл

прапор = ОчістітьЖЗ (ЖЗ, нтп) конецЦікла / / поки

/ / Виклик форми ЖЗ для перегляду результату

ОткритьФорму (ЖурналРасчетовЗарплата_2 ) КонецПроцедури / / Виконати

Після видалення записів поточного періоду, можливо, буде потрібно повернутися до колишнього розрахунковому періоду і зробити його поточним Якщо зміна періоду вперед була виконана інтерактивно, то записи змінюваного періоду отримують статус архі вних При інтерактивному відкат назад станеться обнуління р езультатов записів, період реєстрації яких належить до встановлюваного розрахунковому періоду Щоб цього не сталося, слід скористатися наступною програмою:

/ / Здійснює мяку, тобто без відпрацювання системних дій,

/ / Зміну розрахункового періоду ЖЗ процедура Виконати ()

якщо Питання (Повернутися до попереднього розрахункового періоду”, Так + Ні) = Ні тоді повернення

КонецЕсли

ЖЗ = СоздатьОбект (ЖурналРасчетовЗарплата_2)

/ / Переміщаємося на один період назад

пер = жзТекущійПеріод () ПрібавітьПеріод (-1)

/ / Встановлюємо період пер в якості поточного, чи не відпрацьовуючи системні дії якщо жзУстановитьТекущийПериод (пер, 0) 1 тоді

Попередження (Готово”)

/ / Виклик форми ЖЗ для перегляду результату

/ / Після відкриття форми, можливо, доведеться змінити кордон перегляду ЖЗ ОткритьФорму (ЖурналРасчетовЗарплата_2)

інакше

Попередження (Саманта період не вдалося”) КонецЕсли

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

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

*

*