<?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.Unpublish</id>
	<title>DB.Unpublish - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=DB.Unpublish"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Unpublish&amp;action=history"/>
	<updated>2026-04-04T16:53:14Z</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.Unpublish&amp;diff=522&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Unpublish&amp;diff=522&amp;oldid=prev"/>
		<updated>2021-02-07T06:43:23Z</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.Unpublish&amp;diff=521&amp;oldid=prev</id>
		<title>Admin at 06:41, 17 October 2020</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=DB.Unpublish&amp;diff=521&amp;oldid=prev"/>
		<updated>2020-10-17T06:41:09Z</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=Unpublish&lt;br /&gt;
|object=[[Объект базы данных]]&lt;br /&gt;
|caption=Отмена обработки документа&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=2&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.Status|статус]] больше ''1''. Функция помогает свести совокупность изменений, происходящих при отмене обработки документа в один вызов. При необходимости можно полностью эмулировать поведение этой функции, существует возможность также вызвать заданный в конфигурации обработчик ''OnUnpublish'' без вызова самой функции (см. [[DB.InvokeEvent|InvokeEvent]]). Функция вызывается автоматически при удалении обработанного документа ([[DB.Mark|Mark]]), либо его визуальном удалении из журналов документов. Функция последовательно выполняет следующие действия:&lt;br /&gt;
* Если для документа указан режим автоматической транзакции, функция инициирует режим транзакции и сохраняет состояние текущего документа во внутреннем буфере.&lt;br /&gt;
* Функция производит вызов события ''OnUnpublish'', если оно задано в структуре метаданных проекта (см. [[Студия/Конфигурация данных проекта|Конфигурация данных проекта]]). Ожидается, что событие произведет проверку корректности и заполненности данных в документе, после чего, либо вернет ошибку (будет вызвано исключение), либо заблокирует и очистит движения документа в нужных накопителях. Если событие ''OnUnpublish'' не задано, функция очищает движения в накопителях самостоятельно.&lt;br /&gt;
* Если для документа указан режим автоматической транзакции, функция проверяет состояние документа. Если он имеет состояние ''изменен'', функция производит вызов события метаданных ''OnSave''. Событие может отменить попытку отмены обработки (будет вызвано исключение).&lt;br /&gt;
** Также, если объект открыт для визуального редактирования и он имеет обязательные для заполнения реквизиты, эти реквизиты будут проверены на заполненность, если хотя бы один из них не заполнен, будет вызвано исключение.&lt;br /&gt;
** Будет произведена попытка сохранения измененного документа в базе данных (см. функцию [[DB.Save|Save]]).&lt;br /&gt;
* Будет снята пометка обработки документа, если она уже не была снята в процессе выполнения обработчика ''OnUnpublish'' (см. [[DB.PublishedMark|PublishedMark]]). Документ получает состояние ''0'' -- нормальный объект.&lt;br /&gt;
* Будет произведено фиксирование транзакции [[CommitTransaction]]&lt;br /&gt;
* Если предусмотрено установками, создается соответствующая запись в таблице журнала регистрации событий. Функция заканчивает работу и возвращает управление вызвавшей программе.&lt;br /&gt;
* При наличии исключения на любом из этапов работы функции, если для документа указан режим автоматической транзакции, функция отменяет транзакцию и возвращает предыдущее состояние документа из внутреннего буфера.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|DB.}}'''Unpublish'''({{Optional|&amp;lt;Параметр&amp;gt;,&amp;lt;Опция&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;Параметр&amp;gt;'',''&amp;lt;Опция&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Два необязательных параметра, которые будут доступны, как переменные ''Param'' и ''Option'' внутри обработчика события ''OnUnpublish''.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Пример производит отмену обработки документа aEl&lt;br /&gt;
//Если обработка неудачна, событие ''OnUnpublish'' вернет текст ошибки, из которого функция Unpublish создает исключение&lt;br /&gt;
//Чтобы отличить ошибку обработки от системных ошибок и ошибок сервера, пример проверяет код ошибки и, если это ошибка обработки,&lt;br /&gt;
//  оставляет только текст, удаляя из сообщения ошибки лишнюю информацию.&lt;br /&gt;
аПольз:=&amp;quot;&amp;quot;;аМаш:=&amp;quot;&amp;quot;;аВремя:=&amp;quot;&amp;quot;;&lt;br /&gt;
If aEl.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;);&lt;br /&gt;
  Exit;&lt;br /&gt;
EndIf;  &lt;br /&gt;
Try&lt;br /&gt;
  aEl.Reload();&lt;br /&gt;
  Try&lt;br /&gt;
    aEl.Unpublish();&lt;br /&gt;
  Except&lt;br /&gt;
    Стр:=PeekError();&lt;br /&gt;
    If Pos(&amp;quot;(80 at&amp;quot;,Стр)=1 Then&lt;br /&gt;
      Стр:=PopError(4);&lt;br /&gt;
    EndIf;&lt;br /&gt;
    Стр:=PopError();&lt;br /&gt;
    Message(Стр,&amp;quot;!&amp;quot;);&lt;br /&gt;
  EndTry  &lt;br /&gt;
Finally&lt;br /&gt;
  aEl.Unlock();&lt;br /&gt;
EndTry  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>