G_WORKTABLE
Краткое описание :
Рефакторинг табеля: выделение отдельной подсистемы для
получения параметров ЛС на датуОписание :
Табельные функцииЧто измененно :
Предлагается вынести из табеля подсистему получения параметров
лицевого счета с учетом переходов на дату, и сделать её независимой от табеля.
Сейчас получением значений параметров лицевого счета на дату занимается
табельный функционал. Такая "многопрофильность" функционала приводит к
негативным моментам, как то:
- Много однотипного кода в табеле (5 мест, но число неуклонно растет) для
получения значений реквизитов ЛС за месяц, отличный от текущего месяца табеля.
Если бы этим занимался сторонний функционал, независимый от табеля, не было бы
нагромождений.
- Большой объём табельного функционала, что затрудняет поддержку. Перенос
подсистемы получения реквизитов ЛС на дату в отдельный модуль является одной из
самых эффективных и при этом безболезненных декомпозиций для функционала табеля.
- Необходимость переформировывать табели для получения актуальных параметров
лицевого счета на дату. С одной стороны, это вызывает падение быстродействия в
тех случаях, когда переформировывать табели не надо, а получить актуальные
параметры ЛС - надо. С другой стороны, это приводило, до недавнего времени, к
непонятным ситуациям у тех пользователей, у которых настройка автоматического
переформирования табелей стояла в положении "нет". Данная проблема на текущий
момент решена, но на уровне лечения симптомов, а не причины.
Новая подсистема получения значений параметров лицевого счета на дату с учетом
переходов должна удовлетворять следующим требованиям:
- интерфейс для паскаля и для випа
- не меньшая эффективность, чем у прежней реализации
- полное покрытие имеющегося функционала (Информационные функции табеля)
- возможность возвращать параметры на произвольную дату, а не только на день
некоторого "текущего месяца"
Также в рамках данной проблемы требуется внедрить новую подсистему в табель.
Таким образом, все расчеты в модуле, обращаясь к табелю, будут использовать
новую подсистему получения реквизитов ЛС на дату. Табель должен стать из
источника таких данных посредником между новым функционалом и существующими
потребителями данных.
Как измененно :
Проведены работы по декомпозиции функционала табеля: подсистема
вычисления параметров ЛС на дату выделена в отдельный модуль.
Добавлены новые функции для получения параметров ЛС на дату: описание в файле
GALDOC\c_extfun.chm в статье "Функции получения параметров ЛС на дату". Эти
функции можно использовать как при разработке на языке VIP, так и в
пользовательских алгоритмах. Также данные функции доступны для вычисления по
Ctrl+F4.
При использовании новых функций получения параметров ЛС на дату в
пользовательских алгоритмах явно инициализировать их работу (делать вызовы
EnablePADetailsUtils/DisablePADetailsUtils), а также явно задавать лицевой счет
(функция PA_Assign) не требуется: во время расчета происходит автоматическая
инициализация и привязка к ЛС, для которого идет расчет.