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

Содержание

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

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

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

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

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

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

Important

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

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

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

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

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

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

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

Important

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

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

Методы

Новый / New

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

Параметры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Important

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

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

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

Шрифт / Font

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

Параметры:

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

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

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

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

Important

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

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

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

АктивИкс / AXControl

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

Параметры:

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

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

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

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

Important

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

Система

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

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

Методы

ЗакрытьФорму / CloseForm

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

Параметры:

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

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

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

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

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

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

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

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

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

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

РегистрироватьКомпонентыВ_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

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

Параметры:

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

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

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

СохранитьКартинку / 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

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

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

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

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

Сериализовать / 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

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

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

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

Позволяет:

Методы

СоздатьКлюч / 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 - ключ успешно создан

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

ОткрытьКлюч / 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 - ключ открыт

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

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

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

Параметры:

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

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

    • HKEY_LOCAL_MACHINE
    • HKEY_USERS

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

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

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

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

УдалитьКлюч / DeleteKey

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

Параметры:

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

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

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

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

УдалитьЗначение / DeleteValue

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

Параметры:

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

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

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

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

УстановитьЗначение / SetValue

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

Параметры:

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

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

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

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

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

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

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

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

Параметры:

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

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

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

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

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

ВыбратьКлючи / ChooseKeys

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

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

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

ПолучитьКлюч / GetKey

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

Параметры:

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

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

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

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

ВыбратьЗначения / ChooseValues

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

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

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

ПолучитьЗначение / GetValue

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

Параметры:

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

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

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

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

ОтладочныеСообщения

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

Параметры:

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

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

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

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

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

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

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

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

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

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

Свойства

<ИмяПеременной>

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

Тип: Любой.

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

Методы

<ИмяМетода>

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

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

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

УстановитьМодуль / AssignSource

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

Параметры:

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

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

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

ПолучитьТекстМодуля / GetModuleText

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

Возвращает:

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

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

НазначитьКонтекст / AssignContext

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

Параметры:

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

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

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

ПрисоединитьТекущийМодуль / AssignFriendModule

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

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

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

КомпилироватьМодуль / Compile

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

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

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

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

ВыполнитьМодуль / Execute

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

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

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

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

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

GetMethOfContext

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

Параметры:

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

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

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

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

СформироватьОшибку / RaiseError

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

Параметры:

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

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

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

ОчиститьПозициюПроведения / ErasePostState

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

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

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

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

ВосстановитьПозициюПроведения / RestorePostState

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

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

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

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

ВыброситьИскл / Throw

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

Параметры:

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

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

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

ПолучитьИсключение / GetExeption

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

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

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

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

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

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

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

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

РазрешитьИсключения / EnableExceptions

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

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

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

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

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

Параметры:

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

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

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

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

ВыполнитьФункциюКонтекста / CallContextFunction

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

Параметры:

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

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

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

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

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

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

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

Делегат

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

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

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

Методы

ОпределитьТип / DefineType

Синтаксис:

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

Параметры:
  • чКолПарам: Число

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

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

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

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

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

Возвращает:

нет

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

Добавить / AddMethod

Синтаксис:

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

Параметры:
  • ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект

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

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

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

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

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

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

Число

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

Удалить / RemMethod

Синтаксис:

Удалить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода)

Параметры:
  • ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект

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

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

    Имя метода, ссылка на который была сохранена ранее

Возвращает:

Число

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

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

УдалитьПоКлючу / RemMethodByKey

Синтаксис:

УдалитьПоКлючу(стрКлюч)

Параметры:
  • стрКлюч: Строка

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

Возвращает:

Число

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

Вызвать / Invoke

Синтаксис:

Вызвать(...)

Параметры:
  • ...:

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

Возвращает:

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

Описание:

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

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

ВызватьСЗ / InvokeVL

Синтаксис:

ВызватьСЗ(спПараметры)

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

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

Возвращает:

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

Описание:

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

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

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

Синтаксис:

ВызватьПоКлючу(стрКлюч, ...)

Параметры:
  • стрКлюч: Строка

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

  • ...:

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

Возвращает:

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

Описание:

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

Примечание:

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

Обработчик по умолчанию:
 

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

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

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

Синтаксис:

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

Параметры:
  • стрКлюч: Строка

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

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

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

Возвращает:

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

Описание:

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

Примечание:

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

Обработчик по умолчанию:
 

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

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

Очистить / Erase

Синтаксис:

Очистить()

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

Пустой / IsEmpty

Синтаксис:

Пустой()

Возвращает:

Число

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

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

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

Синтаксис:

ПолучитьТаблицуОбработчиков()

Возвращает:

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

Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.

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

Синтаксис:

ПолучитьТаблицуОбработчиковПоКлючу(стрКлюч)

Параметры:
  • стрКлюч: Строка

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

Возвращает:

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

Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.

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

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

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

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

Методы

Пустой / IsEmpty

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

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

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

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

ДобавитьОбработчикСобытия / AddEventHandle

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

Параметры:

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

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

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

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

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

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

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

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

УдалитьОбработчикСобытия / RemEventHandle

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

Параметры:

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

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

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

ПослатьСобытие / SendEvent

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

Параметры:

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

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

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

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

УстановитьДелегата / SetDelegate

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

Параметры:

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

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

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

Очистить / Clear

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

Параметры:

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

УстановитьКоличествоПараметров / SetCountOfParams

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

Параметры:

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

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

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

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

Синтаксис:

ПолучитьТаблицуОбработчиков()

Возвращает:

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

Описание:
Возвращает таблицу значений подключенных обработчиков в порядке их

добавления.

Пример кода

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

класс ФабрикаСобытий=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();
// Далее происходит вызов всех методов зарегистрированных в менеджере экземпляров классов - подписчиков.

Структура

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

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

Свойства

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

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

Тип: Любой.

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

Методы

Вставить / Insert

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

Параметры:

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

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

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

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

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

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

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

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

Количество / Count

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

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

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

Очистить / Clear

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

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

Свойство / Property

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

Параметры:

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

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

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

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

Удалить / Remove

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

Параметры:

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

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

Получить / Get

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

Параметры:

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

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

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

ЕстьСвойство / ExistProp

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

Параметры:

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

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

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

DynaValue

Класс DynaValue

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

Свойства

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

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

Тип: Любой.

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

Методы

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

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

Параметры:

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

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

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

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

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

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

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

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

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

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

Параметры:

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

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

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

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

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

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

Параметры:

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

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

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

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

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

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

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

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

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

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

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

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

Примечание:

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

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

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

Параметры:

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

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

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

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

Параметры:

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

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

Примечание:

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

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

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

Параметры:

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

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

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

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

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

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

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

Параметры:

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

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

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

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

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

Параметры:

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

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

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

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

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

Параметры:

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

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

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

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

Параметры:

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

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

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

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

Параметры:

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

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

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

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

Параметры:

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

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

Очистить / Clear

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

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

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

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

Параметры:

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

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

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

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

Параметры:

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

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

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

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

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

Параметры:

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

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

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

Форма

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

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

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

Методы

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

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

Параметры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры:

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

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

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

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

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

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

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

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

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

Important

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

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

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

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

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

БуферОбмена

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

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

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

Методы

Получить / Get

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

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

Установить / Set

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

Параметры:

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

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