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

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

В состав 1С++ входят дополнительные типы объектов и элементы управления.

  • ИндексированнаяТаблица
  • ТабличноеПоле
  • BinaryData
  • Math
  • Перехватчик
  • Информатор
  • УправлениеНастройками
  • ФабрикаОбъектов
  • Система
  • РеестрWin
  • ВыполняемыйМодуль
  • Делегат
  • МенеджерСобытий
  • Структура
  • DynaValue
  • Форма
  • БуферОбмена


ФабрикаОбъектов

1C++ :: Дополнительные классы и ЭУ | Ранее: Дополнительные классы и ЭУ | Далее: Новый / New
ФабрикаОбъектов

Класс ФабрикаОбъектов / ObjectFactory

Специальный объект, позволяющий создавать объекты любых типов, как встроенных классов 1С++ и пользовательских классов 1С++, так и классов от 1С или любых внешних компонент.

Существуют две схемы создания объектов:

1. Создание встроенных классов с помощью конструкторов путем вызова метода ФабрикиОбъектов.НаименованиеСоздаваемогоТипа с названием, совпадающим с именем типа создаваемого объекта.

Important

Метод работает на релизах 1С+ 2.0.0.0 и старше.

  • Позволяет снабдить процесс создания объектов параметрами, число которых может быть различным. Каждый метод фабрики объектов возвращает объект одноименного типа.

Описание синтаксиса создания расположено в описании самих объектов.

Пример создания:

  • Фабрика = СоздатьОбъект("ФабрикаОбъектов");
  • ШрифтАриал10Жирный = Фабрика. Шрифт ("Arial", 10, 1);

На данный момент подобным образом можно создавать объекты двух классов: "Font / Шрифт " и "AXControl / АктивИкс "

  2. Создание объектов с помощью метода ФабрикаОбъектов.Новый

    Позволяет снабдить процесс создания объектов параметрами, число которых может быть различным. Этот метод фабрики объектов возвращает объект указанного типа.

Important

Метод работает только на релизе 1С+ 2.5 и старше.

Пример создания:
  • ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");
  • Таб = Фабрика. Новый ("ТаблицаЗначений", "Загрузить", ДругаяТаб);
  • Таб = Фабрика. Новый ("ТаблицаЗначений");
или
  • ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");
  • Таб = Фабрика. Новый ("ИндексированнаяТаблица", "Загрузить", ДругаяТаб);
  • Таб = Фабрика. Новый ("ИндексированнаяТаблица");
или
  • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами");
  • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами", "КонструкторБезПараметров");
  • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);

Методы

Новый / New | Создает объект указанного типа и сразу же вызывает для него метод-конструктор, если у объекта есть такой метод-процедура.
Шрифт / Font | Создает объект класс Шрифт / Font, вызывая для него соответствующий конструктор с нужными параметрами.
АктивИкс / AXControl | Создает объект класс АктивИкс / AXControl, вызывая для него соответствующий конструктор с нужными параметрами.


ФабрикаОбъектов::Новый / New

1C++ :: Дополнительные классы и ЭУ | Ранее: ФабрикаОбъектов | Далее: Шрифт / Font
ФабрикаОбъектов :: Новый / New

Синтаксис: Новый(ИмяТипаИлиКласса, [ИмяКонструктора], [Парам1, Парам2, ...])

Параметры:

  • ИмяТипаИлиКласса - тип: Строка. Имя типа. Не должен быть простым типом (Строка, Число, Дата).

  • ИмяКонструктора - тип: Строка. Необязательный параметр.

    Если пытаемся создать объект, который не является классом КОП 1С++, для данного объекта должен быть определен метод-процедура с таким названием. Данный метод должен принимать указанное число параметров.

    Если пытаемся создать объект, который является классом КОП 1С++, в модуле данного объекта должен быть определен метод-процедура с необходимым названием. Важно: процедура-конструктор должна быть определена без атрибута Экспорт.

    Данный метод должен принимать указанное число параметров.

  • Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.

    Любое число параметров любого типа.

Возвращает: Объект указанного типа.

Описание: Создает объект указанного типа и сразу же вызывает для него метод-конструктор, если у объекта есть такой метод-процедура.

Если пытаемся создать объект, который является классом КОП 1С++, и указан конструктор, отличный от дефолтного "Конструктор", создается объект нового класса и для него вместо дефолтного "Конструктор" вызывается конструктор с указанным именем и параметрами. Если имя конструктора для пользовательского класса 1С++ не указано, создается объект класса и для него вызывается процедура "Конструктор", если она определена в модуле.

Если имя конструктора не указано, метод просто возвращает объект, созданный с помощью вызова СоздатьОбъект(ИмяТипаИлиКласса).

Если не удается создать объект с таким названием, выдается исключение. Если у указанного класса нет процедуры с таким названием, выдается исключение. Если у указанного класса нет процедуры с таким названием, но есть функция с таким названием, выдается исключение.

Если пытаемся создать объект, который является классом КОП 1С++, и если найденная процедура-конструктор определена с параметром Экспорт, выдается исключение.

Если количество переданных параметров не совпадает с количеством параметром, которые определены для указанного метода-конструктора, выдается исключение.

Important

Метод работает только на релизе 1С+ 2.5 и старше.

  • Пример создания:

    • ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");
    • Таб = Фабрика. Новый ("ТаблицаЗначений", "Загрузить", ДругаяТаб);
    • Таб = Фабрика. Новый ("ТаблицаЗначений");
    или
    • ДругаяТаб = СоздатьОбъект("ТаблицаЗначений");
    • Таб = Фабрика. Новый ("ИндексированнаяТаблица", "Загрузить", ДругаяТаб);
    • Таб = Фабрика. Новый ("ИндексированнаяТаблица");
    или
    • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами");
    • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами", "КонструкторБезПараметров");
    • ОбъектКОП = Фабрика. Новый ("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);


ФабрикаОбъектов::Шрифт / Font

1C++ :: Дополнительные классы и ЭУ | Ранее: Новый / New | Далее: АктивИкс / AXControl
ФабрикаОбъектов :: Шрифт / Font

Синтаксис: Шрифт([Парам1, Парам2, ...])

Параметры:

  • Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.

    Любое число параметров любого типа.

Возвращает: Объект класс Шрифт / Font.

Описание: Создает объект класс Шрифт / Font, вызывая для него соответствующий конструктор с нужными параметрами.

Important

Метод работает на релизах 1С+ 2.0.0.0 и старше.

  • Пример создания:

    • Фабрика = СоздатьОбъект("ФабрикаОбъектов");
    • ШрифтАриал10Жирный = Фабрика.Шрифт("Arial", 10, 1);


ФабрикаОбъектов::АктивИкс / AXControl

1C++ :: Дополнительные классы и ЭУ | Ранее: Шрифт / Font | Далее: Система
ФабрикаОбъектов :: АктивИкс / AXControl

Синтаксис: АктивИкс([Парам1, Парам2, ...])

Параметры:

  • Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.

    Любое число параметров любого типа.

Возвращает: Объект класс АктивИкс / AXControl.

Описание: Создает объект класс АктивИкс / AXControl, вызывая для него соответствующий конструктор с нужными параметрами.

Important

Метод работает на релизах 1С+ 2.0.0.0 и старше.


Система

1C++ :: Дополнительные классы и ЭУ | Ранее: АктивИкс / AXControl | Далее: ЗакрытьФорму / CloseForm
Система

Класс Система / System

Класс предоставляет различные вспомогательные функции.

Методы

ЗакрытьФорму / CloseForm | Немедленно закрывает форму с отработкой всех событий, обработчики которых есть в форме.
РегистрироватьКомпонентыВ_HKCU / RegisterAddinsInHKCU | Переназначение ветки реестра, в которой приисходит регистрация внешних компонент.
Уснуть / Sleep | Делает паузу путем вызова системной функции Sleep(КоличествоМиллисекунд).
СохранитьКартинку / SavePic | позволяет сохранить картинку в файловую систему. Если значения параметров Каталог и/или ИмяФайла не были заданы, то метод сохранит картинку в каталог временных файлов с уникальным именем. Для создаваемых файлов метод сам подставляет расширение. Метод может выбросить исключение, в случае возникновения ошибочных ситуаций. Сохранению подлежат картинки следующих типов: ICO, BMP.
ПолучитьOLEКартинку / GetOlePicture | позволяет получить картинку типа OLE.Picture. Получению подлежат картинки следующих типов: ICO, BMP.
Сериализовать / Serialize | Выполнение ObjRef-сериализации для возможности передачи объектов 1С (например, ТаблицаЗначений, СписокЗначений) в скрипты и различные внешние компоненты.


Система::ЗакрытьФорму / CloseForm

1C++ :: Дополнительные классы и ЭУ | Ранее: Система | Далее: РегистрироватьКомпонентыВ_HKCU / RegisterAddinsInHKCU
Система :: ЗакрытьФорму / CloseForm

Синтаксис: ЗакрытьФорму(КонтФормы, ФлагСохранения = 0)

Параметры:

  • КонтФормы - тип: ГрупповойКонтекст.

  • ФлагСохранения - тип: Число. Необязательный параметр.

    0 - закрыть форму без вопросов; 1 - если документ, счет, элемент справочника изменен, то будет запрос о сохранении изменений. Значение по умолчанию - 0.

Возвращает: Число.

  • 0 - не удалось закрыть форму.
  • 1 - форма успешно закрыта.

Описание: Немедленно закрывает форму с отработкой всех событий, обработчики которых есть в форме.

В отличие от метода КонтФормы.Форма.Закрыть([ФлагСохранения]), который закрывает форму не сразу, а только после завершения работыпользовательского кода, данный метод не ждет завершения кода, а закрывает форму немедленно. Т.е. управление к следующей строке после вызова Система.ЗакрытьФорму будет передано только после закрытия формы.

После выполнения данного метода ТипЗначения(КонтФормы) = 0 ! , т.к. форма закрыта, и все групповые контексты, которые указывали на эту форму, стали недействительными.

В случае, если первый параметр не является групповым контекстом, выдается исключение. В случае, если второй параметр не является числом, выдается исключение.

Версия: Метод работает на релизе 2.5 и позже, а также 2.0.3.2


Система::РегистрироватьКомпонентыВ_HKCU / RegisterAddinsInHKCU

1C++ :: Дополнительные классы и ЭУ | Ранее: ЗакрытьФорму / CloseForm | Далее: Уснуть / Sleep
Система :: РегистрироватьКомпонентыВ_HKCU / RegisterAddinsInHKCU

Синтаксис: РегистрироватьКомпонентыВ_HKCU(фHKCU = 1)

Параметры:

  • фHKCU - тип: Число. Необязательный параметр.
    • 1 - переназначить ветку реестра HKEY_CLASSES_ROOT в HKEY_CURRENT_USER,
    • 0 - отменить переназначение.

    Значение по умолчанию - 1.

Описание: Переназначение ветки реестра, в которой приисходит регистрация внешних компонент.

Вызов метода обеспечивает регистрацию внешних компонент в пользовательской ветке реестра. При последующей загрузке внешних компонент функцией ЗагрузитьВнешнююКомпоненту(), регистрация компоненты происходит в HKEY_CURRENT_USER. Переназначение ветки реестра происходит только для Windows 2000 и выше, и только в том случае, если попытка регистрации 1С++ в HKML завершилась неудачей.

Версия: Метод работает на релизе 2.5 и позже, а также 2.0.3.4

Пример:
Функция ИнициализироватьВнешнююКомпоненту(ИмяФайла) Экспорт
      Система=СоздатьОбъект("Система");
      Система.РегистрироватьКомпонентыВ_HKCU();
      рез=ЗагрузитьВнешнююКомпоненту(ИмяФайла)
      Если рез=0 Тогда
              СообщитьОбОшибкеЗагрузкиВК(ИмяФайла);
      КонецЕсли;
      Система.РегистрироватьКомпонентыВ_HKCU(0);
      Возврат рез;
КонецФункции


Система::Уснуть / Sleep

1C++ :: Дополнительные классы и ЭУ | Ранее: РегистрироватьКомпонентыВ_HKCU / RegisterAddinsInHKCU | Далее: СохранитьКартинку / SavePic
Система :: Уснуть / Sleep

Синтаксис: Уснуть(КоличествоМиллисекунд)

Параметры:

  • КоличествоМиллисекунд - тип: Число. .

Описание: Делает паузу путем вызова системной функции Sleep(КоличествоМиллисекунд).

Версия: Метод работает на релизе 2.5 и позже, а также 2.0.3.2


Система::СохранитьКартинку / SavePic

1C++ :: Дополнительные классы и ЭУ | Ранее: Уснуть / Sleep | Далее: ПолучитьOLEКартинку / GetOlePicture
Система :: СохранитьКартинку / SavePic

Синтаксис: СохранитьКартинку(Каталог, ИмяФайла, Картинка, Индекс, Ширина)

Параметры:
  • Каталог - тип: Строка. Каталог, в котором будет создан файл картинки (метод проверяет наличие каталога и выбрасывает исключение, если путь не верен). Если каталог не указан, то будет использоваться каталог временных файлов; в этом случае метод вернет через этот параметр путь к каталогу.
  • ИмяФайла - тип: Строка. Имя файла (без расширения) с которым будет создан файл картинки. Если не указано, то будет сгенерировано уникальное имя в формате picXXX.ext; в этом случае метод вернет через этот параметр имя созданного файла.
  • Картинка - тип: Картинка или Строка. Параметром может выступать как объект типа Картинка, так и строка с идентификатором из библиотеки картинок.
  • Индекс - тип: Число. Индекс картинки (начиная с нуля), в случае, если картинка составная. Если параметр не указан, то сохраняется картинка целиком (по умолчанию -1).
  • Ширина - тип: Число. Ширина картинки в пикселях (по умолчанию 16). Необходимо для определения индекса составной картинки.

Описание: позволяет сохранить картинку в файловую систему. Если значения параметров Каталог и/или ИмяФайла не были заданы, то метод сохранит картинку в каталог временных файлов с уникальным именем. Для создаваемых файлов метод сам подставляет расширение. Метод может выбросить исключение, в случае возникновения ошибочных ситуаций. Сохранению подлежат картинки следующих типов: ICO, BMP.

Пример (сохранение картинки из библиотеки картинок):

Перем Сервис;
Перем Каталог, Файл; // в эти переменные вернутся путь к каталогу и имя файла

Сервис = СоздатьОбъект("spService");

// сохранение картинки с идентификатором "СтрелкаВниз" из библиотеки картинок
//
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз");

// сохранение картинки с идентификатором "СтрелкаВниз" из библиотеки картинок.
// картинка представляется набором из 3 картинок, каждая шириной по 16 пикселей.
//
Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 0, 16); // первая картинка

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 1, 16); // вторая картинка

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 2, 16); // третья картинка

Пример (сохранение объекта Картинка):

Перем Сервис;
Перем Каталог, Файл; // в эти переменные вернутся путь к каталогу и имя файла
Перем Карт; // объект Картинка для примера

Сервис = СоздатьОбъект("spService");

// создаем из файла объект Картинка для дальнейших манипуляций
//
Карт = СоздатьОбъект("Картинка");
Карт.Загрузить("C:\pics_for_samle\pic1.bmp"); // картинка из 2-ух по 16 пикселей

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, Карт); // всю целиком

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, Карт, 1, 16); // только вторую


Система::ПолучитьOLEКартинку / GetOlePicture

1C++ :: Дополнительные классы и ЭУ | Ранее: СохранитьКартинку / SavePic | Далее: Сериализовать / Serialize
Система :: ПолучитьOLEКартинку / GetOlePicture

Синтаксис: ПолучитьOLEКартинку(Картинка, Индекс, Ширина)

Параметры:
  • Картинка - тип: Картинка или Строка. Параметром может выступать как объект типа Картинка, так и строка с идентификатором из библиотеки картинок.
  • Индекс - тип: Число. Индекс картинки (начиная с нуля), в случае, если картинка составная. Если параметр не указан, то сохраняется картинка целиком (по умолчанию -1).
  • Ширина - тип: Число. Ширина картинки в пикселях (по умолчанию 16). Необходимо для определения индекса составной картинки.

Возвращает: тип: IPicture. Возвращает картинку типа OLE.Picture.

Описание: позволяет получить картинку типа OLE.Picture. Получению подлежат картинки следующих типов: ICO, BMP.


Система::Сериализовать / Serialize

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьOLEКартинку / GetOlePicture | Далее: РеестрWin
Система :: Сериализовать / Serialize

Синтаксис: Сериализовать(Объект)

Параметры:

  • Объект - тип: агрегатный.

Описание: Выполнение ObjRef-сериализации для возможности передачи объектов 1С (например, ТаблицаЗначений, СписокЗначений) в скрипты и различные внешние компоненты.

Например, при использовании внутри 1С объекта "MSScriptControl.ScriptControl" и при попытке засунуть в скрипт встроенный в 1С объект (типа ТЗ, СЗ и др.) через AddObject получаем ошибку "плохой тип переменной".

Важно: сохранение сериализованного представления объекта без сохранения объекта Система выдаст неверный результат, т.е. время жизни сериализованного представления привязано ко времени жизни объекта Система, с помощью которого получено сериализованное представление.

Пример обычного НЕВЕРНОГО кода:

Т = СоздатьОбъект("ТаблицаЗначений");

Scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.Language="vbscript"; Scr.AddObject("v", Т); !! здесь будет выдана ошибка !!

Scr.AddCode("
Function TestVT
v.SelectLines()
v.GetLine()
TestVT=v.t1
End Function");

Сообщить(Scr.Eval("TestVT()")); // т.е. до этой строки даже не дойдет

Пример ВЕРНОГО кода с помощью данного метода

Т = СоздатьОбъект("ТаблицаЗначений");
Т.НоваяКолонка("t1");
Т.НоваяСтрока();
Т.t1 = 111;

Scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.Language="vbscript";

Система = СоздатьОбъект("Система");

Scr.AddCode("
Function TestVT
Set v=GetObject("""+Система.Сериализовать(Т)+""")
v.SelectLines()
v.GetLine()
TestVT=v.t1
End Function");

Сообщить(Scr.Eval("TestVT()"); // будет выдано 111, что и требовалось


РеестрWin

1C++ :: Дополнительные классы и ЭУ | Ранее: Сериализовать / Serialize | Далее: СоздатьКлюч / CreateKey
РеестрWin

Класс РеестрWin / RegistryWin

Класс РаботаСРегистромWin / WorkAsRegisterWin

Предназначен для работы с реестром "Windows" в стиле языка 1С : Предприятия.

Позволяет:

  • создавать, открывать ключи реестра, подключаться к реестру удаленного компьютера;
  • добавлять в ключи строковые и числовые значения, удалять значения из ключей реестра;
  • перебирать ключи и значения ключей;
  • организовывать поиск ключа или значения по имени.

Методы

СоздатьКлюч / CreateKey | Создает в реестре ключ с указанным именем.
ОткрытьКлюч / OpenKey | Открывает ключ реестра с указанным именем.
ПодключитьРегистр / ConnectRegistry | Подключает объект к реестру удаленного компьютера.
УдалитьКлюч / DeleteKey | Удаляет подключ ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
УдалитьЗначение / DeleteValue | Удаляет значение в ключе, открытом ранее функцией ОткрытьКлюч или СоздатьКлюч.
УстановитьЗначение / SetValue | Устанавливает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
ЗапроситьЗначение / QueryValue | Запрашивает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
ВыбратьКлючи / ChooseKeys | Открывает выборку подключей ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.
ПолучитьКлюч / GetKey | Получает следующее название подключа из выборки, открытой ранее методом ВыбратьКлючи.
ВыбратьЗначения / ChooseValues | Открывает выборку значений ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.
ПолучитьЗначение / GetValue | Получает следующее название значения из выборки, открытой ранеее методом ВыбратьЗначения.
ОтладочныеСообщения | Включает/отключает отладочные сообщения при возникновении ошибок работы с реестром.
ЗаписатьВсеАтрибуты | Немедленно записать изменения, внесенные ранее в реестр.


РеестрWin::СоздатьКлюч / CreateKey

1C++ :: Дополнительные классы и ЭУ | Ранее: РеестрWin | Далее: ОткрытьКлюч / OpenKey
РеестрWin :: СоздатьКлюч / CreateKey

Синтаксис: СоздатьКлюч(Ключ, Имя, Режим)

Параметры:

  • Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:

    • HKEY_CLASSES_ROOT
    • HKEY_CURRENT_CONFIG
    • HKEY_CURRENT_USER
    • HKEY_LOCAL_MACHINE
    • HKEY_USERS

  • Имя - тип: Строка. Названием ключа реестра. (например: "Software\1C\1Cv7\7.7")

  • Режим - тип: Строка. Режим создания ключа. Названия строго определены и бывают следующих видов:

    • KEY_CREATE_LINK Permission to create a symbolic link.
    • KEY_CREATE_SUB_KEY Permission to create subkeys.
    • KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.
    • KEY_EXECUTE Permission for read access.
    • KEY_NOTIFY Permission for change notification.
    • KEY_QUERY_VALUE Permission to query subkey data.
    • KEY_SET_VALUE Permission to set subkey data.
    • 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.
    • KEY_READ Combines the STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access rights.
    • KEY_WRITE Combines the STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, and KEY_CREATE_SUB_KEY access rights

Возвращает: Число.

  • -1 - ошибка
  • 0 - ключ с таким названием уже существует и будет просто открыт
  • 1 - ключ успешно создан

Описание: Создает в реестре ключ с указанным именем.


РеестрWin::ОткрытьКлюч / OpenKey

1C++ :: Дополнительные классы и ЭУ | Ранее: СоздатьКлюч / CreateKey | Далее: ПодключитьРегистр / ConnectRegistry
РеестрWin :: ОткрытьКлюч / OpenKey

Синтаксис: ОткрытьКлюч(Ключ, Имя, Режим)

Параметры:

  • Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:

    • HKEY_CLASSES_ROOT
    • HKEY_CURRENT_CONFIG
    • HKEY_CURRENT_USER
    • HKEY_LOCAL_MACHINE
    • HKEY_USERS

  • Имя - тип: Строка. Названием ключа реестра. (например: "Software\1C\1Cv7\7.7")

  • Режим - тип: Строка. Режим создания ключа. Названия строго определены и бывают следующих видов:

    • KEY_CREATE_LINK Permission to create a symbolic link .
    • KEY_CREATE_SUB_KEY Permission to create subkeys.
    • KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.
    • KEY_EXECUTE Permission for read access.
    • KEY_NOTIFY Permission for change notification.
    • KEY_QUERY_VALUE Permission to query subkey data.
    • KEY_SET_VALUE Permission to set subkey data.
    • 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.
    • KEY_READ Combines the STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access rights.
    • KEY_WRITE Combines the STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, and KEY_CREATE_SUB_KEY access rights

Возвращает: Число.

  • 0 - ошибка
  • 1 - ключ открыт

Описание: Открывает ключ реестра с указанным именем.


РеестрWin::ПодключитьРегистр / ConnectRegistry

1C++ :: Дополнительные классы и ЭУ | Ранее: ОткрытьКлюч / OpenKey | Далее: УдалитьКлюч / DeleteKey
РеестрWin :: ПодключитьРегистр / ConnectRegistry

Синтаксис: ПодключитьРегистр(ИмяУдаленногоКомпьютера, Ключ)

Параметры:

  • ИмяУдаленногоКомпьютера - тип: Строка. Cетевое имя компьютера, к реестру которого необходимо подключиться (например: \computername). Если указать пустую строку, то метод подключится к локальной машине.

  • Ключ - тип: Cтрока. Название ветви реестра. Названия строго определены и бывают следующих видов:

    • HKEY_LOCAL_MACHINE
    • HKEY_USERS

Возвращает: Число.

  • 0 - ошибка
  • 1 - соединение установлено

Описание: Подключает объект к реестру удаленного компьютера.

Примечание: для возможности успешного подключения к компьютеру с установленной операционной системой Windows 95 необходимо инсталлировать на нем "Microsoft Remote Registry service".


РеестрWin::УдалитьКлюч / DeleteKey

1C++ :: Дополнительные классы и ЭУ | Ранее: ПодключитьРегистр / ConnectRegistry | Далее: УдалитьЗначение / DeleteValue
РеестрWin :: УдалитьКлюч / DeleteKey

Синтаксис: УдалитьКлюч(ИмяПодКлюча)

Параметры:

  • ИмяПодКлюча - тип: Строка. Имя удаляемого подключа.

Возвращает: Число.

  • 0 - была ошибка
  • 1 - удаление закончено успешно

Описание: Удаляет подключ ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.


РеестрWin::УдалитьЗначение / DeleteValue

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьКлюч / DeleteKey | Далее: УстановитьЗначение / SetValue
РеестрWin :: УдалитьЗначение / DeleteValue

Синтаксис: УдалитьЗначение(ИмяЗначения)

Параметры:

  • ИмяЗначения - тип: Строка. Имя удаляемого значения.

Возвращает: Число.

  • 0 - была ошибка
  • 1 - удаление закончено успешно

Описание: Удаляет значение в ключе, открытом ранее функцией ОткрытьКлюч или СоздатьКлюч.


РеестрWin::УстановитьЗначение / SetValue

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьЗначение / DeleteValue | Далее: ЗапроситьЗначение / QueryValue
РеестрWin :: УстановитьЗначение / SetValue

Синтаксис: УстановитьЗначение(ИмяЗначения, ТипЗначения, Значение)

Параметры:

  • ИмяЗначения - тип: Строка. Название значения в ключе.

  • ТипЗначения - тип: Строка. Может принимать только два значения:

    • "REG_SZ" - тип значения строка
    • "REG_DWORD" - тип значения целое число

  • Значение - тип: Строка, Число. Значение, которое необходимо установить, зависит от типа, установленного в предыдущем параметре.

Возвращает: Число.

  • 0 - была ошибка
  • 1 - установка закончена успешно

Описание: Устанавливает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.


РеестрWin::ЗапроситьЗначение / QueryValue

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьЗначение / SetValue | Далее: ВыбратьКлючи / ChooseKeys
РеестрWin :: ЗапроситьЗначение / QueryValue

Синтаксис: ЗапроситьЗначение(ИмяЗначения, Значение)

Параметры:

  • ИмяЗначения - тип: Строка. Название значения в ключе.
  • Значение - тип: Имя переменной. Переменная для приема запрошенного значения.

Возвращает: Число.

  • 0 - была ошибка
  • 1 - запрос закончен успешно

Описание: Запрашивает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.

Примечание: Если операция выполнена успешно, то результат будет в Значение. Тип значений, которые можно получить, может быть только "REG_SZ" или "REG_DWORD".


РеестрWin::ВыбратьКлючи / ChooseKeys

1C++ :: Дополнительные классы и ЭУ | Ранее: ЗапроситьЗначение / QueryValue | Далее: ПолучитьКлюч / GetKey
РеестрWin :: ВыбратьКлючи / ChooseKeys

Синтаксис: ВыбратьКлючи()

Возвращает: Число. Количество выбранных подключей.

Описание: Открывает выборку подключей ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.


РеестрWin::ПолучитьКлюч / GetKey

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыбратьКлючи / ChooseKeys | Далее: ВыбратьЗначения / ChooseValues
РеестрWin :: ПолучитьКлюч / GetKey

Синтаксис: ПолучитьКлюч(ИмяПодКлюча)

Параметры:

  • ИмяПодКлюча - тип: Имя переменной. Переменная для приема названия подключа.

Возвращает: Число.

  • 0 - выборка пуста
  • 1 - в выборке еще есть подключи

Описание: Получает следующее название подключа из выборки, открытой ранее методом ВыбратьКлючи.


РеестрWin::ВыбратьЗначения / ChooseValues

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьКлюч / GetKey | Далее: ПолучитьЗначение / GetValue
РеестрWin :: ВыбратьЗначения / ChooseValues

Синтаксис: ВыбратьЗначения()

Возвращает: Число. Количество - значений в выборке.

Описание: Открывает выборку значений ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.


РеестрWin::ПолучитьЗначение / GetValue

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыбратьЗначения / ChooseValues | Далее: ОтладочныеСообщения
РеестрWin :: ПолучитьЗначение / GetValue

Синтаксис: ПолучитьЗначение(ИмяЗначения)

Параметры:

  • ИмяЗначения - тип: Имя переменной. Переменная, в которую возвращается строковое название значения.

Возвращает: Число.

  • 0 - выборка пуста
  • 1 - в выборке еще есть значения

Описание: Получает следующее название значения из выборки, открытой ранеее методом ВыбратьЗначения.


РеестрWin::ОтладочныеСообщения

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьЗначение / GetValue | Далее: ЗаписатьВсеАтрибуты
РеестрWin :: ОтладочныеСообщения

Синтаксис: ОтладочныеСообщения(Включить)

Параметры:

  • Включить - тип: Число.

    • 0 - Отключить
    • 1 - Включить

Описание: Включает/отключает отладочные сообщения при возникновении ошибок работы с реестром.


РеестрWin::ЗаписатьВсеАтрибуты

1C++ :: Дополнительные классы и ЭУ | Ранее: ОтладочныеСообщения | Далее: ВыполняемыйМодуль
РеестрWin :: ЗаписатьВсеАтрибуты

Синтаксис: ЗаписатьВсеАтрибуты()

Описание: Немедленно записать изменения, внесенные ранее в реестр.


ВыполняемыйМодуль

1C++ :: Дополнительные классы и ЭУ | Ранее: ЗаписатьВсеАтрибуты | Далее: <ИмяПеременной>
ВыполняемыйМодуль

Класс ВыполняемыйМодуль / ExecuteModule

Предназначен для работы с динамическими модулями, передаваемыми в параметре метода в качестве строки.

После установки текста модуля скомпилируйте и выполните его. Модуль инициализируется и выполнит операторы, расположенные в конце тела модуля, вне методов. После этого можно обращаться к переменным модуля, как к свойствам этого объекта, и к методам модуля, как к методам объекта.

Свойства

<ИмяПеременной> Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.

Методы

<ИмяМетода> | Позволяет обращаться к методам, определенным в тексте модуля, как к своим методам.
УстановитьМодуль / AssignSource | Устанавливает текст модуля на выполнение.
ПолучитьТекстМодуля / GetModuleText | Возвращает текст модуля.
НазначитьКонтекст / AssignContext | Устанавливает контекст модуля.
ПрисоединитьТекущийМодуль / AssignFriendModule | Присоединяет модуль, который в данный момент выполняется.
КомпилироватьМодуль / Compile | Компилирует модуль, установленный с помощью метода УстановитьМодуль.
ВыполнитьМодуль / Execute | Выполняет модуль, установленный с помощью метода УстановитьМодуль и откомпилированный методом КомпилироватьМодуль.
GetMethOfContext | Предоставляет информацию о методах и свойствах объекта.
СформироватьОшибку / RaiseError | Останавливает выполнение текущего модуля.
ОчиститьПозициюПроведения / ErasePostState | Очищает позицию проведения и сохраняет текущую в объекте.
ВосстановитьПозициюПроведения / RestorePostState | Восстанавливает позицию проведения текущего документа, очищенную с помощью метода ОчиститьПозициюПроведения.
ВыброситьИскл / Throw | Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода ПолучитьИсключение.
ПолучитьИсключение / GetExeption | Получает объект исключения.
КомпилироватьИВыполнитьМодуль / CompileAndExecute | Компилирует и выполняет модуль, установленный с помощью метода УстановитьМодуль .
РазрешитьИсключения / EnableExceptions | Включает флаг выдачи исключений вместо показа ошибок в окне сообщений.
ВыполнитьПроцедуруКонтекста / CallContextProcedure | Выполняет процедуру для переданного объекта, если у объекта есть процедура с таким именем. Если найдена функция с таким именем, выдается исключение.
ВыполнитьФункциюКонтекста / CallContextFunction | Выполняет функцию для переданного объекта, если у объекта есть функция с таким именем. Если найдена процедура с таким именем, выдается исключение.
РазрешитьВложенныйВызовМетодов / EnableInsideCalling | Разрешает работу вложенных процедур модуля. В т.ч. и рекурсивных обращений, что может приводить к падению 1С. Вся ответственность за вложенные вызовы ложится на пользователя.


ВыполняемыйМодуль::<ИмяПеременной>

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыполняемыйМодуль | Далее: <ИмяМетода>
ВыполняемыйМодуль :: <ИмяПеременной>

Доступ: чтение и запись.

Тип: Любой.

Описание: Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.


ВыполняемыйМодуль::<ИмяМетода>

1C++ :: Дополнительные классы и ЭУ | Ранее: <ИмяПеременной> | Далее: УстановитьМодуль / AssignSource
ВыполняемыйМодуль :: <ИмяМетода>

Синтаксис: Соответствует синтаксису метода модуля.

Параметры: Соответствуют параметрам меода модуля.

Описание: Позволяет обращаться к методам, определенным в тексте модуля, как к своим методам.


ВыполняемыйМодуль::УстановитьМодуль / AssignSource

1C++ :: Дополнительные классы и ЭУ | Ранее: <ИмяМетода> | Далее: ПолучитьТекстМодуля / GetModuleText
ВыполняемыйМодуль :: УстановитьМодуль / AssignSource

Синтаксис: УстановитьМодуль(стрТекстМодуля)

Параметры:

  • стрТекстМодуля - тип: Строка. Текст модуля.

Описание: Устанавливает текст модуля на выполнение.

В модуле возможно определять любые функция, процедуры и параметры, доступ к которым возможно осуществлять, через оператор-селектор .(точка) объекта класса ВыполняемыйМодуль, после компилирования и запуска.


ВыполняемыйМодуль::ПолучитьТекстМодуля / GetModuleText

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьМодуль / AssignSource | Далее: НазначитьКонтекст / AssignContext
ВыполняемыйМодуль :: ПолучитьТекстМодуля / GetModuleText

Синтаксис: ПолучитьТекстМодуля()

Возвращает:

  • Текст модуля. - тип: Строка.

Описание: Возвращает текст модуля.


ВыполняемыйМодуль::НазначитьКонтекст / AssignContext

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьТекстМодуля / GetModuleText | Далее: ПрисоединитьТекущийМодуль / AssignFriendModule
ВыполняемыйМодуль :: НазначитьКонтекст / AssignContext

Синтаксис: НазначитьКонтекст(Контекст)

Параметры:

  • Контекст - тип: ГрупповойКонтекст, АгрегатныйОбъект. Назначаемый контекст.

Описание: Устанавливает контекст модуля.

Метод должен вызыватся до компиляции модуля. При этом к методам и свойствам назначенного контекста в тексте модуля можно будет обращаться напрямую, без указания имени объекта.


ВыполняемыйМодуль::ПрисоединитьТекущийМодуль / AssignFriendModule

1C++ :: Дополнительные классы и ЭУ | Ранее: НазначитьКонтекст / AssignContext | Далее: КомпилироватьМодуль / Compile
ВыполняемыйМодуль :: ПрисоединитьТекущийМодуль / AssignFriendModule

Синтаксис: ПрисоединитьТекущийМодуль()

Описание: Присоединяет модуль, который в данный момент выполняется.

Это позволяет в установленном модуле объекта обращаться напрямую к переменным и методам текущего модуля (т.е. модуля, в котором идет работа в данный момент с объектом класса ВыполняемыйМодуль).


ВыполняемыйМодуль::КомпилироватьМодуль / Compile

1C++ :: Дополнительные классы и ЭУ | Ранее: ПрисоединитьТекущийМодуль / AssignFriendModule | Далее: ВыполнитьМодуль / Execute
ВыполняемыйМодуль :: КомпилироватьМодуль / Compile

Синтаксис: КомпилироватьМодуль()

Возвращает: Число.

  • 1, если компиляция прошла успешно
  • 0 в случае неудачи

Описание: Компилирует модуль, установленный с помощью метода УстановитьМодуль.


ВыполняемыйМодуль::ВыполнитьМодуль / Execute

1C++ :: Дополнительные классы и ЭУ | Ранее: КомпилироватьМодуль / Compile | Далее: GetMethOfContext
ВыполняемыйМодуль :: ВыполнитьМодуль / Execute

Синтаксис: ВыполнитьМодуль()

Возвращает: Число.

  • 1, если выполнение начато успешно
  • 0 в случае неудачи

Описание: Выполняет модуль, установленный с помощью метода УстановитьМодуль и откомпилированный методом КомпилироватьМодуль.

При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого ВыполняемыйМодуль готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам.


ВыполняемыйМодуль::GetMethOfContext

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыполнитьМодуль / Execute | Далее: СформироватьОшибку / RaiseError
ВыполняемыйМодуль :: GetMethOfContext

Синтаксис: GetMethOfContext(Объект, тзМетоды = 0, тзСвойства = 0)

Параметры:

  • Объект - тип: Контекст, АгрегатныйОбъект. Объект, для которого необходимо получить описание.
  • тзМетоды - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание методов объекта.
  • тзСвойства - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание свойств объекта.

Описание: Предоставляет информацию о методах и свойствах объекта.

Если задана хотя бы одна из таблиц (тзМетоды, тзСвойства), описание возвращается в соотв. таблице. Иначе описание выводится в окно сообщений.

Вместо данного метода удобнее использовать соответствующие методы класса "Информатор" - ПолучитьТаблицуМетодов и ПолучитьТаблицуСвойств.


ВыполняемыйМодуль::СформироватьОшибку / RaiseError

1C++ :: Дополнительные классы и ЭУ | Ранее: GetMethOfContext | Далее: ОчиститьПозициюПроведения / ErasePostState
ВыполняемыйМодуль :: СформироватьОшибку / RaiseError

Синтаксис: СформироватьОшибку(ТекстОшибки)

Параметры:

  • ТекстОшибки - тип: Строка. Сообщение об ошибке.

Описание: Останавливает выполнение текущего модуля.

При этом выводится сообщение об ошибке, переданное в параметре метода ТекстОшибки.


ВыполняемыйМодуль::ОчиститьПозициюПроведения / ErasePostState

1C++ :: Дополнительные классы и ЭУ | Ранее: СформироватьОшибку / RaiseError | Далее: ВосстановитьПозициюПроведения / RestorePostState
ВыполняемыйМодуль :: ОчиститьПозициюПроведения / ErasePostState

Синтаксис: ОчиститьПозициюПроведения()

Описание: Очищает позицию проведения и сохраняет текущую в объекте.

Далее в модуле документа можно проводить другие документы и отменять проведение других документов, после выполнения этих операций необходимо восстановить позицию с помощью метода ВосстановитьПозициюПроведения, описанного ниже.

Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.


ВыполняемыйМодуль::ВосстановитьПозициюПроведения / RestorePostState

1C++ :: Дополнительные классы и ЭУ | Ранее: ОчиститьПозициюПроведения / ErasePostState | Далее: ВыброситьИскл / Throw
ВыполняемыйМодуль :: ВосстановитьПозициюПроведения / RestorePostState

Синтаксис: ВосстановитьПозициюПроведения()

Описание: Восстанавливает позицию проведения текущего документа, очищенную с помощью метода ОчиститьПозициюПроведения.

Методы ОчиститьПозициюПроведения и ВосстановитьПозициюПроведения необходимо вызывать всегда в паре в указанной последовательности!!!

Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.


ВыполняемыйМодуль::ВыброситьИскл / Throw

1C++ :: Дополнительные классы и ЭУ | Ранее: ВосстановитьПозициюПроведения / RestorePostState | Далее: ПолучитьИсключение / GetExeption
ВыполняемыйМодуль :: ВыброситьИскл / Throw

Синтаксис: ВыброситьИскл(ОбъектИскл, [ТекстИскл])

Параметры:

  • ОбъектИскл - тип: Любой. Параметр, который потом можно получить при обработке исключения методом ПолучитьИсключение.
  • ТекстИскл - тип: Строка. Сообщение об ошибке. По умолчанию "".

Описание: Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода ПолучитьИсключение.

При обработке исключения текст сообщения об ошибке можно получить с помощью глобальной функции ОписаниеОшибки(). Если исключение не обработано, этот текст будет выведен в окно сообщений.


ВыполняемыйМодуль::ПолучитьИсключение / GetExeption

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыброситьИскл / Throw | Далее: КомпилироватьИВыполнитьМодуль / CompileAndExecute
ВыполняемыйМодуль :: ПолучитьИсключение / GetExeption

Синтаксис: ПолучитьИсключение()

Возвращает: объект-исключение, параметр ОбъектИскл, переданный в метод ВыброситьИскл.

Описание: Получает объект исключения.

Используется в обработчиках исключений для получения объекта исключения, переданного в метод ВыброситьИскл, или метода функционала класса _ВыброситьИскл.


ВыполняемыйМодуль::КомпилироватьИВыполнитьМодуль / CompileAndExecute

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьИсключение / GetExeption | Далее: РазрешитьИсключения / EnableExceptions
ВыполняемыйМодуль :: КомпилироватьИВыполнитьМодуль / CompileAndExecute

Синтаксис: КомпилироватьИВыполнитьМодуль()

Описание: Компилирует и выполняет модуль, установленный с помощью метода УстановитьМодуль .

При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого ВыполняемыйМодуль готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение.


ВыполняемыйМодуль::РазрешитьИсключения / EnableExceptions

1C++ :: Дополнительные классы и ЭУ | Ранее: КомпилироватьИВыполнитьМодуль / CompileAndExecute | Далее: ВыполнитьПроцедуруКонтекста / CallContextProcedure
ВыполняемыйМодуль :: РазрешитьИсключения / EnableExceptions

Синтаксис: РазрешитьИсключения()

Описание: Включает флаг выдачи исключений вместо показа ошибок в окне сообщений.

После выполнения данного метода методы ВыполнитьМодуль, КомпилироватьМодуль вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод КомпилироватьИВыполнитьМодуль всегда выбрасывает исключения, независимо от выполнения данного метода.


ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста / CallContextProcedure

1C++ :: Дополнительные классы и ЭУ | Ранее: РазрешитьИсключения / EnableExceptions | Далее: ВыполнитьФункциюКонтекста / CallContextFunction
ВыполняемыйМодуль :: ВыполнитьПроцедуруКонтекста / CallContextProcedure

Синтаксис: ВыполнитьПроцедуруКонтекста(Объект, ИмяПроцедуры, СписокАргументов)

Параметры:

  • Объект - тип: Агрегатный.
  • ИмяПроцедуры - тип: Строка.
  • СписокАргументов - тип: СписокЗначений. Список аргументов для упомянутой процедуры.

Возвращает: 1, если процедура существует, или 0, если нет.

Описание: Выполняет процедуру для переданного объекта, если у объекта есть процедура с таким именем. Если найдена функция с таким именем, выдается исключение.

В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.


ВыполняемыйМодуль::ВыполнитьФункциюКонтекста / CallContextFunction

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыполнитьПроцедуруКонтекста / CallContextProcedure | Далее: РазрешитьВложенныйВызовМетодов / EnableInsideCalling
ВыполняемыйМодуль :: ВыполнитьФункциюКонтекста / CallContextFunction

Синтаксис: ВыполнитьФункциюКонтекста(Объект, ИмяПроцедуры, СписокАргументов, РезультатРаботыФункции)

Параметры:

  • Объект - тип: Агрегатный.
  • ИмяПроцедуры - тип: Строка.
  • СписокАргументов - тип: СписокЗначений. Список аргументов для упомянутой процедуры.
  • РезультатРаботыФункции - тип: Число.

Возвращает: 1, если функция существует, или 0, если нет.

Описание: Выполняет функцию для переданного объекта, если у объекта есть функция с таким именем. Если найдена процедура с таким именем, выдается исключение.

В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.


ВыполняемыйМодуль::РазрешитьВложенныйВызовМетодов / EnableInsideCalling

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыполнитьФункциюКонтекста / CallContextFunction | Далее: Делегат
ВыполняемыйМодуль :: РазрешитьВложенныйВызовМетодов / EnableInsideCalling

Синтаксис: РазрешитьВложенныйВызовМетодов()

Описание: Разрешает работу вложенных процедур модуля. В т.ч. и рекурсивных обращений, что может приводить к падению 1С. Вся ответственность за вложенные вызовы ложится на пользователя.


Делегат

1C++ :: Дополнительные классы и ЭУ | Ранее: РазрешитьВложенныйВызовМетодов / EnableInsideCalling | Далее: ОпределитьТип / DefineType
Делегат

Класс Делегат / Delegate

Данный класс представляет собой хранилище ссылок на методы экземпляров агрегатных объектов 1С. С помощью этого класса возможно вызывать группу методов с одинаковой сигнатурой (возвращаемый параметр, количество параметров или их отсутствие).

Использование делегата позволяет писать обобщенные алгоритмы и делать групповые вызовы методов.

Методы

ОпределитьТип / DefineType
Добавить / AddMethod
Удалить / RemMethod
УдалитьПоКлючу / RemMethodByKey
Вызвать / Invoke
ВызватьСЗ / InvokeVL
ВызватьПоКлючу / InvokeByKey
ВызватьСЗПоКлючу / InvokeVLByKey
Очистить / Erase
Пустой / IsEmpty
ПолучитьТаблицуОбработчиков / GetHandlersTable
ПолучитьТаблицуОбработчиковПоКлючу / GetHandlersTableByKey


Делегат::ОпределитьТип / DefineType

1C++ :: Дополнительные классы и ЭУ | Ранее: Делегат | Далее: Добавить / AddMethod
Делегат :: ОпределитьТип / DefineType
Синтаксис:

ОпределитьТип(чКолПарам, флЕстьВозврат, [флПрерыватьВыполнение = 0])
Параметры:
  • чКолПарам: Число

    Количество параметров, которые будут передаваться в методы делегата

  • флЕстьВозврат: Число

    Флаг наличия возвращаемого значения

    • 1 - методы в делегате есть функции
    • 0 - методы в делегате есть процедуры
  • флПрерыватьВыполнение: Число

    Флаг прерывания выполнения по условию

    • 1 - методы Вызвать и ВызватьПоКлючу прерывают выполнение цепочки, если при вызове очередной функции возвращенное значение равно 0
    • 0 - методы Вызвать и ВызватьПоКлючу всегда проходят цепочку вызова полностью
Возвращает:

нет
Описание:
Задает сигнатуру хранимых в Делегате методов.
Сигнатура - количество параметров и тип (функция / процедура) методов


Делегат::Добавить / AddMethod

1C++ :: Дополнительные классы и ЭУ | Ранее: ОпределитьТип / DefineType | Далее: Удалить / RemMethod
Делегат :: Добавить / AddMethod
Синтаксис:

Добавить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода, [стрКлюч = ""])
Параметры:
  • ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект

    Объект, метод которого будет сохранен для вызова

  • стрИмяМетода: Строка

    Имя метода, который будет вызван

  • стрКлюч: Строка

    Если указан - можно вызывать метод по указанному ключу с помощью метода делегата ВызватьПоКлючу

    По умолчанию используется ключ ""
    Возможна реализация обработчика по умолчанию для ситуаций вызова по несуществующим ключам
    (см. описание метода ВызватьПоКлючу)
Возвращает:

Число

  • 1 - добавление метода прошло успешно
Описание:
Устанавливает/добавляет в делегат ссылки на метод агрегатного объекта для его дальнейшего вызова
Сигнатура метода объекта для установки должна соответствовать указанной в ОпределитьТип
Примечание:
Возможно использование одинаковых методов для любых сочетаний ключей и агрегатных объектов
Количество ключей не регламентируется
Количество методов в пределах ключа не регламентируется
Ключи и имена методов являются регистронезависимыми


Делегат::Удалить / RemMethod

1C++ :: Дополнительные классы и ЭУ | Ранее: Добавить / AddMethod | Далее: УдалитьПоКлючу / RemMethodByKey
Делегат :: Удалить / RemMethod
Синтаксис:

Удалить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода)
Параметры:
  • ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект

    Объект, ссылка на метод которого была сохранена ранее

  • стрИмяМетода: Строка

    Имя метода, ссылка на который была сохранена ранее
Возвращает:

Число

  • 1 - удаление прошло успешно
  • 0 - ссылок не найдено
Описание:

Удаляет все ссылки на заданный метод указанного агрегатного объекта во всех ключах


Делегат::УдалитьПоКлючу / RemMethodByKey

1C++ :: Дополнительные классы и ЭУ | Ранее: Удалить / RemMethod | Далее: Вызвать / Invoke
Делегат :: УдалитьПоКлючу / RemMethodByKey
Синтаксис:

УдалитьПоКлючу(стрКлюч)
Параметры:
  • стрКлюч: Строка

    Ключ, по которому происходит поиск методов объектов
Возвращает:

Число

  • 1 - удаление прошло успешно
  • 0 - для указанного ключа ссылок не найдено
Описание:
Удаляет все ссылки на методы агрегатных объектов по заданному ключу
Ключ задается при добавлении ссылки на метод, третьим параметром в Добавить


Делегат::Вызвать / Invoke

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьПоКлючу / RemMethodByKey | Далее: ВызватьСЗ / InvokeVL
Делегат :: Вызвать / Invoke
Синтаксис:

Вызвать(...)
Параметры:
  • ...:

    Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает:

Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание:

Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание:
Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить.
Порядок перебора ключей не определен.


Делегат::ВызватьСЗ / InvokeVL

1C++ :: Дополнительные классы и ЭУ | Ранее: Вызвать / Invoke | Далее: ВызватьПоКлючу / InvokeByKey
Делегат :: ВызватьСЗ / InvokeVL
Синтаксис:

ВызватьСЗ(спПараметры)
Параметры:
  • спПараметры: СписокЗначений

    Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает:

Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание:

Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание:
Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить.
Порядок перебора ключей не определен.


Делегат::ВызватьПоКлючу / InvokeByKey

1C++ :: Дополнительные классы и ЭУ | Ранее: ВызватьСЗ / InvokeVL | Далее: ВызватьСЗПоКлючу / InvokeVLByKey
Делегат :: ВызватьПоКлючу / InvokeByKey
Синтаксис:

ВызватьПоКлючу(стрКлюч, ...)
Параметры:
  • стрКлюч: Строка

    Ключ, по которому происходит поиск ссылки

  • ...:

    Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает:

Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание:

Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание:

Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить
Обработчик по умолчанию:

Если указанный ключ в делегате не задан, вызывается обработчик по умолчанию по ключу "__default" (должен быть предварительно определен методом Добавить)

Если обработчик по умолчанию также не задан, не вызывается ничего
Обработчик по умолчанию учитывает значение параметра чПрерыватьВыполнение в общем порядке


Делегат::ВызватьСЗПоКлючу / InvokeVLByKey

1C++ :: Дополнительные классы и ЭУ | Ранее: ВызватьПоКлючу / InvokeByKey | Далее: Очистить / Erase
Делегат :: ВызватьСЗПоКлючу / InvokeVLByKey
Синтаксис:

ВызватьПоКлючу(стрКлюч, спПараметры)
Параметры:
  • стрКлюч: Строка

    Ключ, по которому происходит поиск ссылки

  • спПараметры: СписокЗначений

    Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает:

Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание:

Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание:

Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить
Обработчик по умолчанию:

Если указанный ключ в делегате не задан, вызывается обработчик по умолчанию по ключу "__default" (должен быть предварительно определен методом Добавить)

Если обработчик по умолчанию также не задан, не вызывается ничего
Обработчик по умолчанию учитывает значение параметра чПрерыватьВыполнение в общем порядке


Делегат::Очистить / Erase

1C++ :: Дополнительные классы и ЭУ | Ранее: ВызватьСЗПоКлючу / InvokeVLByKey | Далее: Пустой / IsEmpty
Делегат :: Очистить / Erase
Синтаксис:

Очистить()
Описание:
Удаляет из делегата все установленные в нем ранее методы для всех ключей.
Сигнатура делегата после выполнения метода Очистить() не определена.


Делегат::Пустой / IsEmpty

1C++ :: Дополнительные классы и ЭУ | Ранее: Очистить / Erase | Далее: ПолучитьТаблицуОбработчиков / GetHandlersTable
Делегат :: Пустой / IsEmpty
Синтаксис:

Пустой()
Возвращает:

Число

  • 1, если делегат не содержит ссылок на методы
  • 0, если содержит
Описание:

Проверяет наличие сохраненных ссылок


Делегат::ПолучитьТаблицуОбработчиков / GetHandlersTable

1C++ :: Дополнительные классы и ЭУ | Ранее: Пустой / IsEmpty | Далее: ПолучитьТаблицуОбработчиковПоКлючу / GetHandlersTableByKey
Делегат :: ПолучитьТаблицуОбработчиков / GetHandlersTable
Синтаксис:

ПолучитьТаблицуОбработчиков()
Возвращает:

Таблицу значений с подключенными обработчиками. В таблице есть 3 колонки - Объект, НаименованиеКласса, НаименованиеМетода
Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.


Делегат::ПолучитьТаблицуОбработчиковПоКлючу / GetHandlersTableByKey

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьТаблицуОбработчиков / GetHandlersTable | Далее: МенеджерСобытий
Делегат :: ПолучитьТаблицуОбработчиковПоКлючу / GetHandlersTableByKey
Синтаксис:

ПолучитьТаблицуОбработчиковПоКлючу(стрКлюч)
Параметры:
  • стрКлюч: Строка

    Ключ, по которому происходит поиск ссылки
Возвращает:

Таблицу значений с подключенными обработчиками. В таблице есть 3 колонки - Объект, НаименованиеКласса, НаименованиеМетода
Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.


МенеджерСобытий

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьТаблицуОбработчиковПоКлючу / GetHandlersTableByKey | Далее: Пустой / IsEmpty
МенеджерСобытий

Класс МенеджерСобытий / EventManager

Данный класс предназначен для обработки событий, возникающих в классах КОП и других контекстах использования менеджера.

Например: Есть класс, который формирует различные события и называется он "ФабрикаСобытий" (издатель событий). Предположим, что обращение к его открытым методам "Событие_1" и "Событие_2" приводят к возникновению событий в системе от этого класса. Далее, у нас есть несколько классов, которые хотят подписаться на события (подписчики событий), формируемые классом "ФабрикаСобытий", назовем их "ОбработчикСобытий_1" и "ОбработчикСобытий_2". Экземпляры классов-обработчиков событий (подписчиков) определяют свои методы, которые будут вызываться при возникновении в экземпляре класса "ФабрикаСобытий" определенных событий. Далее опишем методы класса "МенеджерСобытий" и приведём с краткими пояснениями пример кода, реализующий описанную схему.

Методы

Пустой / IsEmpty | Проверяет наличие в менеджере событий подписчиков.
ДобавитьОбработчикСобытия / AddEventHandle | Подписывает на событие экземпляр класса-подписчика событий.
УдалитьОбработчикСобытия / RemEventHandle | Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью ДобавитьОбработчикСобытия.
ПослатьСобытие / SendEvent | Посылает событие всем зарегистрировавшимся подписчикам на него.
УстановитьДелегата / SetDelegate | Устанавливает делегата для вызова методов-обработчиков.
Очистить / Clear | Очищает менеджер событий от подписчиков.
УстановитьКоличествоПараметров / SetCountOfParams | Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод ПослатьСобытие.
ПолучитьТаблицуОбработчиков / GetHandlersTable |
  • Пример кода


МенеджерСобытий::Пустой / IsEmpty

1C++ :: Дополнительные классы и ЭУ | Ранее: МенеджерСобытий | Далее: ДобавитьОбработчикСобытия / AddEventHandle
МенеджерСобытий :: Пустой / IsEmpty

Синтаксис: Пустой()

Возвращает: Число.

  • 1, подписчиков нет
  • 0, подписчики есть

Описание: Проверяет наличие в менеджере событий подписчиков.


МенеджерСобытий::ДобавитьОбработчикСобытия / AddEventHandle

1C++ :: Дополнительные классы и ЭУ | Ранее: Пустой / IsEmpty | Далее: УдалитьОбработчикСобытия / RemEventHandle
МенеджерСобытий :: ДобавитьОбработчикСобытия / AddEventHandle

Синтаксис: ДобавитьОбработчикСобытия(копПодписчик, стрИмяМетода)

Параметры:

  • копПодписчик - тип: КОП. Экземпляр класса-подписчика.
  • стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика, который будет вызываться при возникновении событий, управляемых классом-менеджером.

Возвращает: Число.

  • 1 - Добавление подписчика прошло успешно
  • 0 - Данный подписчик с таким методом уже зарегистрирован в менеджере событий

Описание: Подписывает на событие экземпляр класса-подписчика событий.

Метод-обработчик события должен быть членом класса-подписчика и принимать два параметра по умолчанию:

  • Publisher или Издатель, в этот параметр передается экземпляр класса - издателя
  • ExtParametrs или ДопПараметры, в этот параметр передается любая информация, посланная с помощью метода ПослатьСобытие.

Количество параметров, заданных по умолчанию, возможно изменить с помощью установки отдельно созданного делегата - передать его в качестве параметра метода УстановитьДелегата, или передать число параметров в метод УстановитьКоличествоПараметров.

Каждый метод-обработчик обязан возвращать числовое значение. Если функция возвращает 0, то цепочка обработки события прерывается на данном подписчике, т.е. если у нас есть менеджер событий, в котором зарегистрировано 5 подписчиков и 2-ой по счету в своей функции возвращает 0, то 3 последующих подписчика не получат данное событие, другими словами - рассылка будет прервана на подписчике с номером 2. Если же функция возвращает любое другое числовое значение, отличное от нуля, то рассылка события менеджером не прерывается.


МенеджерСобытий::УдалитьОбработчикСобытия / RemEventHandle

1C++ :: Дополнительные классы и ЭУ | Ранее: ДобавитьОбработчикСобытия / AddEventHandle | Далее: ПослатьСобытие / SendEvent
МенеджерСобытий :: УдалитьОбработчикСобытия / RemEventHandle

Синтаксис: УдалитьОбработчикСобытия(копПодписчик, стрИмяМетода)

Параметры:

  • копПодписчик - тип: КОП. Экземпляр класса-подписчика.
  • стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика.

Возвращает: Число.

  • 1 - с подписки снят
  • 0 - нет, данный подписчик ранее не был зарегистрирован методом ДобавитьОбработчикСобытия.

Описание: Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью ДобавитьОбработчикСобытия.


МенеджерСобытий::ПослатьСобытие / SendEvent

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьОбработчикСобытия / RemEventHandle | Далее: УстановитьДелегата / SetDelegate
МенеджерСобытий :: ПослатьСобытие / SendEvent

Синтаксис: ПослатьСобытие(Издатель, ДопПараметр)

Параметры:

  • Издатель - тип: ГрупповойКонтекст, КОП. Контекст окружения, в котором возникло событие или контекст экземпляра класса-издателя
  • ДопПараметр - тип: Любой. Любая дополнительная информация, которая будет доступна в методе экземпляра класса-подписчика во втором параметре.

Возвращает: Число.

  • 1 - цепочка рассылки событий пройдена полностью
  • 0 - рассылка была прервана одним из подписчиков

Описание: Посылает событие всем зарегистрировавшимся подписчикам на него.


МенеджерСобытий::УстановитьДелегата / SetDelegate

1C++ :: Дополнительные классы и ЭУ | Ранее: ПослатьСобытие / SendEvent | Далее: Очистить / Clear
МенеджерСобытий :: УстановитьДелегата / SetDelegate

Синтаксис: УстановитьДелегата(ЭкземплярДелегата)

Параметры:

  • ЭкземплярДелегата - тип: Делегат. Экземпляр делегата, через который будет осуществляться вызов методов-обработчиков.

Возвращает: Делегат. Установленный ранее делегат, или делегат по умолчанию, содержащийся в текущем менеджере событий.

Описание: Устанавливает делегата для вызова методов-обработчиков.


МенеджерСобытий::Очистить / Clear

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьДелегата / SetDelegate | Далее: УстановитьКоличествоПараметров / SetCountOfParams
МенеджерСобытий :: Очистить / Clear

Синтаксис: Очистить()

Параметры:

Описание: Очищает менеджер событий от подписчиков.


МенеджерСобытий::УстановитьКоличествоПараметров / SetCountOfParams

1C++ :: Дополнительные классы и ЭУ | Ранее: Очистить / Clear | Далее: ПолучитьТаблицуОбработчиков / GetHandlersTable
МенеджерСобытий :: УстановитьКоличествоПараметров / SetCountOfParams

Синтаксис: УстановитьКоличествоПараметров(чКолвоПарам)

Параметры:

  • чКолвоПарам - тип: Число. Новое количество параметров.

Описание: Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод ПослатьСобытие.

Данный метод удаляет всех подписчиков, установленных ранее в менеджере событий.


МенеджерСобытий::ПолучитьТаблицуОбработчиков / GetHandlersTable

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьКоличествоПараметров / SetCountOfParams | Далее: Пример кода
МенеджерСобытий :: ПолучитьТаблицуОбработчиков / GetHandlersTable
Синтаксис:

ПолучитьТаблицуОбработчиков()
Возвращает:

Таблицу значений с подключенными обработчиками. В таблице есть 3 колонки - Объект, НаименованиеКласса, НаименованиеМетода
Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.


Пример кода

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьТаблицуОбработчиков / GetHandlersTable | Далее: Структура
МенеджерСобытий :: Пример кода

Определение класса "ФабрикаСобытий":

класс ФабрикаСобытий=EventFactory.ert
{
    void Событие_1();
    void Событие_2();
};

Реализация класса "ФабрикаСобытий" файл EventFactory.ert:

Перем МенеджерСобытий1 Экспорт;
Перем МенеджерСобытий2 Экспорт;

Функция GetThis(Конт) Возврат Конт; КонецФункции

Процедура Конструктор()
    МенеджерСобытий1 = СоздатьОбъект("МенеджерСобытий");
    МенеджерСобытий2 = СоздатьОбъект("МенеджерСобытий");
КонецПроцедуры

Процедура Событие_1()
    Если МенеджерСобытий1.Пустой() = 0 Тогда
        МенеджерСобытий1.ПослатьСобытие(GetThis(Контекст), "Событие произошло!");
    КонецЕсли;
КонецПроцедуры
Процедура Событие_2()
    Если МенеджерСобытий2.Пустой() = 0 Тогда
        сз = СоздатьОбъект("СписокЗначений");
        сз.ДобавитьЗначение(100, "Парам1");
сз.ДобавитьЗначение(200, "Парам2");
сз.ДобавитьЗначение(300, "Парам3");
        МенеджерСобытий2.ПослатьСобытие(GetThis(Контекст), сз);
    КонецЕсли;
КонецПроцедуры

Определим классы подписчики "ОбработчикСобытий_1" и "ОбработчикСобытий_2", в нашем примере определение этих классов будет одинаково:

класс ОбработчикСобытий_1=TreaterEvetns_1.ert
{
    Число ОбработкаСобытия_1(Неопределенный, Строка);
    Число ОбработкаСобытия_2(Неопределенный, СписокЗначений);
};

Реализация этих классов может быть любая, в нашем примере она тривиальна и ее описание опустим.

В любом модуле системы для запуска механизма обработки событий пишем следующий код:

ОбрСобытий_1 = СоздатьОбъект("ОбработчикСобытий_1");
ОбрСобытий_2 = СоздатьОбъект("ОбработчикСобытий_2");
ФабрикаСобытий = СоздатьОбъект("ФабрикаСобытий");

// Регистрируем подписчиков и их методы - обработчики событий
ФабрикаСобытий.МенеджерСобытий1.ДобавитьОбработчикСобытия(ОбрСобытий_1, "ОбработкаСобытия_1");
ФабрикаСобытий.МенеджерСобытий1.ДобавитьОбработчикСобытия(ОбрСобытий_2, "ОбработкаСобытия_1");

ФабрикаСобытий.МенеджерСобытий2.ДобавитьОбработчикСобытия(ОбрСобытий_1, "ОбработкаСобытия_2");
ФабрикаСобытий.МенеджерСобытий2.ДобавитьОбработчикСобытия(ОбрСобытий_2, "ОбработкаСобытия_2");

// Вызываем методы, которые формирую событие (издают)
ФабрикаСобытий.Событие_1();
ФабрикаСобытий.Событие_2();
// Далее происходит вызов всех методов зарегистрированных в менеджере экземпляров классов - подписчиков.


Структура

1C++ :: Дополнительные классы и ЭУ | Ранее: Пример кода | Далее: <ИмяСвойства>
Структура

Класс Структура / Struct

Данный класс предназначен для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.

Свойства

<ИмяСвойства> Позволяет обратиться к свойству, добавленному методом Вставить.

Методы

Вставить / Insert | Добавляет свойство в структуру.
Количество / Count | Возвращает количество свойств структуры, добавленных методом Вставить.
Очистить / Clear | Удаляет все свойства структуры.
Свойство / Property | Позволяет получить значение свойства по указанному имени, а также проверить, имеется ли указанное свойство.
Удалить / Remove | Удаляет элемент структуры с заданным ключом. Если ключа не существует, выдается исключение.
Получить / Get | Позволяет получать по индексу значение свойства и его имя.
ЕстьСвойство / ExistProp | Проверяет, есть ли свойство с таким именем.


Структура::<ИмяСвойства>

1C++ :: Дополнительные классы и ЭУ | Ранее: Структура | Далее: Вставить / Insert
Структура :: <ИмяСвойства>

Доступ: чтение и запись.

Тип: Любой.

Описание: Позволяет обратиться к свойству, добавленному методом Вставить.


Структура::Вставить / Insert

1C++ :: Дополнительные классы и ЭУ | Ранее: <ИмяСвойства> | Далее: Количество / Count
Структура :: Вставить / Insert

Синтаксис: Вставить(стрКлюч, [нЗначение], [чРежим])

Параметры:

  • стрКлюч - тип: Строка. Название свойства структуры.

    Если такое свойство уже существует - то его значение изменяется, если не существует - создается новое

  • нЗначение - тип: Любой. Значение свойства, которое необходимо установить.

  • чРежим - тип: Число.

    • 0 - нЗначение сохраняется в структуре по ссылке
    • 1 - нЗначение сохраняется в структуре по значению

    По умолчанию - 1.

Описание: Добавляет свойство в структуру.

В структуре хранятся копии нЗначение.


Структура::Количество / Count

1C++ :: Дополнительные классы и ЭУ | Ранее: Вставить / Insert | Далее: Очистить / Clear
Структура :: Количество / Count

Синтаксис: Количество()

Возвращает: Число. Количество свойств структуры.

Описание: Возвращает количество свойств структуры, добавленных методом Вставить.


Структура::Очистить / Clear

1C++ :: Дополнительные классы и ЭУ | Ранее: Количество / Count | Далее: Свойство / Property
Структура :: Очистить / Clear

Синтаксис: Очистить()

Описание: Удаляет все свойства структуры.


Структура::Свойство / Property

1C++ :: Дополнительные классы и ЭУ | Ранее: Очистить / Clear | Далее: Удалить / Remove
Структура :: Свойство / Property

Синтаксис: Свойство(стрКлюч, [нЗначение])

Параметры:

  • стрКлюч - тип: Строка. Название для поиска свойства структуры.
  • нЗначение - тип: Имя переменной. В данный параметр возвращается найденное значение. Если ключа нет в структуре, то возвращается пустое значение неопределенного типа.

Возвращает: Число.

  • 1 - свойство с ключом найдено
  • 0 - не найдено

Описание: Позволяет получить значение свойства по указанному имени, а также проверить, имеется ли указанное свойство.


Структура::Удалить / Remove

1C++ :: Дополнительные классы и ЭУ | Ранее: Свойство / Property | Далее: Получить / Get
Структура :: Удалить / Remove

Синтаксис: Удалить(стрКлюч)

Параметры:

  • стрКлюч - тип: Строка. Название удаляемого свойства структуры.

Описание: Удаляет элемент структуры с заданным ключом. Если ключа не существует, выдается исключение.


Структура::Получить / Get

1C++ :: Дополнительные классы и ЭУ | Ранее: Удалить / Remove | Далее: ЕстьСвойство / ExistProp
Структура :: Получить / Get

Синтаксис: Получить(чИндекс, [стрИмяСвойства])

Параметры:

  • чИндекс - тип: Число. Номер поля по порядку от 1 до Количество
  • стрИмяСвойства - тип: Имя переменной. В нее записывается имя свойства, полученное по его номеру.

Возвращает: Значение свойства, полученное по его номеру.

Описание: Позволяет получать по индексу значение свойства и его имя.


Структура::ЕстьСвойство / ExistProp

1C++ :: Дополнительные классы и ЭУ | Ранее: Получить / Get | Далее: DynaValue
Структура :: ЕстьСвойство / ExistProp

Синтаксис: ЕстьСвойство(стрИмя)

Параметры:

  • стрИмя - тип:

Возвращает: Число. Индекс найденного свойства, начиная с 1. Если свойство не найдено, 0.

Описание: Проверяет, есть ли свойство с таким именем.


DynaValue

1C++ :: Дополнительные классы и ЭУ | Ранее: ЕстьСвойство / ExistProp | Далее: <ИмяСвойства>
DynaValue

Класс DynaValue

Объект "DynaValue" представляет собой массив поименованных свойств или, иными словами, составное значение. Свойства принимают тип значения переданного параметром при добавлении свойства. Чтение/Установка свойства осуществляется через точку по имени свойства.

Свойства

<ИмяСвойства> Позволяет обратиться к свойству, добавленному методом ДобавитьСвойство.

Методы

ДобавитьСвойство / AddProp | Добавляет новое свойство с заданным именем.
ВыбратьСвойства / SelectProps | Открывает выборку свойств.
ПолучитьСвойство / GetProp | Получает следующее свойство из выборки, открытой ВыбратьСвойства.
ПолучитьСвойствоПоНомеру / GetPropByNum | Получает значение свойства по его индексу.
КоличествоСвойств / GetNProps | Получает количество свойств.
ВыгрузитьВСтроку / SaveToString | Возвращает строку с содержимым объекта для хранения и последующего восстановления.
ВыгрузитьВФайл / SaveToFile | Сохраняет состояние объекта в файл.
ЗагрузитьИзСтроки / LoadFromString | Восстанавливает значение объекта из выгрузки в строку.
ЗагрузитьИзФайла / LoadFromFile | Восстанавливает значения объектов из файла.
НайтиПоИмени / FindByName | Ищет свойство по имени.
ПолучитьПоИмени / GetByName | Получает свойство по имени.
УстановитьПоИмени / SetByName | Устанавливает значение свойства по имени свойства.
УстановитьПоНомеру / SetByNum | Устанавливает значение свойства по номеру свойства.
УдалитьПоНомеру / DeleteByNum | Удаляет свойство по указанному номеру.
УдалитьПоИмени / DeleteByName | Удаляет свойство по указанному названию.
Очистить / Clear | Удаляет все свойства.
СвойстваВСписокЗначений / PropsToValueList | Выгружает в список значений все значения и имена свойств.
НайтиПоЗначению / FindByValue | ищет значение в объекте и, если находит, возвращает значение и индекс в "чИндекс".
НайтиПоЗначениюАтрибута / FindByAtributeValue | Ищет свойство, у которого есть атрибут с указанным именем "стрИмяАтрибута", и содержащее указанное значение "нЗнач".


DynaValue::<ИмяСвойства>

1C++ :: Дополнительные классы и ЭУ | Ранее: DynaValue | Далее: ДобавитьСвойство / AddProp
DynaValue :: <ИмяСвойства>

Доступ: чтение и запись.

Тип: Любой.

Описание: Позволяет обратиться к свойству, добавленному методом ДобавитьСвойство.


DynaValue::ДобавитьСвойство / AddProp

1C++ :: Дополнительные классы и ЭУ | Ранее: <ИмяСвойства> | Далее: ВыбратьСвойства / SelectProps
DynaValue :: ДобавитьСвойство / AddProp

Синтаксис: ДобавитьСвойство(стрИмя, нЗначение)

Параметры:

  • стрИмя - тип: Строка. Имя свойства.
  • нЗначение - тип: Любой. Значение свойства.

Возвращает: добавленное значение.

Описание: Добавляет новое свойство с заданным именем.


DynaValue::ВыбратьСвойства / SelectProps

1C++ :: Дополнительные классы и ЭУ | Ранее: ДобавитьСвойство / AddProp | Далее: ПолучитьСвойство / GetProp
DynaValue :: ВыбратьСвойства / SelectProps

Синтаксис: ВыбратьСвойства()

Возвращает: Число.

  • 1 - если выбрано хоть одно свойство
  • 0 - нет свойств

Описание: Открывает выборку свойств.


DynaValue::ПолучитьСвойство / GetProp

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыбратьСвойства / SelectProps | Далее: ПолучитьСвойствоПоНомеру / GetPropByNum
DynaValue :: ПолучитьСвойство / GetProp

Синтаксис: ПолучитьСвойство(нЗначение, стрИмя)

Параметры:

  • нЗначение - тип: Имя переменной. В нее вернется значение свойства.
  • стрИмя - тип: Имя переменной. В нее вернется имя свойства.

Возвращает: Число.

  • 1 - свойство получено
  • 0 - выборка кончилась

Описание: Получает следующее свойство из выборки, открытой ВыбратьСвойства.


DynaValue::ПолучитьСвойствоПоНомеру / GetPropByNum

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьСвойство / GetProp | Далее: КоличествоСвойств / GetNProps
DynaValue :: ПолучитьСвойствоПоНомеру / GetPropByNum

Синтаксис: ПолучитьСвойствоПоНомеру(чНомер)

Параметры:

  • чНомер - тип: Число. Индекс свойства от 0 до КоличествоСвойств - 1.

Возвращает: свойство по индексу.

Описание: Получает значение свойства по его индексу.

Если индекс неверен, то генерируется ошибка.

Внимание! Индексация свойств начинается с 0(ноль)!


DynaValue::КоличествоСвойств / GetNProps

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьСвойствоПоНомеру / GetPropByNum | Далее: ВыгрузитьВСтроку / SaveToString
DynaValue :: КоличествоСвойств / GetNProps

Синтаксис: КоличествоСвойств()

Возвращает: Число. Количество свойств.

Описание: Получает количество свойств.


DynaValue::ВыгрузитьВСтроку / SaveToString

1C++ :: Дополнительные классы и ЭУ | Ранее: КоличествоСвойств / GetNProps | Далее: ВыгрузитьВФайл / SaveToFile
DynaValue :: ВыгрузитьВСтроку / SaveToString

Синтаксис: ВыгрузитьВСтроку()

Возвращает: Строка. Сохранненое состояние объекта.

Описание: Возвращает строку с содержимым объекта для хранения и последующего восстановления.

Примечание:

  • выгружается абсолютно все содержимое, независимо от количества уровней вложенности.
  • Для возможного сохранения классов КОП, которые могут содержаться в DynaValue необходимо, чтобы эти классы соответствовали требованиям, описанным в Сериализации КОП.


DynaValue::ВыгрузитьВФайл / SaveToFile

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыгрузитьВСтроку / SaveToString | Далее: ЗагрузитьИзСтроки / LoadFromString
DynaValue :: ВыгрузитьВФайл / SaveToFile

Синтаксис: ВыгрузитьВФайл(стрИмяФайла)

Параметры:

  • стрИмяФайла - тип: Строка. Имя файла, в который производится выгрузка состояния.
Возвращает: Число.
  • 1 - выгрузка произведена успешно
  • иначе ошибка

Описание: Сохраняет состояние объекта в файл.


DynaValue::ЗагрузитьИзСтроки / LoadFromString

1C++ :: Дополнительные классы и ЭУ | Ранее: ВыгрузитьВФайл / SaveToFile | Далее: ЗагрузитьИзФайла / LoadFromFile
DynaValue :: ЗагрузитьИзСтроки / LoadFromString

Синтаксис: ЗагрузитьИзСтроки(стрСтрока)

Параметры:

  • стрСтрока - тип: Строка. Сохраненное состояние объекта.

Описание: Восстанавливает значение объекта из выгрузки в строку.

Примечание:

  • Предыдущее состояние объекта не сохранятся.
  • восстанавливаются значения всех элементов, включая агрегатные.
  • категорически запрещается передавать методу "ЗагрузитьИзСтроки" в качестве параметра что-либо, кроме строк выгруженных методом ВыгрузитьВФайл, по причине невозможности проконтролировать целостность данных. В случае неверной строки происходит немедленное прекращение работы программы 1С с потерей всех несохраненных на данный момент данных.
  • Запрещены циклические ссылки между элементами объектов, один из которых подлежит выгрузке в строку. В этом случае произойдет зацикливание программы 1С и, со временем - прекращение работы программы 1С с потерей всех несохраненных на данный момент данных.
  • Для восстановления состояния классов КОП вызывается их метод ЗагрузитьИзСтроки.


DynaValue::ЗагрузитьИзФайла / LoadFromFile

1C++ :: Дополнительные классы и ЭУ | Ранее: ЗагрузитьИзСтроки / LoadFromString | Далее: НайтиПоИмени / FindByName
DynaValue :: ЗагрузитьИзФайла / LoadFromFile

Синтаксис: ЗагрузитьИзФайла(стрИмяФайла)

Параметры:

  • стрИмяФайла - тип: Строка. Имя файла, из которого производится загрузка.

Возвращает: Число.

  • 1 - загрузка произведена успешно
  • не 1 - произошла ошибка

Описание: Восстанавливает значения объектов из файла.

См. примечание у метода ЗагрузитьИзСтроки.


DynaValue::НайтиПоИмени / FindByName

1C++ :: Дополнительные классы и ЭУ | Ранее: ЗагрузитьИзФайла / LoadFromFile | Далее: ПолучитьПоИмени / GetByName
DynaValue :: НайтиПоИмени / FindByName

Синтаксис: НайтиПоИмени(стрИмя)

Параметры:

  • стрИмя - тип: Строка. Имя искомого свойства.
    • тип:
    • тип:
    • тип:

Возвращает: номер свойства (от нуля), или -1 если не найдено.

Описание: Ищет свойство по имени.


DynaValue::ПолучитьПоИмени / GetByName

1C++ :: Дополнительные классы и ЭУ | Ранее: НайтиПоИмени / FindByName | Далее: УстановитьПоИмени / SetByName
DynaValue :: ПолучитьПоИмени / GetByName

Синтаксис: ПолучитьПоИмени(стрИмя)

Параметры:

  • стрИмя - тип: Строка. Имя свойства.

Возвращает: Значение свойства по номеру (от нуля).

Описание: Получает свойство по имени.


DynaValue::УстановитьПоИмени / SetByName

1C++ :: Дополнительные классы и ЭУ | Ранее: ПолучитьПоИмени / GetByName | Далее: УстановитьПоНомеру / SetByNum
DynaValue :: УстановитьПоИмени / SetByName

Синтаксис: УстановитьПоИмени(стрИмя,нЗначение)

Параметры:

  • стрИмя - тип: Строка. Имя свойства.
  • нЗначение - тип: Любой. Значение свойства.

Описание: Устанавливает значение свойства по имени свойства.


DynaValue::УстановитьПоНомеру / SetByNum

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьПоИмени / SetByName | Далее: УдалитьПоНомеру / DeleteByNum
DynaValue :: УстановитьПоНомеру / SetByNum

Синтаксис: УстановитьПоНомеру(чНомер,нЗначение)

Параметры:

  • чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается КоличествоСвойств- 1;
  • нЗначение - тип: Любой. Новое значение свойства.

Описание: Устанавливает значение свойства по номеру свойства.


DynaValue::УдалитьПоНомеру / DeleteByNum

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьПоНомеру / SetByNum | Далее: УдалитьПоИмени / DeleteByName
DynaValue :: УдалитьПоНомеру / DeleteByNum

Синтаксис: УдалитьПоНомеру(чНомер)

Параметры:

  • чНомер - тип: Число. Порядковый номер свойства, нумерация начинается с 0 и заканчивается КоличествоСвойств - 1;

Описание: Удаляет свойство по указанному номеру.


DynaValue::УдалитьПоИмени / DeleteByName

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьПоНомеру / DeleteByNum | Далее: Очистить / Clear
DynaValue :: УдалитьПоИмени / DeleteByName

Синтаксис: УдалитьПоИмени(стрИмя)

Параметры:

  • стрИмя - тип: Строка. Имя удаляемого свойства.

Описание: Удаляет свойство по указанному названию.


DynaValue::Очистить / Clear

1C++ :: Дополнительные классы и ЭУ | Ранее: УдалитьПоИмени / DeleteByName | Далее: СвойстваВСписокЗначений / PropsToValueList
DynaValue :: Очистить / Clear

Синтаксис: Очистить()

Описание: Удаляет все свойства.


DynaValue::СвойстваВСписокЗначений / PropsToValueList

1C++ :: Дополнительные классы и ЭУ | Ранее: Очистить / Clear | Далее: НайтиПоЗначению / FindByValue
DynaValue :: СвойстваВСписокЗначений / PropsToValueList

Синтаксис: СвойстваВСписокЗначений(сз)

Параметры:

  • сз - тип: Имя переменной. В нее вернется заполненный список значений.

Описание: Выгружает в список значений все значения и имена свойств.


DynaValue::НайтиПоЗначению / FindByValue

1C++ :: Дополнительные классы и ЭУ | Ранее: СвойстваВСписокЗначений / PropsToValueList | Далее: НайтиПоЗначениюАтрибута / FindByAtributeValue
DynaValue :: НайтиПоЗначению / FindByValue

Синтаксис: НайтиПоЗначению(нЗнач, чИндекс)

Параметры:

  • нЗнач - тип: Любой. Значение, которое ищем в объекте.
  • чИндекс - тип: Имя переменной. В нее вернется индекс найденного значения в объекте, если не найдено - устанавливается в -1.

Возвращает: Если значение найдено - возвращается оно же, иначе пустой объект.

Описание: ищет значение в объекте и, если находит, возвращает значение и индекс в "чИндекс".


DynaValue::НайтиПоЗначениюАтрибута / FindByAtributeValue

1C++ :: Дополнительные классы и ЭУ | Ранее: НайтиПоЗначению / FindByValue | Далее: Форма
DynaValue :: НайтиПоЗначениюАтрибута / FindByAtributeValue

Синтаксис: НайтиПоЗначениюАтрибута(стрИмяАтрибута, нЗнач, чИндекс)

Параметры:

  • стрИмяАтрибута - тип: Строка. Имя для поиска атрибута в объекте, который хранится в свойстве DynaValue.
  • нЗнач - тип: Любой. Значение, которое ищем в атрибуте значения свойства.
  • чИндекс - тип: Имя переменной. В нее вернется индекс найденного свойства, в котором хранится другой объект, имеющий атрибут с именем "стрИмяАтрибута", и содержащий значение, указанное в "нЗнач". Если не найдено устанавливается в -1.

Возвращает: Если значение найдено - возвращается значение свойства, у которого был обнаружен атрибут, иначе возвращается пустой объект.

Описание: Ищет свойство, у которого есть атрибут с указанным именем "стрИмяАтрибута", и содержащее указанное значение "нЗнач".


Форма

1C++ :: Дополнительные классы и ЭУ | Ранее: НайтиПоЗначениюАтрибута / FindByAtributeValue | Далее: УстановитьФорму / AssignForm
Форма

Класс Форма / Form

Класс позволяет привязываться к форме и создавать элементы управления. В основном, используектся для создания ActiveX / АктивИкс объектов.

Версия: Метод работает на релизе 2.5 и позже.

Методы

УстановитьФорму / AssignForm | Привязывает объект класса к переданной форме.
СброситьФорму / ResetForm | Отменяет привязку объекта класса к переданной форме.
СоздатьЭлементУправления / CreateControl | Создает элемент управления и указывает размещение создаваемого элемента.
СоздатьЭлементУправленияНаФорме / CreateControlOnForm | Объединяет функционал УстановитьФорму и СоздатьЭлементУправления


Форма::УстановитьФорму / AssignForm

1C++ :: Дополнительные классы и ЭУ | Ранее: Форма | Далее: СброситьФорму / ResetForm
Форма :: УстановитьФорму / AssignForm

Синтаксис: void УстановитьФорму(Форма)

Параметры:

  • Форма - тип: Форма. Форма, к которой идет привязка.

Описание: Привязывает объект класса к переданной форме.

Время жизни объекта совпадает со временем жизни указанной формы.

Объект может генерировать событие "ФормаПриСоздании(ИсточникСобытия)" в виде вызова процедуры модуля формы с одним параметром, если данная процедура определена в модуле формы. Событие вызывается после физического создания формы. Параметр "ИсточникСобытия" у события - это источник события, т.е. объект "Форма" или наследник от класса "Форма".

Пока не выполнено ---

Событие "ФормаПриСоздании" может также обрабатывать переданный первым параметром КОП-наследник от АктивИкс или ТабличногоПоля. Процедура-обработчик события должна быть объявлена в классе с ключевым словом Экспорт.

Событие может быть задано в КОПе и в модуле формы одновременно, в этом случае сначала происходит вызов события в КОПе, затем в модуле формы.

--- Пока не выполнено ---


Форма::СброситьФорму / ResetForm

1C++ :: Дополнительные классы и ЭУ | Ранее: УстановитьФорму / AssignForm | Далее: СоздатьЭлементУправления / CreateControl
Форма :: СброситьФорму / ResetForm

Синтаксис: void СброситьФорму()

Описание: Отменяет привязку объекта класса к переданной форме.

Время жизни объекта совпадает со временем жизни указанной формы.


Форма::СоздатьЭлементУправления / CreateControl

1C++ :: Дополнительные классы и ЭУ | Ранее: СброситьФорму / ResetForm | Далее: СоздатьЭлементУправленияНаФорме / CreateControlOnForm
Форма :: СоздатьЭлементУправления / CreateControl

Синтаксис: СоздатьЭлементУправления(ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)

Параметры:

  • ИмяОбъектаИлиОбъектКлассаКОП - тип: Строка или объект класса.

    Если передана строка, пытаемся создать объект класса с таким именем. Если передан объект, используем именно его.

  • ИдентификаторЭлементаДиалога - тип: Строка или элемент диалога. Идентификатор элемента

    диалога, на месте которого будет создан элемент ActiveX.

Возвращает: тип: Объект. Созданный объект.

Описание: Создает элемент управления и указывает размещение создаваемого элемента.

Также устанавливает префикс для имен процедур-обработчиков событий, расположенных в модуле формы.

Время жизни объекта совпадает со временем жизни указанной формы.

Предварительно должна быть установлена привязка объекта к форме методом УстановитьФорму .

Important

Метод работает после физического открытия окна формы (например - в предопределенной процедуре ПослеОткрытия). Метод работает только для реквизитов диалога типа "Текст".

  • На текущий момент возможно использование метода для классов, которые являются наследниками встроенных классов АктивИкс или ТабличноеПоле, или для самих объектов типа АктивИкс или ТабличноеПоле.


Форма::СоздатьЭлементУправленияНаФорме / CreateControlOnForm

1C++ :: Дополнительные классы и ЭУ | Ранее: СоздатьЭлементУправления / CreateControl | Далее: БуферОбмена
Форма :: СоздатьЭлементУправленияНаФорме / CreateControlOnForm

Синтаксис: void СоздатьЭлементУправленияНаФорме(Форма, ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)

Описание: Объединяет функционал УстановитьФорму и СоздатьЭлементУправления


БуферОбмена

1C++ :: Дополнительные классы и ЭУ | Ранее: СоздатьЭлементУправленияНаФорме / CreateControlOnForm | Далее: Получить / Get
БуферОбмена

Класс БуферОбмена / Clipboard

Класс позволяет работать с системным буфером обмена.

Версия: Метод работает на релизе 2.5 и позже.

Методы

Получить / Get | Получает текст из системного буфера обмена.
Установить / Set | Сохраняет текст в системного буфере обмена.


БуферОбмена::Получить / Get

1C++ :: Дополнительные классы и ЭУ | Ранее: БуферОбмена | Далее: Установить / Set
БуферОбмена :: Получить / Get

Синтаксис: Строка Получить()

Описание: Получает текст из системного буфера обмена.


БуферОбмена::Установить / Set

1C++ :: Дополнительные классы и ЭУ | Ранее: Получить / Get | Далее:
БуферОбмена :: Установить / Set

Синтаксис: void Установить(Строка Текст)

Параметры:

  • Текст - тип: Строка. Новый текст для буфера обмена.

Описание: Сохраняет текст в системного буфере обмена.