RET BAR KOD — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) (Новая страница: «RET_BAR_KOD -это программа из справочника R266 RET_BAR_KOD(bar_code, name, nds) Вернуть код номенклатуры и…») |
Hisava (обсуждение | вклад) м (→Текст программы) |
||
| Строка 12: | Строка 12: | ||
= Текст программы = | = Текст программы = | ||
| + | |||
| + | parameters bar_code, name, nds | ||
| + | |||
| + | local sql, kod, auto_id, r08 | ||
| + | |||
| + | sql := [ Select KOD From R08 Where BAR_CODE = '] + bar_code + [' ] | ||
| + | result := SqlToArr( sql,, ReflisPath ) | ||
| + | |||
| + | if Empty( result ) | ||
| + | sql := [ Select MAX( KOD ) From R08 ] | ||
| + | kod := SqlToArr( sql,, ReflisPath ) | ||
| + | if kod = 99999 | ||
| + | kod := 1 | ||
| + | auto_id := SeekRef( 'R08', kod, 'AUTO_ID', 1 ) | ||
| + | while !Empty( auto_id ) | ||
| + | kod := kod + 1 | ||
| + | auto_id := SeekRef( 'R08', kod, 'AUTO_ID', 1 ) | ||
| + | end | ||
| + | else | ||
| + | kod := kod + 1 | ||
| + | endif | ||
| + | |||
| + | try | ||
| + | r08 := OpenKlsf( 'R08' ) | ||
| + | ( r08 )->( DbAppend() ) | ||
| + | ( r08 )->KOD := kod | ||
| + | ( r08 )->PNAME := name | ||
| + | ( r08 )->PRODNDS := nds | ||
| + | ( r08 )->BAR_CODE := bar_code | ||
| + | ( r08 )->( Refresh() ) | ||
| + | finally | ||
| + | CloseKlsf( r08 ) | ||
| + | end | ||
| + | result := kod | ||
| + | endif | ||
Версия 09:48, 18 июля 2016
RET_BAR_KOD -это программа из справочника R266
RET_BAR_KOD(bar_code, name, nds)
Вернуть код номенклатуры из справочника R08 по указанному штрихкоду
bar_code - штрихкод
name - наименование номенклатуры
nds - НДС
Текст программы
parameters bar_code, name, nds
local sql, kod, auto_id, r08
sql := [ Select KOD From R08 Where BAR_CODE = '] + bar_code + [' ]
result := SqlToArr( sql,, ReflisPath )
if Empty( result )
sql := [ Select MAX( KOD ) From R08 ]
kod := SqlToArr( sql,, ReflisPath )
if kod = 99999
kod := 1
auto_id := SeekRef( 'R08', kod, 'AUTO_ID', 1 )
while !Empty( auto_id )
kod := kod + 1
auto_id := SeekRef( 'R08', kod, 'AUTO_ID', 1 )
end
else
kod := kod + 1
endif
try
r08 := OpenKlsf( 'R08' )
( r08 )->( DbAppend() )
( r08 )->KOD := kod
( r08 )->PNAME := name
( r08 )->PRODNDS := nds
( r08 )->BAR_CODE := bar_code
( r08 )->( Refresh() )
finally
CloseKlsf( r08 )
end
result := kod
endif