2015-02-12 15:08:29
Краткое описание :
Точка расширения на отбор удаляемых проводок при отмене/пересчете амортизацииОписание :
АмортизацияЧто измененно :
При отмене или пересчете амортизации есть режим, который удаляет проводки только по данному ОС (с аналитикой по данному ОС), а остальные проводки не трогает и не перепроводит. Привлетальность этого режима обуславливается быстротой работы и сохранинем всех ручных испрвлений в проводках по другим ОС, которые мы не отменяем в данной сесии пересчета амортизации.
Однако если хотя бы в каких-то проводках нет аналитики по ОС использовать этот режим представляется затруднительным. Однако сохранить причастность проводки к конкретному ОС можно не только аналитикой ОС, а например примечанием или еще каким-то более сложным алгоритмом.
Эти алгоритмы реализовать в стандартном функционале затруднительно и нецелесообразно, т.к. они могут быть специфичны.
В рамках своих вредрений для решения этой задачи мы обычно используем перекрытие процедуры GetOborotOnAnalitForSpMove следуюищим образом:
Alter Interface Amort '' EscClose, gray;
overload
Procedure GetOborotOnAnalitForSpMove( pwTabKau : word;
pcKau : comp;
_cSoprHoz : comp );
end;
... (пример вложен в проблему)
Однако недостаток данного решения - необходимость перекомпилировать это решение после каждой установки патчей, что могут выполнить не все администраторы, занимающиеся поддержкой. Таким образом, нужно более "независимое" и устойчивое решение, не требующее частых перекомпиляций.
ПРДЕЛАГАЮ:
реализовать точку расширения или какой-то подобный механизм, позволяющий расширить или заменить процедуру GetOborotOnAnalitForSpMove, но не требущее перекомпиляций в отиличие от alter interface.
Как измененно :
Добавлена точка расширения epDeleteOborotForPickedOS. Вызывается для удаления проводок по части картотеки при отмене амортизации.
Вызывается из интерфейса расчета-отмены амортизации Amort.
Вызывается при отмене амортизации, если для удаления проводок задан парметр проводки по операции амортизация - "удалять с аналитикой по ОС/НМА в проводке". `
Если обработчик точки расширения вернет FALSE, то стандартная функция удаления проводок (DeleteObSpMoveForPickedOS) не вызываются.
Параметры:
_wTip - 15-ОС, 16-НМА.
_cSoprHoz - ссылка на SoprHoz.
Карточки по которым производится отмена амортизации занесены в таблицу Pick с wlist = 120 (cgPick_KatOs120);
ExtensionPoint epDeleteOborotForPickedOS(_wTip: word; _cSoprHoz: comp);