Re: Помогите плиз, а то меня уволят.



Posted by Владимир Секретев (24.42.161.96) on February 22, 2002 at 22:07:30:

In Reply to: Помогите плиз, а то меня уволят. posted by Абрамов Станислав Александрович on February 22, 2002 at 00:46:33:


Дайте плиз рабочий вариант ручной проводки.

В свое время мне пришлось сделать ручную проводку для сетевой версии, хотя я являюсь убежденным противником ручных проводок. Одним из аргументов "против" является невозможность навесить аналитику на ручную проводку. Другим - повышенный риск ошибки, так как на оператора возлагается вся ответственность за правильное указание счетов. Третье - повышенная трудоемкость, так как за одну хозяйственную операцию удается ввести только одну проводку дебет-кредит, если пользоваться так называемой "ручной проводкой", в то время как нормальные, автоматические хоз. операции могут сгенерировать сколь угодно много проводок за раз.

Однако, в некоторых, редких случаях, ручная проводка может быть полезна. Например подправить остаток, сделать редкую проводку, для которой нет смысла конструировать ветвь.

Таким образом, я призываю не пользоваться ручной проводкой широко, а только в редких случаях.

Вот фрагмент ветви для ручной проводки.


Ручная!
+--? D дебет
+--? K кpедит
*D *K

В баллонах ветвей вопросов надо написать

<250>R HAND


где <250> это та маленькая точечка, которая вводится последовательным нажатием 2 5 0 на цифровой клавиатуре при удерживаемом Alt.

Текст HAND.RPT



* Алгоритм для ручной проводки
A = [ia План]
! [as *A] = 0
stop
*A = [ia *A]
!
_ Субсчета счета ^^^^^^^^^^^A^^^^^^^^^^^^^^^^^^^^^^^
i=0
:next
i=i+1
! i > [as *A]
stop
!
D=[sa *A,i]
na=[cp [na *D],1,70]
^^^^^^^^^^^na^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
goto next


Эта ручная проводка работает в сетевой версии, предоставляя возможность выбрать последовательно синтетический счет, а, затем, аналитический для дебета и кредита.

ВНИМАНИЕ! Для корректной работы этой проводки опция "Закрывать после выбора" должна быть включена!



И еще я знаю что пользоватся чужими знаниями это грех.

Почему грех? Как раз это хорошо. Ведь до всего на свете не возможно дойти только своим умом. Пользоваться чужими знаниями НАДО.

Но кто может помоч с кассовой книгой.
Я ставлю показать данные только с 3 по 3 числа, а в результате получаю в ответ данные за весь месяц или вообще за год.

Вероятно кассовая книга у вас не корректно написана.

В общем случае кассовая книга вещь довольно специфическая. То есть для каждой настройки полезно иметь свою кассовую книгу. Однако та, которая здесь приведена, была написана мною как раз для универсального применения. Идея основывается на том, что ни один дебет или кредит кассы не может пройти без соответствующего кассового ордера. Транзакции по кассе отлавливаются ta-фактами. Соответственно, они должны быть включены.

Еще предполагается, что счетами кассы являются субсчета 50 счета. Если у вас другой, то внесите соответствующие изменения.



* Кассовая книга/отчет кассира
im = [im 'Вид','Кассовая книга','Отчет кассира']
VI = 'Вкладной лист кассовой книги'
if im = 2 VI = 'Отчет кассира. Лист'; endif
PC = 69
LC = 0
NN=0
C1 = 0; C2 = 0
VO = 0; DS = 0; NN = 0; SA = 0; SB = 0
DD = 0; FL = 0
DP = 0; AR = 0
if DL = 0 DL=31; endif
rewind facts range YC*100, YC*100+ML+DL/100
*YM = [intsn YC]
VO = [ba 50, 1]
:next
search ta ?A, ?B, ?C, ?D, ?E, ?ST
if ~[success] goto end; endif
if ([fact_y]*100+[fact_m]+[fact_d]/100 in YC*100+MF+DF/100..YC*100+ML+DL/100) & ([pa *A]='50')
if ([fact_m]+[fact_d]/100 > DD)
NN = NN + 1
if FL <> 0
+-----+---------------------------------------------------------+--------+----------+----------¦
¦ ¦ Итого обороты за день ¦ ¦^^^^^^SA^^¦^^^^^^SB^^¦
+----------------------------------------------------------------------------------------------+
Исходящий остаток ^^^^^^^^^^^^^^^VO^^

Кассир _______________________________

AC = AR + DP
DW = '('+[strip [wn AC]]+')'
RW = '('+[strip [wn AR]]+')'
PW = '('+[strip [wn DP]]+')'
Проверил документы в количестве ^AC ^^^^^^^^DW^^^^^^^^^^^^^^^^^^^
приходных ^DP ^^^^^^^^^^^^^^^^^^PW и расходных ^AR ^^^^^^^^^RW^^^^^^^^^^^^^^^^^^^^^^^^^

Бухгалтер ____________________________
lc = lc + 11
call lines
*-------------------------------------------------------------------------------------------------
* lc = lc + 1
endif
YY = [intsn [fact_d]]+'.'+[intsn [fact_m]]+'.'+[intsn [fact_y]]
AR = 0 ; DP = 0
^^^^^VI^^^^^^^^^^^^^^^^^^^^^^^^^^ N ^^^^NN от ^^^^^^^YY^^^^^^^
Входящий остаток ^^^^^^^^^^^^^^^^VO^^
+----------------------------------------------------------------------------------------------+
¦ N ¦ Содержание операции ¦ Корр ¦ Приход ¦ Расход ¦
¦ док ¦ ¦ счет ¦ ¦ ¦
+-----+---------------------------------------------------------+--------+----------+----------¦
lc = lc + 6
FL = 1
DD = [fact_m]+[fact_d]/100
SB = 0; SA = 0
endif
if C = 0
SA = SA + B
C1 = C1 + 1; C0 = C1
DP = DP + 1
VO = VO + B
C = ' '
endif
if B = 0
C2 = C2 + 1; C0 = C2
AR = AR + 1
SB = SB + C
VO = VO - C
B = ' '
endif
TO = [jf 'O KEY='+ST]
ps = [ps [ch 250], TO]; TO = [cp TO, ps+1, 255]
TO = [cp TO, 1, [length TO]-30]
T1 = [cp TO, 1, 55]
¦^^^C0¦^^T1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^¦^^^^^^D^¦^^^^^^^B^^¦^^^^^^^C^^¦
lc = lc + 1
if [length TO] > 55
T1 = [cp TO, 56, 55]
¦ ¦^^T1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^¦ ¦ ¦ ¦
lc = lc + 1
endif
if [length TO] > 110
T1 = [cp TO, 111, 55]
¦ ¦^^T1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^¦ ¦ ¦ ¦
lc = lc + 1
endif
goto next
endif
*
if [pa *A] = '50'
if B > 0
C1 = C1 + 1
C0 = C1
endif
if C > 0
C2 = C2 + 1
C0 = C2
endif
if ([fact_m]+[fact_d]/100 > DD)
DD = [fact_m]+[fact_d]/100
NN = NN + 1
endif
VO = VO + B - C
endif
*
goto next
:end
+-----+---------------------------------------------------------+--------+----------+----------¦
¦ ¦ Итого обороты за день ¦ ¦^^^^^^SA^^¦^^^^^^SB^^¦
+----------------------------------------------------------------------------------------------+
Исходящий остаток ^^^^^^^^^^^^^^^VO^^

Кассир _______________________________

AC = AR + DP
DW = '('+[strip [wn AC]]+')'
RW = '('+[strip [wn AR]]+')'
PW = '('+[strip [wn DP]]+')'
Проверил документы в количестве ^AC ^^^^^^^^DW^^^^^^^^^^^^^^^^^^^
приходных ^DP ^^^^^^^^^^^^^^^^^^PW и расходных ^AR ^^^^^^^^^RW^^^^^^^^^^^^^^^^^^^^^^^^^

Бухгалтер ____________________________
ff = [ch 12]
^^^^^^^ff
stop
*
:lines
if lc > pc
lc = lc - pc
endif
*
for i = pc - lc downto 0

endfor
lc = 0
return


Желаю успеха в освоении замечательной программы. Как мне кажется, вы находитесь в начале пути. Не стесняйтесь задавать вопросы.


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