Шаблон  DostupTabl      

Этот шаблон предназначен для ограничения доступа к таблице.  Запрашивает у разработчика обозначение защищаемого объекта (таблицы).  По умолчанию это обозначение совпадает с именем процедуры.  Вызывает функцию 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

Шаблон  DostupForm      

Этот шаблон предназначен для ограничения доступа к форме.  Запрашивает у разработчика обозначение защищаемого объекта (формы).  По умолчанию это обозначение совпадает с именем процедуры.  Вызывает функцию 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

Шаблон  DostupVedom      

Этот шаблон предназначен для ограничения доступа к Ведомости документов.  Запрашивает у разработчика обозначение защищаемого объекта (ведомости).   По умолчанию это обозначение совпадает с именем процедуры.  Вызывает функцию 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

Шаблон  DostupField      

Этот шаблон предназначен для ограничения доступа к полям (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

Hosted by uCoz