Directum. Событие справочника. Функция Exit. Глюк. Или моя ошибка?

Ни в коем случае не использовать функцию exit в событии справочника Карточка.Открытие.
Вся фишка в том, что оно все нормально вроде бы. Но только до некоторых пор.

Разъясню на примере. Пусть у нас есть справочники Ref1 и Ref2. Ref2 содержит реквизит типа Справочник, ссылающийся на Ref1. Пусть реквизит будет называтья rRef1. Так вот, если у нас в событии Карточка.Открытие будет функуия exit (ну например, я, как человек, мигрироваший с других языков, предпочитаю конструкцию:

    
if (VarIsNull(Form)) 
  exit()
endif

этой:

    
if (not VarIsNull(Form)) 
  ...
  что-то делаем...
  ...
endif

,то все будет ок, пока мы не добавим обработчик вычисления в справочник Ref2 для реквизита rRef1(например, для автозаполнения полей), использующий справочник Ref1.
Для наглядности пример:

   
 UnitCode = Sender.AsString //получим код 
  if UnitCode <<>> ''
   refPCode = References.Ref1.GetObjectByCode(UnitCode).Requisites('Req').AsString
  endif

Так вот, после этого все затыкается на строке refPCode = References.Ref1.GetObjectByCode(UnitCode).Requisites('Req').AsString и при выборе справочника ничего не происходит. То есть вообще.

P.S. Глюк. Или моя ошибка?. Может быть, ее просто вообще нельзя использовать? Поправьте, если неправа.

Рекомендовать в Социальных сетях:
 

Один комментарий на “Directum. Событие справочника. Функция Exit. Глюк. Или моя ошибка?

  1. Вот сама и прокомментирую. Exit прерывает выполнение. Потому, если программа вышла по Exit, то просто до выполнения обработчика вычисления реквизита дело не доходит.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *