Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

fileeval

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4
View previous topic :: View next topic  
Author Message
Наталья Позднякова



Joined: 27 Jun 2003
Posts: 27
Location: Наталья Позднякова

Interests: Минск, Беларусь

PostPosted: 25 Jun 2004 15:42    Post subject: fileeval Reply with quote

Необходимо настроить типовую операцию по сдаче МБП в эксплуатацию таким образом, чтобы автоматически определялся счет затрат (мы выбираем сотрудника, счет затрат берется из картотеки из зарплаты, табельный номер = коду контрагента в документе).
Для расчета суммы проводки использую такую программку:

private a, i
DBOPENBASE({{"cardspri",LOADPATH()+'salary\cardspri.DBF'}})
dbpush("cardspri","UPPER(TNUM)","cardspri->tnum = mdoc->agentcode",{})
a:=cardspri->schet
sayandwait(a)
if a = '44'
i:= mdoc->sumoutr
else
i:=0
endif
sayandwait(str(i))
dbpop()
dbCloseBase({"cardspri"})
i

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

DB CMD/2001 Рабочая область не используется DBSKIP


Подскажите, пожалуйста, что не так, а то уж больно много счетов затрат и делать кучу операций на каждый очень не хочется.
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 25 Jun 2004 21:39    Post subject: Reply with quote

Добрый день.

В формуле для суммы проводки напишите
if(fileeval('1.prg')='441',S0,0)
файл 1.prg следующего содержания:

Private a
// сохраняем текущее окружение и открываем базу
DBPush()
DBOPENBASE({{"cardspri",LOADPATH()+'salary\cardspri.DBF'}})
DBPop()

a:=pAgCode

// определяем счет для табельного номера
dbpush("cardspri","17",,{'Upper(TNum)',upper(a)})
a:=if(!EOF(),cardspri->schet,space(6))
dbpop()

// сохраняем текущее окружение и закрываем базу
dbpush()
dbCloseBase({"cardspri"})
dbPop()

a

P.S. способ не самый быстрый. При большом количестве номенклатурных позиций открытие/закрытие cardspri будет существенно замедлять процесс формирования проводок. Если время критично, стоит подумать о запуске feleeval "при записи" с формированием проводки в главную книгу "вручную".
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru