Difference between revisions of "OnMark"
m (1 revision imported) |
1>Admin |
||
Line 17: | Line 17: | ||
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
− | '''OnMark'''(''<Элемент>'',''<Пометка (INT)>'',{{ | + | '''OnMark'''(''<Элемент>'',''<Пометка (INT)>'',{{OptionalByRef|<Разрешить действие (INT,OUT)>{{Default|{{eq}}1}}}}{{Optional|,<Номер элемента при выделении диапазона (INT)>}}):<Текст возникшей ошибки (STRING)> |
</code> | </code> | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
* <code>''<Элемент>''</code> - Элемент справочника или документ, для которого производится попытка удаления (отмены удаления). | * <code>''<Элемент>''</code> - Элемент справочника или документ, для которого производится попытка удаления (отмены удаления). | ||
* <code>''<Пометка (INT)>''</code> - Ноль, если производится отмена удаления, единица, если производится удаление. | * <code>''<Пометка (INT)>''</code> - Ноль, если производится отмена удаления, единица, если производится удаление. | ||
− | * <code>''<Разрешить действие (INT,OUT)>{{Default|{{eq}}1}}}}''</code> - {{ByRef}} При нулевом значении этого аргумента, действие будет остановлено без вывода текста ошибки. | + | * <code>''<Разрешить действие (INT,OUT)>{{Default|{{eq}}1}}}}''</code> - {{Optional}} {{ByRef}} При нулевом значении этого аргумента, действие будет остановлено без вывода текста ошибки. |
+ | * <code>''<Номер элемента при выделении диапазона (INT)>{{Default|{{eq}}1}}}}''</code> - {{Optional}} Аргумент передается, как ноль, если удаление или отмена удаления производится для одного элемента, иначе был выделен диапазон элементов и в данном аргументе передается порядковый номер элемента из диапазона (не индекс элемента в таблице). | ||
==== Возвращаемое значение ==== | ==== Возвращаемое значение ==== | ||
Функция должна возвратить пустое значение (или пустую строку) для того, чтобы разрешить удаление (отмену удаления) объекта. Для создания исключения результат функции должен содержать текст сообщения о причине невозможности выполнить действие. | Функция должна возвратить пустое значение (или пустую строку) для того, чтобы разрешить удаление (отмену удаления) объекта. Для создания исключения результат функции должен содержать текст сообщения о причине невозможности выполнить действие. | ||
Line 29: | Line 30: | ||
== Примеры == | == Примеры == | ||
<pre> | <pre> | ||
− | Function OnMark(Element,Mark,ByRef AllowAction) | + | Function OnMark(Element,Mark,ByRef AllowAction,DelIndex) |
AllowAction:=1; | AllowAction:=1; | ||
If pos("DB.JOURNAL.",typestr(Element))=1 Then | If pos("DB.JOURNAL.",typestr(Element))=1 Then |
Revision as of 13:46, 16 September 2022
OnMark (События объектов БД) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Событие, вызываемое при попытке удалить (или отменить удаление) открытый для визуального редактирования элемент справочника или документ, либо при попытке удалить (или отменить удаление) элемент справочника или документ в журнале документов или таблице элементов справочника (документов). Параметр пометка равен 0, если производится отмена удаления и 1, если производится удаление. Параметр Разрешить действие может запретить удаление, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, действие также произведено не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
Данное событие также вызывается для элементов журналов (как журналов документов, так и справочников).
Синтаксис
OnMark(<Элемент>,<Пометка (INT)>,<Разрешить действие (INT,OUT)>=1,<Номер элемента при выделении диапазона (INT)>):<Текст возникшей ошибки (STRING)>
Аргументы
<Элемент>
- Элемент справочника или документ, для которого производится попытка удаления (отмены удаления).<Пометка (INT)>
- Ноль, если производится отмена удаления, единица, если производится удаление.<Разрешить действие (INT,OUT)>=1}}
- (необязательный аргумент) (возможен аргумент-переменная (ByRef)) При нулевом значении этого аргумента, действие будет остановлено без вывода текста ошибки.<Номер элемента при выделении диапазона (INT)>=1}}
- (необязательный аргумент) Аргумент передается, как ноль, если удаление или отмена удаления производится для одного элемента, иначе был выделен диапазон элементов и в данном аргументе передается порядковый номер элемента из диапазона (не индекс элемента в таблице).
Возвращаемое значение
Функция должна возвратить пустое значение (или пустую строку) для того, чтобы разрешить удаление (отмену удаления) объекта. Для создания исключения результат функции должен содержать текст сообщения о причине невозможности выполнить действие.
Примеры
Function OnMark(Element,Mark,ByRef AllowAction,DelIndex) AllowAction:=1; If pos("DB.JOURNAL.",typestr(Element))=1 Then //Для элементов жерналов, найдем реальный элемент справочника/документ Element:=Element.LinkedObject(); EndIf; If DBTypeStr(Element)<>"REF" Then Exit; EndIf; If (Mark=1)And((Element.DBName()="Контрагенты")Or(Element.DBName()="Договоры"))And(not Пользователь.КредитныйКонтролер) Then //Запретить удаление элементов справочников Контрагенты и Договоры без требуемых прав. Box("Чтобы отменить удаление этого клиента обратитесь к кредитному контролеру!",Q_STOP); AllowAction:=0; Exit; ElseIf (Mark=1)And(Element.DBName()="Номенклатура") Then If Element.IsFolder() Then Box("Нельзя удалять группы этого справочника!",Q_STOP); AllowAction:=0; Exit; EndIf; EndIf; EndFunction