Re: Разбираться в чужом коде - это не подарок!



Posted by Анимица Анатолий on April 02, 1999 at 22:18:51:

In Reply to: Разбираться в чужом коде - это не подарок! posted by Владимир Секретёв, Клуб Любителей Бухгалтерского Учета on April 02, 1999 at 11:29:17:

Поддерживаю Владимира Секретева. Желающим в очередной раз предлагаю: потренируемся сначала на кошечках. Где-то выше есть пример файл-коэффициента, описывающего ввод в эксплуатацию ОС (субсчет 01). А это - файл-коэффициент операции начисления износа, который сам соображает, один субсчет ему предложен или все сразу.

Пример слегка упрощен для экономии места, убрана генерация ведомости начиления износа, стиль ее написания - такой же, как в карточке ввода ОС в эксплуатацию. Сигнатура - чтобы повторно не генерить файл *.txa и строка на каждый износ - по отбору или в цикле. Удобство в том, что операции (ВСЕ) оказываются документированы - в данном случае расчетом. Повышается уверенность главбуха в завтрашнем дне: вместо размахивания руками "вот, у нас тут, в цикле и т.п." просто гордо сказать: "смотрите caaa-999"!

Неплохой файлец описан в заметке про ветерана Куликовской битвы - там одновременно учитывается и основная, и дополнительные льготы, и еще масса вещей.

Если это все удастся улучшить, можно потом в бассейн и воды налить.


А исходники clw,29h и так далее - это ни к чему


* Активы ОС начисление износа
db=[n1 $D] объект, если @01 - один объект, если Ї01 - все
da=[da]
if db=[sa 01,[as 01]] call cikl01
else call iz01
endif
stop
:cikl01
# 01
db=[n1 #];call iz01
#
return
:iz01 начисление износа по 1 объекту
md=[intsn mc]+'/';mo=[ep *md]
dv=[get *db,'davv']; if ~(dv&((da-dv)>mo)) return
* дата ввода отсутствует или срок меньше месяца
else
sz=[get *db,'szatr']
ia=[get *db,'sizn']
pn=[ba *db,mc]+[md *db]-[mk *db];iz=[get *db,'iznos'];os=pn-iz
ga=[get *db,'gamort'];ma=pn*ga/1200;if ma>os ma=os;endif
[plus *db,'iznos',ma]
.*sz *ia (ma)
endif
return : :)
(Остаток от предыдущего msg (c)V.Sekretev - можно я оставлю цитату)




Пpишедшие ответы: