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

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

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" id="id2"> <p class="topic-title first"><a name="id2">Содержание</a></p> <ul class="simple"> <li><a class="reference" href="#win" id="id73" name="id73">РаботаСРегистромWin</a><ul> <li><a class="reference" href="#id5" id="id74" name="id74">Методы</a><ul> <li><a class="reference" href="#createkey" id="id75" name="id75">СоздатьКлюч / CreateKey</a></li> <li><a class="reference" href="#openkey" id="id76" name="id76">ОткрытьКлюч / OpenKey</a></li> <li><a class="reference" href="#connectregistry" id="id77" name="id77">ПодключитьРегистр / ConnectRegistry</a></li> <li><a class="reference" href="#deletekey" id="id78" name="id78">УдалитьКлюч / DeleteKey</a></li> <li><a class="reference" href="#deletevalue" id="id79" name="id79">УдалитьЗначение / DeleteValue</a></li> <li><a class="reference" href="#setvalue" id="id80" name="id80">УстановитьЗначение / SetValue</a></li> <li><a class="reference" href="#queryvalue" id="id81" name="id81">ЗапроситьЗначение / QueryValue</a></li> <li><a class="reference" href="#choosekeys" id="id82" name="id82">ВыбратьКлючи / ChooseKeys</a></li> <li><a class="reference" href="#getkey" id="id83" name="id83">ПолучитьКлюч / GetKey</a></li> <li><a class="reference" href="#choosevalues" id="id84" name="id84">ВыбратьЗначения / ChooseValues</a></li> <li><a class="reference" href="#getvalue" id="id85" name="id85">ПолучитьЗначение / GetValue</a></li> <li><a class="reference" href="#id10" id="id86" name="id86">ОтладочныеСообщения</a></li> <li><a class="reference" href="#id11" id="id87" name="id87">ЗаписатьВсеАтрибуты</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id12" id="id88" name="id88">ВыполняемыйМодуль</a><ul> <li><a class="reference" href="#id13" id="id89" name="id89">Свойства</a><ul> <li><a class="reference" href="#id14" id="id90" name="id90"><ИмяПеременной></a></li> </ul> </li> <li><a class="reference" href="#id15" id="id91" name="id91">Методы</a><ul> <li><a class="reference" href="#id16" id="id92" name="id92"><ИмяМетода></a></li> <li><a class="reference" href="#assignsource" id="id93" name="id93">УстановитьМодуль / AssignSource</a></li> <li><a class="reference" href="#assigncontext" id="id94" name="id94">НазначитьКонтекст / AssignContext</a></li> <li><a class="reference" href="#assignfriendmodule" id="id95" name="id95">ПрисоединитьТекущийМодуль / AssignFriendModule</a></li> <li><a class="reference" href="#compile" id="id96" name="id96">КомпилироватьМодуль / Compile</a></li> <li><a class="reference" href="#execute" id="id97" name="id97">ВыполнитьМодуль / Execute</a></li> <li><a class="reference" href="#getmethofcontext" id="id98" name="id98">GetMethOfContext</a></li> <li><a class="reference" href="#raiseerror" id="id99" name="id99">СформироватьОшибку / RaiseError</a></li> <li><a class="reference" href="#erasepoststate" id="id100" name="id100">ОчиститьПозициюПроведения / ErasePostState</a></li> <li><a class="reference" href="#restorepoststate" id="id101" name="id101">ВосстановитьПозициюПроведения / RestorePostState</a></li> <li><a class="reference" href="#throw" id="id102" name="id102">ВыброситьИскл / Throw</a></li> <li><a class="reference" href="#getexeption" id="id103" name="id103">ПолучитьИсключение / GetExeption</a></li> <li><a class="reference" href="#compileandexecute" id="id104" name="id104">КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></li> <li><a class="reference" href="#enableexceptions" id="id105" name="id105">РазрешитьИсключения / EnableExceptions</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id25" id="id106" name="id106">Делегат</a><ul> <li><a class="reference" href="#id26" id="id107" name="id107">Методы</a><ul> <li><a class="reference" href="#definetype" id="id108" name="id108">ОпределитьТип / DefineType</a></li> <li><a class="reference" href="#addmethod" id="id109" name="id109">Добавить / AddMethod</a></li> <li><a class="reference" href="#remmethod" id="id110" name="id110">Удалить / RemMethod</a></li> <li><a class="reference" href="#remmethodbykey" id="id111" name="id111">УдалитьПоКлючу / RemMethodByKey</a></li> <li><a class="reference" href="#invoke" id="id112" name="id112">Вызвать / Invoke</a></li> <li><a class="reference" href="#invokebykey" id="id113" name="id113">ВызватьПоКлючу / InvokeByKey</a></li> <li><a class="reference" href="#erase" id="id114" name="id114">Очистить / Erase</a></li> <li><a class="reference" href="#isempty" id="id115" name="id115">Пустой / IsEmpty</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id31" id="id116" name="id116">МенеджерСобытий</a><ul> <li><a class="reference" href="#id32" id="id117" name="id117">Методы</a><ul> <li><a class="reference" href="#id33" id="id118" name="id118">Пустой / IsEmpty</a></li> <li><a class="reference" href="#addeventhandle" id="id119" name="id119">ДобавитьОбработчикСобытия / AddEventHandle</a></li> <li><a class="reference" href="#remeventhandle" id="id120" name="id120">УдалитьОбработчикСобытия / RemEventHandle</a></li> <li><a class="reference" href="#sendevent" id="id121" name="id121">ПослатьСобытие / SendEvent</a></li> <li><a class="reference" href="#setdelegate" id="id122" name="id122">УстановитьДелегата / SetDelegate</a></li> <li><a class="reference" href="#clear" id="id123" name="id123">Очистить / Clear</a></li> <li><a class="reference" href="#setcountofparams" id="id124" name="id124">УстановитьКоличествоПараметров / SetCountOfParams</a></li> </ul> </li> <li><a class="reference" href="#id38" id="id125" name="id125">Пример кода</a></li> </ul> </li> <li><a class="reference" href="#id39" id="id126" name="id126">Структура</a><ul> <li><a class="reference" href="#id40" id="id127" name="id127">Свойства</a><ul> <li><a class="reference" href="#id41" id="id128" name="id128"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id42" id="id129" name="id129">Методы</a><ul> <li><a class="reference" href="#insert" id="id130" name="id130">Вставить / Insert</a></li> <li><a class="reference" href="#count" id="id131" name="id131">Количество / Count</a></li> <li><a class="reference" href="#id45" id="id132" name="id132">Очистить / Clear</a></li> <li><a class="reference" href="#property" id="id133" name="id133">Свойство / Property</a></li> <li><a class="reference" href="#remove" id="id134" name="id134">Удалить / Remove</a></li> <li><a class="reference" href="#get" id="id135" name="id135">Получить / Get</a></li> <li><a class="reference" href="#existprop" id="id136" name="id136">ЕстьСвойство / ExistProp</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#dynavalue" id="id137" name="id137">DynaValue</a><ul> <li><a class="reference" href="#id51" id="id138" name="id138">Свойства</a><ul> <li><a class="reference" href="#id52" id="id139" name="id139"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id53" id="id140" name="id140">Методы</a><ul> <li><a class="reference" href="#addprop" id="id141" name="id141">ДобавитьСвойство / AddProp</a></li> <li><a class="reference" href="#selectprops" id="id142" name="id142">ВыбратьСвойства / SelectProps</a></li> <li><a class="reference" href="#getprop" id="id143" name="id143">ПолучитьСвойство / GetProp</a></li> <li><a class="reference" href="#getpropbynum" id="id144" name="id144">ПолучитьСвойствоПоНомеру / GetPropByNum</a></li> <li><a class="reference" href="#getnprops" id="id145" name="id145">КоличествоСвойств / GetNProps</a></li> <li><a class="reference" href="#savetostring" id="id146" name="id146">ВыгрузитьВСтроку / SaveToString</a></li> <li><a class="reference" href="#savetofile" id="id147" name="id147">ВыгрузитьВФайл / SaveToFile</a></li> <li><a class="reference" href="#loadfromstring" id="id148" name="id148">ЗагрузитьИзСтроки / LoadFromString</a></li> <li><a class="reference" href="#loadfromfile" id="id149" name="id149">ЗагрузитьИзФайла / LoadFromFile</a></li> <li><a class="reference" href="#findbyname" id="id150" name="id150">НайтиПоИмени / FindByName</a></li> <li><a class="reference" href="#getbyname" id="id151" name="id151">ПолучитьПоИмени / GetByName</a></li> <li><a class="reference" href="#setbyname" id="id152" name="id152">УстановитьПоИмени / SetByName</a></li> <li><a class="reference" href="#setbynum" id="id153" name="id153">УстановитьПоНомеру / SetByNum</a></li> <li><a class="reference" href="#deletebynum" id="id154" name="id154">УдалитьПоНомеру / DeleteByNum</a></li> <li><a class="reference" href="#deletebyname" id="id155" name="id155">УдалитьПоИмени / DeleteByName</a></li> <li><a class="reference" href="#id69" id="id156" name="id156">Очистить / Clear</a></li> <li><a class="reference" href="#propstovaluelist" id="id157" name="id157">СвойстваВСписокЗначений / PropsToValueList</a></li> <li><a class="reference" href="#findbyvalue" id="id158" name="id158">НайтиПоЗначению / FindByValue</a></li> <li><a class="reference" href="#findbyatributevalue" id="id159" name="id159">НайтиПоЗначениюАтрибута / 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" id="win"> <h1><a 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" id="id5"> <h2><a name="id5">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="createkey"> <h3><a name="createkey">СоздатьКлюч / CreateKey</a></h3> <blockquote id="id6"> <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" id="openkey"> <h3><a name="openkey">ОткрытьКлюч / OpenKey</a></h3> <blockquote id="id7"> <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" id="connectregistry"> <h3><a 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" id="deletekey"> <h3><a 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="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section" id="deletevalue"> <h3><a 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="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section" id="setvalue"> <h3><a 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="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section" id="queryvalue"> <h3><a 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="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> <p><strong>Примечание:</strong> Если операция выполнена успешно, то результат будет в Значение. Тип значений, которые можно получить, может быть только "REG_SZ" или "REG_DWORD".</p> </blockquote> </div> <div class="section" id="choosekeys"> <h3><a name="choosekeys">ВыбратьКлючи / ChooseKeys</a></h3> <blockquote id="id8"> <p><strong>Синтаксис:</strong> ВыбратьКлючи()</p> <p><strong>Возвращает:</strong> Число. Количество выбранных подключей.</p> <p><strong>Описание:</strong> Открывает выборку подключей ключа, установленного функцией <a class="reference" href="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section" id="getkey"> <h3><a 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="#id8">ВыбратьКлючи</a>.</p> </blockquote> </div> <div class="section" id="choosevalues"> <h3><a name="choosevalues">ВыбратьЗначения / ChooseValues</a></h3> <blockquote id="id9"> <p><strong>Синтаксис:</strong> ВыбратьЗначения()</p> <p><strong>Возвращает:</strong> Число. Количество - значений в выборке.</p> <p><strong>Описание:</strong> Открывает выборку значений ключа, установленного функцией <a class="reference" href="#id7">ОткрытьКлюч</a> или <a class="reference" href="#id6">СоздатьКлюч</a>.</p> </blockquote> </div> <div class="section" id="getvalue"> <h3><a 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="#id9">ВыбратьЗначения</a>.</p> </blockquote> </div> <div class="section" id="id10"> <h3><a name="id10">ОтладочныеСообщения</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" id="id11"> <h3><a name="id11">ЗаписатьВсеАтрибуты</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ЗаписатьВсеАтрибуты()</p> <p><strong>Описание:</strong> Немедленно записать изменения, внесенные ранее в реестр.</p> </blockquote> </div> </div> </div> <div class="section" id="id12"> <h1><a name="id12">ВыполняемыйМодуль</a></h1> <chminfo> <klinks> ВыполняемыйМодуль ExecuteModule </klinks> </chminfo> <p><strong>Класс ВыполняемыйМодуль / ExecuteModule</strong></p> <p>Предназначен для работы с динамическими модулями, передаваемыми в параметре метода в качестве строки.</p> <p>После установки текста модуля скомпилируйте и выполните его. Модуль инициализируется и выполнит операторы, расположенные в конце тела модуля, вне методов. После этого можно обращаться к переменным модуля, как к свойствам этого объекта, и к методам модуля, как к методам объекта.</p> <div class="section" id="id13"> <h2><a name="id13">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="id14"> <h3><a name="id14"><ИмяПеременной></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.</p> </blockquote> </div> </div> <div class="section" id="id15"> <h2><a name="id15">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="id16"> <h3><a name="id16"><ИмяМетода></a></h3> <blockquote> <p><strong>Синтаксис:</strong> Соответствует синтаксису метода модуля.</p> <p><strong>Параметры:</strong> Соответствуют параметрам меода модуля.</p> <p><strong>Описание:</strong> Позволяет обращаться к методам, определенным в тексте модуля, как к своим методам.</p> </blockquote> </div> <div class="section" id="assignsource"> <h3><a name="assignsource">УстановитьМодуль / AssignSource</a></h3> <blockquote id="id17"> <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="#id12">ВыполняемыйМодуль</a>, после компилирования и запуска.</p> </blockquote> </div> <div class="section" id="assigncontext"> <h3><a 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" id="assignfriendmodule"> <h3><a name="assignfriendmodule">ПрисоединитьТекущийМодуль / AssignFriendModule</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ПрисоединитьТекущийМодуль()</p> <p><strong>Описание:</strong> Присоединяет модуль, который в данный момент выполняется.</p> <p>Это позволяет в установленном модуле объекта обращаться напрямую к переменным и методам текущего модуля (т.е. модуля, в котором идет работа в данный момент с объектом класса <a class="reference" href="#id12">ВыполняемыйМодуль</a>).</p> </blockquote> </div> <div class="section" id="compile"> <h3><a name="compile">КомпилироватьМодуль / Compile</a></h3> <blockquote id="id18"> <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="#id17">УстановитьМодуль</a>.</p> </blockquote> </div> <span id="id19"></span><div class="section" id="execute"> <h3><a name="execute">ВыполнитьМодуль / 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="#id17">УстановитьМодуль</a> и откомпилированный методом <a class="reference" href="#id18">КомпилироватьМодуль</a>.</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id12">ВыполняемыйМодуль</a> готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам.</p> </blockquote> </div> <div class="section" id="getmethofcontext"> <h3><a 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" id="raiseerror"> <h3><a 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" id="erasepoststate"> <h3><a name="erasepoststate">ОчиститьПозициюПроведения / ErasePostState</a></h3> <blockquote id="id20"> <p><strong>Синтаксис:</strong> ОчиститьПозициюПроведения()</p> <p><strong>Описание:</strong> Очищает позицию проведения и сохраняет текущую в объекте.</p> <p>Далее в модуле документа можно проводить другие документы и отменять проведение других документов, после выполнения этих операций необходимо восстановить позицию с помощью метода <a class="reference" href="#id21">ВосстановитьПозициюПроведения</a>, описанного ниже.</p> <p><strong>Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.</strong></p> </blockquote> </div> <div class="section" id="restorepoststate"> <h3><a name="restorepoststate">ВосстановитьПозициюПроведения / RestorePostState</a></h3> <blockquote id="id21"> <p><strong>Синтаксис:</strong> ВосстановитьПозициюПроведения()</p> <p><strong>Описание:</strong> Восстанавливает позицию проведения текущего документа, очищенную с помощью метода <a class="reference" href="#id20">ОчиститьПозициюПроведения</a>.</p> <p>Методы <a class="reference" href="#id20">ОчиститьПозициюПроведения</a> и ВосстановитьПозициюПроведения необходимо вызывать всегда в паре в указанной последовательности!!!</p> <p><strong>Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.</strong></p> </blockquote> </div> <div class="section" id="throw"> <h3><a name="throw">ВыброситьИскл / Throw</a></h3> <blockquote id="id22"> <p><strong>Синтаксис:</strong> ВыброситьИскл(ОбъектИскл, [ТекстИскл])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ОбъектИскл - тип: Любой. Параметр, который потом можно получить при обработке исключения методом <a class="reference" href="#id23">ПолучитьИсключение</a>.</li> <li>ТекстИскл - тип: Строка. Сообщение об ошибке. По умолчанию "".</li> </ul> </blockquote> <p><strong>Описание:</strong> Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода <a class="reference" href="#id23">ПолучитьИсключение</a>.</p> <p>При обработке исключения текст сообщения об ошибке можно получить с помощью глобальной функции <em>ОписаниеОшибки()</em>. Если исключение не обработано, этот текст будет выведен в окно сообщений.</p> </blockquote> </div> <div class="section" id="getexeption"> <h3><a name="getexeption">ПолучитьИсключение / GetExeption</a></h3> <blockquote id="id23"> <p><strong>Синтаксис:</strong> ПолучитьИсключение()</p> <p><strong>Возвращает:</strong> объект-исключение, параметр ОбъектИскл, переданный в метод <a class="reference" href="#id22">ВыброситьИскл</a>.</p> <p><strong>Описание:</strong> Получает объект исключения.</p> <p>Используется в обработчиках исключений для получения объекта исключения, переданного в метод <a class="reference" href="#id22">ВыброситьИскл</a>, или метода функционала класса <a class="reference" href="alink">_ВыброситьИскл|_1cpp_oop__throw_</a>.</p> </blockquote> </div> <span id="id24"></span><div class="section" id="compileandexecute"> <h3><a name="compileandexecute">КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></h3> <blockquote> <p><strong>Синтаксис:</strong> КомпилироватьИВыполнитьМодуль()</p> <p><strong>Описание:</strong> Компилирует и выполняет модуль, установленный с помощью метода <a class="reference" href="#id17">УстановитьМодуль</a> .</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id12">ВыполняемыйМодуль</a> готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение.</p> </blockquote> </div> <div class="section" id="enableexceptions"> <h3><a name="enableexceptions">РазрешитьИсключения / EnableExceptions</a></h3> <blockquote> <p><strong>Синтаксис:</strong> РазрешитьИсключения()</p> <p><strong>Описание:</strong> Включает флаг выдачи исключений вместо показа ошибок в окне сообщений.</p> <p>После выполнения данного метода методы <a class="reference" href="#id19">ВыполнитьМодуль</a>, <a class="reference" href="#id18">КомпилироватьМодуль</a> вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод <a class="reference" href="#id24">КомпилироватьИВыполнитьМодуль</a> всегда выбрасывает исключения, независимо от выполнения данного метода.</p> </blockquote> </div> </div> </div> <div class="section" id="id25"> <h1><a name="id25">Делегат</a></h1> <chminfo> <klinks> Делегат Delegate </klinks> </chminfo> <p><strong>Класс Делегат / Delegate</strong></p> <p>Данный класс представляет собой хранилище ссылок на методы экземпляров агрегатных объектов 1С. С помощью этого класса возможно вызывать группу методов с одинаковой сигнатурой (возвращаемый параметр, количество параметров или их отсутствие).</p> <p>Использование делегата позволяет писать обобщенные алгоритмы и делать групповые вызовы методов.</p> <div class="section" id="id26"> <h2><a name="id26">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <span id="id27"></span><div class="section" id="definetype"> <h3><a name="definetype">ОпределитьТип / 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">ОпределитьТип(чКолПарам, флЕстьВозврат, [флПрерыватьВыполнение = 0])</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <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="#id29">Вызвать</a> и <a class="reference" href="#id30">ВызватьПоКлючу</a> прерывают выполнение цепочки, если при вызове очередной функции возвращенное значение равно 0</li> <li>0 - методы <a class="reference" href="#id29">Вызвать</a> и <a class="reference" href="#id30">ВызватьПоКлючу</a> всегда проходят цепочку вызова полностью</li> </ul> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body">нет</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> <span id="id28"></span><div class="section" id="addmethod"> <h3><a name="addmethod">Добавить / 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">Добавить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода, [стрКлюч = ""])</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <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="#id30">ВызватьПоКлючу</a></p> <div class="last line-block"> <div class="line">По умолчанию используется ключ ""</div> <div class="line">Возможна реализация обработчика по умолчанию для ситуаций вызова по несуществующим ключам</div> <div class="line">(см. описание метода <a class="reference" href="#id30">ВызватьПоКлючу</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="last simple"> <li>1 - добавление метода прошло успешно</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="#id27">ОпределитьТип</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" id="remmethod"> <h3><a 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">Удалить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода)</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <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="last simple"> <li>1 - удаление прошло успешно</li> <li>0 - ссылок не найдено</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body">Удаляет все ссылки на заданный метод указанного агрегатного объекта во всех ключах</td> </tr> </tbody> </table> </blockquote> </div> <div class="section" id="remmethodbykey"> <h3><a 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">УдалитьПоКлючу(стрКлюч)</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <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="last 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="#id28">Добавить</a></div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <span id="id29"></span><div class="section" id="invoke"> <h3><a name="invoke">Вызвать / 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">Вызвать(...)</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <li><dl class="first docutils"> <dt><em>...</em>:</dt> <dd><p class="first last">Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом <a class="reference" href="#id27">ОпределитьТип</a></p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body">Наличие и тип возвращаемого значения определяется сигнатурой делегата</td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body">Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом <a class="reference" href="#id27">ОпределитьТип</a></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="#id28">Добавить</a>.</div> <div class="line">Порядок перебора ключей не определен.</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <span id="id30"></span><div class="section" id="invokebykey"> <h3><a name="invokebykey">ВызватьПоКлючу / 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">ВызватьПоКлючу(стрКлюч, ...)</td> </tr> <tr class="field"><th class="field-name">Параметры:</th><td class="field-body"><ul class="first last"> <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="#id27">ОпределитьТип</a></p> </dd> </dl> </li> </ul> </td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body">Наличие и тип возвращаемого значения определяется сигнатурой делегата</td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body">Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом <a class="reference" href="#id27">ОпределитьТип</a></td> </tr> <tr class="field"><th class="field-name">Примечание:</th><td class="field-body">Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом <a class="reference" href="#id28">Добавить</a></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="#id28">Добавить</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" id="erase"> <h3><a 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">Очистить()</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" id="isempty"> <h3><a 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">Пустой()</td> </tr> <tr class="field"><th class="field-name">Возвращает:</th><td class="field-body"><p class="first">Число</p> <ul class="last simple"> <li>1, если делегат не содержит ссылок на методы</li> <li>0, если содержит</li> </ul> </td> </tr> <tr class="field"><th class="field-name">Описание:</th><td class="field-body">Проверяет наличие сохраненных ссылок</td> </tr> </tbody> </table> </blockquote> </div> </div> </div> <div class="section" id="id31"> <h1><a name="id31">МенеджерСобытий</a></h1> <chminfo> <klinks> МенеджерСобытий EventManager </klinks> </chminfo> <p><strong>Класс МенеджерСобытий / EventManager</strong></p> <p>Данный класс предназначен для обработки событий, возникающих в классах КОП и других контекстах использования менеджера.</p> <p>Например: Есть класс, который формирует различные события и называется он "ФабрикаСобытий" (издатель событий). Предположим, что обращение к его открытым методам "Событие_1" и "Событие_2" приводят к возникновению событий в системе от этого класса. Далее, у нас есть несколько классов, которые хотят подписаться на события (подписчики событий), формируемые классом "ФабрикаСобытий", назовем их "ОбработчикСобытий_1" и "ОбработчикСобытий_2". Экземпляры классов-обработчиков событий (подписчиков) определяют свои методы, которые будут вызываться при возникновении в экземпляре класса "ФабрикаСобытий" определенных событий. Далее опишем методы класса "МенеджерСобытий" и приведём с краткими пояснениями пример кода, реализующий описанную схему.</p> <div class="section" id="id32"> <h2><a name="id32">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="id33"> <h3><a name="id33">Пустой / 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" id="addeventhandle"> <h3><a name="addeventhandle">ДобавитьОбработчикСобытия / AddEventHandle</a></h3> <blockquote id="id34"> <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="#id35">ПослатьСобытие</a>.</li> </ul> <p>Количество параметров, заданных по умолчанию, возможно изменить с помощью установки отдельно созданного делегата - передать его в качестве параметра метода <a class="reference" href="#id36">УстановитьДелегата</a>, или передать число параметров в метод <a class="reference" href="#id37">УстановитьКоличествоПараметров</a>.</p> <p>Каждый метод-обработчик обязан возвращать числовое значение. Если функция возвращает 0, то цепочка обработки события прерывается на данном подписчике, т.е. если у нас есть менеджер событий, в котором зарегистрировано 5 подписчиков и 2-ой по счету в своей функции возвращает 0, то 3 последующих подписчика не получат данное событие, другими словами - рассылка будет прервана на подписчике с номером 2. Если же функция возвращает любое другое числовое значение, отличное от нуля, то рассылка события менеджером не прерывается.</p> </blockquote> </div> <div class="section" id="remeventhandle"> <h3><a 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="#id34">ДобавитьОбработчикСобытия</a>.</li> </ul> </blockquote> <p><strong>Описание:</strong> Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью <a class="reference" href="#id34">ДобавитьОбработчикСобытия</a>.</p> </blockquote> </div> <div class="section" id="sendevent"> <h3><a name="sendevent">ПослатьСобытие / SendEvent</a></h3> <blockquote id="id35"> <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" id="setdelegate"> <h3><a name="setdelegate">УстановитьДелегата / SetDelegate</a></h3> <blockquote id="id36"> <p><strong>Синтаксис:</strong> УстановитьДелегата(ЭкземплярДелегата)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ЭкземплярДелегата - тип: <a class="reference" href="#id25">Делегат</a>. Экземпляр делегата, через который будет осуществляться вызов методов-обработчиков.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> <a class="reference" href="#id25">Делегат</a>. Установленный ранее делегат, или делегат по умолчанию, содержащийся в текущем менеджере событий.</p> <p><strong>Описание:</strong> Устанавливает делегата для вызова методов-обработчиков.</p> </blockquote> </div> <div class="section" id="clear"> <h3><a name="clear">Очистить / Clear</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Параметры:</strong></p> <p><strong>Описание:</strong> Очищает менеджер событий от подписчиков.</p> </blockquote> </div> <div class="section" id="setcountofparams"> <h3><a name="setcountofparams">УстановитьКоличествоПараметров / SetCountOfParams</a></h3> <blockquote id="id37"> <p><strong>Синтаксис:</strong> УстановитьКоличествоПараметров(чКолвоПарам)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чКолвоПарам - тип: Число. Новое количество параметров.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод <a class="reference" href="#id35">ПослатьСобытие</a>.</p> <p>Данный метод удаляет всех подписчиков, установленных ранее в менеджере событий.</p> </blockquote> </div> </div> <div class="section" id="id38"> <h2><a name="id38">Пример кода</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" id="id39"> <h1><a name="id39">Структура</a></h1> <chminfo> <klinks> Структура Struct </klinks> </chminfo> <p><strong>Класс Структура / Struct</strong></p> <p>Данный класс предназначен для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.</p> <div class="section" id="id40"> <h2><a name="id40">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="id41"> <h3><a name="id41"><ИмяСвойства></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обратиться к свойству, добавленному методом <a class="reference" href="#id43">Вставить</a>.</p> </blockquote> </div> </div> <div class="section" id="id42"> <h2><a name="id42">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="insert"> <h3><a name="insert">Вставить / Insert</a></h3> <blockquote id="id43"> <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" id="count"> <h3><a name="count">Количество / Count</a></h3> <blockquote id="id44"> <p><strong>Синтаксис:</strong> Количество()</p> <p><strong>Возвращает:</strong> Число. Количество свойств структуры.</p> <p><strong>Описание:</strong> Возвращает количество свойств структуры, добавленных методом <a class="reference" href="#id43">Вставить</a>.</p> </blockquote> </div> <div class="section" id="id45"> <h3><a name="id45">Очистить / Clear</a></h3> <blockquote id="id46"> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Описание:</strong> Удаляет все свойства структуры.</p> </blockquote> </div> <div class="section" id="property"> <h3><a name="property">Свойство / Property</a></h3> <blockquote id="id47"> <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" id="remove"> <h3><a name="remove">Удалить / Remove</a></h3> <blockquote id="id48"> <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" id="get"> <h3><a name="get">Получить / Get</a></h3> <blockquote id="id49"> <p><strong>Синтаксис:</strong> Получить(чИндекс, [стрИмяСвойства])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чИндекс - тип: Число. Номер поля по порядку от 1 до <a class="reference" href="#id44">Количество</a></li> <li>стрИмяСвойства - тип: Имя переменной. В нее записывается имя свойства, полученное по его номеру.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> Значение свойства, полученное по его номеру.</p> <p><strong>Описание:</strong> Позволяет получать по индексу значение свойства и его имя.</p> </blockquote> </div> <div class="section" id="existprop"> <h3><a name="existprop">ЕстьСвойство / ExistProp</a></h3> <blockquote id="id50"> <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" id="dynavalue"> <h1><a name="dynavalue">DynaValue</a></h1> <chminfo> <klinks> DynaValue </klinks> </chminfo> <p><strong>Класс DynaValue</strong></p> <p>Объект "DynaValue" представляет собой массив поименованных свойств или, иными словами, составное значение. Свойства принимают тип значения переданного параметром при добавлении свойства. Чтение/Установка свойства осуществляется через точку по имени свойства.</p> <div class="section" id="id51"> <h2><a name="id51">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="id52"> <h3><a name="id52"><ИмяСвойства></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обратиться к свойству, добавленному методом <a class="reference" href="#id54">ДобавитьСвойство</a>.</p> </blockquote> </div> </div> <div class="section" id="id53"> <h2><a name="id53">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section" id="addprop"> <h3><a name="addprop">ДобавитьСвойство / AddProp</a></h3> <blockquote id="id54"> <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" id="selectprops"> <h3><a name="selectprops">ВыбратьСвойства / SelectProps</a></h3> <blockquote id="id55"> <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" id="getprop"> <h3><a name="getprop">ПолучитьСвойство / GetProp</a></h3> <blockquote id="id56"> <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="#id55">ВыбратьСвойства</a>.</p> </blockquote> </div> <div class="section" id="getpropbynum"> <h3><a name="getpropbynum">ПолучитьСвойствоПоНомеру / GetPropByNum</a></h3> <blockquote id="id57"> <p><strong>Синтаксис:</strong> ПолучитьСвойствоПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Индекс свойства от <strong>0</strong> до <a class="reference" href="#id58">КоличествоСвойств</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" id="getnprops"> <h3><a name="getnprops">КоличествоСвойств / GetNProps</a></h3> <blockquote id="id58"> <p><strong>Синтаксис:</strong> КоличествоСвойств()</p> <p><strong>Возвращает:</strong> Число. Количество свойств.</p> <p><strong>Описание:</strong> Получает количество свойств.</p> </blockquote> </div> <div class="section" id="savetostring"> <h3><a name="savetostring">ВыгрузитьВСтроку / SaveToString</a></h3> <blockquote id="id59"> <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" id="savetofile"> <h3><a name="savetofile">ВыгрузитьВФайл / SaveToFile</a></h3> <blockquote id="id60"> <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" id="loadfromstring"> <h3><a name="loadfromstring">ЗагрузитьИзСтроки / LoadFromString</a></h3> <blockquote id="id61"> <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="#id60">ВыгрузитьВФайл</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" id="loadfromfile"> <h3><a name="loadfromfile">ЗагрузитьИзФайла / LoadFromFile</a></h3> <blockquote id="id62"> <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="#id61">ЗагрузитьИзСтроки</a>.</p> </blockquote> </div> <div class="section" id="findbyname"> <h3><a name="findbyname">НайтиПоИмени / FindByName</a></h3> <blockquote id="id63"> <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" id="getbyname"> <h3><a name="getbyname">ПолучитьПоИмени / GetByName</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> </blockquote> </div> <div class="section" id="setbyname"> <h3><a name="setbyname">УстановитьПоИмени / SetByName</a></h3> <blockquote id="id65"> <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" id="setbynum"> <h3><a name="setbynum">УстановитьПоНомеру / SetByNum</a></h3> <blockquote id="id66"> <p><strong>Синтаксис:</strong> УстановитьПоНомеру(чНомер,нЗначение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id58">КоличествоСвойств</a>- 1;</li> <li>нЗначение - тип: Любой. Новое значение свойства.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает значение свойства по номеру свойства.</p> </blockquote> </div> <div class="section" id="deletebynum"> <h3><a name="deletebynum">УдалитьПоНомеру / DeleteByNum</a></h3> <blockquote id="id67"> <p><strong>Синтаксис:</strong> УдалитьПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id58">КоличествоСвойств</a> - 1;</li> </ul> </blockquote> <p><strong>Описание:</strong> Удаляет свойство по указанному номеру.</p> </blockquote> </div> <div class="section" id="deletebyname"> <h3><a name="deletebyname">УдалитьПоИмени / DeleteByName</a></h3> <blockquote id="id68"> <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" id="id69"> <h3><a name="id69">Очистить / Clear</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Описание:</strong> Удаляет все свойства.</p> </blockquote> </div> <div class="section" id="propstovaluelist"> <h3><a name="propstovaluelist">СвойстваВСписокЗначений / PropsToValueList</a></h3> <blockquote id="id70"> <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" id="findbyvalue"> <h3><a name="findbyvalue">НайтиПоЗначению / FindByValue</a></h3> <blockquote id="id71"> <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" id="findbyatributevalue"> <h3><a name="findbyatributevalue">НайтиПоЗначениюАтрибута / FindByAtributeValue</a></h3> <blockquote id="id72"> <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>