Содержание
В состав 1С++ входят дополнительные типы объектов и элементы управления.
Класс ФабрикаОбъектов / ObjectFactory
Специальный объект, позволяющий создавать объекты любых типов, как встроенных классов 1С++ и пользовательских классов 1С++, так и классов от 1С или любых внешних компонент.
Существуют две схемы создания объектов:
1. Создание встроенных классов с помощью конструкторов путем вызова метода ФабрикиОбъектов.НаименованиеСоздаваемогоТипа с названием, совпадающим с именем типа создаваемого объекта.
Important
Метод работает на релизах 1С+ 2.0.0.0 и старше.
Описание синтаксиса создания расположено в описании самих объектов.
Пример создания:
- Фабрика = СоздатьОбъект("ФабрикаОбъектов");
- ШрифтАриал10Жирный = Фабрика. Шрифт ("Arial", 10, 1);
На данный момент подобным образом можно создавать объекты двух классов: "Font / Шрифт " и "AXControl / АктивИкс "
Создание объектов с помощью метода ФабрикаОбъектов.Новый
Позволяет снабдить процесс создания объектов параметрами, число которых может быть различным. Этот метод фабрики объектов возвращает объект указанного типа.
Important
Метод работает только на релизе 1С+ 2.5 и старше.
Синтаксис: Новый(ИмяТипаИлиКласса, [ИмяКонструктора], [Парам1, Парам2, ...])
Параметры:
ИмяТипаИлиКласса - тип: Строка. Имя типа. Не должен быть простым типом (Строка, Число, Дата).
ИмяКонструктора - тип: Строка. Необязательный параметр.
Если пытаемся создать объект, который не является классом КОП 1С++, для данного объекта должен быть определен метод-процедура с таким названием. Данный метод должен принимать указанное число параметров.
Если пытаемся создать объект, который является классом КОП 1С++, в модуле данного объекта должен быть определен метод-процедура с необходимым названием. Важно: процедура-конструктор должна быть определена без атрибута Экспорт.
Данный метод должен принимать указанное число параметров.
- Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.
Любое число параметров любого типа.
Возвращает: Объект указанного типа.
Описание: Создает объект указанного типа и сразу же вызывает для него метод-конструктор, если у объекта есть такой метод-процедура.
Если пытаемся создать объект, который является классом КОП 1С++, и указан конструктор, отличный от дефолтного "Конструктор", создается объект нового класса и для него вместо дефолтного "Конструктор" вызывается конструктор с указанным именем и параметрами. Если имя конструктора для пользовательского класса 1С++ не указано, создается объект класса и для него вызывается процедура "Конструктор", если она определена в модуле.
Если имя конструктора не указано, метод просто возвращает объект, созданный с помощью вызова СоздатьОбъект(ИмяТипаИлиКласса).
Если не удается создать объект с таким названием, выдается исключение. Если у указанного класса нет процедуры с таким названием, выдается исключение. Если у указанного класса нет процедуры с таким названием, но есть функция с таким названием, выдается исключение.
Если пытаемся создать объект, который является классом КОП 1С++, и если найденная процедура-конструктор определена с параметром Экспорт, выдается исключение.
Если количество переданных параметров не совпадает с количеством параметром, которые определены для указанного метода-конструктора, выдается исключение.
Important
Метод работает только на релизе 1С+ 2.5 и старше.
Пример создания:
Синтаксис: Шрифт([Парам1, Парам2, ...])
Параметры:
- Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.
Любое число параметров любого типа.
Возвращает: Объект класс Шрифт / Font.
Описание: Создает объект класс Шрифт / Font, вызывая для него соответствующий конструктор с нужными параметрами.
Important
Метод работает на релизах 1С+ 2.0.0.0 и старше.
Пример создания:
- Фабрика = СоздатьОбъект("ФабрикаОбъектов");
- ШрифтАриал10Жирный = Фабрика.Шрифт("Arial", 10, 1);
Синтаксис: АктивИкс([Парам1, Парам2, ...])
Параметры:
- Парам1, Парам2, ... - тип: Произвольный. Необязательный параметр.
Любое число параметров любого типа.
Возвращает: Объект класс АктивИкс / AXControl.
Описание: Создает объект класс АктивИкс / AXControl, вызывая для него соответствующий конструктор с нужными параметрами.
Important
Метод работает на релизах 1С+ 2.0.0.0 и старше.
Класс Система / System
Класс предоставляет различные вспомогательные функции.
Синтаксис: ЗакрытьФорму(КонтФормы, ФлагСохранения = 0)
Параметры:
КонтФормы - тип: ГрупповойКонтекст.
- ФлагСохранения - тип: Число. Необязательный параметр.
0 - закрыть форму без вопросов; 1 - если документ, счет, элемент справочника изменен, то будет запрос о сохранении изменений. Значение по умолчанию - 0.
Возвращает: Число.
- 0 - не удалось закрыть форму.
- 1 - форма успешно закрыта.
Описание: Немедленно закрывает форму с отработкой всех событий, обработчики которых есть в форме.
В отличие от метода КонтФормы.Форма.Закрыть([ФлагСохранения]), который закрывает форму не сразу, а только после завершения работыпользовательского кода, данный метод не ждет завершения кода, а закрывает форму немедленно. Т.е. управление к следующей строке после вызова Система.ЗакрытьФорму будет передано только после закрытия формы.
После выполнения данного метода ТипЗначения(КонтФормы) = 0 ! , т.к. форма закрыта, и все групповые контексты, которые указывали на эту форму, стали недействительными.
В случае, если первый параметр не является групповым контекстом, выдается исключение. В случае, если второй параметр не является числом, выдается исключение.
Версия: Метод работает на релизе 2.5 и позже, а также 2.0.3.2
Синтаксис: РегистрироватьКомпонентыВ_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(КоличествоМиллисекунд).
Версия: Метод работает на релизе 2.5 и позже, а также 2.0.3.2
Синтаксис: Beep(Частота, Длительность)
Параметры:
- Частота: Число; Частота звука, Hz. Параметр должен находиться в диапазоне 37 - 32767 Hz
- Длительность: Число; Длительность звука в миллисекундах
Описание: Метод предназначен для генерации простых звуковых тонов через системный динамик. Функция выполняется синхронно, не возвращая управление системе до окончания проигрывания звука.
Версия: Метод добавлен в версии 3.2.3.13
Синтаксис: MessageBeep(Тип)
Параметры:
Тип: Число; Тип сигнала, как установлено в реестре. Может принимать следующие значения:
- -1: Simple beep. If the sound card is not available, the sound is generated using the speaker.
- MB_ICONASTERISK 0x00000040L SystemAsterisk
- MB_ICONEXCLAMATION 0x00000030L SystemExclamation
- MB_ICONHAND 0x00000010L SystemHand
- MB_ICONQUESTION 0x00000020L SystemQuestion
- MB_OK 0x00000000L SystemDefault
Описание: Метод предназначен для проигрывания звуковых сигналов. Сигналы различных типов идентифицируются по записи в реестре. После постановки в очередь звукового сигнала, метод возвращает управление вызывающей функции и проигрывает звук асинхронно.
Версия: Метод добавлен в версии 3.2.3.13
Синтаксис: СохранитьКартинку(Каталог, ИмяФайла, Картинка, Индекс, Ширина)
- Параметры:
- Каталог - тип: Строка. Каталог, в котором будет создан файл картинки (метод проверяет наличие каталога и выбрасывает исключение, если путь не верен). Если каталог не указан, то будет использоваться каталог временных файлов; в этом случае метод вернет через этот параметр путь к каталогу.
- ИмяФайла - тип: Строка. Имя файла (без расширения) с которым будет создан файл картинки. Если не указано, то будет сгенерировано уникальное имя в формате 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Картинку(Картинка, Индекс, Ширина)
- Параметры:
- Картинка - тип: Картинка или Строка. Параметром может выступать как объект типа Картинка, так и строка с идентификатором из библиотеки картинок.
- Индекс - тип: Число. Индекс картинки (начиная с нуля), в случае, если картинка составная. Если параметр не указан, то сохраняется картинка целиком (по умолчанию -1).
- Ширина - тип: Число. Ширина картинки в пикселях (по умолчанию 16). Необходимо для определения индекса составной картинки.
Возвращает: тип: IPicture. Возвращает картинку типа OLE.Picture.
Описание: позволяет получить картинку типа OLE.Picture. Получению подлежат картинки следующих типов: ICO, BMP.
Синтаксис: Сериализовать(Объект)
Параметры:
- Объект - тип: агрегатный.
Описание: Выполнение ObjRef-сериализации для возможности передачи объектов 1С (например, ТаблицаЗначений, СписокЗначений) в скрипты и различные внешние компоненты.
Например, при использовании внутри 1С объекта "MSScriptControl.ScriptControl" и при попытке засунуть в скрипт встроенный в 1С объект (типа ТЗ, СЗ и др.) через AddObject получаем ошибку "плохой тип переменной".
Важно: сохранение сериализованного представления объекта без сохранения объекта Система выдаст неверный результат, т.е. время жизни сериализованного представления привязано ко времени жизни объекта Система, с помощью которого получено сериализованное представление.
- Пример обычного НЕВЕРНОГО кода:
Т = СоздатьОбъект("ТаблицаЗначений");
Scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.Language="vbscript"; Scr.AddObject("v", Т); !! здесь будет выдана ошибка !!
- Scr.AddCode("
Function TestVTv.SelectLines()v.GetLine()TestVT=v.t1End Function");Сообщить(Scr.Eval("TestVT()")); // т.е. до этой строки даже не дойдет
Пример ВЕРНОГО кода с помощью данного метода
Т = СоздатьОбъект("ТаблицаЗначений"); Т.НоваяКолонка("t1"); Т.НоваяСтрока(); Т.t1 = 111;
Scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.Language="vbscript";
Система = СоздатьОбъект("Система");
- Scr.AddCode("
Function TestVTSet v=GetObject("""+Система.Сериализовать(Т)+""")v.SelectLines()v.GetLine()TestVT=v.t1End Function");Сообщить(Scr.Eval("TestVT()"); // будет выдано 111, что и требовалось
Класс РеестрWin / RegistryWin
Класс РаботаСРегистромWin / WorkAsRegisterWin
Предназначен для работы с реестром "Windows" в стиле языка 1С : Предприятия.
Позволяет:
Синтаксис: СоздатьКлюч(Ключ, Имя, Режим)
Параметры:
Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:
- 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 - ключ успешно создан
Описание: Создает в реестре ключ с указанным именем.
Синтаксис: ОткрытьКлюч(Ключ, Имя, Режим)
Параметры:
Ключ - тип: Строка. Название ветви реестра. Названия строго определены и бывают следующих видов:
- 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 - ключ открыт
Описание: Открывает ключ реестра с указанным именем.
Синтаксис: ПодключитьРегистр(ИмяУдаленногоКомпьютера, Ключ)
Параметры:
ИмяУдаленногоКомпьютера - тип: Строка. Cетевое имя компьютера, к реестру которого необходимо подключиться (например: \computername). Если указать пустую строку, то метод подключится к локальной машине.
Ключ - тип: Cтрока. Название ветви реестра. Названия строго определены и бывают следующих видов:
- HKEY_LOCAL_MACHINE
- HKEY_USERS
Возвращает: Число.
- 0 - ошибка
- 1 - соединение установлено
Описание: Подключает объект к реестру удаленного компьютера.
Примечание: для возможности успешного подключения к компьютеру с установленной операционной системой Windows 95 необходимо инсталлировать на нем "Microsoft Remote Registry service".
Синтаксис: УдалитьКлюч(ИмяПодКлюча)
Параметры:
- ИмяПодКлюча - тип: Строка. Имя удаляемого подключа.
Возвращает: Число.
- 0 - была ошибка
- 1 - удаление закончено успешно
Описание: Удаляет подключ ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
Синтаксис: УдалитьЗначение(ИмяЗначения)
Параметры:
- ИмяЗначения - тип: Строка. Имя удаляемого значения.
Возвращает: Число.
- 0 - была ошибка
- 1 - удаление закончено успешно
Описание: Удаляет значение в ключе, открытом ранее функцией ОткрытьКлюч или СоздатьКлюч.
Синтаксис: УстановитьЗначение(ИмяЗначения, ТипЗначения, Значение)
Параметры:
ИмяЗначения - тип: Строка. Название значения в ключе.
ТипЗначения - тип: Строка. Может принимать только два значения:
- "REG_SZ" - тип значения строка
- "REG_DWORD" - тип значения целое число
Значение - тип: Строка, Число. Значение, которое необходимо установить, зависит от типа, установленного в предыдущем параметре.
Возвращает: Число.
- 0 - была ошибка
- 1 - установка закончена успешно
Описание: Устанавливает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
Синтаксис: ЗапроситьЗначение(ИмяЗначения, Значение)
Параметры:
- ИмяЗначения - тип: Строка. Название значения в ключе.
- Значение - тип: Имя переменной. Переменная для приема запрошенного значения.
Возвращает: Число.
- 0 - была ошибка
- 1 - запрос закончен успешно
Описание: Запрашивает значение, указанное в параметре ИмяЗначения ключа, открытого ранее функцией ОткрытьКлюч или СоздатьКлюч.
Примечание: Если операция выполнена успешно, то результат будет в Значение. Тип значений, которые можно получить, может быть только "REG_SZ" или "REG_DWORD".
Синтаксис: ВыбратьКлючи()
Возвращает: Число. Количество выбранных подключей.
Описание: Открывает выборку подключей ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.
Синтаксис: ПолучитьКлюч(ИмяПодКлюча)
Параметры:
- ИмяПодКлюча - тип: Имя переменной. Переменная для приема названия подключа.
Возвращает: Число.
- 0 - выборка пуста
- 1 - в выборке еще есть подключи
Описание: Получает следующее название подключа из выборки, открытой ранее методом ВыбратьКлючи.
Синтаксис: ВыбратьЗначения()
Возвращает: Число. Количество - значений в выборке.
Описание: Открывает выборку значений ключа, установленного функцией ОткрытьКлюч или СоздатьКлюч.
Синтаксис: ПолучитьЗначение(ИмяЗначения)
Параметры:
- ИмяЗначения - тип: Имя переменной. Переменная, в которую возвращается строковое название значения.
Возвращает: Число.
- 0 - выборка пуста
- 1 - в выборке еще есть значения
Описание: Получает следующее название значения из выборки, открытой ранеее методом ВыбратьЗначения.
Синтаксис: ОтладочныеСообщения(Включить)
Параметры:
Включить - тип: Число.
- 0 - Отключить
- 1 - Включить
Описание: Включает/отключает отладочные сообщения при возникновении ошибок работы с реестром.
Синтаксис: ЗаписатьВсеАтрибуты()
Описание: Немедленно записать изменения, внесенные ранее в реестр.
Класс ВыполняемыйМодуль / ExecuteModule
Предназначен для работы с динамическими модулями, передаваемыми в параметре метода в качестве строки.
После установки текста модуля скомпилируйте и выполните его. Модуль инициализируется и выполнит операторы, расположенные в конце тела модуля, вне методов. После этого можно обращаться к переменным модуля, как к свойствам этого объекта, и к методам модуля, как к методам объекта. Важно: класс поддерживает исключения 1С.
Доступ: чтение и запись.
Тип: Любой.
Описание: Позволяет обращаться к переменным модуля, объявленным в тексте модуля, как к свойствам объекта.
Синтаксис: Соответствует синтаксису метода модуля.
Параметры: Соответствуют параметрам меода модуля.
Описание: Позволяет обращаться к методам, определенным в тексте модуля, как к своим методам.
Синтаксис: УстановитьМодуль(стрТекстМодуля)
Параметры:
- стрТекстМодуля - тип: Строка. Текст модуля.
Описание: Устанавливает текст модуля на выполнение.
В модуле возможно определять любые функция, процедуры и параметры, доступ к которым возможно осуществлять, через оператор-селектор .(точка) объекта класса ВыполняемыйМодуль, после компилирования и запуска.
Синтаксис: ПолучитьТекстМодуля()
Возвращает:
- Текст модуля. - тип: Строка.
Описание: Возвращает текст модуля.
Синтаксис: НазначитьКонтекст(Контекст)
Параметры:
- Контекст - тип: ГрупповойКонтекст, АгрегатныйОбъект. Назначаемый контекст.
Описание: Устанавливает контекст модуля.
Метод должен вызыватся до компиляции модуля. При этом к методам и свойствам назначенного контекста в тексте модуля можно будет обращаться напрямую, без указания имени объекта.
Синтаксис: ПрисоединитьТекущийМодуль()
Описание: Присоединяет модуль, который в данный момент выполняется.
Это позволяет в установленном модуле объекта обращаться напрямую к переменным и методам текущего модуля (т.е. модуля, в котором идет работа в данный момент с объектом класса ВыполняемыйМодуль).
Синтаксис: КомпилироватьМодуль()
Возвращает: Число.
- 1, если компиляция прошла успешно
- 0 в случае неудачи
Описание: Компилирует модуль, установленный с помощью метода УстановитьМодуль.
Синтаксис: ВыполнитьМодуль()
Возвращает: Число.
- 1, если выполнение начато успешно
- 0 в случае неудачи
Описание: Выполняет модуль, установленный с помощью метода УстановитьМодуль и откомпилированный методом КомпилироватьМодуль.
При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого ВыполняемыйМодуль готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам.
Синтаксис: GetMethOfContext(Объект, тзМетоды = 0, тзСвойства = 0)
Параметры:
- Объект - тип: Контекст, АгрегатныйОбъект. Объект, для которого необходимо получить описание.
- тзМетоды - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание методов объекта.
- тзСвойства - тип: ТаблицаЗначений. ТЗ, в которую будет возвращено описание свойств объекта.
Описание: Предоставляет информацию о методах и свойствах объекта.
Если задана хотя бы одна из таблиц (тзМетоды, тзСвойства), описание возвращается в соотв. таблице. Иначе описание выводится в окно сообщений.
Вместо данного метода удобнее использовать соответствующие методы класса "Информатор" - ПолучитьТаблицуМетодов и ПолучитьТаблицуСвойств.
Синтаксис: СформироватьОшибку(ТекстОшибки)
Параметры:
- ТекстОшибки - тип: Строка. Сообщение об ошибке.
Описание: Останавливает выполнение текущего модуля.
При этом выводится сообщение об ошибке, переданное в параметре метода ТекстОшибки.
Синтаксис: ОчиститьПозициюПроведения()
Описание: Очищает позицию проведения и сохраняет текущую в объекте.
Далее в модуле документа можно проводить другие документы и отменять проведение других документов, после выполнения этих операций необходимо восстановить позицию с помощью метода ВосстановитьПозициюПроведения, описанного ниже.
Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.
Синтаксис: ВосстановитьПозициюПроведения()
Описание: Восстанавливает позицию проведения текущего документа, очищенную с помощью метода ОчиститьПозициюПроведения.
Методы ОчиститьПозициюПроведения и ВосстановитьПозициюПроведения необходимо вызывать всегда в паре в указанной последовательности!!!
Внимание! Проверка работоспособности метода была произведена только на релизе 1С 7.70.017.
Синтаксис: ВыброситьИскл(ОбъектИскл, [ТекстИскл])
Параметры:
- ОбъектИскл - тип: Любой. Параметр, который потом можно получить при обработке исключения методом ПолучитьИсключение.
- ТекстИскл - тип: Строка. Сообщение об ошибке. По умолчанию "".
Описание: Формирует исключение с объектом, который можно получить при перехвате/обработке исключения с помощью метода ПолучитьИсключение.
При обработке исключения текст сообщения об ошибке можно получить с помощью глобальной функции ОписаниеОшибки(). Если исключение не обработано, этот текст будет выведен в окно сообщений.
Синтаксис: ПолучитьИсключение()
Возвращает: объект-исключение, параметр ОбъектИскл, переданный в метод ВыброситьИскл.
Описание: Получает объект исключения.
Используется в обработчиках исключений для получения объекта исключения, переданного в метод ВыброситьИскл, или метода функционала класса _ВыброситьИскл|_1cpp_oop__throw_.
Синтаксис: КомпилироватьИВыполнитьМодуль()
Описание: Компилирует и выполняет модуль, установленный с помощью метода УстановитьМодуль .
При этом происходит инициализация выполнения модуля и выполняются операторы тела модуля. После этого ВыполняемыйМодуль готов к использованию, и позволяет обращаться к переменным и методам модуля, как к своим свойствам и методам. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение.
Синтаксис: РазрешитьИсключения()
Описание: Включает флаг выдачи исключений вместо показа ошибок в окне сообщений.
После выполнения данного метода методы ВыполнитьМодуль, КомпилироватьМодуль вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод КомпилироватьИВыполнитьМодуль всегда выбрасывает исключения, независимо от выполнения данного метода.
Синтаксис: ВыполнитьПроцедуруКонтекста(Объект, ИмяПроцедуры, СписокАргументов)
Параметры:
- Объект - тип: Агрегатный.
- ИмяПроцедуры - тип: Строка.
- СписокАргументов - тип: СписокЗначений. Список аргументов для упомянутой процедуры.
Возвращает: 1, если процедура существует, или 0, если нет.
Описание: Выполняет процедуру для переданного объекта, если у объекта есть процедура с таким именем. Если найдена функция с таким именем, выдается исключение.
В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.
Синтаксис: ВыполнитьФункциюКонтекста(Объект, ИмяПроцедуры, СписокАргументов, РезультатРаботыФункции)
Параметры:
- Объект - тип: Агрегатный.
- ИмяПроцедуры - тип: Строка.
- СписокАргументов - тип: СписокЗначений. Список аргументов для упомянутой процедуры.
- РезультатРаботыФункции - тип: Число.
Возвращает: 1, если функция существует, или 0, если нет.
Описание: Выполняет функцию для переданного объекта, если у объекта есть функция с таким именем. Если найдена процедура с таким именем, выдается исключение.
В случае, если первый параметр не является агрегатным типом (Строка,Число и т.д.), выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение. В случае, если третий параметр не является списком значений, выдается исключение.
Синтаксис: РазрешитьВложенныйВызовМетодов()
Описание: Разрешает работу вложенных процедур модуля. В т.ч. и рекурсивных обращений, что может приводить к падению 1С. Вся ответственность за вложенные вызовы ложится на пользователя.
Класс Делегат / Delegate
Данный класс представляет собой хранилище ссылок на методы экземпляров агрегатных объектов 1С. С помощью этого класса возможно вызывать группу методов с одинаковой сигнатурой (возвращаемый параметр, количество параметров или их отсутствие).
Использование делегата позволяет писать обобщенные алгоритмы и делать групповые вызовы методов.
Синтаксис: ОпределитьТип(чКолПарам, флЕстьВозврат, [флПрерыватьВыполнение = 0])
Параметры:
- чКолПарам: Число
Количество параметров, которые будут передаваться в методы делегата
- флЕстьВозврат: Число
Флаг наличия возвращаемого значения
- 1 - методы в делегате есть функции
- 0 - методы в делегате есть процедуры
- флПрерыватьВыполнение: Число
Флаг прерывания выполнения по условию
- 1 - методы Вызвать и ВызватьПоКлючу прерывают выполнение цепочки, если при вызове очередной функции возвращенное значение равно 0
- 0 - методы Вызвать и ВызватьПоКлючу всегда проходят цепочку вызова полностью
Возвращает: нет
Описание: Задает сигнатуру хранимых в Делегате методов.Сигнатура - количество параметров и тип (функция / процедура) методов
Синтаксис: Добавить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода, [стрКлюч = ""])
Параметры:
- ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект
Объект, метод которого будет сохранен для вызова
- стрИмяМетода: Строка
Имя метода, который будет вызван
- стрКлюч: Строка
Если указан - можно вызывать метод по указанному ключу с помощью метода делегата ВызватьПоКлючу
По умолчанию используется ключ ""Возможна реализация обработчика по умолчанию для ситуаций вызова по несуществующим ключам(см. описание метода ВызватьПоКлючу)Возвращает: Число
- 1 - добавление метода прошло успешно
Описание: Устанавливает/добавляет в делегат ссылки на метод агрегатного объекта для его дальнейшего вызоваСигнатура метода объекта для установки должна соответствовать указанной в ОпределитьТипПримечание: Возможно использование одинаковых методов для любых сочетаний ключей и агрегатных объектовКоличество ключей не регламентируетсяКоличество методов в пределах ключа не регламентируетсяКлючи и имена методов являются регистронезависимыми
Синтаксис: Удалить(ЭкземплярАгрегатногоОбъекта, стрИмяМетода)
Параметры:
- ЭкземплярАгрегатногоОбъекта: ГрупповойКонтекст, АгрегатныйОбъект
Объект, ссылка на метод которого была сохранена ранее
- стрИмяМетода: Строка
Имя метода, ссылка на который была сохранена ранее
Возвращает: Число
- 1 - удаление прошло успешно
- 0 - ссылок не найдено
Описание: Удаляет все ссылки на заданный метод указанного агрегатного объекта во всех ключах
Синтаксис: УдалитьПоКлючу(стрКлюч)
Параметры:
- стрКлюч: Строка
Ключ, по которому происходит поиск методов объектов
Возвращает: Число
- 1 - удаление прошло успешно
- 0 - для указанного ключа ссылок не найдено
Описание: Удаляет все ссылки на методы агрегатных объектов по заданному ключуКлюч задается при добавлении ссылки на метод, третьим параметром в Добавить
Синтаксис: Вызвать(...)
Параметры:
- ...:
Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает: Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание: Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание: Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить.Порядок перебора ключей не определен.
Синтаксис: ВызватьСЗ(спПараметры)
Параметры:
- спПараметры: СписокЗначений
Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает: Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание: Вызывает все методы всех ключей, находящихся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание: Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить.Порядок перебора ключей не определен.
Синтаксис: ВызватьПоКлючу(стрКлюч, ...)
Параметры:
- стрКлюч: Строка
Ключ, по которому происходит поиск ссылки
- ...:
Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает: Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание: Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание: Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить
Обработчик по умолчанию: Если указанный ключ в делегате не задан, вызывается обработчик по умолчанию по ключу "__default" (должен быть предварительно определен методом Добавить)
Если обработчик по умолчанию также не задан, не вызывается ничегоОбработчик по умолчанию учитывает значение параметра чПрерыватьВыполнение в общем порядке
Синтаксис: ВызватьПоКлючу(стрКлюч, спПараметры)
Параметры:
- стрКлюч: Строка
Ключ, по которому происходит поиск ссылки
- спПараметры: СписокЗначений
Количество параметров или их отсутствие определяется сигнатурой делегата, заданной ранее методом ОпределитьТип
Возвращает: Наличие и тип возвращаемого значения определяется сигнатурой делегата
Описание: Вызывает все методы указанного ключа, находящиеся в делегате, с учетом параметра чПрерыватьВыполнение, заданного ранее методом ОпределитьТип
Примечание: Порядок вызова в пределах ключа регламентируется порядком добавления метода в делегат методом Добавить
Обработчик по умолчанию: Если указанный ключ в делегате не задан, вызывается обработчик по умолчанию по ключу "__default" (должен быть предварительно определен методом Добавить)
Если обработчик по умолчанию также не задан, не вызывается ничегоОбработчик по умолчанию учитывает значение параметра чПрерыватьВыполнение в общем порядке
Синтаксис: Очистить() Описание: Удаляет из делегата все установленные в нем ранее методы для всех ключей.Сигнатура делегата после выполнения метода Очистить() не определена.
Синтаксис: Пустой()
Возвращает: Число
- 1, если делегат не содержит ссылок на методы
- 0, если содержит
Описание: Проверяет наличие сохраненных ссылок
Синтаксис: ПолучитьТаблицуОбработчиков()
Возвращает: Таблицу значений с подключенными обработчиками. В таблице есть 3 колонки - Объект, НаименованиеКласса, НаименованиеМетода
Описание:
- Возвращает таблицу значений подключенных обработчиков в порядке их
добавления.
Синтаксис: ПолучитьТаблицуОбработчиковПоКлючу(стрКлюч)
Параметры:
- стрКлюч: Строка
Ключ, по которому происходит поиск ссылки
Возвращает: Таблицу значений с подключенными обработчиками. В таблице есть 3 колонки - Объект, НаименованиеКласса, НаименованиеМетода
Описание:
- Возвращает таблицу значений подключенных обработчиков в порядке их
добавления.
Класс МенеджерСобытий / EventManager
Данный класс предназначен для обработки событий, возникающих в классах КОП и других контекстах использования менеджера.
Например: Есть класс, который формирует различные события и называется он "ФабрикаСобытий" (издатель событий). Предположим, что обращение к его открытым методам "Событие_1" и "Событие_2" приводят к возникновению событий в системе от этого класса. Далее, у нас есть несколько классов, которые хотят подписаться на события (подписчики событий), формируемые классом "ФабрикаСобытий", назовем их "ОбработчикСобытий_1" и "ОбработчикСобытий_2". Экземпляры классов-обработчиков событий (подписчиков) определяют свои методы, которые будут вызываться при возникновении в экземпляре класса "ФабрикаСобытий" определенных событий. Далее опишем методы класса "МенеджерСобытий" и приведём с краткими пояснениями пример кода, реализующий описанную схему.
Синтаксис: Пустой()
Возвращает: Число.
- 1, подписчиков нет
- 0, подписчики есть
Описание: Проверяет наличие в менеджере событий подписчиков.
Синтаксис: ДобавитьОбработчикСобытия(копПодписчик, стрИмяМетода)
Параметры:
- копПодписчик - тип: КОП. Экземпляр класса-подписчика.
- стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика, который будет вызываться при возникновении событий, управляемых классом-менеджером.
Возвращает: Число.
- 1 - Добавление подписчика прошло успешно
- 0 - Данный подписчик с таким методом уже зарегистрирован в менеджере событий
Описание: Подписывает на событие экземпляр класса-подписчика событий.
Метод-обработчик события должен быть членом класса-подписчика и принимать два параметра по умолчанию:
- Publisher или Издатель, в этот параметр передается экземпляр класса - издателя
- ExtParametrs или ДопПараметры, в этот параметр передается любая информация, посланная с помощью метода ПослатьСобытие.
Количество параметров, заданных по умолчанию, возможно изменить с помощью установки отдельно созданного делегата - передать его в качестве параметра метода УстановитьДелегата, или передать число параметров в метод УстановитьКоличествоПараметров.
Каждый метод-обработчик обязан возвращать числовое значение. Если функция возвращает 0, то цепочка обработки события прерывается на данном подписчике, т.е. если у нас есть менеджер событий, в котором зарегистрировано 5 подписчиков и 2-ой по счету в своей функции возвращает 0, то 3 последующих подписчика не получат данное событие, другими словами - рассылка будет прервана на подписчике с номером 2. Если же функция возвращает любое другое числовое значение, отличное от нуля, то рассылка события менеджером не прерывается.
Синтаксис: УдалитьОбработчикСобытия(копПодписчик, стрИмяМетода)
Параметры:
- копПодписчик - тип: КОП. Экземпляр класса-подписчика.
- стрИмяМетода - тип: Строка. Имя метода-обработчика класса-подписчика.
Возвращает: Число.
- 1 - с подписки снят
- 0 - нет, данный подписчик ранее не был зарегистрирован методом ДобавитьОбработчикСобытия.
Описание: Снимает с подписки экземпляр класса-подписчика, ранее подписавшегося на него с помощью ДобавитьОбработчикСобытия.
Синтаксис: ПослатьСобытие(Издатель, ДопПараметры ...)
Параметры:
- Издатель - тип: ГрупповойКонтекст, КОП, любой. Как правило, в этом параметре передается либо контекст окружения, в котором возникло событие либо контекст экземпляра класса-издателя. Но можно передавать любой параметр.
- ДопПараметры - тип: Любой. Любая дополнительная информация, которая будет доступна в методе экземпляра класса-подписчика во втором параметре. Количество параметров метода зависит от установленного ограничения на количество параметров для события/подписчиков.
Возвращает: Число.
- 1 - цепочка рассылки событий пройдена полностью
- 0 - рассылка была прервана одним из подписчиков
Описание: Посылает событие всем зарегистрировавшимся подписчикам на него.
Синтаксис: УстановитьДелегата(ЭкземплярДелегата)
Параметры:
- ЭкземплярДелегата - тип: Делегат. Экземпляр делегата, через который будет осуществляться вызов методов-обработчиков.
Возвращает: Делегат. Установленный ранее делегат, или делегат по умолчанию, содержащийся в текущем менеджере событий.
Описание: Устанавливает делегата для вызова методов-обработчиков.
Синтаксис: Очистить()
Параметры:
Описание: Очищает менеджер событий от подписчиков.
Синтаксис: УстановитьКоличествоПараметров(чКолвоПарам)
Параметры:
- чКолвоПарам - тип: Число. Новое количество параметров.
Описание: Устанавливает количество параметров, которые должны принимать подписчики и количество параметров, которые необходимо передавать в метод ПослатьСобытие.
Данный метод удаляет всех подписчиков, установленных ранее в менеджере событий.
Синтаксис: ПолучитьТаблицуОбработчиков()
Возвращает: Таблицу значений с подключенными обработчиками. В таблице есть 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
Данный класс предназначен для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.
Доступ: чтение и запись.
Тип: Любой.
Описание: Позволяет обратиться к свойству, добавленному методом Вставить.
Синтаксис: Вставить(стрКлюч, [нЗначение], [чРежим])
Параметры:
стрКлюч - тип: Строка. Название свойства структуры.
Если такое свойство уже существует - то его значение изменяется, если не существует - создается новое
нЗначение - тип: Любой. Значение свойства, которое необходимо установить.
чРежим - тип: Число.
- 0 - нЗначение сохраняется в структуре по ссылке
- 1 - нЗначение сохраняется в структуре по значению
По умолчанию - 1.
Описание: Добавляет свойство в структуру.
В структуре хранятся копии нЗначение.
Синтаксис: Количество()
Возвращает: Число. Количество свойств структуры.
Описание: Возвращает количество свойств структуры, добавленных методом Вставить.
Синтаксис: Очистить()
Описание: Удаляет все свойства структуры.
Синтаксис: Свойство(стрКлюч, [нЗначение])
Параметры:
- стрКлюч - тип: Строка. Название для поиска свойства структуры.
- нЗначение - тип: Имя переменной. В данный параметр возвращается найденное значение. Если ключа нет в структуре, то возвращается пустое значение неопределенного типа.
Возвращает: Число.
- 1 - свойство с ключом найдено
- 0 - не найдено
Описание: Позволяет получить значение свойства по указанному имени, а также проверить, имеется ли указанное свойство.
Синтаксис: Удалить(стрКлюч)
Параметры:
- стрКлюч - тип: Строка. Название удаляемого свойства структуры.
Описание: Удаляет элемент структуры с заданным ключом. Если ключа не существует, выдается исключение.
Синтаксис: Получить(чИндекс, [стрИмяСвойства])
Параметры:
- чИндекс - тип: Число. Номер поля по порядку от 1 до Количество
- стрИмяСвойства - тип: Имя переменной. В нее записывается имя свойства, полученное по его номеру.
Возвращает: Значение свойства, полученное по его номеру.
Описание: Позволяет получать по индексу значение свойства и его имя.
Синтаксис: ЕстьСвойство(стрИмя)
Параметры:
- стрИмя - тип:
Возвращает: Число. Индекс найденного свойства, начиная с 1. Если свойство не найдено, 0.
Описание: Проверяет, есть ли свойство с таким именем.
Класс Форма / Form
Класс позволяет привязываться к форме и создавать элементы управления. В основном, используектся для создания ActiveX / АктивИкс объектов.
Версия: Метод работает на релизе 2.5 и позже.
После установки формы методом УстановитьФорму могут генерироваться события формы.
Синтаксис: ФормаПриСоздании(ИсточникСобытия)
- Параметры:
- ИсточникСобытия - источник события, объект типа "Форма" или наследник от класса "Форма".
- Описание:
Событие вызывается после физического создания окна формы для формы, установленной методом "УстановитьФорму".
Подробнее см. описание метода УстановитьФорму.
Синтаксис: ФормаПослеЗаписи(ИсточникСобытия, флРезультат)
- Параметры:
ИсточникСобытия - источник события, объект типа "Форма" или наследник от класса "Форма".
- флРезультат - результат операции, тип: число
- 0: запись не выполнена
- 1: запись выполнена успешно
- Описание:
Событие вызывается после записи документа и элемента справочника для формы, установленной методом "УстановитьФорму".
Для элемента справочника событие вызывается для icpp версии не менее 3.2.3.9.
Для элемента справочника поддерживаются релизы 1С: 18,19,20,21,23,25,26,27.
Синтаксис: void УстановитьФорму(Форма)
Параметры:
- Форма - тип: Форма. Форма, к которой идет привязка.
Описание: Привязывает объект класса к переданной форме.
Время жизни объекта совпадает со временем жизни указанной формы.
Объект может генерировать событие "ФормаПриСоздании(ИсточникСобытия)" в виде вызова процедуры модуля формы с одним параметром, если данная процедура определена в модуле формы. Событие вызывается после физического создания формы. Параметр "ИсточникСобытия" у события - это источник события, т.е. объект "Форма" или наследник от класса "Форма".
Событие "ФормаПриСоздании" может также обрабатывать переданный первым параметром КОП-наследник от АктивИкс или ТабличногоПоля. Процедура-обработчик события должна быть объявлена в классе с ключевым словом Экспорт.
Событие может быть задано в КОПе и в модуле формы одновременно, в этом случае сначала происходит вызов события в КОПе, затем в модуле формы.
Синтаксис: СоздатьЭлементУправления(ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)
Параметры:
ИмяОбъектаИлиОбъектКлассаКОП - тип: Строка или объект класса.
Если передана строка, пытаемся создать объект класса с таким именем. Если передан объект, используем именно его.
- ИдентификаторЭлементаДиалога - тип: Строка или элемент диалога. Идентификатор элемента
диалога, на месте которого будет создан элемент ActiveX.
Возвращает: тип: Объект. Созданный объект.
Описание: Создает элемент управления и указывает размещение создаваемого элемента.
Также устанавливает префикс для имен процедур-обработчиков событий, расположенных в модуле формы.Время жизни объекта совпадает со временем жизни указанной формы.
Предварительно должна быть установлена привязка объекта к форме методом УстановитьФорму .
Important
Метод работает после физического открытия окна формы (например - в предопределенной процедуре ПослеОткрытия). Метод работает только для реквизитов диалога типа "Текст".
Синтаксис: ПолучитьЭлементУправления(ИдентификаторЭлементаДиалога)
Параметры:
- ИдентификаторЭлементаДиалога - тип: Строка или элемент диалога.
Идентификатор элемента диалога, на месте которого был создан ActiveX.
Возвращает: тип: Объект. Объект (элемент управления), связанный с данным элементом диалога.
Описание: Возвращает существующий объект, связанный с данным элементом диалога.
В случае, если для данного элемента диалога нет связанных элементов управления, метод возвращает пустое значение.Предварительно должна быть установлена привязка объекта к форме методом УстановитьФорму .
Important
Метод работает после физического открытия окна формы (например - в предопределенной процедуре ПослеОткрытия). Метод работает только для реквизитов диалога типа "Текст".
Синтаксис: void СоздатьЭлементУправленияНаФорме(Форма, ИмяОбъектаИлиОбъектКлассаКОП, ИдентификаторЭлементаДиалога)
Описание: Объединяет функционал УстановитьФорму и СоздатьЭлементУправления
Класс БуферОбмена / Clipboard
Класс позволяет работать с системным буфером обмена.
Версия: Метод работает на релизе 2.5 и позже.
Синтаксис: Строка Получить()
Описание: Получает текст из системного буфера обмена.
Синтаксис: void Установить(Строка Текст)
Параметры:
- Текст - тип: Строка. Новый текст для буфера обмена.
Описание: Сохраняет текст в системного буфере обмена.
Класс Вектор / Vector
Быстрый контейнер - реализация безопасного массива. Построен на базе std::vector из стандартной библиотеки С++ с аналогичными гарантиями сложности.
- Внимание: Нумерация позиций всегда идет с 0, а не с 1, как у 1С. Будьте аккуратны!
- Доступ к последнему элементу коллекции возможен по значению индекса -1.
Версия: Объект поддерживается на релизах версии 3.0.1.7 и выше.
Синтаксис: Количество() Параметры: нет Возвращает: Количество элементов коллекции; тип: Число Описание: Возвращает количество элементов коллекции Сложность: Const
Синтаксис: ВГраница() Параметры: нет Возвращает: Наибольший индекс в коллекции; тип: Число Описание: Возвращает количество элементов коллекции минус 1 Сложность: Const
Синтаксис: Получить(Индекс)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции; может принимать значения от 0 до Количество() - 1
Возвращает: Значение элемента коллекции;
Описание: Получает значение элемента коллекции по его индексу
Сложность: Const
Синтаксис: Установить(Индекс, Значение)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()-1
- Значение, тип: любой
Значение элемента коллекции
Возвращает: Нет
Описание: Устанавливает значение элемента коллекции по его индексу
Сложность: Const
Синтаксис: Добавить(Значение)
Параметры:
- Значение, тип: Любой
Значение элемента коллекции
Возвращает: Нет
Описание: Добавляет новый элемент коллекции с заданным значением. Добавление новой позиции происходит всегда в конце коллекции.
Сложность: Const
Синтаксис: Удалить(Индекс)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()-1
Возвращает: Нет
Описание: Удаляет заданный элемент из коллекции
Сложность: В конце: Const; В начале и середине: O(n)
Синтаксис: Очистить() Параметры: Нет Возвращает: Нет Описание: Удаляет все элементы коллекции Сложность: O(n)
Синтаксис: Вставить(Индекс, Значение)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()
- Значение, тип: Число
Значение элемента коллекции
Возвращает: Нет
Описание: Добавляет новый элемент коллекции перед элементом с заданным индексом. Вставка в конец коллекции с номером Количество() также разрешена.
Сложность: В конце: Const; В начале и середине: O(n)
Синтаксис: Сдвинуть(Индекс, Смещение)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()-1
- Смещение, тип: Число
Смещение элемента коллекции относительно его текущего положения
Возвращает: Нет
Описание: Перемещает заданный элемент коллекции, в соответствии с указанным смещением. Положительные смещения перемещеют элемент вправо (в сторону больших индексов), отрицательные - влево.
- :Сложность
- O(n), зависимость от смещения
Синтаксис: Выгрузить(Приемник)
Параметры:
- Приемник, тип: СписокЗначений, ТаблицаЗначений, произвольная коллекция или любой объект, поддерживающий универсальный интерфейс загрузки.
Приемник, в который будут выгружены элементы коллекции.
Возвращает: Нет
Описание: Выгружает коллекцию в приемник
Синтаксис: Резервировать(Количество)
Параметры:
- Количество, тип: Число
Количество элементов
Возвращает: Нет
Описание: Резервирует память для заданного количества элементов. Это позволяет избежать перемещения элементов при росте вектора до заданного размера.
Синтаксис: ИзменитьРазмер(Количество)
Параметры:
- Количество, тип: Число
Количество элементов
Возвращает: Нет
Описание: Добавляет или удаляет элементы, изменяя размер вектора до указанного значения.
Синтаксис: Сортировать(Выражение)
Параметры:
- Выражение, тип: Строка
Выражение сортировки. Состоит из перечисления "колонок", разделенных запятыми, каждая из которых может иметь один или несколько модификаторов
- Колонки:
- "Значение"
- Модификаторы
- "-" - по убыванию
- "*" - по внутреннему представлению
- "#" - с обрезкой пробелов
- "^" - без учета регистра
Возвращает: Нет
Описание: Сортирует элементы коллекции. В отличие от ассоциативного вектора наименование колонки "Значение" можно не указывать.
Сложность: O(log(N))
Класс АссоциативныйВектор / AssociativeVector
Быстрый контейнер - объединение безопасного массива и хэш-таблицы. Построен на базе std::vector из стандартной библиотеки С++ с аналогичными гарантиями сложности.
Позволяет ассоциировать значения с ключом - регистронезависимой строкой и осуществлять быстрый доступ по ключу - в том числе и как к свойствам объекта.
Также позволяет использование в ограниченном варианте - без присвоения ассоциаций значениям. В этом случае аналогичен классу "Вектор", а дополнительные накладные расходы минимальны.
Коллекция может являться приемником при выгрузке из ИТ и других коллекций. При этом Данные должны передаваться в первой колонке, а Ключи - во второй. Возможна загрузка одной колонки с Данными.
- Внимание: Нумерация позиций всегда идет с 0, а не с 1, как у 1С. Будьте аккуратны!
- Доступ к последнему элементу коллекции возможен по значению индекса -1.
Версия: Объект поддерживается на релизах версии 3.0.1.10 и выше.
Синтаксис: Количество() Параметры: нет Возвращает: Количество элементов коллекции; тип: Число Описание: Возвращает количество элементов коллекции
- :Сложность
- Const
Синтаксис: ВГраница() Параметры: нет Возвращает: Наибольший индекс в коллекции; тип: Число Описание: Возвращает количество элементов коллекции минус 1 Сложность: Const
Синтаксис: Получить(Ключ)
Параметры:
- Ключ, тип: Число, Строка
- Число: Индекс элемента коллекции; может принимать значения от 0 до Количество() - 1
- Строка: Ключ элемента коллекции
Возвращает: Значение элемента коллекции;
Описание: Получает значение элемента коллекции по ключу
- :Сложность
- Const
Синтаксис: ПолучитьКлюч(чИндекс)
Параметры:
- чИндекс, тип: Число
Индекс элемента коллекции
Возвращает: Ключ заданного элемента коллекции
Описание: Возвращает значение ключа по индексу элемента
Сложность: Const
Синтаксис: НайтиКлюч(Ключ, флТочныйПоиск = 0)
Параметры:
- Ключ, тип: Строка
Ключ элемента коллекции
- флТочныйПоиск, тип: Число
Флаг, определяющий вид поиска
Возвращает:
- для флТочныйПоиск = 0:
- -1: ключ не найден
- 1: ключ найден
- для флТочныйПоиск = 1:
- -1: ключ не найден
- Индекс элемента для данного ключа
Описание: Осуществляет поиск ключа в коллекции. В отличие от метода Получить при отсутствии ключа исключение не выбрасывает.
Сложность: Зависит от значение флТочныйПоиск: - 0: Const - 1: O(n) (обратите внимание!)
Синтаксис: Выгрузить(Приемник)
Параметры:
- Приемник, тип: СписокЗначений, ТаблицаЗначений, произвольная коллекция или любой объект, поддерживающий универсальный интерфейс загрузки.
Приемник, в который будут выгружены элементы коллекции.
Возвращает: Нет
Описание: Выгружает коллекцию в приемник
Синтаксис: Установить(Ключ, Значение)
Параметры:
- Ключ, тип: Число, Строка
- Число: Индекс элемента коллекции от 0 до Количество()-1
- Строка: Ключ элемента коллекции
- Значение, тип: любой
Значение элемента коллекции
Возвращает: Нет
Описание: Устанавливает значение элемента коллекции по ключу
- :Сложность
- Const
Синтаксис: Добавить(Значение, Ключ)
Параметры:
- Значение, тип: Любой
Значение элемента коллекции
- Ключ, тип: Строка
Ключ, который будет ассоциирован с элементом коллекции
Возвращает: Нет
Описание: Добавляет новый элемент коллекции с заданным значением (и ключом). Добавление новой позиции происходит всегда в конце коллекции. Если в коллекции уже существует элемент, ассоциированный с ключом, то выдается исключение.
- :Сложность
- Const
Синтаксис: Удалить(Ключ)
Параметры:
- Ключ, тип: Число, Строка
- Число: Индекс элемента коллекции от 0 до Количество()-1
- Строка: Ключ элемента коллекции
Возвращает: Нет
Описание: Удаляет заданный элемент из коллекции
- :Сложность
- Зависит от типа Ключа:
- Число:
В конце: Const; В начале и середине: O(n)
- Строка:
В конце: O(m); В начале и середине: O(n) + O(m)
Синтаксис: Очистить() Параметры: Нет Возвращает: Нет Описание: Удаляет все элементы коллекции Сложность: O(n)
Синтаксис: Вставить(Индекс, Значение, [Ключ])
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()
- Значение, тип: Число
Значение элемента коллекции
Ключ, тип: Строка. Необязательный параметр
Возвращает: Нет
Описание: Добавляет новый элемент коллекции перед элементом с заданным индексом. Вставка в конец коллекции с номером Количество() также разрешена.
Сложность: В конце: Const; В начале и середине: O(n)
Синтаксис: Сдвинуть(Индекс, Смещение)
Параметры:
- Индекс, тип: Число
Индекс элемента коллекции от 0 до Количество()-1
- Смещение, тип: Число
Смещение элемента коллекции относительно его текущего положения
Возвращает: Нет
Описание: Перемещает заданный элемент коллекции, в соответствии с указанным смещением. Положительные смещения перемещеют элемент вправо (в сторону больших индексов), отрицательные - влево.
Сложность: O(n), зависимость от смещения
Синтаксис: Резервировать(Количество)
Параметры:
- Количество, тип: Число
Количество элементов
Возвращает: Нет
Описание: Резервирует память для заданного количества элементов. Это позволяет избежать перемещения элементов при росте вектора до заданного размера.
Синтаксис: ИзменитьРазмер(Количество)
Параметры:
- Количество, тип: Число
Количество элементов
Возвращает: Нет
Описание: Добавляет или удаляет элементы, изменяя размер вектора до указанного значения.
Синтаксис: Сортировать(Выражение)
Параметры:
- Выражение, тип: Строка
Выражение сортировки. Состоит из перечисления "колонок", разделенных запятыми, каждая из которых может иметь один или несколько модификаторов
- Колонки:
- "Ключ"
- "Значение"
- Модификаторы
- "-" - по убыванию
- "*" - по внутреннему представлению
- "#" - с обрезкой пробелов
- "^" - без учета регистра
Возвращает: Нет
Описание: Сортирует элементы коллекции.
Сложность: O(log(N))
Доступ: Чтение и запись Тип: Любой Описание: Позволяет осуществлять доступ к значению по ключу, с которым оно было ассоциировано при добавлении в коллекцию
Класс 1cpp.Делегат / 1cpp.Delegate
1cpp.Делегат предоставляет возможность косвенного вызова заданного метода контекста. Полезен для создания обобщенных алгоритмов.
Синтаксис: Установить(Конт, ИмяМетода)
Параметры:
- Конт: Контекст
Контекст делегата
- ИмяМетода: Строка
Имя метода контекста
Возвращает: нет
Описание: Задает контекст и метод контекста делегатаДля некорректных данных генерирует исключение
Синтаксис: Пустой()
Параметры: нет
Возвращает: Число
- 0 - делегат установлен и может быть вызван
- 1 - делегат не установлен
Описание: Позволяет определить статус делегатаИсключений не генерирует
Синтаксис: Вызвать(...) Параметры: Определяются сигнатурой делегата Возвращает: Определяется сигнатурой делегата Описание: Вызывает метод делегатаКоличество параметров, наличие возвращаемого значения и значения по умолчаниюсоответствуют сигнатуре установленного метода делегатаВ случае невозможности вызова генерируется исключение