<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://gsbelarus.com:80/gs/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F</id>
		<title>Блокировка изменения подразделения - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F"/>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F&amp;action=history"/>
		<updated>2026-07-16T22:13:12Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.16</generator>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3239&amp;oldid=prev</id>
		<title>SYSDBA в 15:22, 15 декабря 2009</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3239&amp;oldid=prev"/>
				<updated>2009-12-15T15:22:03Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 15:22, 15 декабря 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; BEGIN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; BEGIN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  IF (CURRENT_USER &amp;lt;&amp;gt; 'SYSDBA') THEN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  IF (CURRENT_USER &amp;lt;&amp;gt; 'SYSDBA') THEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160;  BEGIN &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  SELECT lb, rb FROM gd_contact WHERE id = &amp;lt;подставьте сюда ИД организации&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  SELECT lb, rb FROM gd_contact WHERE id = &amp;lt;подставьте сюда ИД организации&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;  INTO :LB, :RB;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;  INTO :LB, :RB;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=2558&amp;oldid=prev</id>
		<title>SYSDBA в 16:34, 4 мая 2009</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=2558&amp;oldid=prev"/>
				<updated>2009-05-04T16:34:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;После ввода структуры подразделений организации ([[Исследователь]] - Справочники - Клиенты - Организации - [[Производственные подразделения]]) может понадобиться заблокировать любые изменения (добавление, редактирование, удаление). Установить блокировку можно с помощью триггера и исключения. Так как подразделения хранятся в той же таблице [[GD_CONTACT]], где и сама организация, и являются ее вложенными уровнями, то для проверки можно использовать границы интервала организации. &lt;br /&gt;
&lt;br /&gt;
Идентификатор организации можно посмотреть в диалоговом окне редактирования. Запомним его.&lt;br /&gt;
&lt;br /&gt;
Зайдем в [[Редактор SQL]] и выполним команду:&lt;br /&gt;
&lt;br /&gt;
 CREATE EXCEPTION gd_e_cannot_del_depart 'Изменение подразделений заблокировано в триггере!'&lt;br /&gt;
&lt;br /&gt;
Затем наберем и выполним текст триггера:&lt;br /&gt;
&lt;br /&gt;
 CREATE TRIGGER gd_aiud_contact_block FOR gd_contact&lt;br /&gt;
  ACTIVE&lt;br /&gt;
  AFTER INSERT OR UPDATE OR DELETE&lt;br /&gt;
  POSITION 32000&lt;br /&gt;
 AS&lt;br /&gt;
  DECLARE VARIABLE LB INTEGER;&lt;br /&gt;
  DECLARE VARIABLE RB INTEGER;&lt;br /&gt;
 BEGIN&lt;br /&gt;
  SELECT lb, rb FROM gd_contact WHERE id = &amp;lt;подставьте сюда ИД организации&amp;gt;&lt;br /&gt;
    INTO :LB, :RB;&lt;br /&gt;
 &lt;br /&gt;
  IF ((NEW.lb &amp;gt;= :LB) AND (NEW.rb &amp;lt;= :RB)) THEN&lt;br /&gt;
  BEGIN&lt;br /&gt;
    EXCEPTION gd_e_cannot_del_depart;&lt;br /&gt;
  END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Остается проверить блокировку в действии.&lt;br /&gt;
&lt;br /&gt;
Если изменения под учетной записью [[Administrator]] блокировать не следует, то добавим проверку в триггер:&lt;br /&gt;
&lt;br /&gt;
 CREATE TRIGGER gd_aiud_contact_block FOR gd_contact&lt;br /&gt;
  ACTIVE&lt;br /&gt;
  AFTER INSERT OR UPDATE OR DELETE&lt;br /&gt;
  POSITION 32000&lt;br /&gt;
 AS&lt;br /&gt;
  DECLARE VARIABLE LB INTEGER;&lt;br /&gt;
  DECLARE VARIABLE RB INTEGER;&lt;br /&gt;
 BEGIN&lt;br /&gt;
   IF (CURRENT_USER &amp;lt;&amp;gt; 'SYSDBA') THEN&lt;br /&gt;
     SELECT lb, rb FROM gd_contact WHERE id = &amp;lt;подставьте сюда ИД организации&amp;gt;&lt;br /&gt;
       INTO :LB, :RB;&lt;br /&gt;
  &lt;br /&gt;
     IF ((NEW.lb &amp;gt;= :LB) AND (NEW.rb &amp;lt;= :RB)) THEN&lt;br /&gt;
     BEGIN&lt;br /&gt;
       EXCEPTION gd_e_cannot_del_depart;&lt;br /&gt;
     END&lt;br /&gt;
   END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Здесь мы использовали известный нам факт, что учетная запись Administrator всегда соответствует учетной записи [[SYSDBA]] сервера [[Firebird]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Учебный курс]]&lt;/div&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	</feed>