<?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=BroadcastChannelReceiveMessage</id>
	<title>BroadcastChannelReceiveMessage - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=BroadcastChannelReceiveMessage"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=BroadcastChannelReceiveMessage&amp;action=history"/>
	<updated>2026-04-04T10:05:32Z</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=BroadcastChannelReceiveMessage&amp;diff=5180&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=BroadcastChannelReceiveMessage&amp;diff=5180&amp;oldid=prev"/>
		<updated>2026-04-01T09:57:50Z</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 09:57, 1 April 2026&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=BroadcastChannelReceiveMessage&amp;diff=5179&amp;oldid=prev</id>
		<title>1&gt;Admin: Created page with &quot;{{infobox function |name=BroadcastChannelReceiveMessage |object=Функции общего назначения |caption=Доставка сообщений |type=1 |stat...&quot;</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=BroadcastChannelReceiveMessage&amp;diff=5179&amp;oldid=prev"/>
		<updated>2026-01-04T09:26:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{infobox function |name=BroadcastChannelReceiveMessage |object=&lt;a href=&quot;/index.php/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D0%B1%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F&quot; title=&quot;Функции общего назначения&quot;&gt;Функции общего назначения&lt;/a&gt; |caption=Доставка сообщений |type=1 |stat...&amp;quot;&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=BroadcastChannelReceiveMessage&lt;br /&gt;
|object=[[Функции общего назначения]]&lt;br /&gt;
|caption=Доставка сообщений&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=0&lt;br /&gt;
|exception=Невозможно превратить в число, строку, ошибка сервера&lt;br /&gt;
|visual=1}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Объекты]]&lt;br /&gt;
* [[Функции общего назначения]]}}&lt;br /&gt;
Функция выполняет получение одного сообщения из очереди сообщений для канала сообщений, заданного по его имени или идентификатору. Полученные сообщения удаляются из очереди. Функция используется только для абонентов подписки, для которых при подписке не была указана форма (см. [[BroadcastChannelSubscribe]]). Если сообщение в очереди отсутствует, функция может ожидать его появления некоторое время (заданное вторым аргументом). Функция возвращает '''1''', если сообщение получено и '''0''' в ином случае. Полученное сообщение возвращается в виде трех переменных -- числовой идентификатор сообщение, текст сообщения и текстовый код, определяющий отправителя (состоящий из номера канала клиента и идентификатора потока клиента).&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
'''BroadcastChannelReceiveMessage'''(''&amp;lt;Имя или идентификатор канала (INT,STRING)&amp;gt;''{{Optional|,&amp;lt;Ожидать нового сообщения, мс. (INT)&amp;gt;{{Default|{{Eq}}0}}}}{{OptionalByRef|,&amp;lt;Код сообщения (INT)&amp;gt;,&amp;lt;Содержимое сообщения (STRING)&amp;gt;,&amp;lt;Отправитель (STRING)&amp;gt;}}):''&amp;lt;Получено новое сообщение (INT)&amp;gt;''&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Имя или идентификатор канала (INT,STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Имя канала для подписки (строка) или его идентификатор (число).&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Ожидать нового сообщения, мс. (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Максимальное числов времени в мс., которое функция может провести в ожидении появления сообщение. При нуле (по умолчанию), функция возвращается без ожидания.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Код сообщения (INT)&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;Отправитель (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} {{ByRef}} Переменная, которая получит идентификатор отправителя сообщения, если сообщение было получено. Если сообщение не было получено, переменная изменена не будет. Обычно отправитель состоит из номера канала клиента и идентификатора потока клиента.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Возвращает количество отосланных сообщений.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Пример простого отправителя и подписчика в одном фрагменте текста.&lt;br /&gt;
&lt;br /&gt;
  Function Подписчик()&lt;br /&gt;
    аКодКанала:=BroadcastChannelSubscribe(&amp;quot;Канал&amp;quot;);&lt;br /&gt;
    аНум:=0;&lt;br /&gt;
    While 1 Do&lt;br /&gt;
      If not BroadcastChannelReceiveMessage(аКодКанала,100,аНум) Then&lt;br /&gt;
        Continue;&lt;br /&gt;
      EndIf;&lt;br /&gt;
      Message(&amp;quot;Получено сообщение с ID &amp;quot;+аНум);&lt;br /&gt;
      If аНум=100 Then&lt;br /&gt;
        Break;&lt;br /&gt;
      EndIf;&lt;br /&gt;
    EndDo;&lt;br /&gt;
    BroadcastChannelUnsubscribe(аКодКанала);&lt;br /&gt;
    Message(&amp;quot;Поток закончил работу...&amp;quot;);&lt;br /&gt;
  EndFunction&lt;br /&gt;
&lt;br /&gt;
Mutex.ExecuteFunctionInSeparateThread(&amp;quot;Подписчик&amp;quot;,0);&lt;br /&gt;
&lt;br /&gt;
аКодКанала:=BroadcastChannelSubscribe(&amp;quot;Канал&amp;quot;);&lt;br /&gt;
ИдСообщения:=1;&lt;br /&gt;
While ИдСообщения&amp;lt;=100 Do&lt;br /&gt;
  If BroadcastChannelSendMessage(аКодКанала,ИдСообщения,&amp;quot;&amp;quot;)&amp;gt;0 Then&lt;br /&gt;
    ИдСообщения:=ИдСообщения+1;&lt;br /&gt;
  EndIf;&lt;br /&gt;
EndDo;&lt;br /&gt;
//Ожидания завершения потока после принятия сообщения 100&lt;br /&gt;
//Без этой паузы, поток можен быть завершен форсировано, так как текущий (родительский) поток будет завершен&lt;br /&gt;
Sleep(1000);&lt;br /&gt;
&lt;br /&gt;
//Будет выведено:&lt;br /&gt;
//Получено сообщение с ID 1&lt;br /&gt;
//Получено сообщение с ID 2&lt;br /&gt;
//..&lt;br /&gt;
//Получено сообщение с ID 100&lt;br /&gt;
//Поток закончил работу...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>