Этот шаблон предназначен для ограничения доступа к таблице. Запрашивает у разработчика обозначение защищаемого объекта (таблицы). По умолчанию это обозначение совпадает с именем процедуры. Вызывает функцию DostObj() , анализирует ее возвращаемое значение и, если нужно, запрещает доступ или скрывает кнопки ?Insert, ?Change и ?Delete. Кнопки обязательно должны иметь именно такие обозначения.
#!
=================================================================================
#EXTENSION (Dostup_Table, 'Доступ к Таблице'), PROCEDURE
#! =================================================================================
#DISPLAY ('')
#DISPLAY ('Строка идентификатора объекта:')
#DISPLAY ('')
#PROMPT ('Обозначение объекта:', @s30), %ObjectName, REQ,
DEFAULT(%Procedure)
#!
#! ---- После открытия окна ----
#AT (%AfterWindowOpening)
r# = DostObj( '%ObjectName', )
IF r# <> 0
IF BAND( r#, 1 ) ! Бит общего запрета
доступа к объекту
Message( 'Доступ запрещен !', ' Извините',
ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 0010b ) ! Бит запрета Добавления
HIDE( ?Insert )
.
IF BAND( r#, 0100b ) ! Бит запрета Изменения
HIDE( ?Change )
.
IF BAND( r#, 1000b ) ! Бит запрета Удаления
HIDE( ?Delete )
.
.
#ENDAT
#!
#! ---- 'Browse Box, Before Insert' ----
#AT (%BrowseBeforeInsert)
r# = DostObj( '%ObjectName', )
if band( r#, 0010b ) ! Бит запрета Добавления
Message( 'Добавленение запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
#!
#! ---- 'Browse Box, Before Change' ----
#AT (%BrowseBeforeChange)
r# = DostObj( '%ObjectName', )
if band( r#, 0100b ) ! Бит запрета Изменения
Message( 'Изменение запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
#!
#! ---- 'Browse Box, Before Delete' ----
#AT (%BrowseBeforeDelete)
r# = DostObj( '%ObjectName', )
if band( r#, 1000b ) ! Бит запрета Удаления
Message( 'Удаление запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
Этот шаблон предназначен для ограничения
доступа к форме. Запрашивает у разработчика
обозначение защищаемого объекта (формы). По
умолчанию это обозначение совпадает с именем
процедуры. Вызывает функцию DostObj() ,
анализирует ее возвращаемое значение и, если
нужно, запрещает доступ или делает недоступной
кнопку ?Ok. Кнопка обязательно должны иметь
именно такое обозначение.
#! =============================================================
#EXTENSION (Dostup_Form, 'Доступ к Форме'), PROCEDURE
#! =============================================================
#DISPLAY ('')
#DISPLAY ('Строка идентификатора Объекта:')
#DISPLAY ('')
#PROMPT ('Обозначение объекта:', @s30), %ObjectName, REQ,
DEFAULT(%Procedure)
#!
#! ----- После открытия окна ----
#AT (%AfterWindowOpening)
r# = DostObj( '%ObjectName', )
IF r# <> 0
IF BAND( r#, 1 )
Message( 'Доступ запрещен !', ' Извините',
ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 0010b ) AND LocalRequest=InsertRecord
Message( 'Добавление запрещено', '
Извините', ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 0100b ) AND LocalRequest=ChangeRecord
Message( 'Изменение запрещено', ' Извините',
ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 1000b ) AND LocalRequest=DeleteRecord
Message( 'Удаление запрещено', ' Извините',
ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 10000b ) ! Бит запрета кнопки Ок
DISABLE( ?Ok )
.
.
#ENDAT
Этот шаблон предназначен для ограничения доступа к Ведомости документов. Запрашивает у разработчика обозначение защищаемого объекта (ведомости). По умолчанию это обозначение совпадает с именем процедуры. Вызывает функцию DostObj() , анализирует ее возвращаемое значение и, если нужно, запрещает доступ или скрывает кнопки ?Insert, ? Change, ?Delete, ?Button_Utw, ?Button_RU, ?Print. Кнопки обязательно должны иметь именно такие обозначения.
#!================================================================
#EXTENSION (Dostup_Vedom, 'Доступ к ведомости документов'),
PROCEDURE
#!================================================================
#DISPLAY ('')
#DISPLAY ('Строка идентификатора объекта:')
#DISPLAY ('')
#PROMPT ('Обозначение объекта:', @s30), %ObjectName, REQ,
DEFAULT(%Procedure)
#!
#! ----- После открытия окна ----
#AT (%AfterWindowOpening)
r# = DostObj( '%ObjectName', )
IF r# <> 0
IF BAND( r#, 1 ) ! Бит общего запрета
доступа к объекту
Message( 'Доступ запрещен !', ' Извините',
ICON:Exclamation )
DO ProcedureReturn
.
IF BAND( r#, 0010b ) ! Бит запрета Добавления
HIDE( ?Insert )
.
IF BAND( r#, 0100b ) ! Бит запрета Изменения
HIDE( ?Change )
.
IF BAND( r#, 1000b ) ! Бит запрета Удаления
HIDE( ?Delete )
.
IF BAND( r#, 16 ) ! Бит запрета кнопки Ок
- нельзя изменять
HIDE( ?Insert )
HIDE( ?Delete )
HIDE( ?Button_Utw )
HIDE( ?Button_Ru )
.
IF BAND( r#, 32 ) ! Бит запрета операции
Утверждения
HIDE( ?Button_Utw )
.
IF BAND( r#, 64 ) ! Бит запрета операции
Разутверждения
HIDE( ?Button_Utw )
.
IF BAND( r#, 128 ) ! Бит запрета операции
Печати
HIDE( ?Print )
.
.
#ENDAT
#!
#! ---- 'Browse Box, Before Insert' ----
#AT (%BrowseBeforeInsert)
r# = DostObj( '%ObjectName', )
if band( r#, 0010b ) ! Бит запрета Добавления
Message( 'Добавленение запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
#!
#! ---- 'Browse Box, Before Change' ----
#AT (%BrowseBeforeChange)
r# = DostObj( '%ObjectName', )
if band( r#, 0100b ) ! Бит запрета Изменения
Message( 'Изменение запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
#!
#! ---- 'Browse Box, Before Delete' ----
#AT (%BrowseBeforeDelete)
r# = DostObj( '%ObjectName', )
if band( r#, 1000b ) ! Бит запрета Удаления
Message( 'Удаление запрещено', ' Извините',
ICON:Exclamation )
LocalRequest = OriginalRequest
LocalResponse = RequestCancelled
exit
.
#ENDAT
Этот шаблон предназначен для ограничения
доступа к полям (controls). Запрашивает у
разработчика обозначение защищаемого поля,
метку поля и тип запрета доступа (disable или hide).
Вызывает функцию DostObj()
и, если нужно, делает поле недоступным
(disable) или скрытым (hide). Этот шаблон можно
применять для нескольких полей окна.
#!=================================================================================
#EXTENSION (Dostup_Field, 'Код проверки доступа к Полю'), MULTI,
PROCEDURE
#!=================================================================================
#DISPLAY ('')
#DISPLAY ('Строка идентификатора Объекта:')
#DISPLAY ('')
#PROMPT (' Объект:', @s30), %ObjectName, REQ, DEFAULT(%Procedure)
#DISPLAY ('')
#PROMPT(' Control:',CONTROL),%DostControl
#DISPLAY ('')
#PROMPT('Тип запрета:',DROP('Disable|Hide')),%DostAction,DEFAULT('Disable')
#DISPLAY ('')
#!
#! ----- После открытия окна ------
#AT (%AfterWindowOpening)
r# = DostObj( '%ObjectName', )
if band( r#, 1 )
#IF (%DostAction='Disable')
disable(%DostControl)
#ENDIF
#IF (%DostAction='Hide')
hide(%DostControl)
#ENDIF
.
#ENDAT