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

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

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"/> <childstoc/> <merge file="Hooker"/> <merge file="Informer"/> <merge file="SettingsManager"/> </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="#id8" id="id93" name="id93">ФабрикаОбъектов</a><ul> <li><a class="reference" href="#id9" id="id94" name="id94">Методы</a><ul> <li><a class="reference" href="#new" id="id95" name="id95">Новый / New</a></li> <li><a class="reference" href="#font" id="id96" name="id96">Шрифт / Font</a></li> <li><a class="reference" href="#axcontrol" id="id97" name="id97">АктивИкс / AXControl</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id13" id="id98" name="id98">Система</a><ul> <li><a class="reference" href="#id14" id="id99" name="id99">Методы</a><ul> <li><a class="reference" href="#closeform" id="id100" name="id100">ЗакрытьФорму / CloseForm</a></li> <li><a class="reference" href="#sleep" id="id101" name="id101">Уснуть / Sleep</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#win" id="id102" name="id102">РеестрWin</a><ul> <li><a class="reference" href="#id17" id="id103" name="id103">Методы</a><ul> <li><a class="reference" href="#createkey" id="id104" name="id104">СоздатьКлюч / CreateKey</a></li> <li><a class="reference" href="#openkey" id="id105" name="id105">ОткрытьКлюч / OpenKey</a></li> <li><a class="reference" href="#connectregistry" id="id106" name="id106">ПодключитьРегистр / ConnectRegistry</a></li> <li><a class="reference" href="#deletekey" id="id107" name="id107">УдалитьКлюч / DeleteKey</a></li> <li><a class="reference" href="#deletevalue" id="id108" name="id108">УдалитьЗначение / DeleteValue</a></li> <li><a class="reference" href="#setvalue" id="id109" name="id109">УстановитьЗначение / SetValue</a></li> <li><a class="reference" href="#queryvalue" id="id110" name="id110">ЗапроситьЗначение / QueryValue</a></li> <li><a class="reference" href="#choosekeys" id="id111" name="id111">ВыбратьКлючи / ChooseKeys</a></li> <li><a class="reference" href="#getkey" id="id112" name="id112">ПолучитьКлюч / GetKey</a></li> <li><a class="reference" href="#choosevalues" id="id113" name="id113">ВыбратьЗначения / ChooseValues</a></li> <li><a class="reference" href="#getvalue" id="id114" name="id114">ПолучитьЗначение / GetValue</a></li> <li><a class="reference" href="#id22" id="id115" name="id115">ОтладочныеСообщения</a></li> <li><a class="reference" href="#id23" id="id116" name="id116">ЗаписатьВсеАтрибуты</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id24" id="id117" name="id117">ВыполняемыйМодуль</a><ul> <li><a class="reference" href="#id25" id="id118" name="id118">Свойства</a><ul> <li><a class="reference" href="#id26" id="id119" name="id119"><ИмяПеременной></a></li> </ul> </li> <li><a class="reference" href="#id27" id="id120" name="id120">Методы</a><ul> <li><a class="reference" href="#id28" id="id121" name="id121"><ИмяМетода></a></li> <li><a class="reference" href="#assignsource" id="id122" name="id122">УстановитьМодуль / AssignSource</a></li> <li><a class="reference" href="#assigncontext" id="id123" name="id123">НазначитьКонтекст / AssignContext</a></li> <li><a class="reference" href="#assignfriendmodule" id="id124" name="id124">ПрисоединитьТекущийМодуль / AssignFriendModule</a></li> <li><a class="reference" href="#compile" id="id125" name="id125">КомпилироватьМодуль / Compile</a></li> <li><a class="reference" href="#execute" id="id126" name="id126">ВыполнитьМодуль / Execute</a></li> <li><a class="reference" href="#getmethofcontext" id="id127" name="id127">GetMethOfContext</a></li> <li><a class="reference" href="#raiseerror" id="id128" name="id128">СформироватьОшибку / RaiseError</a></li> <li><a class="reference" href="#erasepoststate" id="id129" name="id129">ОчиститьПозициюПроведения / ErasePostState</a></li> <li><a class="reference" href="#restorepoststate" id="id130" name="id130">ВосстановитьПозициюПроведения / RestorePostState</a></li> <li><a class="reference" href="#throw" id="id131" name="id131">ВыброситьИскл / Throw</a></li> <li><a class="reference" href="#getexeption" id="id132" name="id132">ПолучитьИсключение / GetExeption</a></li> <li><a class="reference" href="#compileandexecute" id="id133" name="id133">КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></li> <li><a class="reference" href="#enableexceptions" id="id134" name="id134">РазрешитьИсключения / EnableExceptions</a></li> <li><a class="reference" href="#callcontextprocedure" id="id135" name="id135">ВыполнитьПроцедуруКонтекста / CallContextProcedure</a></li> <li><a class="reference" href="#callcontextfunction" id="id136" name="id136">ВыполнитьФункциюКонтекста / CallContextFunction</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id39" id="id137" name="id137">Делегат</a><ul> <li><a class="reference" href="#id40" id="id138" name="id138">Методы</a><ul> <li><a class="reference" href="#definetype" id="id139" name="id139">ОпределитьТип / DefineType</a></li> <li><a class="reference" href="#addmethod" id="id140" name="id140">Добавить / AddMethod</a></li> <li><a class="reference" href="#remmethod" id="id141" name="id141">Удалить / RemMethod</a></li> <li><a class="reference" href="#remmethodbykey" id="id142" name="id142">УдалитьПоКлючу / RemMethodByKey</a></li> <li><a class="reference" href="#invoke" id="id143" name="id143">Вызвать / Invoke</a></li> <li><a class="reference" href="#invokebykey" id="id144" name="id144">ВызватьПоКлючу / InvokeByKey</a></li> <li><a class="reference" href="#erase" id="id145" name="id145">Очистить / Erase</a></li> <li><a class="reference" href="#isempty" id="id146" name="id146">Пустой / IsEmpty</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id45" id="id147" name="id147">МенеджерСобытий</a><ul> <li><a class="reference" href="#id46" id="id148" name="id148">Методы</a><ul> <li><a class="reference" href="#id47" id="id149" name="id149">Пустой / IsEmpty</a></li> <li><a class="reference" href="#addeventhandle" id="id150" name="id150">ДобавитьОбработчикСобытия / AddEventHandle</a></li> <li><a class="reference" href="#remeventhandle" id="id151" name="id151">УдалитьОбработчикСобытия / RemEventHandle</a></li> <li><a class="reference" href="#sendevent" id="id152" name="id152">ПослатьСобытие / SendEvent</a></li> <li><a class="reference" href="#setdelegate" id="id153" name="id153">УстановитьДелегата / SetDelegate</a></li> <li><a class="reference" href="#clear" id="id154" name="id154">Очистить / Clear</a></li> <li><a class="reference" href="#setcountofparams" id="id155" name="id155">УстановитьКоличествоПараметров / SetCountOfParams</a></li> </ul> </li> <li><a class="reference" href="#id52" id="id156" name="id156">Пример кода</a></li> </ul> </li> <li><a class="reference" href="#id53" id="id157" name="id157">Структура</a><ul> <li><a class="reference" href="#id54" id="id158" name="id158">Свойства</a><ul> <li><a class="reference" href="#id55" id="id159" name="id159"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id56" id="id160" name="id160">Методы</a><ul> <li><a class="reference" href="#insert" id="id161" name="id161">Вставить / Insert</a></li> <li><a class="reference" href="#count" id="id162" name="id162">Количество / Count</a></li> <li><a class="reference" href="#id59" id="id163" name="id163">Очистить / Clear</a></li> <li><a class="reference" href="#property" id="id164" name="id164">Свойство / Property</a></li> <li><a class="reference" href="#remove" id="id165" name="id165">Удалить / Remove</a></li> <li><a class="reference" href="#get" id="id166" name="id166">Получить / Get</a></li> <li><a class="reference" href="#existprop" id="id167" name="id167">ЕстьСвойство / ExistProp</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#dynavalue" id="id168" name="id168">DynaValue</a><ul> <li><a class="reference" href="#id65" id="id169" name="id169">Свойства</a><ul> <li><a class="reference" href="#id66" id="id170" name="id170"><ИмяСвойства></a></li> </ul> </li> <li><a class="reference" href="#id67" id="id171" name="id171">Методы</a><ul> <li><a class="reference" href="#addprop" id="id172" name="id172">ДобавитьСвойство / AddProp</a></li> <li><a class="reference" href="#selectprops" id="id173" name="id173">ВыбратьСвойства / SelectProps</a></li> <li><a class="reference" href="#getprop" id="id174" name="id174">ПолучитьСвойство / GetProp</a></li> <li><a class="reference" href="#getpropbynum" id="id175" name="id175">ПолучитьСвойствоПоНомеру / GetPropByNum</a></li> <li><a class="reference" href="#getnprops" id="id176" name="id176">КоличествоСвойств / GetNProps</a></li> <li><a class="reference" href="#savetostring" id="id177" name="id177">ВыгрузитьВСтроку / SaveToString</a></li> <li><a class="reference" href="#savetofile" id="id178" name="id178">ВыгрузитьВФайл / SaveToFile</a></li> <li><a class="reference" href="#loadfromstring" id="id179" name="id179">ЗагрузитьИзСтроки / LoadFromString</a></li> <li><a class="reference" href="#loadfromfile" id="id180" name="id180">ЗагрузитьИзФайла / LoadFromFile</a></li> <li><a class="reference" href="#findbyname" id="id181" name="id181">НайтиПоИмени / FindByName</a></li> <li><a class="reference" href="#getbyname" id="id182" name="id182">ПолучитьПоИмени / GetByName</a></li> <li><a class="reference" href="#setbyname" id="id183" name="id183">УстановитьПоИмени / SetByName</a></li> <li><a class="reference" href="#setbynum" id="id184" name="id184">УстановитьПоНомеру / SetByNum</a></li> <li><a class="reference" href="#deletebynum" id="id185" name="id185">УдалитьПоНомеру / DeleteByNum</a></li> <li><a class="reference" href="#deletebyname" id="id186" name="id186">УдалитьПоИмени / DeleteByName</a></li> <li><a class="reference" href="#id83" id="id187" name="id187">Очистить / Clear</a></li> <li><a class="reference" href="#propstovaluelist" id="id188" name="id188">СвойстваВСписокЗначений / PropsToValueList</a></li> <li><a class="reference" href="#findbyvalue" id="id189" name="id189">НайтиПоЗначению / FindByValue</a></li> <li><a class="reference" href="#findbyatributevalue" id="id190" name="id190">НайтиПоЗначениюАтрибута / FindByAtributeValue</a></li> </ul> </li> </ul> </li> <li><a class="reference" href="#id87" id="id191" name="id191">Форма</a><ul> <li><a class="reference" href="#id88" id="id192" name="id192">Методы</a><ul> <li><a class="reference" href="#assignform" id="id193" name="id193">УстановитьФорму / AssignForm</a></li> <li><a class="reference" href="#resetform" id="id194" name="id194">СброситьФорму / ResetForm</a></li> <li><a class="reference" href="#createcontrol" id="id195" name="id195">СоздатьЭлементУправления / CreateControl</a></li> <li><a class="reference" href="#createcontrolonform" id="id196" name="id196">СоздатьЭлементУправленияНаФорме / CreateControlOnForm</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> <li><a class="reference" href="Hooker.chm::/Hooker0.html">Перехватчик</a></li> <li><a class="reference" href="Informer.chm::/Informer0.html">Информатор</a></li> <li><a class="reference" href="SettingsManager.chm::/SettingsManager0.html">УправлениеНастройками</a></li> </ul> <div class="section"> <h1><a id="id8" name="id8">ФабрикаОбъектов</a></h1> <chminfo> <klinks> ФабрикаОбъектов ObjectFactory </klinks> </chminfo> <p><strong>Класс ФабрикаОбъектов / ObjectFactory</strong></p> <p><strong>Специальный объект, позволяющий создавать объекты любых типов, как встроенных классов 1С++ и пользовательских классов 1С++, так и классов от 1С или любых внешних компонент.</strong></p> <p>Существуют две схемы создания объектов:</p> <p>1. <strong>Создание встроенных классов с помощью конструкторов путем вызова метода ФабрикиОбъектов.НаименованиеСоздаваемогоТипа с названием, совпадающим с именем типа создаваемого объекта.</strong></p> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает на релизах 1С+ 2.0.0.0 и старше.</p> </div> <ul class="simple"> <li>Позволяет снабдить процесс создания объектов параметрами, число которых может быть различным. Каждый метод фабрики объектов возвращает объект одноименного типа.</li> </ul> <p>Описание синтаксиса создания расположено в описании самих объектов.</p> <p>Пример создания:</p> <blockquote> <ul class="simple"> <li>Фабрика = СоздатьОбъект("ФабрикаОбъектов");</li> <li>ШрифтАриал10Жирный = Фабрика. <a class="reference" href="#id11">Шрифт</a> ("Arial", 10, 1);</li> </ul> </blockquote> <p>На данный момент подобным образом можно создавать объекты двух классов: "Font / <a class="reference" href="#id11">Шрифт</a> " и "AXControl / <a class="reference" href="#id12">АктивИкс</a> "</p> <ol class="arabic" start="2"> <li><p class="first"><strong>Создание объектов с помощью метода ФабрикаОбъектов.Новый</strong></p> <blockquote> <p>Позволяет снабдить процесс создания объектов параметрами, число которых может быть различным. Этот метод фабрики объектов возвращает объект указанного типа.</p> </blockquote> </li> </ol> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает только на релизе 1С+ 2.5 и старше.</p> </div> <dl class="docutils"> <dt>Пример создания:</dt> <dd><blockquote class="first"> <ul class="simple"> <li>ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ТаблицаЗначений", "Загрузить", ДругаяТаб);</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ТаблицаЗначений");</li> </ul> </blockquote> <dl class="docutils"> <dt>или</dt> <dd><ul class="first last simple"> <li>ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ИндексированнаяТаблица", "Загрузить", ДругаяТаб);</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ИндексированнаяТаблица");</li> </ul> </dd> <dt>или</dt> <dd><ul class="first last simple"> <li>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами");</li> </ul> </dd> </dl> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 290)</p> Definition list ends without a blank line; unexpected unindent.</div> <ul class="last"> <li><dl class="first docutils"> <dt>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами", "КонструкторБезПараметров");</dt> <dd><ul class="first last simple"> <li>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);</li> </ul> </dd> </dl> </li> </ul> </dd> </dl> <div class="section"> <h2><a id="id9" name="id9">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="new" name="new"><span id="id10"></span>Новый / New</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Новый(ИмяТипаИлиКласса, [ИмяКонструктора], [Парам1, Парам2, ...])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first"><strong>ИмяТипаИлиКласса</strong> - тип: Строка. Имя типа. Не должен быть простым типом (Строка, Число, Дата).</p> </li> <li><p class="first"><strong>ИмяКонструктора</strong> - тип: Строка. Необязательный параметр.</p> <blockquote> <dl class="docutils"> <dt>Если пытаемся создать объект, который <strong>не является классом КОП 1С++</strong>,</dt> <dd><p class="first">для данного объекта должен быть определен метод-процедура с таким названием. Данный метод должен принимать указанное число параметров.</p> <blockquote> <p>Если пытаемся создать объект, который <strong>является классом КОП 1С++</strong>,</p> </blockquote> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 318)</p> <p>Block quote ends without a blank line; unexpected unindent.</p> </div> <p>в модуле данного объекта должен быть определен <strong>метод-процедура</strong> с необходимым названием. Важно: процедура-конструктор должна быть определена без атрибута Экспорт.</p> <p class="last">Данный метод должен принимать указанное число параметров.</p> </dd> </dl> </blockquote> </li> <li><dl class="first docutils"> <dt><strong>Парам1, Парам2, ...</strong> - тип: Произвольный. Необязательный параметр.</dt> <dd><p class="first last">Любое число параметров любого типа.</p> </dd> </dl> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Объект указанного типа.</p> <p><strong>Описание:</strong> Создает объект указанного типа и сразу же вызывает для него метод-конструктор, если у объекта есть такой метод-процедура.</p> <blockquote> <p>Если пытаемся создать объект, который <strong>является классом КОП 1С++</strong>, и указан конструктор, отличный от дефолтного "Конструктор", создается объект нового класса и для него вместо дефолтного "Конструктор" вызывается конструктор с указанным именем и параметрами. Если имя конструктора для пользовательского класса 1С++ не указано, создается объект класса и для него вызывается процедура "Конструктор", если она определена в модуле.</p> <p>Если имя конструктора не указано, метод просто возвращает объект, созданный с помощью вызова СоздатьОбъект(ИмяТипаИлиКласса).</p> <dl class="docutils"> <dt>Если не удается создать объект с таким названием, выдается исключение.</dt> <dd>Если у указанного класса нет процедуры с таким названием, выдается исключение.</dd> </dl> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 348)</p> Definition list ends without a blank line; unexpected unindent.</div> <p>Если у указанного класса нет процедуры с таким названием, но есть функция с таким названием, выдается исключение.</p> <blockquote> <blockquote> Если пытаемся создать объект, который <strong>является классом КОП 1С++</strong>, и если найденная процедура-конструктор определена с параметром Экспорт, выдается исключение.</blockquote> <p>Если количество переданных параметров не совпадает с количеством параметром, которые определены для указанного метода-конструктора, выдается исключение.</p> </blockquote> </blockquote> </blockquote> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает только на релизе 1С+ 2.5 и старше.</p> </div> <ul> <li><p class="first"><strong>Пример создания:</strong></p> <blockquote> <ul class="simple"> <li>ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ТаблицаЗначений", "Загрузить", ДругаяТаб);</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ТаблицаЗначений");</li> </ul> </blockquote> <dl class="docutils"> <dt>или</dt> <dd><ul class="first last simple"> <li>ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ИндексированнаяТаблица", "Загрузить", ДругаяТаб);</li> <li>Таб = Фабрика. <a class="reference" href="#id10">Новый</a> ("ИндексированнаяТаблица");</li> </ul> </dd> <dt>или</dt> <dd><ul class="first last simple"> <li>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами");</li> </ul> </dd> </dl> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 377)</p> <p>Definition list ends without a blank line; unexpected unindent.</p> </div> <ul> <li><dl class="first docutils"> <dt>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами", "КонструкторБезПараметров");</dt> <dd><ul class="first last simple"> <li>ОбъектКОП = Фабрика. <a class="reference" href="#id10">Новый</a> ("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);</li> </ul> </dd> </dl> </li> </ul> </li> </ul> </div> <div class="section"> <h3><a id="font" name="font"><span id="id11"></span>Шрифт / Font</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Шрифт([Парам1, Парам2, ...])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><dl class="first docutils"> <dt><strong>Парам1, Парам2, ...</strong> - тип: Произвольный. Необязательный параметр.</dt> <dd><p class="first last">Любое число параметров любого типа.</p> </dd> </dl> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Объект класс Шрифт / Font.</p> <p><strong>Описание:</strong> Создает объект класс Шрифт / Font, вызывая для него соответствующий конструктор с нужными параметрами.</p> </blockquote> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает на релизах 1С+ 2.0.0.0 и старше.</p> </div> <ul> <li><p class="first"><strong>Пример создания:</strong></p> <blockquote> <ul class="simple"> <li>Фабрика = СоздатьОбъект("ФабрикаОбъектов");</li> <li>ШрифтАриал10Жирный = Фабрика.Шрифт("Arial", 10, 1);</li> </ul> </blockquote> </li> </ul> </div> <div class="section"> <h3><a id="axcontrol" name="axcontrol"><span id="id12"></span>АктивИкс / AXControl</a></h3> <blockquote> <p><strong>Синтаксис:</strong> АктивИкс([Парам1, Парам2, ...])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><dl class="first docutils"> <dt><strong>Парам1, Парам2, ...</strong> - тип: Произвольный. Необязательный параметр.</dt> <dd><p class="first last">Любое число параметров любого типа.</p> </dd> </dl> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> Объект класс АктивИкс / AXControl.</p> <p><strong>Описание:</strong> Создает объект класс АктивИкс / AXControl, вызывая для него соответствующий конструктор с нужными параметрами.</p> </blockquote> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает на релизах 1С+ 2.0.0.0 и старше.</p> </div> <ul class="simple"> <li></li> </ul> </div> </div> </div> <div class="section"> <h1><a id="id13" name="id13">Система</a></h1> <chminfo> <klinks> Система System </klinks> </chminfo> <p><strong>Класс Система / System</strong></p> <p>Класс предоставляет различные вспомогательные функции.</p> <div class="section"> <h2><a id="id14" name="id14">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="closeform" name="closeform"><span id="id15"></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 475)</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 class="section"> <h3><a id="sleep" name="sleep"><span id="id16"></span>Уснуть / Sleep</a></h3> <blockquote> <p><strong>Синтаксис:</strong> Уснуть(КоличествоМиллисекунд)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li><strong>КоличествоМиллисекунд</strong> - тип: Число. .</li> </ul> </blockquote> <p><strong>Описание:</strong> Делает паузу путем вызова системной функции Sleep(КоличествоМиллисекунд).</p> <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 РеестрWin RegistryWin </klinks> </chminfo> <p><strong>Класс РеестрWin / RegistryWin</strong></p> <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="id17" name="id17">Методы</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="id18"> <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="id19"> <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="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="id20"> <p><strong>Синтаксис:</strong> ВыбратьКлючи()</p> <p><strong>Возвращает:</strong> Число. Количество выбранных подключей.</p> <p><strong>Описание:</strong> Открывает выборку подключей ключа, установленного функцией <a class="reference" href="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="#id20">ВыбратьКлючи</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="choosevalues" name="choosevalues">ВыбратьЗначения / ChooseValues</a></h3> <blockquote id="id21"> <p><strong>Синтаксис:</strong> ВыбратьЗначения()</p> <p><strong>Возвращает:</strong> Число. Количество - значений в выборке.</p> <p><strong>Описание:</strong> Открывает выборку значений ключа, установленного функцией <a class="reference" href="#id19">ОткрытьКлюч</a> или <a class="reference" href="#id18">СоздатьКлюч</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="#id21">ВыбратьЗначения</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="id22" name="id22">ОтладочныеСообщения</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="id23" name="id23">ЗаписатьВсеАтрибуты</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ЗаписатьВсеАтрибуты()</p> <p><strong>Описание:</strong> Немедленно записать изменения, внесенные ранее в реестр.</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="id24" name="id24">ВыполняемыйМодуль</a></h1> <chminfo> <klinks> ВыполняемыйМодуль ExecuteModule </klinks> </chminfo> <p><strong>Класс ВыполняемыйМодуль / ExecuteModule</strong></p> <p>Предназначен для работы с динамическими модулями, передаваемыми в параметре метода в качестве строки.</p> <p>После установки текста модуля скомпилируйте и выполните его. Модуль инициализируется и выполнит операторы, расположенные в конце тела модуля, вне методов. После этого можно обращаться к переменным модуля, как к свойствам этого объекта, и к методам модуля, как к методам объекта.</p> <div class="section"> <h2><a id="id25" name="id25">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id26" name="id26"><ИмяПеременной></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id27" name="id27">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id28" name="id28"><ИмяМетода></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="id29"> <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="#id24">ВыполняемыйМодуль</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="#id24">ВыполняемыйМодуль</a>).</p> </blockquote> </div> <div class="section"> <h3><a id="compile" name="compile">КомпилироватьМодуль / Compile</a></h3> <blockquote id="id30"> <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="#id29">УстановитьМодуль</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="execute" name="execute"><span id="id31"></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="#id29">УстановитьМодуль</a> и откомпилированный методом <a class="reference" href="#id30">КомпилироватьМодуль</a>.</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id24">ВыполняемыйМодуль</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> <p><strong>Вместо данного метода удобнее использовать соответствующие методы класса "Информатор" - ПолучитьТаблицуМетодов и ПолучитьТаблицуСвойств.</strong></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="id32"> <p><strong>Синтаксис:</strong> ОчиститьПозициюПроведения()</p> <p><strong>Описание:</strong> Очищает позицию проведения и сохраняет текущую в объекте.</p> <p>Далее в модуле документа можно проводить другие документы и отменять проведение других документов, после выполнения этих операций необходимо восстановить позицию с помощью метода <a class="reference" href="#id33">ВосстановитьПозициюПроведения</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="id33"> <p><strong>Синтаксис:</strong> ВосстановитьПозициюПроведения()</p> <p><strong>Описание:</strong> Восстанавливает позицию проведения текущего документа, очищенную с помощью метода <a class="reference" href="#id32">ОчиститьПозициюПроведения</a>.</p> <p>Методы <a class="reference" href="#id32">ОчиститьПозициюПроведения</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="id34"> <p><strong>Синтаксис:</strong> ВыброситьИскл(ОбъектИскл, [ТекстИскл])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ОбъектИскл - тип: Любой. Параметр, который потом можно получить при обработке исключения методом <a class="reference" href="#id35">ПолучитьИсключение</a>.</li> <li>ТекстИскл - тип: Строка. Сообщение об ошибке. По умолчанию "".</li> </ul> </blockquote> <p><strong>Описание:</strong> Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода <a class="reference" href="#id35">ПолучитьИсключение</a>.</p> <p>При обработке исключения текст сообщения об ошибке можно получить с помощью глобальной функции <em>ОписаниеОшибки()</em>. Если исключение не обработано, этот текст будет выведен в окно сообщений.</p> </blockquote> </div> <div class="section"> <h3><a id="getexeption" name="getexeption">ПолучитьИсключение / GetExeption</a></h3> <blockquote id="id35"> <p><strong>Синтаксис:</strong> ПолучитьИсключение()</p> <p><strong>Возвращает:</strong> объект-исключение, параметр ОбъектИскл, переданный в метод <a class="reference" href="#id34">ВыброситьИскл</a>.</p> <p><strong>Описание:</strong> Получает объект исключения.</p> <p>Используется в обработчиках исключений для получения объекта исключения, переданного в метод <a class="reference" href="#id34">ВыброситьИскл</a>, или метода функционала класса <a class="reference" href="alink">_ВыброситьИскл|_1cpp_oop__throw_</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="compileandexecute" name="compileandexecute"><span id="id36"></span>КомпилироватьИВыполнитьМодуль / CompileAndExecute</a></h3> <blockquote> <p><strong>Синтаксис:</strong> КомпилироватьИВыполнитьМодуль()</p> <p><strong>Описание:</strong> Компилирует и выполняет модуль, установленный с помощью метода <a class="reference" href="#id29">УстановитьМодуль</a> .</p> <p>При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого <a class="reference" href="#id24">ВыполняемыйМодуль</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="#id31">ВыполнитьМодуль</a>, <a class="reference" href="#id30">КомпилироватьМодуль</a> вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод <a class="reference" href="#id36">КомпилироватьИВыполнитьМодуль</a> всегда выбрасывает исключения, независимо от выполнения данного метода.</p> </blockquote> </div> <div class="section"> <h3><a id="callcontextprocedure" name="callcontextprocedure"><span id="id37"></span>ВыполнитьПроцедуруКонтекста / CallContextProcedure</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ВыполнитьПроцедуруКонтекста(Объект, ИмяПроцедуры, СписокАргументов)</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> 1, если процедура существует, или 0, если нет.</p> <p><strong>Описание:</strong> Выполняет процедуру для переданного объекта, если у объекта есть процедура с таким именем. Если найдена функция с таким именем, выдается исключение.</p> <p>В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.</p> </blockquote> </div> <div class="section"> <h3><a id="callcontextfunction" name="callcontextfunction"><span id="id38"></span>ВыполнитьФункциюКонтекста / CallContextFunction</a></h3> <blockquote> <p><strong>Синтаксис:</strong> ВыполнитьФункциюКонтекста(Объект, ИмяПроцедуры, СписокАргументов, РезультатРаботыФункции)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li><strong>Объект</strong> - тип: Агрегатный.</li> <li><strong>ИмяПроцедуры</strong> - тип: Строка.</li> <li><strong>СписокАргументов</strong> - тип: СписокЗначений. Список аргументов для упомянутой процедуры.</li> <li><strong>РезультатРаботыФункции</strong> - тип: Число.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> 1, если функция существует, или 0, если нет.</p> <p><strong>Описание:</strong> Выполняет функцию для переданного объекта, если у объекта есть функция с таким именем. Если найдена процедура с таким именем, выдается исключение.</p> <p>В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.</p> </blockquote> </div> </div> </div> <div class="section"> <h1><a id="id39" name="id39">Делегат</a></h1> <chminfo> <klinks> Делегат Delegate </klinks> </chminfo> <p><strong>Класс Делегат / Delegate</strong></p> <p>Данный класс представляет собой хранилище ссылок на методы экземпляров агрегатных объектов 1С. С помощью этого класса возможно вызывать группу методов с одинаковой сигнатурой (возвращаемый параметр, количество параметров или их отсутствие).</p> <p>Использование делегата позволяет писать обобщенные алгоритмы и делать групповые вызовы методов.</p> <div class="section"> <h2><a id="id40" name="id40">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="definetype" name="definetype"><span id="id41"></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="#id43">Вызвать</a> и <a class="reference" href="#id44">ВызватьПоКлючу</a> прерывают выполнение цепочки, если при вызове очередной функции возвращенное значение равно 0</li> <li>0 - методы <a class="reference" href="#id43">Вызвать</a> и <a class="reference" href="#id44">ВызватьПоКлючу</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="id42"></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="#id44">ВызватьПоКлючу</a></p> <div class="last line-block"> <div class="line">По умолчанию используется ключ ""</div> <div class="line">Возможна реализация обработчика по умолчанию для ситуаций вызова по несуществующим ключам</div> <div class="line">(см. описание метода <a class="reference" href="#id44">ВызватьПоКлючу</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="#id41">ОпределитьТип</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="#id42">Добавить</a></div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="invoke" name="invoke"><span id="id43"></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="#id41">ОпределитьТип</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="#id41">ОпределитьТип</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="#id42">Добавить</a>.</div> <div class="line">Порядок перебора ключей не определен.</div> </div> </td> </tr> </tbody> </table> </blockquote> </div> <div class="section"> <h3><a id="invokebykey" name="invokebykey"><span id="id44"></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="#id41">ОпределитьТип</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="#id41">ОпределитьТип</a></p> </td> </tr> <tr class="field"><th class="field-name">Примечание:</th><td class="field-body"><p class="first">Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом <a class="reference" href="#id42">Добавить</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="#id42">Добавить</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="id45" name="id45">МенеджерСобытий</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="id46" name="id46">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id47" name="id47">Пустой / 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="id48"> <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="#id49">ПослатьСобытие</a>.</li> </ul> <p>Количество параметров, заданных по умолчанию, возможно изменить с помощью установки отдельно созданного делегата - передать его в качестве параметра метода <a class="reference" href="#id50">УстановитьДелегата</a>, или передать число параметров в метод <a class="reference" href="#id51">УстановитьКоличествоПараметров</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="#id48">ДобавитьОбработчикСобытия</a>.</li> </ul> </blockquote> <p><strong>Описание:</strong> Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью <a class="reference" href="#id48">ДобавитьОбработчикСобытия</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="sendevent" name="sendevent">ПослатьСобытие / SendEvent</a></h3> <blockquote id="id49"> <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="id50"> <p><strong>Синтаксис:</strong> УстановитьДелегата(ЭкземплярДелегата)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>ЭкземплярДелегата - тип: <a class="reference" href="#id39">Делегат</a>. Экземпляр делегата, через который будет осуществляться вызов методов-обработчиков.</li> </ul> </blockquote> <p><strong>Возвращает:</strong> <a class="reference" href="#id39">Делегат</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="id51"> <p><strong>Синтаксис:</strong> УстановитьКоличествоПараметров(чКолвоПарам)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чКолвоПарам - тип: Число. Новое количество параметров.</li> </ul> </blockquote> <p><strong>Описание:</strong> Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод <a class="reference" href="#id49">ПослатьСобытие</a>.</p> <p>Данный метод удаляет всех подписчиков, установленных ранее в менеджере событий.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id52" name="id52">Пример кода</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="id53" name="id53">Структура</a></h1> <chminfo> <klinks> Структура Struct </klinks> </chminfo> <p><strong>Класс Структура / Struct</strong></p> <p>Данный класс предназначен для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.</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="insert" name="insert">Вставить / Insert</a></h3> <blockquote id="id57"> <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="id58"> <p><strong>Синтаксис:</strong> Количество()</p> <p><strong>Возвращает:</strong> Число. Количество свойств структуры.</p> <p><strong>Описание:</strong> Возвращает количество свойств структуры, добавленных методом <a class="reference" href="#id57">Вставить</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="id59" name="id59">Очистить / Clear</a></h3> <blockquote id="id60"> <p><strong>Синтаксис:</strong> Очистить()</p> <p><strong>Описание:</strong> Удаляет все свойства структуры.</p> </blockquote> </div> <div class="section"> <h3><a id="property" name="property">Свойство / Property</a></h3> <blockquote id="id61"> <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="id62"> <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="id63"> <p><strong>Синтаксис:</strong> Получить(чИндекс, [стрИмяСвойства])</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чИндекс - тип: Число. Номер поля по порядку от 1 до <a class="reference" href="#id58">Количество</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="id64"> <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="id65" name="id65">Свойства</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="id66" name="id66"><ИмяСвойства></a></h3> <blockquote> <p><strong>Доступ:</strong> чтение и запись.</p> <p><strong>Тип:</strong> Любой.</p> <p><strong>Описание:</strong> Позволяет обратиться к свойству, добавленному методом <a class="reference" href="#id68">ДобавитьСвойство</a>.</p> </blockquote> </div> </div> <div class="section"> <h2><a id="id67" name="id67">Методы</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="id68"> <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="id69"> <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="id70"> <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="#id69">ВыбратьСвойства</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="getpropbynum" name="getpropbynum">ПолучитьСвойствоПоНомеру / GetPropByNum</a></h3> <blockquote id="id71"> <p><strong>Синтаксис:</strong> ПолучитьСвойствоПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Индекс свойства от <strong>0</strong> до <a class="reference" href="#id72">КоличествоСвойств</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="id72"> <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="id73"> <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="id74"> <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="id75"> <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="#id74">ВыгрузитьВФайл</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="id76"> <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="#id75">ЗагрузитьИзСтроки</a>.</p> </blockquote> </div> <div class="section"> <h3><a id="findbyname" name="findbyname">НайтиПоИмени / FindByName</a></h3> <blockquote id="id77"> <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="id78"> <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="id79"> <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="id80"> <p><strong>Синтаксис:</strong> УстановитьПоНомеру(чНомер,нЗначение)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id72">КоличествоСвойств</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="id81"> <p><strong>Синтаксис:</strong> УдалитьПоНомеру(чНомер)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li>чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается <a class="reference" href="#id72">КоличествоСвойств</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="id82"> <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="id83" name="id83">Очистить / 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="id84"> <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="id85"> <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="id86"> <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 class="section"> <h1><a id="id87" name="id87">Форма</a></h1> <chminfo> <klinks> Форма Form </klinks> </chminfo> <p><strong>Класс Форма / Form</strong></p> <p>Класс позволяет привязываться к форме и создавать элементы управления. В основном, используектся для создания ActiveX / АктивИкс объектов.</p> <blockquote> <strong>Версия:</strong> Метод работает на релизе 2.5 и позже.</blockquote> <div class="section"> <h2><a id="id88" name="id88">Методы</a></h2> <chminfo split="0" splitchild="1"> <insert nodes="//common/propsmethods/*"/> </chminfo> <div class="section"> <h3><a id="assignform" name="assignform"><span id="id89"></span>УстановитьФорму / AssignForm</a></h3> <blockquote> <p><strong>Синтаксис:</strong> void УстановитьФорму(Форма)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul class="simple"> <li><strong>Форма</strong> - тип: Форма. Форма, к которой идет привязка.</li> </ul> </blockquote> <p><strong>Описание:</strong> Привязывает объект класса к переданной форме.</p> <p>Время жизни объекта совпадает со временем жизни указанной формы.</p> <blockquote> Объект может генерировать событие "ФормаПриСоздании(ИсточникСобытия)" в виде вызова</blockquote> <div class="system-message"> <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">.\extobjs.txt</tt>, line 2072)</p> Block quote ends without a blank line; unexpected unindent.</div> <p>процедуры модуля формы с одним параметром, если данная процедура определена в модуле формы. Событие вызывается после физического создания формы. Параметр "ИсточникСобытия" у события - это источник события, т.е. объект "Форма" или наследник от класса "Форма".</p> </blockquote> <dl class="docutils"> <dt>Пока не выполнено ---</dt> <dd><p class="first">Событие "ФормаПриСоздании" может также обрабатывать переданный первым параметром КОП-наследник от АктивИкс или ТабличногоПоля. Процедура-обработчик события должна быть объявлена в классе с ключевым словом Экспорт.</p> <blockquote class="last"> Событие может быть задано в КОПе и в модуле формы одновременно, в этом случае сначала происходит вызов события в КОПе, затем в модуле формы.</blockquote> </dd> </dl> <p>--- Пока не выполнено ---</p> </div> <div class="section"> <h3><a id="resetform" name="resetform"><span id="id90"></span>СброситьФорму / ResetForm</a></h3> <blockquote> <p><strong>Синтаксис:</strong> void СброситьФорму()</p> <p><strong>Описание:</strong> Отменяет привязку объекта класса к переданной форме.</p> <p>Время жизни объекта совпадает со временем жизни указанной формы.</p> </blockquote> </div> <div class="section"> <h3><a id="createcontrol" name="createcontrol"><span id="id91"></span>СоздатьЭлементУправления / CreateControl</a></h3> <blockquote> <p><strong>Синтаксис:</strong> СоздатьЭлементУправления(ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)</p> <p><strong>Параметры:</strong></p> <blockquote> <ul> <li><p class="first"><strong>ИмяОбъектаИлиОбъектКлассаКОП</strong> - тип: Строка или объект класса.</p> <blockquote> <p>Если передана строка, пытаемся создать объект класса с таким именем. Если передан объект, используем именно его.</p> </blockquote> </li> <li><dl class="first docutils"> <dt><strong>ИдентификаторЭлементаДиалога</strong> - тип: Строка или элемент диалога. Идентификатор элемента</dt> <dd><p class="first last">диалога, на месте которого будет создан элемент ActiveX.</p> </dd> </dl> </li> </ul> </blockquote> <p><strong>Возвращает:</strong> тип: Объект. Созданный объект.</p> <p><strong>Описание:</strong> Создает элемент управления и указывает размещение создаваемого элемента.</p> <blockquote> Также устанавливает префикс для имен процедур-обработчиков событий, расположенных в модуле формы.</blockquote> <p>Время жизни объекта совпадает со временем жизни указанной формы.</p> <p>Предварительно должна быть установлена привязка объекта к форме методом <a class="reference" href="#id89">УстановитьФорму</a> .</p> </blockquote> <div class="important"> <p class="first admonition-title">Important</p> <p class="last">Метод работает после физического открытия окна формы (например - в предопределенной процедуре ПослеОткрытия). Метод работает только для реквизитов диалога типа "Текст".</p> </div> <ul class="simple"> <li>На текущий момент возможно использование метода для классов, которые являются наследниками встроенных классов АктивИкс или ТабличноеПоле, или для самих объектов типа АктивИкс или ТабличноеПоле.</li> </ul> </div> <div class="section"> <h3><a id="createcontrolonform" name="createcontrolonform"><span id="id92"></span>СоздатьЭлементУправленияНаФорме / CreateControlOnForm</a></h3> <blockquote> <p><strong>Синтаксис:</strong> void СоздатьЭлементУправленияНаФорме(Форма, ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)</p> <p><strong>Описание:</strong> Объединяет функционал <a class="reference" href="#id89">УстановитьФорму</a> и <a class="reference" href="#id91">СоздатьЭлементУправления</a></p> </blockquote> </div> </div> </div> </div> </body> </html>