Joined: 27 Jun 2003 Posts: 27 Location: Наталья Позднякова
Interests: Минск, Беларусь
Posted: 25 Jun 2004 15:42 Post subject: fileeval
Необходимо настроить типовую операцию по сдаче МБП в эксплуатацию таким образом, чтобы автоматически определялся счет затрат (мы выбираем сотрудника, счет затрат берется из картотеки из зарплаты, табельный номер = коду контрагента в документе).
Для расчета суммы проводки использую такую программку:
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
Подскажите, пожалуйста, что не так, а то уж больно много счетов затрат и делать кучу операций на каждый очень не хочется.
Joined: 15 Mar 2002 Posts: 155 Location: Новиков Алексей Юрьевич Occupation: ПБОЮЛ Interests: Пермь
Posted: 25 Jun 2004 21:39 Post subject:
Добрый день.
В формуле для суммы проводки напишите
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 "при записи" с формированием проводки в главную книгу "вручную". _________________ С уважением, Новиков Алексей.
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