Появилась
возможность блокировки выхода из редактирования карточки или таблицы для
справочников и документов.
Блокировка может
осуществляться по анализу любых реквизитов текущей записи (и их сочетаний).
Это используется, когда
нужно добиться ввода определенного сочетания значений реквизитов.
Программа для анализа
разрешения или запрета окончания редактирования (выхода из текущего документа)
размещается в поле «Блок при закрытии
документа» в описании
представлений.
Если в этом поле пусто,
то никакого анализа не производится. Программа, записанная в этом поле должна
установить
предопределенную переменную «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
Обратите внимание, на то
что все сообщения по анализу нештатных ситуаций должны быть здесь написаны,
иначе будет непонятно по
какой причине программа не выпускает из документа.