Появилась возможность блокировки выхода из редактирования карточки или таблицы для справочников и документов.

 

Блокировка может осуществляться по анализу любых реквизитов текущей записи (и их сочетаний).

Это используется, когда нужно добиться ввода определенного сочетания значений реквизитов.

Программа для анализа разрешения или запрета окончания редактирования (выхода из текущего документа)

размещается в поле «Блок при закрытии документа» в описании представлений.

Если в этом поле пусто, то никакого анализа не производится. Программа, записанная в этом поле должна

установить предопределенную переменную «RetResult». Если RetResult устанавливается в True, это означает

запрет выхода из редактирования карточки клавишей Esc или мышкой на закрывающий крестик текущего окна

(нужно заметить, что использовать этот способ нужно осторожно, иначе выход из документа совсем заблокируется).

Если RetResult устанавливается в False, то при выходе текущая редактируемая запись стирается.

Если RetResult остается без изменений, то беспрепятственный выход, т.е. все значения введены верно.

 

Например, в справочнике водителей (R21):

  if kod<>0 and Empty(tab_num) and trans_num=22

    Message({'Если у водителя указано автопредприятие '+ReadRefr('R22',trans_num)+',',;

             'то обязательно нужно указывать табельный водителя','',;

             'Проставьте таб.водителя '+ReadRefr('R21',kod)})

    retResult:=.t.

  endif

 

Обратите внимание, на то что все сообщения по анализу нештатных ситуаций должны быть здесь написаны,

иначе будет непонятно по какой причине программа не выпускает из документа.