ORL 999 — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
(Новая страница: «ORL_999 - это программа из справочника R266 Удалить товары из таблицы ORL_999( _, r20_kod ) _ - та…»)
(нет различий)

Версия 08:47, 2 апреля 2018

ORL_999 - это программа из справочника R266

Удалить товары из таблицы

ORL_999( _, r20_kod )

_ - таблица с товарами

r20_kod - код магазина

Текст

parameters _, r20_kod
local m, fld, sql, m2, data
data := DATE()
fld := ' m1,N,5; '
try
  m := CREATETMPFILE( fld, 'm', ~IsFreeDel := true )
  m2 := CREATETMPFILE( fld, 'm2', ~IsFreeDel := true )
  // текущий месяц
  sql := [ Select KOD From MTUN] + RET_F_EXT( data ) + [ Where BKACNT = '41.2        ' and REFLANAL = 'R20 ' and ;
    ANAL = ] + r20_kod + [ and REFL = 'R08 ' and KOD > 0 ]
  SimpleSql( [ Insert into ] + TmpFilePath( m2 ) + [( m1 ) ] + sql, OpdataPath )
  data := BOM( data ) - 1
  // прошлый месяц
  sql := [ Select KOD From MTUN] + RET_F_EXT( data ) + [ Where BKACNT = '41.2        ' and REFLANAL = 'R20 ' and ;
    ANAL = ] + r20_kod + [ and REFL = 'R08 ' and KOD > 0 ]
  SimpleSql( [ Insert into ] + TmpFilePath( m2 ) + [( m1 ) ] + sql, OpdataPath )
  // m2 -> m
  sql := [ Select DISTINCT m1 From ] + TmpFilePath( m2 )
  SimpleSql( [ Insert into ] + TmpFilePath( m ) + [( m1 ) ] + sql, TempPath )
  // _45
  sql := [ Update _ Set _45 = 1 From ] + TmpFilePath( _ ) + [ _ left outer join ] + TmpFilePath( m ) + [ ON _2 = m1 ;
    Where _1 = 'R08 ' and m1 is not null ]
  SimpleSql( sql, TempPath )
  sql := [ Delete From ] + TmpFilePath( _ ) + [ Where _1 = 'R08 ' and _45 is null ]
  SimpleSql( sql, TempPath )
finally
  CLOSETABLE( m2 )
  CLOSETABLE( m )
end
// проверяем наличие товара в оборотной ведомости за текущий и прошлый месяц
// 41.2
// REFLANAL R20
// ANAL r20_kod
// _0 - имя
// _1 - справочник
// _2 - код
// m1 код товара
// _45 Номер сообщения в весах с ПЭ

Смотрите также

Полезные функции

Функции Delphi