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

Материал из GB wiki
Перейти к: навигация, поиск
 
Строка 11: Строка 11:
 
  |Пояснение=произвольное выражение.
 
  |Пояснение=произвольное выражение.
 
}}
 
}}
|Пример=CATCHERROR(<br/>
+
|Пример=CATCHERROR(
OPENDATASET(
+
<br/>  OPENDATASET(
<br/>`goodies_autofix`,
+
<br/>    `goodies_autofix`,
<br/>`Type,I="1"<nowiki>|</nowiki>Ids,B="`+Articul+`"`,``
+
<br/>    [
<br/>) , (
+
<br/>      `Type,I` : 1,
<br/>:errors := :errors+ifempty( :errors, ``, \ )
+
<br/>      `Ids,B` : Articul
<br/>+ Articul,
+
<br/>    ],
<br/>:errcnt := :errcnt + 1
+
<br/>    ``
<br/>)
+
<br/>  ),
 +
<br/>  (
 +
<br/>    :errors:=:errors+ifempty(:errors,``,\)+Articul,
 +
<br/>    :errcnt:=:errcnt+1
 +
<br/>  )
 
<br/>)
 
<br/>)
 +
 
<br/>Пытается выполнить восстановление партий по товару. Если происходит ошибка, запоминает код товара и увеличивает счетчик ошибок. При этом выполнение скрипта не прерывается.
 
<br/>Пытается выполнить восстановление партий по товару. Если происходит ошибка, запоминает код товара и увеличивает счетчик ошибок. При этом выполнение скрипта не прерывается.
 
}}
 
}}

Версия 07:57, 18 ноября 2014

Выполняет первое выражение. Если при выполнении возникает ошибка - помещает ее код и описание в переменные _ErrorCode и _ErrorParams и выполняет второе выражение.

Синтаксис

CATCHERROR(Выражение 1,Выражение 2)

Аргументы

Выражение 1
произвольное выражение.
Выражение 2
произвольное выражение.

Тип результата

Нет

Примеры

CATCHERROR(
  OPENDATASET(
    `goodies_autofix`,
    [
      `Type,I` : 1,
      `Ids,B` : Articul
    ],
    ``
  ),
  (
    :errors:=:errors+ifempty(:errors,``,\)+Articul,
    :errcnt:=:errcnt+1
  )
)


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