Залишки відпусток під час переходу на ЗУП 3
Замовник вирішив переходити на ЗУП 3.0 (раніше облік вівся над 1С). Основна умова - повне перенесення кадрової історії по співробітникам (працюючим на поточний момент) для відображення в Т-2 (в частині поточної задачі, що стосується, це відпустки).
А як це реалізувати?
Ввести залишки відпусток під час переходу або перенесення даних можна двома способами:
- документ"Введення початкових залишків відпусток"
- документ"Дані на початок експлуатації"
Т.к. ми за завданням переносимо кадрову історію, що включає дані щодо наданих раніше відпусток, то наш єдиний вибір"Введення початкових залишків відпусток". Але тут виявилася проблема: якщо в програмі введені дані щодо фактичних відпусток раніше дати введення залишків (а у нас саме такий випадок), то ввести залишки не вийде! [це завдання №1 ]
Залишок за видом відпустки на певну дату в загальному випадку є різницею даних регістру відомостей"Зароблені права на відпустки" та регістру накопичення"Фактичні відпустки", але для правильного розрахунку залишків у нашому випадку необхідно відкинути дані фактичних відпусток раніше "глобальної" дати початку ведення обліку в програмі (зароблені відпустки автоматично скоригуються документом"Введення початкових залишків відпусток" на дату введення). [це завдання №2 ]
Ну і наостанок необхідно правильно відображати звіти по відпустках: друкована форма"Довідка по відпустках співробітника" і звіт"Залишки відпусток". [це завдання №3 ]
Це коригування потрібно лише на момент введення документів"Введення початкових залишків відпусток".
Крім цього, були внесені зміни до функціїВихідніДаніДляРозрахункуЗалишків (Корегування запиту):
Виявилося, що друкована форма самостійно розраховує дані щодо залишків відпусток, тоді як звіт цілком будується на даних раніше озвучених регістрів за описаною схемою. У реалізації на допомогу прийшов механізм БСП :-)
Друкована форма"Довідка з відпусток співробітника" запрацює після внесення вищеописаних змін, але в нашому випадку Замовник побажав бачити цю довідку в "старому" форматі (що спочатку перекочував із ЗУП 2.5, але згодом зміненому в ЗУП 3.0). Також додали можливість формування довідки на робочу дату (зручно для звіряння даних на певний момент у минулому чи майбутньому періодах).
Основні доробки торкнулися звіту"Залишки відпусток" : за аналогією з кодом запиту до функцій із загального модуля"Залишки відпусток" (раніше за текстом) був доданий фільтр на фактичні відпустки раніше дати початку обліку.
Ці друковану форму та звіт докладу для тих, у кого можуть виникнути труднощі у самостійній реалізації.
Післямова
Я не став описувати механізм завантаження залишків у документ"Введення початкових залишків відпусток" (у нас він був реалізований у вигляді зовнішньої обробки, що читає дані із заздалегідь підготовлених файлів Excel за певним алгоритмом) - реалізацію кожен вигадає сам. Уточню лише, що може бути кілька документів уведення залишків на різні дати та різні види відпусток (адже буває ситуація, коли є залишки за різні періоди, але я б порекомендував по можливості звести все на один конкретний період).
Описаний механізм цілком може бути використаний для "швидкого" коригування (без розглядів у причинах) залишків відпусток по всіх співробітниках (т.к. використовує "глобальну" дату).
Також регулярно раджудивитися в типовий звіт"Залишкивідпусток" і актуалізувати модифікований (вже були виправлення помилок від 1С в даному звіті).
Даний механізм успішно був застосований і поки працює (але не виключаю, що одного разу 1С щось змінять і все зламається).