]> Дополнительные классы и ЭУ

Дополнительные классы и ЭУ

1C++ :: </a> </em> </td> <td style="text-align: right;"> <!-- Во второй ячейке пропишем ссылки на следующий/предыдущий топики и оставим возможность в каждом топике добавить свои линки, разместив их в otherlinks. По умолчанию otherlinks отсутствует. --> <subst nodes="chminfo/otherlinks/node()"/> | Ранее: <a href="prev" title="Перейти к предыдущей статье"><title to="prev"/></a> | Далее: <a href="next" title="Перейти к следующей статье"><title to="next"/></a> </td> </tr> <tr> <!-- Вторая строка таблицы будет заголовок топика. Чтобы каждый топик мог при необходимости изменить правило составления заголовка, сделаем здесь subst, а само правило пропишем ниже. Будем брать его из <topictitle> --> <td colspan="2" style="font-size:11pt;font-weight:bold"> <subst nodes="chminfo/topictitle/node()"/> </td> </tr> </table> <!-- А сюда собственно, вставим топик --> <topic/> </decoration> <!-- Основной стиль формирования ссылок на вынесенные топики --> <href> <a href="self"><title to="self"/></a> </href> <!-- Основной принцип объединения ссылок на вынесенные топики --> <hrefcombine> <ul> <foreach> <li><item/></li> </foreach> </ul> </hrefcombine> <!-- Содержимое данного тега подставляется в основной decoration через subst в каждом топике, для формирования заголовка топика. Его можно переопредеделить в топике, для задания другого правила составления заголовка. По умолчанию просто вставляется текст заголовка топика, а сам заголовок удаляется --> <topictitle> <title to="selfremove"/> </topictitle> </maininfo> <!-- Основная разметка для секций "Свойства", "Методы", "События" Задаем другие правила формирования ссылок на вынесенные топики, и объединения ссылок, а также формирования заголовка в дочерних секциях. --> <propsmethods> <!-- Ссылки на вынесенные топики объединим в таблицу --> <hrefcombine> <table border="1" cellspacing="0" cellpadding="3"> <foreach> <tr><item/></tr> </foreach> </table> </hrefcombine> <!-- Зададим разметку потомков, чтобы не писать ее в каждом топике --> <childs> <!-- Формирование ссылки на себя в родительском топике. Сформируем строку таблицы, где первая ячейка - ссылка на топик, а вторая - копия абзаца, в котором есть жирное слово "Описание", но без самого слова "Описание" --> <href> <td style="vertical-align:top"><a class="toc-backref" href="self"><title to="self"/></a></td> <td><subst nodes=".//p[strong='Описание:'][1]/node()[not(name()='strong' and .='Описание:')]"/></td> </href> <!-- Зададим другое правило составления заголовка. Пусть будет "Ссылка на описание объекта::ИмяМетода/Свойства" --> <topictitle> <a class="toc-backref" href="parent[1]" title="Перейти к описанию объекта"><title to="parent[1]"/></a> :: <title to="selfremove"/> </topictitle> <!-- Зададим другой способ задания <html><title> в формируемом файле. Он будет появлятся как имя топика во всех "founded topics" --> <chmtitle> <title to="parent[1]"/>::<title to="self"/> </chmtitle> <!-- Заставим дочерние секции добавлять слова из заголовка в индекс --> <autokw mode="2"/> <!-- На случай, если в описания метода есть еще подсекции, восстановим для них старые правила. --> <insert nodes="//common/maininfo/*[name()='hrefcombine']"/> <childs> <insert nodes="//common/maininfo/*[name()='href']"/> <insert nodes="//common/maininfo/*[name()='topictitle']"/> <chmtitle/> <autokw/> </childs> </childs> </propsmethods> </common></xml><chminfo> <insert nodes="//common/maininfo/*"/> <alinks>_1cpp_ext_classes_</alinks> <toc> <self> <merge file="IndexedTable"/> <merge file="TableField"/> <merge file="ActiveX"/> <childstoc/> <merge file="guid"/> <merge file="BinaryData"/> <merge file="Math"/> </self> </toc> </chminfo> <div class="contents topic"> <p class="topic-title first"><a id="id2" name="id2">Содержание</a></p> <ul class="simple"> <li><a class="reference" href="#id5" id="id76" name="id76">Система</a><ul> <li><a class="reference" href="#id6" id="id77" name="id77">Методы</a><ul> <li><a class="reference" href="#closeform" id="id78" name="id78">ЗакрытьФорму / CloseForm</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#win" id="id79" name="id79">РаботаСРегистромWin</a><ul> <li><a class="reference" href="#id8" id="id80" name="id80">Методы</a><ul> <li><a class="reference" href="#createkey" id="id81" name="id81">СоздатьКлюч / CreateKey</a></li> <li><a class="reference" href="#openkey" id="id82" name="id82">ОткрытьКлюч / OpenKey</a></li> <li><a class="reference" href="#connectregistry" id="id83" name="id83">ПодключитьРегистр / ConnectRegistry</a></li> <li><a class="reference" href="#deletekey" id="id84" name="id84">УдалитьКлюч / DeleteKey</a></li> <li><a class="reference" href="#deletevalue" id="id85" name="id85">УдалитьЗначение / DeleteValue</a></li> <li><a class="reference" href="#setvalue" id="id86" name="id86">УстановитьЗначение / SetValue</a></li> <li><a class="reference" href="#queryvalue" id="id87" name="id87">ЗапроситьЗначение / QueryValue</a></li> <li><a class="reference" href="#choosekeys" id="id88" name="id88">ВыбратьКлючи / ChooseKeys</a></li> <li><a class="reference" href="#getkey" id="id89" name="id89">ПолучитьКлюч / GetKey</a></li> <li><a class="reference" href="#choosevalues" id="id90" name="id90">ВыбратьЗначения / ChooseValues</a></li> <li><a class="reference" href="#getvalue" id="id91" name="id91">ПолучитьЗначение / GetValue</a></li> <li><a class="reference" href="#id13" id="id92" name="id92">ОтладочныеСообщения</a></li> <li><a class="reference" href="#id14" id="id93" name="id93">ЗаписатьВсеАтрибуты</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id15" id="id94" name="id94">ВыполняемыйМодуль</a><ul> <li><a class="reference" href="#id16" id="id95" name="id95">Свойства</a><ul> <li><a class="reference" href="#id17" id="id96" name="id96"><ИмяПеременной></a></li> </ul> </li> <li><a class="reference" href="#id18" id="id97" name="id97">Методы</a><ul> <li><a class="reference" href="#id19" id="id98" name="id98"><ИмяМетода></a></li> <li><a class="reference" href="#assignsource" id="id99" name="id99">УстановитьМодуль / AssignSource</a></li> <li><a class="reference" href="#assigncontext" id="id100" name="id100">НазначитьКонтекст / AssignContext</a></li> <li><a class="reference" href="#assignfriendmodule" id="id101" name="id101">ПрисоединитьТекущийМодуль / AssignFriendModule</a></li> <li><a class="reference" href="#compile" id="id102" name="id102">КомпилироватьМодуль / Compile</a></li> <li><a class="reference" href="#execute" id="id103" name="id103">ВыполнитьМодуль / Execute</a></li> <li><a class="reference" href="#getmethofcontext" id="id104" name="id104">GetMethOfContext</a></li> <li><a class="reference" href="#raiseerror" id="id105" name="id105">СформироватьОшибку / RaiseError</a></li> <li><a class="reference" href="#erasepoststate" id="id106" name="id106">ОчиститьПозициюПроведения / ErasePostState</a></li> <li><a class="reference" href="#restorepoststate" id="id107" name="id107">ВосстановитьПозициюПроведения / RestorePostState</a></li> <li><a class="reference" href="#throw" id="id108" name="id108">ВыброситьИскл / Throw</a></li> <li><a class="reference" href="#getexeption" id="id109" name="id109">ПолучитьИсключение / GetExeption</a></li> <li><a class="reference" href="#compileandexecute" id="id110" name="id110">КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></li> <li><a class="reference" href="#enableexceptions" id="id111" name="id111">РазрешитьИсключения / EnableExceptions</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id28" id="id112" name="id112">Делегат</a><ul> <li><a class="reference" href="#id29" id="id113" name="id113">Методы</a><ul> <li><a class="reference" href="#definetype" id="id114" name="id114">ОпределитьТип / DefineType</a></li> <li><a class="reference" href="#addmethod" id="id115" name="id115">Добавить / AddMethod</a></li> <li><a class="reference" href="#remmethod" id="id116" name="id116">Удалить / RemMethod</a></li> <li><a class="reference" href="#remmethodbykey" id="id117" name="id117">УдалитьПоКлючу / RemMethodByKey</a></li> <li><a class="reference" href="#invoke" id="id118" name="id118">Вызвать / Invoke</a></li> <li><a class="reference" href="#invokebykey" id="id119" name="id119">ВызватьПоКлючу / InvokeByKey</a></li> <li><a class="reference" href="#erase" id="id120" name="id120">Очистить / Erase</a></li> <li><a class="reference" href="#isempty" id="id121" name="id121">Пустой / IsEmpty</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id34" id="id122" name="id122">МенеджерСобытий</a><ul> <li><a class="reference" href="#id35" id="id123" name="id123">Методы</a><ul> <li><a class="reference" href="#id36" id="id124" name="id124">Пустой / IsEmpty</a></li> <li><a class="reference" href="#addeventhandle" id="id125" name="id125">ДобавитьОбработчикСобытия / AddEventHandle</a></li> <li><a class="reference" href="#remeventhandle" id="id126" name="id126">УдалитьОбработчикСобытия / RemEventHandle</a></li> <li><a class="reference" href="#sendevent" id="id127" name="id127">ПослатьСобытие / SendEvent</a></li> <li><a class="reference" href="#setdelegate" id="id128" name="id128">УстановитьДелегата / SetDelegate</a></li> <li><a class="reference" href="#clear" id="id129" name="id129">Очистить / Clear</a></li> <li><a class="reference" href="#setcountofparams" id="id130" name="id130">УстановитьКоличествоПараметров / SetCountOfParams</a></li> </ul> </li> <li><a class="reference" href="#id41" id="id131" name="id131">Пример кода</a></li> </ul> </li> <li><a class="reference" href="#id42" id="id132" name="id132">Структура</a><ul> <li><a class="reference" href="#id43" id="id133" name="id133">Свойства</a><ul> <li><a class="reference" href="#id44" id="id134" name="id134"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id45" id="id135" name="id135">Методы</a><ul> <li><a class="reference" href="#insert" id="id136" name="id136">Вставить / Insert</a></li> <li><a class="reference" href="#count" id="id137" name="id137">Количество / Count</a></li> <li><a class="reference" href="#id48" id="id138" name="id138">Очистить / Clear</a></li> <li><a class="reference" href="#property" id="id139" name="id139">Свойство / Property</a></li> <li><a class="reference" href="#remove" id="id140" name="id140">Удалить / Remove</a></li> <li><a class="reference" href="#get" id="id141" name="id141">Получить / Get</a></li> <li><a class="reference" href="#existprop" id="id142" name="id142">ЕстьСвойство / ExistProp</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#dynavalue" id="id143" name="id143">DynaValue</a><ul> <li><a class="reference" href="#id54" id="id144" name="id144">Свойства</a><ul> <li><a class="reference" href="#id55" id="id145" name="id145"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id56" id="id146" name="id146">Методы</a><ul> <li><a class="reference" href="#addprop" id="id147" name="id147">ДобавитьСвойство / AddProp</a></li> <li><a class="reference" href="#selectprops" id="id148" name="id148">ВыбратьСвойства / SelectProps</a></li> <li><a class="reference" href="#getprop" id="id149" name="id149">ПолучитьСвойство / GetProp</a></li> <li><a class="reference" href="#getpropbynum" id="id150" name="id150">ПолучитьСвойствоПоНомеру / GetPropByNum</a></li> <li><a class="reference" href="#getnprops" id="id151" name="id151">КоличествоСвойств / GetNProps</a></li> <li><a class="reference" href="#savetostring" id="id152" name="id152">ВыгрузитьВСтроку / SaveToString</a></li> <li><a class="reference" href="#savetofile" id="id153" name="id153">ВыгрузитьВФайл / SaveToFile</a></li> <li><a class="reference" href="#loadfromstring" id="id154" name="id154">ЗагрузитьИзСтроки / LoadFromString</a></li> <li><a class="reference" href="#loadfromfile" id="id155" name="id155">ЗагрузитьИзФайла / LoadFromFile</a></li> <li><a class="reference" href="#findbyname" id="id156" name="id156">НайтиПоИмени / FindByName</a></li> <li><a class="reference" href="#getbyname" id="id157" name="id157">ПолучитьПоИмени / GetByName</a></li> <li><a class="reference" href="#setbyname" id="id158" name="id158">УстановитьПоИмени / SetByName</a></li> <li><a class="reference" href="#setbynum" id="id159" name="id159">УстановитьПоНомеру / SetByNum</a></li> <li><a class="reference" href="#deletebynum" id="id160" name="id160">УдалитьПоНомеру / DeleteByNum</a></li> <li><a class="reference" href="#deletebyname" id="id161" name="id161">УдалитьПоИмени / DeleteByName</a></li> <li><a class="reference" href="#id72" id="id162" name="id162">Очистить / Clear</a></li> <li><a class="reference" href="#propstovaluelist" id="id163" name="id163">СвойстваВСписокЗначений / PropsToValueList</a></li> <li><a class="reference" href="#findbyvalue" id="id164" name="id164">НайтиПоЗначению / FindByValue</a></li> <li><a class="reference" href="#findbyatributevalue" id="id165" name="id165">НайтиПоЗначениюАтрибута / FindByAtributeValue</a></li> </ul> </li> </ul> </li> </ul> </div> <p>В состав 1С++ входят дополнительные типы объектов и элементы управления.</p> <ul class="simple"> <li><a class="reference" href="indexedtable.chm::/indexedtable0.html">ИндексированнаяТаблица</a></li> <li><a class="reference" href="TableField.chm::/TableField0.html">ТабличноеПоле</a></li> <li><a class="reference" href="BinaryData.chm::/BinaryData0.html">BinaryData</a></li> <li><a class="reference" href="Math.chm::/Math0.html">Math</a></li> </ul> <div class="section"> <h1><a id="id5" name="id5">Система</a></h1> <chminfo> <klinks> Система System </klinks> </chminfo> <p><strong>Класс Система / System</strong></p> <p>Класс предоставляет различные вспомогательные функции.</p> <div class="section"> <h2><a id="id6" name="id6">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="closeform" name="closeform"><span id="id7"></span>ЗакрытьФорму / CloseForm</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ЗакрытьФорму(КонтФормы, ФлагСохранения = 0)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first"><strong>КонтФормы</strong> - тип: ГрупповойКонтекст.</p> </li> <li><dl class="first docutils"> <dt><strong>ФлагСохранения</strong> - тип: Число. Необязательный параметр.</dt> <dd><p class="first last">0 - закрыть форму без вопросов; 1 - если документ, счет, элемент справочника изменен, то будет запрос о сохранении изменений. Значение по умолчанию - 0.</p> </dd> </dl> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - не удалось закрыть форму.</li> <li>1 - форма успешно закрыта.</li> </ul> </blockquote> <p><strong>Описание:</strong> Немедленно закрывает форму с отработкой всех событий, обработчики которых есть в форме.</p> <blockquote> <dl class="docutils"> <dt>В отличие от метода КонтФормы.Форма.Закрыть([ФлагСохранения]), который</dt> <dd><blockquote class="first"> закрывает форму не сразу, а только после завершения работыпользовательского кода,</blockquote> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 266)</p> Block quote ends without a blank line; unexpected unindent.</div> <p>данный метод не ждет завершения кода, а закрывает форму немедленно. Т.е. управление к следующей строке после вызова Система.ЗакрытьФорму будет передано только после закрытия формы.</p> <dl class="last docutils"> <dt><strong>После выполнения данного метода ТипЗначения(КонтФормы) = 0 !</strong> ,</dt> <dd>т.к. форма закрыта, и все групповые контексты, которые указывали на эту форму, стали недействительными.</dd> </dl> </dd> <dt>В случае, если первый параметр не является групповым контекстом, выдается исключение.</dt> <dd>В случае, если второй параметр не является числом, выдается исключение.</dd> </dl> </blockquote> <p><strong>Версия:</strong> Метод работает на релизе 2.5 и позже, а также 2.0.3.2</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="win" name="win">РаботаСРегистромWin</a></h1> <chminfo> <klinks> РаботаСРегистромWin WorkAsRegisterWin </klinks> </chminfo> <p><strong>Класс РаботаСРегистромWin / WorkAsRegisterWin</strong></p> <p>Предназначен для работы с реестром "Windows" в стиле языка 1С : Предприятия.</p> <p>Позволяет:</p> <ul class="simple"> <li>создавать, открывать ключи реестра, подключаться к реестру удаленного компьютера;</li> <li>добавлять в ключи строковые и числовые значения, удалять значения из ключей реестра;</li> <li>перебирать ключи и значения ключей;</li> <li>организовывать поиск ключа или значения по имени.</li> </ul> <div class="section"> <h2><a id="id8" name="id8">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="createkey" name="createkey">СоздатьКлюч / CreateKey</a></h3> <blockquote id="id9"> <p><strong>Синтаксис:</strong> СоздатьКлюч(Ключ, Имя, Режим)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:</p> <blockquote> <ul class="simple"> <li>HKEY_CLASSES_ROOT</li> <li>HKEY_CURRENT_CONFIG</li> <li>HKEY_CURRENT_USER</li> <li>HKEY_LOCAL_MACHINE</li> <li>HKEY_USERS</li> </ul> </blockquote> </li> <li><p class="first">Имя - тип: Строка. Названием ключа реестра. (например: "Software\1C\1Cv7\7.7")</p> </li> <li><p class="first">Режим - тип: Строка. Режим создания ключа. Названия строго определены и бывают следующих видов:</p> <blockquote> <ul class="simple"> <li>KEY_CREATE_LINK Permission to create a symbolic link.</li> <li>KEY_CREATE_SUB_KEY Permission to create subkeys.</li> <li>KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.</li> <li>KEY_EXECUTE Permission for read access.</li> <li>KEY_NOTIFY Permission for change notification.</li> <li>KEY_QUERY_VALUE Permission to query subkey data.</li> <li>KEY_SET_VALUE Permission to set subkey data.</li> <li>KEY_ALL_ACCESS Combines the KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access rights, plus all the standard access rights except SYNCHRONIZE.</li> <li>KEY_READ Combines the STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access rights.</li> <li>KEY_WRITE Combines the STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, and KEY_CREATE_SUB_KEY access rights</li> </ul> </blockquote> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>-1 - ошибка</li> <li>0 - ключ с таким названием уже существует и будет просто открыт</li> <li>1 - ключ успешно создан</li> </ul> </blockquote> <p><strong>Описание:</strong> Создает в реестре ключ с указанным именем.</p> </blockquote> </div> <div class="section"> <h3><a id="openkey" name="openkey">ОткрытьКлюч / OpenKey</a></h3> <blockquote id="id10"> <p><strong>Синтаксис:</strong> ОткрытьКлюч(Ключ, Имя, Режим)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:</p> <ul class="simple"> <li>HKEY_CLASSES_ROOT</li> <li>HKEY_CURRENT_CONFIG</li> <li>HKEY_CURRENT_USER</li> <li>HKEY_LOCAL_MACHINE</li> <li>HKEY_USERS</li> </ul> </li> <li><p class="first">Имя - тип: Строка. Названием ключа реестра. (например: "Software\1C\1Cv7\7.7")</p> </li> <li><p class="first">Режим - тип: Строка. Режим создания ключа. Названия строго определены и бывают следующих видов:</p> <blockquote> <ul class="simple"> <li>KEY_CREATE_LINK Permission to create a symbolic link .</li> <li>KEY_CREATE_SUB_KEY Permission to create subkeys.</li> <li>KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.</li> <li>KEY_EXECUTE Permission for read access.</li> <li>KEY_NOTIFY Permission for change notification.</li> <li>KEY_QUERY_VALUE Permission to query subkey data.</li> <li>KEY_SET_VALUE Permission to set subkey data.</li> <li>KEY_ALL_ACCESS Combines the KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access rights, plus all the standard access rights except SYNCHRONIZE.</li> <li>KEY_READ Combines the STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access rights.</li> <li>KEY_WRITE Combines the STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, and KEY_CREATE_SUB_KEY access rights</li> </ul> </blockquote> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - ошибка</li> <li>1 - ключ открыт</li> </ul> </blockquote> <p><strong>Описание:</strong> Открывает ключ реестра с указанным именем.</p> </blockquote> </div> <div class="section"> <h3><a id="connectregistry" name="connectregistry">ПодключитьРегистр / ConnectRegistry</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ПодключитьРегистр(ИмяУдаленногоКомпьютера, Ключ)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">ИмяУдаленногоКомпьютера - тип: Строка. Cетевое имя компьютера, к реестру которого необходимо подключиться (например: \computername). Если указать пустую строку, то метод подключится к локальной машине.</p> </li> <li><p class="first">Ключ - тип: Cтрока. Название ветви реестра. Названия строго определены и бывают следующих видов:</p> <blockquote> <ul class="simple"> <li>HKEY_LOCAL_MACHINE</li> <li>HKEY_USERS</li> </ul> </blockquote> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - ошибка</li> <li>1 - соединение установлено</li> </ul> </blockquote> <p><strong>Описание:</strong> Подключает объект к реестру удаленного компьютера.</p> <p><strong>Примечание:</strong> для возможности успешного подключения к компьютеру с установленной операционной системой Windows 95 необходимо инсталлировать на нем "Microsoft Remote Registry service".</p> </blockquote> </div> <div class="section"> <h3><a id="deletekey" name="deletekey">УдалитьКлюч / DeleteKey</a></h3> <blockquote> <p><strong>Синтаксис:</strong> УдалитьКлюч(ИмяПодКлюча)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ИмяПодКлюча - тип: Строка. Имя удаляемого подключа.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - была ошибка</li> <li>1 - удаление закончено успешно</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет подключ ключа, открытого ранее функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="deletevalue" name="deletevalue">УдалитьЗначение / DeleteValue</a></h3> <blockquote> <p><strong>Синтаксис:</strong> УдалитьЗначение(ИмяЗначения)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ИмяЗначения - тип: Строка. Имя удаляемого значения.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - была ошибка</li> <li>1 - удаление закончено успешно</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет значение в ключе, открытом ранее функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="setvalue" name="setvalue">УстановитьЗначение / SetValue</a></h3> <blockquote> <p><strong>Синтаксис:</strong> УстановитьЗначение(ИмяЗначения, ТипЗначения, Значение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">ИмяЗначения - тип: Строка. Название значения в ключе.</p> </li> <li><p class="first">ТипЗначения - тип: Строка. Может принимать только два значения:</p> <blockquote> <ul class="simple"> <li>"REG_SZ" - тип значения строка</li> <li>"REG_DWORD" - тип значения целое число</li> </ul> </blockquote> </li> <li><p class="first">Значение - тип: Строка, Число. Значение, которое необходимо установить, зависит от типа, установленного в предыдущем параметре.</p> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - была ошибка</li> <li>1 - установка закончена успешно</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="queryvalue" name="queryvalue">ЗапроситьЗначение / QueryValue</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ЗапроситьЗначение(ИмяЗначения, Значение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ИмяЗначения - тип: Строка. Название значения в ключе.</li> <li>Значение - тип: Имя переменной. Переменная для приема запрошенного значения.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - была ошибка</li> <li>1 - запрос закончен успешно</li> </ul> </blockquote> <p><strong>Описание:</strong> Запрашивает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> <p><strong>Примечание:</strong> Если операция выполнена успешно, то результат будет в Значение. Тип значений, которые можно получить, может быть только "REG_SZ" или "REG_DWORD".</p> </blockquote> </div> <div class="section"> <h3><a id="choosekeys" name="choosekeys">ВыбратьКлючи / ChooseKeys</a></h3> <blockquote id="id11"> <p><strong>Синтаксис:</strong> ВыбратьКлючи()</p> <p><strong>Возвращает:</strong> Число. Количество выбранных подключей.</p> <p><strong>Описание:</strong> Открывает выборку подключей ключа, установленного функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="getkey" name="getkey">ПолучитьКлюч / GetKey</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ПолучитьКлюч(ИмяПодКлюча)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ИмяПодКлюча - тип: Имя переменной. Переменная для приема названия подключа.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - выборка пуста</li> <li>1 - в выборке еще есть подключи</li> </ul> </blockquote> <p><strong>Описание:</strong> Получает следующее название подключа из выборки, открытой ранее методом <a class="reference" href="#id11">ВыбратьКлючи</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="choosevalues" name="choosevalues">ВыбратьЗначения / ChooseValues</a></h3> <blockquote id="id12"> <p><strong>Синтаксис:</strong> ВыбратьЗначения()</p> <p><strong>Возвращает:</strong> Число. Количество - значений в выборке.</p> <p><strong>Описание:</strong> Открывает выборку значений ключа, установленного функцией <a class="reference" href="#id10">ОткрытьКлюч</a> или <a class="reference" href="#id9">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="getvalue" name="getvalue">ПолучитьЗначение / GetValue</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ПолучитьЗначение(ИмяЗначения)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ИмяЗначения - тип: Имя переменной. Переменная, в которую возвращается строковое название значения.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>0 - выборка пуста</li> <li>1 - в выборке еще есть значения</li> </ul> </blockquote> <p><strong>Описание:</strong> Получает следующее название значения из выборки, открытой ранеее методом <a class="reference" href="#id12">ВыбратьЗначения</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="id13" name="id13">ОтладочныеСообщения</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ОтладочныеСообщения(Включить)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">Включить - тип: Число.</p> <blockquote> <ul class="simple"> <li>0 - Отключить</li> <li>1 - Включить</li> </ul> </blockquote> </li> </ul> </blockquote> <p><strong>Описание:</strong> Включает/отключает отладочные сообщения при возникновении ошибок работы с реестром.</p> </blockquote> </div> <div class="section"> <h3><a id="id14" name="id14">ЗаписатьВсеАтрибуты</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ЗаписатьВсеАтрибуты()</p> <p><strong>Описание:</strong> Немедленно записать изменения, внесенные ранее в реестр.</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="id15" name="id15">ВыполняемыйМодуль</a></h1> <chminfo> <klinks> ВыполняемыйМодуль ExecuteModule </klinks> </chminfo> <p><strong>Класс ВыполняемыйМодуль / ExecuteModule</strong></p> <p>Предназначен для работы с динамическими модулями, передаваемыми в параметре метода в качестве строки.</p> <p>После установки текста модуля скомпилируйте и выполните его. Модуль инициализируется и выполнит операторы, расположенные в конце тела модуля, вне методов. После этого можно обращаться к переменным модуля, как к свойствам этого объекта, и к методам модуля, как к методам объекта.</p> <div class="section"> <h2><a id="id16" name="id16">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id17" name="id17"><ИмяПеременной></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id18" name="id18">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id19" name="id19"><ИмяМетода></a></h3> <blockquote> <p><strong>Синтаксис:</strong> Соответствует синтаксису метода модуля.</p> <p><strong>Параметры:</strong> Соответствуют параметрам меода модуля.</p> <p><strong>Описание:</strong> Позволяет обращаться к методам, определенным в тексте модуля, как к своим методам.</p> </blockquote> </div> <div class="section"> <h3><a id="assignsource" name="assignsource">УстановитьМодуль / AssignSource</a></h3> <blockquote id="id20"> <p><strong>Синтаксис:</strong> УстановитьМодуль(стрТекстМодуля)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрТекстМодуля - тип: Строка. Текст модуля.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает текст модуля на выполнение.</p> <p>В модуле возможно определять любые функция, процедуры и параметры, доступ к которым возможно осуществлять, через оператор-селектор .(точка) объекта класса <a class="reference" href="#id15">ВыполняемыйМодуль</a>, после компилирования и запуска.</p> </blockquote> </div> <div class="section"> <h3><a id="assigncontext" name="assigncontext">НазначитьКонтекст / AssignContext</a></h3> <blockquote> <p><strong>Синтаксис:</strong> НазначитьКонтекст(Контекст)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>Контекст - тип: ГрупповойКонтекст, АгрегатныйОбъект. Назначаемый контекст.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает контекст модуля.</p> <p>Метод должен вызыватся до компиляции модуля. При этом к методам и свойствам назначенного контекста в тексте модуля можно будет обращаться напрямую, без указания имени объекта.</p> </blockquote> </div> <div class="section"> <h3><a id="assignfriendmodule" name="assignfriendmodule">ПрисоединитьТекущийМодуль / AssignFriendModule</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ПрисоединитьТекущийМодуль()</p> <p><strong>Описание:</strong> Присоединяет модуль, который в данный момент выполняется.</p> <p>Это позволяет в установленном модуле объекта обращаться напрямую к переменным и методам текущего модуля (т.е. модуля, в котором идет работа в данный момент с объектом класса <a class="reference" href="#id15">ВыполняемыйМодуль</a>).</p> </blockquote> </div> <div class="section"> <h3><a id="compile" name="compile">КомпилироватьМодуль / Compile</a></h3> <blockquote id="id21"> <p><strong>Синтаксис:</strong> КомпилироватьМодуль()</p> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1, если компиляция прошла успешно</li> <li>0 в случае неудачи</li> </ul> </blockquote> <p><strong>Описание:</strong> Компилирует модуль, установленный с помощью метода <a class="reference" href="#id20">УстановитьМодуль</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="execute" name="execute"><span id="id22"></span>ВыполнитьМодуль / Execute</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ВыполнитьМодуль()</p> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1, если выполнение начато успешно</li> <li>0 в случае неудачи</li> </ul> </blockquote> <p><strong>Описание:</strong> Выполняет модуль, установленный с помощью метода <a class="reference" href="#id20">УстановитьМодуль</a> и откомпилированный методом <a class="reference" href="#id21">КомпилироватьМодуль</a>.</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id15">ВыполняемыйМодуль</a> готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам.</p> </blockquote> </div> <div class="section"> <h3><a id="getmethofcontext" name="getmethofcontext">GetMethOfContext</a></h3> <blockquote> <p><strong>Синтаксис:</strong> GetMethOfContext(Объект, тзМетоды = 0, тзСвойства = 0)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li><strong>Объект</strong> - тип: Контекст, АгрегатныйОбъект. Объект, для которого необходимо получить описание.</li> <li><strong>тзМетоды</strong> - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание методов объекта.</li> <li><strong>тзСвойства</strong> - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание свойств объекта.</li> </ul> </blockquote> <p><strong>Описание:</strong> Предоставляет информацию о методах и свойствах объекта.</p> <p>Если задана хотя бы одна из таблиц (тзМетоды, тзСвойства), описание возвращается в соотв. таблице. Иначе описание выводится в окно сообщений.</p> </blockquote> </div> <div class="section"> <h3><a id="raiseerror" name="raiseerror">СформироватьОшибку / RaiseError</a></h3> <blockquote> <p><strong>Синтаксис:</strong> СформироватьОшибку(ТекстОшибки)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ТекстОшибки - тип: Строка. Сообщение об ошибке.</li> </ul> </blockquote> <p><strong>Описание:</strong> Останавливает выполнение текущего модуля.</p> <p>При этом выводится сообщение об ошибке, переданное в параметре метода ТекстОшибки.</p> </blockquote> </div> <div class="section"> <h3><a id="erasepoststate" name="erasepoststate">ОчиститьПозициюПроведения / ErasePostState</a></h3> <blockquote id="id23"> <p><strong>Синтаксис:</strong> ОчиститьПозициюПроведения()</p> <p><strong>Описание:</strong> Очищает позицию проведения и сохраняет текущую в объекте.</p> <p>Далее в модуле документа можно проводить другие документы и отменять проведение других документов, после выполнения этих операций необходимо восстановить позицию с помощью метода <a class="reference" href="#id24">ВосстановитьПозициюПроведения</a>, описанного ниже.</p> <p><strong>Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.</strong></p> </blockquote> </div> <div class="section"> <h3><a id="restorepoststate" name="restorepoststate">ВосстановитьПозициюПроведения / RestorePostState</a></h3> <blockquote id="id24"> <p><strong>Синтаксис:</strong> ВосстановитьПозициюПроведения()</p> <p><strong>Описание:</strong> Восстанавливает позицию проведения текущего документа, очищенную с помощью метода <a class="reference" href="#id23">ОчиститьПозициюПроведения</a>.</p> <p>Методы <a class="reference" href="#id23">ОчиститьПозициюПроведения</a> и ВосстановитьПозициюПроведения необходимо вызывать всегда в паре в указанной последовательности!!!</p> <p><strong>Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.</strong></p> </blockquote> </div> <div class="section"> <h3><a id="throw" name="throw">ВыброситьИскл / Throw</a></h3> <blockquote id="id25"> <p><strong>Синтаксис:</strong> ВыброситьИскл(ОбъектИскл, [ТекстИскл])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ОбъектИскл - тип: Любой. Параметр, который потом можно получить при обработке исключения методом <a class="reference" href="#id26">ПолучитьИсключение</a>.</li> <li>ТекстИскл - тип: Строка. Сообщение об ошибке. По умолчанию "".</li> </ul> </blockquote> <p><strong>Описание:</strong> Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода <a class="reference" href="#id26">ПолучитьИсключение</a>.</p> <p>При обработке исключения текст сообщения об ошибке можно получить с помощью глобальной функции <em>ОписаниеОшибки()</em>. Если исключение не обработано, этот текст будет выведен в окно сообщений.</p> </blockquote> </div> <div class="section"> <h3><a id="getexeption" name="getexeption">ПолучитьИсключение / GetExeption</a></h3> <blockquote id="id26"> <p><strong>Синтаксис:</strong> ПолучитьИсключение()</p> <p><strong>Возвращает:</strong> объект-исключение, параметр ОбъектИскл, переданный в метод <a class="reference" href="#id25">ВыброситьИскл</a>.</p> <p><strong>Описание:</strong> Получает объект исключения.</p> <p>Используется в обработчиках исключений для получения объекта исключения, переданного в метод <a class="reference" href="#id25">ВыброситьИскл</a>, или метода функционала класса <a class="reference" href="alink">_ВыброситьИскл|_1cpp_oop__throw_</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="compileandexecute" name="compileandexecute"><span id="id27"></span>КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></h3> <blockquote> <p><strong>Синтаксис:</strong> КомпилироватьИВыполнитьМодуль()</p> <p><strong>Описание:</strong> Компилирует и выполняет модуль, установленный с помощью метода <a class="reference" href="#id20">УстановитьМодуль</a> .</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id15">ВыполняемыйМодуль</a> готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение.</p> </blockquote> </div> <div class="section"> <h3><a id="enableexceptions" name="enableexceptions">РазрешитьИсключения / EnableExceptions</a></h3> <blockquote> <p><strong>Синтаксис:</strong> РазрешитьИсключения()</p> <p><strong>Описание:</strong> Включает флаг выдачи исключений вместо показа ошибок в окне сообщений.</p> <p>После выполнения данного метода методы <a class="reference" href="#id22">ВыполнитьМодуль</a>, <a class="reference" href="#id21">КомпилироватьМодуль</a> вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод <a class="reference" href="#id27">КомпилироватьИВыполнитьМодуль</a> всегда выбрасывает исключения, независимо от выполнения данного метода.</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="id28" name="id28">Делегат</a></h1> <chminfo> <klinks> Делегат Delegate </klinks> </chminfo> <p><strong>Класс Делегат / Delegate</strong></p> <p>Данный класс представляет собой хранилище ссылок на методы экземпляров агрегатных объектов 1С. С помощью этого класса возможно вызывать группу методов с одинаковой сигнатурой (возвращаемый параметр, количество параметров или их отсутствие).</p> <p>Использование делегата позволяет писать обобщенные алгоритмы и делать групповые вызовы методов.</p> <div class="section"> <h2><a id="id29" name="id29">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="definetype" name="definetype"><span id="id30"></span>ОпределитьТип / DefineType</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">ОпределитьТип(чКолПарам, флЕстьВозврат, [флПрерыватьВыполнение = 0])</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>чКолПарам</em>: Число</dt> <dd><p class="first last">Количество параметров, которые будут передаваться в методы делегата</p> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>флЕстьВозврат</em>: Число</dt> <dd><p class="first">Флаг наличия возвращаемого значения</p> <ul class="last simple"> <li>1 - методы в делегате есть функции</li> <li>0 - методы в делегате есть процедуры</li> </ul> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>флПрерыватьВыполнение</em>: Число</dt> <dd><p class="first">Флаг прерывания выполнения по условию</p> <ul class="last simple"> <li>1 - методы <a class="reference" href="#id32">Вызвать</a> и <a class="reference" href="#id33">ВызватьПоКлючу</a> прерывают выполнение цепочки, если при вызове очередной функции возвращенное значение равно 0</li> <li>0 - методы <a class="reference" href="#id32">Вызвать</a> и <a class="reference" href="#id33">ВызватьПоКлючу</a> всегда проходят цепочку вызова полностью</li> </ul> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">нет</p> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><div class="first last line-block"> <div class="line">Задает сигнатуру хранимых в Делегате методов.</div> <div class="line">Сигнатура - количество параметров и тип (функция / процедура) методов</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="addmethod" name="addmethod"><span id="id31"></span>Добавить / AddMethod</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">Добавить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода, [стрКлюч = ""])</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>ЭкземплярАгрегатногоОбъекта</em>: ГрупповойКонтекст, АгрегатныйОбъект</dt> <dd><p class="first last">Объект, метод которого будет сохранен для вызова</p> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>стрИмяМетода</em>: Строка</dt> <dd><p class="first last">Имя метода, который будет вызван</p> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>стрКлюч</em>: Строка</dt> <dd><p class="first">Если указан - можно вызывать метод по указанному ключу с помощью метода делегата <a class="reference" href="#id33">ВызватьПоКлючу</a></p> <div class="last line-block"> <div class="line">По умолчанию используется ключ ""</div> <div class="line">Возможна реализация обработчика по умолчанию для ситуаций вызова по несуществующим ключам</div> <div class="line">(см. описание метода <a class="reference" href="#id33">ВызватьПоКлючу</a>)</div> </div> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Число</p> <ul class="simple"> <li>1 - добавление метода прошло успешно</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><div class="first line-block"> <div class="line">Устанавливает/добавляет в делегат ссылки на метод агрегатного объекта для его дальнейшего вызова</div> <div class="line">Сигнатура метода объекта для установки должна соответствовать указанной в <a class="reference" href="#id30">ОпределитьТип</a></div> </div> </td> </tr> <tr class="field"><th class="field-name">Примечание:</th><td class="field-body"><div class="first last line-block"> <div class="line">Возможно использование одинаковых методов для любых сочетаний ключей и агрегатных объектов</div> <div class="line">Количество ключей не регламентируется</div> <div class="line">Количество методов в пределах ключа не регламентируется</div> <div class="line">Ключи и имена методов являются регистронезависимыми</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="remmethod" name="remmethod">Удалить / RemMethod</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">Удалить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода)</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>ЭкземплярАгрегатногоОбъекта</em>: ГрупповойКонтекст, АгрегатныйОбъект</dt> <dd><p class="first last">Объект, ссылка на метод которого была сохранена ранее</p> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>стрИмяМетода</em>: Строка</dt> <dd><p class="first last">Имя метода, ссылка на который была сохранена ранее</p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Число</p> <ul class="simple"> <li>1 - удаление прошло успешно</li> <li>0 - ссылок не найдено</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><p class="first last">Удаляет все ссылки на заданный метод указанного агрегатного объекта во всех ключах</p> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="remmethodbykey" name="remmethodbykey">УдалитьПоКлючу / RemMethodByKey</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">УдалитьПоКлючу(стрКлюч)</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>стрКлюч</em>: Строка</dt> <dd><p class="first last">Ключ, по которому происходит поиск методов объектов</p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Число</p> <ul class="simple"> <li>1 - удаление прошло успешно</li> <li>0 - для указанного ключа ссылок не найдено</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><div class="first last line-block"> <div class="line">Удаляет все ссылки на методы агрегатных объектов по заданному ключу</div> <div class="line">Ключ задается при добавлении ссылки на метод, третьим параметром в <a class="reference" href="#id31">Добавить</a></div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="invoke" name="invoke"><span id="id32"></span>Вызвать / Invoke</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">Вызвать(...)</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>...</em>:</dt> <dd><p class="first last">Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом <a class="reference" href="#id30">ОпределитьТип</a></p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Наличие и тип возвращаемого значения определяется сигнатурой делегата</p> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><p class="first">Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом <a class="reference" href="#id30">ОпределитьТип</a></p> </td> </tr> <tr class="field"><th class="field-name">Примечание:</th><td class="field-body"><div class="first last line-block"> <div class="line">Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом <a class="reference" href="#id31">Добавить</a>.</div> <div class="line">Порядок перебора ключей не определен.</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="invokebykey" name="invokebykey"><span id="id33"></span>ВызватьПоКлючу / InvokeByKey</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">ВызватьПоКлючу(стрКлюч, ...)</p> </td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first"> <li><dl class="first docutils"> <dt><em>стрКлюч</em>: Строка</dt> <dd><p class="first last">Ключ, по которому происходит поиск ссылки</p> </dd> </dl> </li> <li><dl class="first docutils"> <dt><em>...</em>:</dt> <dd><p class="first last">Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом <a class="reference" href="#id30">ОпределитьТип</a></p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Наличие и тип возвращаемого значения определяется сигнатурой делегата</p> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><p class="first">Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом <a class="reference" href="#id30">ОпределитьТип</a></p> </td> </tr> <tr class="field"><th class="field-name">Примечание:</th><td class="field-body"><p class="first">Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом <a class="reference" href="#id31">Добавить</a></p> </td> </tr> <tr class="field"><th class="field-name" colspan="2">Обработчик по умолчанию:</th></tr> <tr><td> </td><td class="field-body"><p class="first">Если указанный ключ в делегате не задан, вызывается обработчик по умолчанию по ключу "__default" (должен быть предварительно определен методом <a class="reference" href="#id31">Добавить</a>)</p> <div class="last line-block"> <div class="line">Если обработчик по умолчанию также не задан, не вызывается ничего</div> <div class="line">Обработчик по умолчанию учитывает значение параметра чПрерыватьВыполнение в общем порядке</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="erase" name="erase">Очистить / Erase</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">Очистить()</p> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><div class="first last line-block"> <div class="line">Удаляет из делегата все установленные в нем ранее методы для всех ключей.</div> <div class="line">Сигнатура делегата после выполнения метода Очистить() не определена.</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="isempty" name="isempty">Пустой / IsEmpty</a></h3> <blockquote> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Синтаксис:</th><td class="field-body"><p class="first">Пустой()</p> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Число</p> <ul class="simple"> <li>1, если делегат не содержит ссылок на методы</li> <li>0, если содержит</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body"><p class="first last">Проверяет наличие сохраненных ссылок</p> </td> </tr> </tbody> </table> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="id34" name="id34">МенеджерСобытий</a></h1> <chminfo> <klinks> МенеджерСобытий EventManager </klinks> </chminfo> <p><strong>Класс МенеджерСобытий / EventManager</strong></p> <p>Данный класс предназначен для обработки событий, возникающих в классах КОП и других контекстах использования менеджера.</p> <p>Например: Есть класс, который формирует различные события и называется он "ФабрикаСобытий" (издатель событий). Предположим, что обращение к его открытым методам "Событие_1" и "Событие_2" приводят к возникновению событий в системе от этого класса. Далее, у нас есть несколько классов, которые хотят подписаться на события (подписчики событий), формируемые классом "ФабрикаСобытий", назовем их "ОбработчикСобытий_1" и "ОбработчикСобытий_2". Экземпляры классов-обработчиков событий (подписчиков) определяют свои методы, которые будут вызываться при возникновении в экземпляре класса "ФабрикаСобытий" определенных событий. Далее опишем методы класса "МенеджерСобытий" и приведём с краткими пояснениями пример кода, реализующий описанную схему.</p> <div class="section"> <h2><a id="id35" name="id35">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id36" name="id36">Пустой / IsEmpty</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Пустой()</p> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1, подписчиков нет</li> <li>0, подписчики есть</li> </ul> </blockquote> <p><strong>Описание:</strong> Проверяет наличие в менеджере событий подписчиков.</p> </blockquote> </div> <div class="section"> <h3><a id="addeventhandle" name="addeventhandle">ДобавитьОбработчикСобытия / AddEventHandle</a></h3> <blockquote id="id37"> <p><strong>Синтаксис:</strong> ДобавитьОбработчикСобытия(копПодписчик, стрИмяМетода)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>копПодписчик - тип: КОП. Экземпляр класса-подписчика.</li> <li>стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика, который будет вызываться при возникновении событий, управляемых классом-менеджером.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - Добавление подписчика прошло успешно</li> <li>0 - Данный подписчик с таким методом уже зарегистрирован в менеджере событий</li> </ul> </blockquote> <p><strong>Описание:</strong> Подписывает на событие экземпляр класса-подписчика событий.</p> <p>Метод-обработчик события должен быть членом класса-подписчика и принимать два параметра по умолчанию:</p> <ul class="simple"> <li>Publisher или Издатель, в этот параметр передается экземпляр класса - издателя</li> <li>ExtParametrs или ДопПараметры, в этот параметр передается любая информация, посланная с помощью метода <a class="reference" href="#id38">ПослатьСобытие</a>.</li> </ul> <p>Количество параметров, заданных по умолчанию, возможно изменить с помощью установки отдельно созданного делегата - передать его в качестве параметра метода <a class="reference" href="#id39">УстановитьДелегата</a>, или передать число параметров в метод <a class="reference" href="#id40">УстановитьКоличествоПараметров</a>.</p> <p>Каждый метод-обработчик обязан возвращать числовое значение. Если функция возвращает 0, то цепочка обработки события прерывается на данном подписчике, т.е. если у нас есть менеджер событий, в котором зарегистрировано 5 подписчиков и 2-ой по счету в своей функции возвращает 0, то 3 последующих подписчика не получат данное событие, другими словами - рассылка будет прервана на подписчике с номером 2. Если же функция возвращает любое другое числовое значение, отличное от нуля, то рассылка события менеджером не прерывается.</p> </blockquote> </div> <div class="section"> <h3><a id="remeventhandle" name="remeventhandle">УдалитьОбработчикСобытия / RemEventHandle</a></h3> <blockquote> <p><strong>Синтаксис:</strong> УдалитьОбработчикСобытия(копПодписчик, стрИмяМетода)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>копПодписчик - тип: КОП. Экземпляр класса-подписчика.</li> <li>стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - с подписки снят</li> <li>0 - нет, данный подписчик ранее не был зарегистрирован методом <a class="reference" href="#id37">ДобавитьОбработчикСобытия</a>.</li> </ul> </blockquote> <p><strong>Описание:</strong> Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью <a class="reference" href="#id37">ДобавитьОбработчикСобытия</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="sendevent" name="sendevent">ПослатьСобытие / SendEvent</a></h3> <blockquote id="id38"> <p><strong>Синтаксис:</strong> ПослатьСобытие(Издатель, ДопПараметр)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>Издатель - тип: ГрупповойКонтекст, КОП. Контекст окружения, в котором возникло событие или контекст экземпляра класса-издателя</li> <li>ДопПараметр - тип: Любой. Любая дополнительная информация, которая будет доступна в методе экземпляра класса-подписчика во втором параметре.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - цепочка рассылки событий пройдена полностью</li> <li>0 - рассылка была прервана одним из подписчиков</li> </ul> </blockquote> <p><strong>Описание:</strong> Посылает событие всем зарегистрировавшимся подписчикам на него.</p> </blockquote> </div> <div class="section"> <h3><a id="setdelegate" name="setdelegate">УстановитьДелегата / SetDelegate</a></h3> <blockquote id="id39"> <p><strong>Синтаксис:</strong> УстановитьДелегата(ЭкземплярДелегата)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ЭкземплярДелегата - тип: <a class="reference" href="#id28">Делегат</a>. Экземпляр делегата, через который будет осуществляться вызов методов-обработчиков.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> <a class="reference" href="#id28">Делегат</a>. Установленный ранее делегат, или делегат по умолчанию, содержащийся в текущем менеджере событий.</p> <p><strong>Описание:</strong> Устанавливает делегата для вызова методов-обработчиков.</p> </blockquote> </div> <div class="section"> <h3><a id="clear" name="clear">Очистить / Clear</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Параметры:</strong></p> <p><strong>Описание:</strong> Очищает менеджер событий от подписчиков.</p> </blockquote> </div> <div class="section"> <h3><a id="setcountofparams" name="setcountofparams">УстановитьКоличествоПараметров / SetCountOfParams</a></h3> <blockquote id="id40"> <p><strong>Синтаксис:</strong> УстановитьКоличествоПараметров(чКолвоПарам)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чКолвоПарам - тип: Число. Новое количество параметров.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод <a class="reference" href="#id38">ПослатьСобытие</a>.</p> <p>Данный метод удаляет всех подписчиков, установленных ранее в менеджере событий.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id41" name="id41">Пример кода</a></h2> <chminfo> <topictitle> <a class="toc-backref" href="parent"><title to="parent"/></a> :: <title to="selfremove"/> </topictitle> </chminfo> <p>Определение класса "ФабрикаСобытий":</p> <pre class="literal-block"> класс ФабрикаСобытий=EventFactory.ert { void Событие_1(); void Событие_2(); }; </pre> <p>Реализация класса "ФабрикаСобытий" файл EventFactory.ert:</p> <pre class="literal-block"> Перем МенеджерСобытий1 Экспорт; Перем МенеджерСобытий2 Экспорт; Функция GetThis(Конт) Возврат Конт; КонецФункции Процедура Конструктор() МенеджерСобытий1 = СоздатьОбъект("МенеджерСобытий"); МенеджерСобытий2 = СоздатьОбъект("МенеджерСобытий"); КонецПроцедуры Процедура Событие_1() Если МенеджерСобытий1.Пустой() = 0 Тогда МенеджерСобытий1.ПослатьСобытие(GetThis(Контекст), "Событие произошло!"); КонецЕсли; КонецПроцедуры Процедура Событие_2() Если МенеджерСобытий2.Пустой() = 0 Тогда сз = СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение(100, "Парам1"); сз.ДобавитьЗначение(200, "Парам2"); сз.ДобавитьЗначение(300, "Парам3"); МенеджерСобытий2.ПослатьСобытие(GetThis(Контекст), сз); КонецЕсли; КонецПроцедуры </pre> <p>Определим классы подписчики "ОбработчикСобытий_1" и "ОбработчикСобытий_2", в нашем примере определение этих классов будет одинаково:</p> <pre class="literal-block"> класс ОбработчикСобытий_1=TreaterEvetns_1.ert { Число ОбработкаСобытия_1(Неопределенный, Строка); Число ОбработкаСобытия_2(Неопределенный, СписокЗначений); }; </pre> <p>Реализация этих классов может быть любая, в нашем примере она тривиальна и ее описание опустим.</p> <p>В любом модуле системы для запуска механизма обработки событий пишем следующий код:</p> <pre class="literal-block"> ОбрСобытий_1 = СоздатьОбъект("ОбработчикСобытий_1"); ОбрСобытий_2 = СоздатьОбъект("ОбработчикСобытий_2"); ФабрикаСобытий = СоздатьОбъект("ФабрикаСобытий"); // Регистрируем подписчиков и их методы - обработчики событий ФабрикаСобытий.МенеджерСобытий1.ДобавитьОбработчикСобытия(ОбрСобытий_1, "ОбработкаСобытия_1"); ФабрикаСобытий.МенеджерСобытий1.ДобавитьОбработчикСобытия(ОбрСобытий_2, "ОбработкаСобытия_1"); ФабрикаСобытий.МенеджерСобытий2.ДобавитьОбработчикСобытия(ОбрСобытий_1, "ОбработкаСобытия_2"); ФабрикаСобытий.МенеджерСобытий2.ДобавитьОбработчикСобытия(ОбрСобытий_2, "ОбработкаСобытия_2"); // Вызываем методы, которые формирую событие (издают) ФабрикаСобытий.Событие_1(); ФабрикаСобытий.Событие_2(); // Далее происходит вызов всех методов зарегистрированных в менеджере экземпляров классов - подписчиков. </pre> </div> </div> <div class="section"> <h1><a id="id42" name="id42">Структура</a></h1> <chminfo> <klinks> Структура Struct </klinks> </chminfo> <p><strong>Класс Структура / Struct</strong></p> <p>Данный класс предназначен для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.</p> <div class="section"> <h2><a id="id43" name="id43">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id44" name="id44"><ИмяСвойства></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обратиться к свойству, добавленному методом <a class="reference" href="#id46">Вставить</a>.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id45" name="id45">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="insert" name="insert">Вставить / Insert</a></h3> <blockquote id="id46"> <p><strong>Синтаксис:</strong> Вставить(стрКлюч, [нЗначение], [чРежим])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first">стрКлюч - тип: Строка. Название свойства структуры.</p> <p>Если такое свойство уже существует - то его значение изменяется, если не существует - создается новое</p> </li> <li><p class="first">нЗначение - тип: Любой. Значение свойства, которое необходимо установить.</p> </li> <li><p class="first">чРежим - тип: Число.</p> <ul class="simple"> <li>0 - нЗначение сохраняется в структуре по ссылке</li> <li>1 - нЗначение сохраняется в структуре по значению</li> </ul> <p>По умолчанию - 1.</p> </li> </ul> </blockquote> <p><strong>Описание:</strong> Добавляет свойство в структуру.</p> <p>В структуре хранятся копии нЗначение.</p> </blockquote> </div> <div class="section"> <h3><a id="count" name="count">Количество / Count</a></h3> <blockquote id="id47"> <p><strong>Синтаксис:</strong> Количество()</p> <p><strong>Возвращает:</strong> Число. Количество свойств структуры.</p> <p><strong>Описание:</strong> Возвращает количество свойств структуры, добавленных методом <a class="reference" href="#id46">Вставить</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="id48" name="id48">Очистить / Clear</a></h3> <blockquote id="id49"> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Описание:</strong> Удаляет все свойства структуры.</p> </blockquote> </div> <div class="section"> <h3><a id="property" name="property">Свойство / Property</a></h3> <blockquote id="id50"> <p><strong>Синтаксис:</strong> Свойство(стрКлюч, [нЗначение])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрКлюч - тип: Строка. Название для поиска свойства структуры.</li> <li>нЗначение - тип: Имя переменной. В данный параметр возвращается найденное значение. Если ключа нет в структуре, то возвращается пустое значение неопределенного типа.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - свойство с ключом найдено</li> <li>0 - не найдено</li> </ul> </blockquote> <p><strong>Описание:</strong> Позволяет получить значение свойства по указанному имени, а также проверить, имеется ли указанное свойство.</p> </blockquote> </div> <div class="section"> <h3><a id="remove" name="remove">Удалить / Remove</a></h3> <blockquote id="id51"> <p><strong>Синтаксис:</strong> Удалить(стрКлюч)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрКлюч - тип: Строка. Название удаляемого свойства структуры.</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет элемент структуры с заданным ключом. Если ключа не существует, выдается исключение.</p> </blockquote> </div> <div class="section"> <h3><a id="get" name="get">Получить / Get</a></h3> <blockquote id="id52"> <p><strong>Синтаксис:</strong> Получить(чИндекс, [стрИмяСвойства])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чИндекс - тип: Число. Номер поля по порядку от 1 до <a class="reference" href="#id47">Количество</a></li> <li>стрИмяСвойства - тип: Имя переменной. В нее записывается имя свойства, полученное по его номеру.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Значение свойства, полученное по его номеру.</p> <p><strong>Описание:</strong> Позволяет получать по индексу значение свойства и его имя.</p> </blockquote> </div> <div class="section"> <h3><a id="existprop" name="existprop">ЕстьСвойство / ExistProp</a></h3> <blockquote id="id53"> <p><strong>Синтаксис:</strong> ЕстьСвойство(стрИмя)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип:</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число. Индекс найденного свойства, начиная с 1. Если свойство не найдено, 0.</p> <p><strong>Описание:</strong> Проверяет, есть ли свойство с таким именем.</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="dynavalue" name="dynavalue">DynaValue</a></h1> <chminfo> <klinks> DynaValue </klinks> </chminfo> <p><strong>Класс DynaValue</strong></p> <p>Объект "DynaValue" представляет собой массив поименованных свойств или, иными словами, составное значение. Свойства принимают тип значения переданного параметром при добавлении свойства. Чтение/Установка свойства осуществляется через точку по имени свойства.</p> <div class="section"> <h2><a id="id54" name="id54">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id55" name="id55"><ИмяСвойства></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обратиться к свойству, добавленному методом <a class="reference" href="#id57">ДобавитьСвойство</a>.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id56" name="id56">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="addprop" name="addprop">ДобавитьСвойство / AddProp</a></h3> <blockquote id="id57"> <p><strong>Синтаксис:</strong> ДобавитьСвойство(стрИмя, нЗначение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип: Строка. Имя свойства.</li> <li>нЗначение - тип: Любой. Значение свойства.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> добавленное значение.</p> <p><strong>Описание:</strong> Добавляет новое свойство с заданным именем.</p> </blockquote> </div> <div class="section"> <h3><a id="selectprops" name="selectprops">ВыбратьСвойства / SelectProps</a></h3> <blockquote id="id58"> <p><strong>Синтаксис:</strong> ВыбратьСвойства()</p> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - если выбрано хоть одно свойство</li> <li>0 - нет свойств</li> </ul> </blockquote> <p><strong>Описание:</strong> Открывает выборку свойств.</p> </blockquote> </div> <div class="section"> <h3><a id="getprop" name="getprop">ПолучитьСвойство / GetProp</a></h3> <blockquote id="id59"> <p><strong>Синтаксис:</strong> ПолучитьСвойство(нЗначение, стрИмя)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>нЗначение - тип: Имя переменной. В нее вернется значение свойства.</li> <li>стрИмя - тип: Имя переменной. В нее вернется имя свойства.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - свойство получено</li> <li>0 - выборка кончилась</li> </ul> </blockquote> <p><strong>Описание:</strong> Получает следующее свойство из выборки, открытой <a class="reference" href="#id58">ВыбратьСвойства</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="getpropbynum" name="getpropbynum">ПолучитьСвойствоПоНомеру / GetPropByNum</a></h3> <blockquote id="id60"> <p><strong>Синтаксис:</strong> ПолучитьСвойствоПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Индекс свойства от <strong>0</strong> до <a class="reference" href="#id61">КоличествоСвойств</a> - 1.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> свойство по индексу.</p> <p><strong>Описание:</strong> Получает значение свойства по его индексу.</p> <p>Если индекс неверен, то генерируется ошибка.</p> <p><strong>Внимание! Индексация свойств начинается с 0(ноль)!</strong></p> </blockquote> </div> <div class="section"> <h3><a id="getnprops" name="getnprops">КоличествоСвойств / GetNProps</a></h3> <blockquote id="id61"> <p><strong>Синтаксис:</strong> КоличествоСвойств()</p> <p><strong>Возвращает:</strong> Число. Количество свойств.</p> <p><strong>Описание:</strong> Получает количество свойств.</p> </blockquote> </div> <div class="section"> <h3><a id="savetostring" name="savetostring">ВыгрузитьВСтроку / SaveToString</a></h3> <blockquote id="id62"> <p><strong>Синтаксис:</strong> ВыгрузитьВСтроку()</p> <p><strong>Возвращает:</strong> Строка. Сохранненое состояние объекта.</p> <p><strong>Описание:</strong> Возвращает строку с содержимым объекта для хранения и последующего восстановления.</p> <p><strong>Примечание:</strong></p> <blockquote> <ul class="simple"> <li>выгружается абсолютно все содержимое, независимо от количества уровней вложенности.</li> <li>Для возможного сохранения классов КОП, которые могут содержаться в DynaValue необходимо, чтобы эти классы соответствовали требованиям, описанным в <a class="reference" href="alink">Сериализации КОП|_1cpp_oop_serialization_</a>.</li> </ul> </blockquote> </blockquote> </div> <div class="section"> <h3><a id="savetofile" name="savetofile">ВыгрузитьВФайл / SaveToFile</a></h3> <blockquote id="id63"> <p><strong>Синтаксис:</strong> ВыгрузитьВФайл(стрИмяФайла)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмяФайла - тип: Строка. Имя файла, в который производится выгрузка состояния.</li> </ul> </blockquote> <dl class="docutils"> <dt><strong>Возвращает:</strong> Число.</dt> <dd><ul class="first last simple"> <li>1 - выгрузка произведена успешно</li> <li>иначе ошибка</li> </ul> </dd> </dl> <p><strong>Описание:</strong> Сохраняет состояние объекта в файл.</p> </blockquote> </div> <div class="section"> <h3><a id="loadfromstring" name="loadfromstring">ЗагрузитьИзСтроки / LoadFromString</a></h3> <blockquote id="id64"> <p><strong>Синтаксис:</strong> ЗагрузитьИзСтроки(стрСтрока)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрСтрока - тип: Строка. Сохраненное состояние объекта.</li> </ul> </blockquote> <p><strong>Описание:</strong> Восстанавливает значение объекта из выгрузки в строку.</p> <p><strong>Примечание:</strong></p> <ul class="simple"> <li>Предыдущее состояние объекта не сохранятся.</li> <li>восстанавливаются значения всех элементов, включая агрегатные.</li> <li>категорически запрещается передавать методу "ЗагрузитьИзСтроки" в качестве параметра что-либо, кроме строк выгруженных методом <a class="reference" href="#id63">ВыгрузитьВФайл</a>, по причине невозможности проконтролировать целостность данных. В случае неверной строки происходит немедленное прекращение работы программы 1С с потерей всех несохраненных на данный момент данных.</li> <li>Запрещены циклические ссылки между элементами объектов, один из которых подлежит выгрузке в строку. В этом случае произойдет зацикливание программы 1С и, со временем - прекращение работы программы 1С с потерей всех несохраненных на данный момент данных.</li> <li>Для восстановления состояния классов КОП вызывается их метод <a class="reference" href="alink">ЗагрузитьИзСтроки|_1cpp_oop_load_from_string_</a>.</li> </ul> </blockquote> </div> <div class="section"> <h3><a id="loadfromfile" name="loadfromfile">ЗагрузитьИзФайла / LoadFromFile</a></h3> <blockquote id="id65"> <p><strong>Синтаксис:</strong> ЗагрузитьИзФайла(стрИмяФайла)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмяФайла - тип: Строка. Имя файла, из которого производится загрузка.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Число.</p> <blockquote> <ul class="simple"> <li>1 - загрузка произведена успешно</li> <li>не 1 - произошла ошибка</li> </ul> </blockquote> <p><strong>Описание:</strong> Восстанавливает значения объектов из файла.</p> <p>См. примечание у метода <a class="reference" href="#id64">ЗагрузитьИзСтроки</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="findbyname" name="findbyname">НайтиПоИмени / FindByName</a></h3> <blockquote id="id66"> <p><strong>Синтаксис:</strong> НайтиПоИмени(стрИмя)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип: Строка. Имя искомого свойства.</li> <li><ul class="first"> <li>тип:</li> </ul> </li> <li><ul class="first"> <li>тип:</li> </ul> </li> <li><ul class="first"> <li>тип:</li> </ul> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> номер свойства (от нуля), или -1 если не найдено.</p> <p><strong>Описание:</strong> Ищет свойство по имени.</p> </blockquote> </div> <div class="section"> <h3><a id="getbyname" name="getbyname">ПолучитьПоИмени / GetByName</a></h3> <blockquote id="id67"> <p><strong>Синтаксис:</strong> ПолучитьПоИмени(стрИмя)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип: Строка. Имя свойства.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Значение свойства по номеру (от нуля).</p> <p><strong>Описание:</strong> Получает свойство по имени.</p> </blockquote> </div> <div class="section"> <h3><a id="setbyname" name="setbyname">УстановитьПоИмени / SetByName</a></h3> <blockquote id="id68"> <p><strong>Синтаксис:</strong> УстановитьПоИмени(стрИмя,нЗначение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип: Строка. Имя свойства.</li> <li>нЗначение - тип: Любой. Значение свойства.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает значение свойства по имени свойства.</p> </blockquote> </div> <div class="section"> <h3><a id="setbynum" name="setbynum">УстановитьПоНомеру / SetByNum</a></h3> <blockquote id="id69"> <p><strong>Синтаксис:</strong> УстановитьПоНомеру(чНомер,нЗначение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id61">КоличествоСвойств</a>- 1;</li> <li>нЗначение - тип: Любой. Новое значение свойства.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает значение свойства по номеру свойства.</p> </blockquote> </div> <div class="section"> <h3><a id="deletebynum" name="deletebynum">УдалитьПоНомеру / DeleteByNum</a></h3> <blockquote id="id70"> <p><strong>Синтаксис:</strong> УдалитьПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id61">КоличествоСвойств</a> - 1;</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет свойство по указанному номеру.</p> </blockquote> </div> <div class="section"> <h3><a id="deletebyname" name="deletebyname">УдалитьПоИмени / DeleteByName</a></h3> <blockquote id="id71"> <p><strong>Синтаксис:</strong> УдалитьПоИмени(стрИмя)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмя - тип: Строка. Имя удаляемого свойства.</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет свойство по указанному названию.</p> </blockquote> </div> <div class="section"> <h3><a id="id72" name="id72">Очистить / Clear</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Описание:</strong> Удаляет все свойства.</p> </blockquote> </div> <div class="section"> <h3><a id="propstovaluelist" name="propstovaluelist">СвойстваВСписокЗначений / PropsToValueList</a></h3> <blockquote id="id73"> <p><strong>Синтаксис:</strong> СвойстваВСписокЗначений(сз)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>сз - тип: Имя переменной. В нее вернется заполненный список значений.</li> </ul> </blockquote> <p><strong>Описание:</strong> Выгружает в список значений все значения и имена свойств.</p> </blockquote> </div> <div class="section"> <h3><a id="findbyvalue" name="findbyvalue">НайтиПоЗначению / FindByValue</a></h3> <blockquote id="id74"> <p><strong>Синтаксис:</strong> НайтиПоЗначению(нЗнач, чИндекс)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>нЗнач - тип: Любой. Значение, которое ищем в объекте.</li> <li>чИндекс - тип: Имя переменной. В нее вернется индекс найденного значения в объекте, если не найдено - устанавливается в -1.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Если значение найдено - возвращается оно же, иначе пустой объект.</p> <p><strong>Описание:</strong> ищет значение в объекте и, если находит, возвращает значение и индекс в "чИндекс".</p> </blockquote> </div> <div class="section"> <h3><a id="findbyatributevalue" name="findbyatributevalue">НайтиПоЗначениюАтрибута / FindByAtributeValue</a></h3> <blockquote id="id75"> <p><strong>Синтаксис:</strong> НайтиПоЗначениюАтрибута(стрИмяАтрибута, нЗнач, чИндекс)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>стрИмяАтрибута - тип: Строка. Имя для поиска атрибута в объекте, который хранится в свойстве DynaValue.</li> <li>нЗнач - тип: Любой. Значение, которое ищем в атрибуте значения свойства.</li> <li>чИндекс - тип: Имя переменной. В нее вернется индекс найденного свойства, в котором хранится другой объект, имеющий атрибут с именем "стрИмяАтрибута", и содержащий значение, указанное в "нЗнач". Если не найдено устанавливается в -1.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Если значение найдено - возвращается значение свойства, у которого был обнаружен атрибут, иначе возвращается пустой объект.</p> <p><strong>Описание:</strong> Ищет свойство, у которого есть атрибут с указанным именем "стрИмяАтрибута", и содержащее указанное значение "нЗнач".</p> </blockquote> </div> </div> </div> </div> </body> </html>