<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=DB.Lock</id>
	<title>DB.Lock - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=DB.Lock"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Lock&amp;action=history"/>
	<updated>2026-04-04T16:52:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=DB.Lock&amp;diff=442&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Lock&amp;diff=442&amp;oldid=prev"/>
		<updated>2021-02-07T06:43:20Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:43, 7 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=DB.Lock&amp;diff=441&amp;oldid=prev</id>
		<title>Admin at 17:17, 22 September 2019</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Lock&amp;diff=441&amp;oldid=prev"/>
		<updated>2019-09-22T17:17:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=Lock&lt;br /&gt;
|object=[[Объект базы данных]]&lt;br /&gt;
|caption=Блокировка объекта базы данных&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=1&lt;br /&gt;
|exception=Неподходящий объект&lt;br /&gt;
|visual=0}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Объекты]]&lt;br /&gt;
* [[Объект базы данных]]}}&lt;br /&gt;
Функция производит попытку блокировки текущего выбранного объекта, объект не может быть новым несохраненным объектом БД. Если попытка неудачна, функция возвратит, если необходимо, имя пользователя, заблокировавшего объект, время его блокировки и машину, на которой он был заблокирован. Функцию удобно использовать перед изменением и сохранением объекта. В случае, когда требуется, чтобы новый несохраненный объект был заблокирован непосредственно после первого сохранения, необходимо использовать возможности функции [[DB.Save|Save]]. Функция может применяться для блокировки только элементов справочников и документов. К примеру, невозможно произвести блокировку строки строчной части объекта, так как строка не является самостоятельным объектом. Блокировка объектов журналов также не допускается, вместо такой блокировки необходимо использовать блокировку объекта, на который ссылается объект журнала, иначе получилась бы ситуация, что заблокированный объект журнала при сохранении должен обновить оригинальный объект, однако, последний заблокирован другим пользователем. Блокировка автоматически снимается с объекта, когда происходит его позиционирование (к примеру, другой объект выбирается с помощью функции [[DB.Find|Find]] или [[DB.Select|Select]]), либо его удалением из системы. При визуальной работе пользователя система автоматически использует такой же механизм блокировки, поэтому, визуально открытый для редактирования объект невозможно заблокировать второй раз. При сохранении объекта или обработке документа, его не происходит его разблокировки. Функция [[DB.Reload|Reload]] также не снимает блокировки с объекта. При блокировке объекта в совокупности с транзакцией нужно понимать, что отмена транзакции не возвратит автоматически блокировку объекта, если он был разблокирован внутри транзакции. Ниже дана таблица, перечисляющая разнообразные типы блокировок системы:&lt;br /&gt;
{{Типы блокировок системы}}&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|DB.}}'''Lock'''({{OptionalByRef|&amp;lt;Заблокировано пользователем (STRING)&amp;gt;,&amp;lt;Заблокировано на машине (STRING)&amp;gt;,&amp;lt;Время блокировки (DATE)&amp;gt;}}):''&amp;lt;Успешная блокировка (INT)&amp;gt;''&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Заблокировано пользователем (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}}{{ByRef}} Аргумент-переменная, содержимое которой заполняется именем пользователя, который заблокировал данный объект, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Заблокировано на машине (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}}{{ByRef}} Аргумент-переменная, содержимое которой заполняется наименованием компьютера, на которым произошла блокировка данного объекта, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Время блокировки (DATE)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}}{{ByRef}} Аргумент-переменная, содержимое которой заполняется датой и временем, когда был заблокирован данный объект, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Функция возвращает единицу, если блокировка произведена успешно, 0 в ином случае.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Пример производит блокировку и изменение документа аДок&lt;br /&gt;
аПольз:=&amp;quot;&amp;quot;;аМаш:=&amp;quot;&amp;quot;;аВремя:=&amp;quot;&amp;quot;;&lt;br /&gt;
If аДок.Lock(аПольз,аМаш,аВремя)=0 Then&lt;br /&gt;
  Message(&amp;quot;Невозможно заблокировать документ &amp;quot;+аДок+&amp;quot;, так как в данный момент с ним работает пользователь &amp;quot;+аПольз+&amp;quot; на &amp;quot;+аМаш+&amp;quot; в &amp;quot;+аВремя+&amp;quot;!&amp;quot;,&amp;quot;!&amp;quot;);&lt;br /&gt;
  Exit;&lt;br /&gt;
EndIf;&lt;br /&gt;
Try&lt;br /&gt;
  //Перечитать аДок из базы данных, чтобы убедиться, что мы работаем со свежими данными и наше изменение не запишет устаревшие данные в базу данных&lt;br /&gt;
  аДок.Reload();&lt;br /&gt;
  //Изменим реквизит и сохраним объект&lt;br /&gt;
  аДок.Реквизит:=1;&lt;br /&gt;
  аДок.Save();&lt;br /&gt;
Finally&lt;br /&gt;
  аДок.Unlock();&lt;br /&gt;
EndTry;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>