Страница 1 из 1

Непонятка в работе процедуры при SelectRecord.

Добавлено: 25 Декабрь 2012, 13:42
kreator
C8, ABC. Вводим значение переменной через Lookup, например:

Код: Выделить всё

      UPDATE(SELF.FEQ)
      G:Name = SELF.UseVar
      IF Access:Goods.TryFetch(G:NameKey) OR pForce
         GlobalRequest = SelectRecord
         BrowseGoods
         IF GlobalResponse = RequestCompleted
             P:GoodsID = G:ID
             SELF.UseVar = G:Name
             ReturnValue = EditAction:Ignore
         ELSE
             ReturnValue = EditAction:None
         END
      ELSE
         P:GoodsID = G:ID
         ReturnValue = EditAction:Ignore
      END
      RETURN ReturnValue
Но в процедуре BrowseGoods файл Goods благополучно закрывается и поэтому P:GoodsID = G:ID не имеет смысла.
Подозреваю, что чего-то не понимаю. Есть же Шаблон SelectButton. Но он не вносит изменения в код при закрытии файлов. Странно.

Re: Непонятка в работе процедуры при SelectRecord.

Добавлено: 25 Декабрь 2012, 14:16
Admin
В текущей процедуре файл Goods стоит в схеме Files ? Если стоит то он не должен в любом случае закрываться.

Re: Непонятка в работе процедуры при SelectRecord.

Добавлено: 25 Декабрь 2012, 15:38
Shur
Вдобавок к сказанному. А что смущает?
То, что вы пользуетесь шаблонами ABC, не значит, что всё вдруг стало объектно-ориентированным.
Буфер записи Goods размещается статично (глобально или для тридов) и после вызова BrowseGoods останется полнёхонький, даже если вы закроете файл насильно.
Поэтому такое присваивание допустимо.

Re: Непонятка в работе процедуры при SelectRecord.

Добавлено: 25 Декабрь 2012, 16:12
kreator
Выявил проблему. ABC не причем. У меня не так работает шаблон "Дерево по одному файлу". Надо с ним разбираться.