2014-10-28 13:52:28
Краткое описание :
Изменить подход к запрету модификации ДООписание :
Счета, ДО на продажуЧто измененно :
Изменить подход к запрету модификации ДО
Как измененно :
Изменен подход к модификации ДО (продажа\закупка\предоплата\консигнация).
При запрете модификации поля документа не блокируются, а:
- для полей с возможностью ввода значения, после попытки модификации отображается сообщение (или запрос на модификацию) и поле перечитывается из базы.
- для полей с кнопкой выбора, перед выбором или удалением отображается сообщение (или запрос на модификацию).
Если пользователь разрешает модификацию (например, установлено запрещающей настройки "по запросу"), то при последующих попытках изменить текущий документ запрос не отображается.
Если пользователь не разрешает модификацию, то при последующих попытках изменить текущий документ запрос не отображается, а появляется сообщение о запрете.
Информация для разработчиков.
В интерфейсе DocProtector реализовано кэширование запросов на модификацию, выдача сообщений в соответствии с режимом работы.
Для использования объекта DocProtector, необходимо реализовать объектный интерфейс IProtector_Base для своего типа документа и передать его имя в качестве параметра при инициализации.
Список функций
// Инициализация объекта
Function Initialize(_wTiDK : word) : boolean;
// Проверка указанного события на возможность выполнения
Function CheckCommand(_cRec, _cSpRec : comp; _wCurCommand, _wCurTable, _wCurFormat, _wCurField, _wMode : word) : boolean;
// Выполнение отдельной функции по проверке возможности модификации
Function RunFunc(_cRec, _cSpRec : comp; _wFunc, _wMode : word) : boolean;
// Можно ли влиять на события в указанных областях
Function CanManageInput(_wCurTable, _wCurFormat, _wCurField : word) : boolean;
// Проверка возможности модификации документа
Function CanEditDoc(_cRec : comp; _wMode : word) : boolean;
// Получить текст сообщения последнего запрета модификации
Function GetMessage : string;
// Получить код последнего запрета модификации
Function GetReason : word;
// Установить текст последнего запрета модификации
Procedure SetMessage(_sMes : string);
// Событие. Отобразить запрос на модификацию.
Event Function EventShowRequest(_sDopText1, _sMes, _sDopText2 : string; _wMode, _wReason : word) : boolean;
// Событие. Отобразить сообщение о запрете модификации.
Event Procedure EventShowMessage(_sDopText1, _sMes, _sDopText2 : string; _wMode : word);