На этой странице я буду готовить информацию и отображать ход работ по портированию SnegAPI в версию Reborn.
Вступительная часть описывает новые принципы функционирования SnegAPI, а описания методов и свойств объектов взята из оригинала SnegAPI. Те методы и свойства, которые уже портированы, будут помечены как
портировано
API Снегопата (SnegAPI) на данный момент выполнено по технологии OLE-Automation, так как в мире Windows-программирования это самая универсальная технология, с которой могут работать практически все языки программирования. Интерфейсы всех объектов реализованы в виде IDispatch интерфейса и позволяют обращаться к их методам и свойствам через Invoke. Библиотеки типов Снегопат не предоставляет, так как объектный интерфейс формируется динамически из объектов AngelScript.
Вообще, SnegAPI задумывалось как набор базовых кирпичиков, на базе которых с помощью дополнительных аддинов и строится функционал приложения. Сделано так было, учитывая опыт работы ОпенКонфа, в котором многие вещи были жестко прописаны в самом коде опенконфа, и не могли гибко изменяться в соответствии с изменяющимися требованиями. Поэтому в отличии от него, snegopat.dll, к примеру, не загружает сам аддины, диктуя логику их размещения. Вместо этого он предоставляет возможность через апи загружать/выгружать аддины, и их загрузкой уже занимается скрипт - snegopat.js. То есть возможно не меняя основную библиотеку, реализовать любую другую логику хранения и загрузки аддинов. Или к примеру, настройка хоткеев. Сам снегопат их не хранит, не назначает и не настраивает. Вместо этого SnegAPI предоставляет доступ к коллекции своих хоткеев, чем и пользуется скрипт hotkeys.js, организуя всю работу по хранению и настройке горячих клавиш.
Для функционирования SnegAPI мной была создана в snegopat.dll автоматическая трансляция объектов AngelScript в IDispatch. Таким образом, реализация интерфейсов упрощается, взаимодействие кода скриптов и снегопата упрощается. Поэтому, на первых порах всвязи с отсутствием полной документации и библиотеки типов для детального знакомства с апи можно смотреть непосредственно код прикладного слоя снегопата в папке core\engine. Начать можно с файла com_designer.as, в котором описан объект Designer, а дальше смотреть его свойства и методы. Вообще, я стараюсь код объектов, реализующих SnegAPI размещать в файлах с префиксом "com_", и при портировании сохранять имена типов объектов.
При авто-трансляции объектов AngelScript в IDispatch применяется несколько правил:
- Экспортируются все публичные методы объекта, кроме начинающихся с "_".
- Методы, название которых начинается с "get_", не имеющие параметров и имеющие возвращаемое значение, экспортируются как чтение свойства с именем без "get_", например, "string get_name()" будет эскпортировано как свойство "name", которое можно прочитать.
- Методы, название которых начинаются с "set_", имеющие тип "void" и один параметр, экспортируются как свойство, доступное для записи, с именем без "set_", например, "void set_name(string)" будет эскпортировано как свойство "name", которое можно присвоить.
- Экспортируются все публичные свойства объекта, не начинающиеся с "__".
- Свойства, чье название начинается с "_", экспортируются как read only свойства, без начального "_".
- Если последним параметром метода указан array<Variant> - метод считается с неопределённым количество параметров. Все переданные после предпоследнего параметра аргументы укладываются в массив Variant и передаются в метод.
- Если возвращаемое значение указано как array<Тип> - возвращается объект, имеющий свойство length (количество элементов в массиве) и метод item(индекс), возвращающий указанный элемент массива.
Параметры передаются по значению.
Портирован частично, еще не все методы и свойства
Корнем объектной модели Снегопата является объект Designer. Именно через его свойства, методы и события возможен доступ ко всей остальной части API Снегопата.
Аддины получают доступ к объекту Designer, реализовав интерфейс IAddinInit. Встроенные в снегопат загрузчики для скриптов и dll уже реализуют этот интерфейс, и передают этот объект дальше, в скрипт или dll:
- В скриптах объект Designer добавляется в пространство имен скрипта как глобальный объект Designer, поэтому его свойства и методы можно вызывать напрямую, без указания имени объекта.
- В dll загрузчик ищет функцию initAddin, и если она есть, вызывает ее, передавая в нее ссылку на этот объект. Пока аддины dll не реализованы
Далее я распишу методы и свойства объекта Designer, по ходу дела описывая их более подробно.
Портирован полностью
Только чтение. Возвращает объект IAddinMgr, с помощью которого можно работать с аддинами: загружать и выгружать их, перечислять уже загруженные аддины, получать информацию о конкретном аддине и его дополнительные возможности.
Портирован полностью
Создает новый объект 1С.
Синтаксис:
v8New(ИмяТипа, [Параметры для конструктора...])
Аналог оператора Новый языка 1С.
Параметры:
- ИмяТипа. Обязательный. Строка. Содержит имя типа создаваемого объекта.
- [Параметры для конструктора...]. Необязательный набор параметров любого типа, разделенных запятой. Все параметры передаются в конструктор объекта.
Возвращает: ссылку на созданный объект.
Как оказалось, в среде Конфигуратора можно также как и в Предприятии содавать многие объекты. Конечно, не все - объекты, требующие подключения к данным, либо объекты прикладные (связанные с созданными метаданными), создать нельзя. Список того, что можно попробовать создать в v8new размещен на форуме снегопата в разделе "Скрипты". Не факт, что все из этих объектов заработают.
Кроме того, так как сама 1С "заточена" для работы через COM - все объекты из внутреннего типа 1С могут быть преобразованы самим движком 1С в IDispatch и уложены в VARIANT. Вот это то и позволяет потом легко использовать созданные объекты в скриптах! То есть снегопат создает объект внутреннего типа 1С, вызывает метод 1С valueToVariant - и получает готовый OLE-объект. С которым уже легко могут работать другие аддины и скрипты - вызывать их методы, работать со свойствами, обходить коллекции и т.д. JScript позволяет использовать русские буквы в названиях, так что часть кода можно напрямую брать из готового кода 1С, VBScript - нет, можно использовать только английские названия методов и свойств.
Пример:
var vt = v8New("ТаблицаЗначений")
vt.Колонки.Добавить("Кол1")
....
var fileInfo = v8New("Файл", filePath)
if(fileInfo.Существует())
{
}
....
var КонструкторФорматнойСтроки = v8New("КонструкторФорматнойСтроки");
КонструкторФорматнойСтроки.ДоступныеТипы = v8New("ОписаниеТипов", "Дата");
if (КонструкторФорматнойСтроки.ОткрытьМодально())
addToSignatureFormat(form, "ДатаВремя#" + КонструкторФорматнойСтроки.Текст);
Портирован полностью.
Выводит сообщение в окно сообшений.
Синтаксис:
Message(Текст, [Пиктограмма], [Обработчик], [Параметр для обработчика])
Параметры:
-
Текст. Обязательный. Строка. Текст выводимого сообщения. Пустой текст движком 1С не выводится.
-
[Пиктограмма]. Не обязательный. Число или объект Картинка. Указывает пиктограмму для выводимого сообщения. Если передано число, выводится одна из стандартных пиктограмм:
- mNone = 0, без пиктограммы
- mTriangle = 1, Треугольник
- mExc1 = 2, !
- mExc2 = 3, !!
- mExc3 = 4, !!!
- mInfo = 5, Информация
Также может быть передана картинка, кроме картинок из стандартной библиотеки. По умолчанию выводится без пиктограммы.
-
[Обработчик]. Необязательный. Функция, которая будет вызвана при клике или нажатии Enter на выведенном сообщении.
-
[Параметр для обработчика]. Необязательный. Любого типа. Будет передан аргументом в функцию-обработчик нажатия при ее вызове.
Примеры:
Message("Привет!")
Выводит сообщение "Привет".
function onClick(param)
{
MessageBox("Вы нажали строку " + param)
}
Message("Строка 1", mNone, onClick, 1)
Message("Строка 2", mExc1, onClick, 2)
Выводит две строки, по которым можно кликнуть.
Портирован полностью
Выводит Предупреждение.
Синтаксис:
MessageBox(Текст, [Стиль], [Заголовок], [Таймаут])
Параметры:
-
Текст. Обязательный. Строка. Текст предупреждения.
-
[Стиль]. Необязательный. Число, задающее состав кнопок, тип иконки, кнопку по умолчанию:
- mbOK = 0, Кнопка Ок.
- mbOkCancel = 1, Кнопки Ок, Отмена.
- mbAbortRetryIgnore= 2, Кнопки Прервать, Повторить, Пропустить.
- mbYesNoCancel = 3, Кнопки Да, Нет, Отмена.
- mbYesNo = 4, Кнопки Да, Нет.
- mbRetryCancel = 5, Кнопки Повторить, Отменить.
- mbIconError = 0x10, Картинка ошибки.
- mbIconQuestion = 0x20, Картинка вопроса.
- mbIconWarning = 0x30, Картинка предупреждения.
- mbIconInformation = 0x40, Картинка информации.
- mbDefButton1 = 0, Кнопка по умолчанию - 1.
- mbDefButton2 = 0x100, Кнопка по умолчанию - 2.
- mbDefButton3 = 0x200, Кнопка по умолчанию - 3.
Стили иконок и дефолтных кнопок надо прибавлять к стилю состава кнопок.
-
[Заголовок]. Необязательный. Строка. Заголовок для предупреждения. По умолчанию - Конфигуратор.
-
[Таймаут]. Необязательный. Число. Количество секунд для отображения предупреждения. 0 - без ограничения. По умолчанию - 0.
Возвращает номер выбранного ответа:
- 0 - сработал таймаут.
- mbaOK = 1, OK
- mbaCancel = 2, Отмена
- mbaAbort = 3, Прервать
- mbaRetry = 4, Повторить
- mbaIgnore = 5, Игнорировать
- mbaYes = 6, Да
- mbaNo = 7, Нет
Портирован полностью
Содержит объект IProfileStore, представляющий корневую папку настроек 1С. Через этот объект можно работать со всем деревом хранимых настроек 1С.
портирован
Позволяет открыть для редактирования файл с описанием "внутренней" формы 1С, т.е. той,
которая используется самим движком 1С для представления своих форм и диалогов.
Синтаксис:
designInternalForm(ПутьКФайлуФормы)
Параметры:
- ПутьКФайлуФормы. Необязательный. Строка. Путь к открываемому файлу. Если не указан, или передана пустая строка, будет открыта новая пустая форма.
Смотрите также описание работы с ресурсами 1С
Портирован полностью
Позволяет открыть для редактирования файл с обычной, "толстой" формой. Эти файлы потом используются для создания визуального интерфейса аддинами. Синтаксис:
designScriptForm(ПутьКФайлуФормы)
Параметры:
- ПутьКФайлуФормы. Необязательный. Строка. Путь к открываемому файлу. Если не указан, или передана пустая строка, будет открыта новая пустая форма.
ВАЖНО!!!
Сохранять форму можно только с расширением .ssf!!!
Так как сохранение обычной формы в файл "самой по себе", не в составе какого-либо контейнера в 1С нет, то в процедуре сохранения файла с формой в движке 1С есть ошибка - файл открывается только для записи, но в процессе сохранения также происходит попытка чтения из файла. Ошибка приводит к падению 1С. Снегопат патчит эту ошибку, перехватывая открытие файла движком 1С. Если открывается файл с расширением .ssf, то режим открытия исправляется на "чтение и запись".
Портирован полностью
Позволяет загрузить обычную форму из файла, созданного в методе designScriptForm, в режиме выполнения. Синтаксис:
loadScriptForm(ПутьКФайлуФормы, [ОбъектДляСобытий], [ПрефиксИменСобытий])
Параметры:
- ПутьКФайлуФормы. Обязательный. Строка. Путь к открываемому файлу.
- [ОбъектДляСобытий]. Необязательный. Объект. Все обработчики событий, назначенные в форме, будут искаться среди методов этого объекта.
- [ПрефиксИменСобытий]. Необязательный. Строка. Добавляется в начало имени события
при его поиске среди обработчиков. Например, если префикс
Форма_
и название назначенного обработчикаПриОткрытии
, то в объекте будет искаться методФорма_ПриОткрытии
.
Возвращает: 1Сный объект Форма (обычная). Методы и свойства описаны в СП.
Дальше с ним можно работать, как с обычной формой в Предприятии - Открыть()
, ОткрытьМодально()
и т.п.
Небольшая тонкость в работе обработчиков событий. Так как не все языки, работающие с OLE-Automation, корректно работают с передачей параметров по ссылке (а javascript именно такой язык), при вызове обработчика аргументы, передаваемые в него, "оборачиваются" в объект-посредник, и доступны в нем через свойство val. Это позволяет при необходимости установить новое значение свойству и таким образом передать изменения обратно. Например:
function РезультатВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
{
СтандартнаяОбработка.val = false // Устанавливаем новое значение
var mdobj = ВыбраннаяСтрока.val.mdobj // Обращаемся к значению
Портирован полностью. Также добавлено несколько новых методов.
Содержит ссылку на объект IHotKeys - менеджер горячих клавиш. Позволяет добавлять/удалять хоткеи.
Портирован полностью
Позволяет получить доступ к конкретному глобальному контексту.
Синтаксис:
var gc = globalContext(ГУИДконтекста)
Параметры:
- ГУИДконтекста. Обязательный. Строка. Содержит guid, задающий глобальный контекст, который желаем получить.
Возвращает объект, чьи методы и свойства представляют часть глобального контекста 1С.
Если открыть синтакс-помощник и в нем раздел "Глобальный контекст" (и "Системные перечисления") - мы увидим целую кучу
разнообразных функций и свойств, типа Сообщить
, Вопрос
, КодВозвратаДиалога
и т.п.
На самом деле в движке 1С нет глобальный функций и свойств. Есть специальные типы объектов, которые
создаются при запуске 1С в режиме предприятия в единственном экземпляре, чьи методы и свойства становятся
доступными глобально. То есть например, встретив Сообщить
, 1С будет перебирать все такие созданные объекты,
пока не найдет тот, в котором есть такой метод, и вызовет его. Метод globalContext пытается создает объект, чей
guid передали и вернуть ссылку на него.
Откуда брать эти guid'ы и кто за что отвечает? Надо просто посмотреть файл core\std\scripts\0_global_context.js
.
Там перечислены guid'ы всех таких объектов, их методы и свойства, а также dll, в которых
они реализованы. Проверить сразу все из них на возможность работы в Конфигураторе нереально, поэтому
по мере сил и нужд проверяются отдельные из них, что и отражается в этом скрипте.
Поэтому сейчас обычно скриптописатели не используют этот метод сам по себе, а подключают все проверенные глобальные контексты разом. Для этого в начале скрипта пишут:
$addin global
...
global.connectGlobals(SelfScript)
Здесь происходит сразу получение всех проверенных глобальных объектов 1С и подключение их к глобальному
пространству имен скрипта, т.е. после этих строк вполне можно писать как в самой 1С Сообщить
, Вопрос
,
ЗначениеВСтрокуВнутр
и т.п.
Не портирован
Выводит в окно сообщений список всех возможных guid'ов глобальных объектов, их методы/свойства.
Синтаксис:
listGlobalContextes()
Метод используется только в исследовательских целях, для работы над файлом global.js.
Портирован частично, без указания подкоманды. Поэтому некоторыми командами воспользоваться еще нельзя
Позволяет получить состояние команды.
Синтаксис:
state = getCmdState(гуидГруппы, номерКоманды, [ПодномерКоманды])
Параметры:
- гуидГруппы. Обязательный. Строка. GUID группы команд.
- номерКоманды. Обязательный. Число. Номер команды в группе.
- [ПодномерКоманды]. Необязательный. Число. Номер подкоманды в списке.
Возвращает: объект ICmdUpdateResult, содержащий информацию о состоянии команды.
Что такое команды? Это все действия, запускающиеся пунктом меню, кнопкой на панели инструментов, горячей кнопкой. В старом-добром WinAPI в этих случаях посылалось сообщение WM_COMMAND с укзанием номера команды. В 1С конечно же не ищут легких путей, поэтому там разработана своя объектная система для посылки команд и их идентификации.
Все команды в 1С делятся на группы, которые характеризуются GUID'ом. Каждая команда имеет свой номер внутри группы. Часть команд может представлять не один, а несколько разных пунктов меню, связанных друг с другом. Обычно это подменю с выбором из нескольких однотипных вариантов.
Существует несколько путей прохождения и обработки команд.
- Команда может посылаться в главное окно, которое перенаправляет ее в активное окно. Обычно это команды главного меню, панелей команд главного окна, команды контекстного меню.
- Может посылаться в конкретное окно. Обычно это команды панели инструментов в форме.
- И может посылаться в конктретное окно и конкретный элемент управления. Это обычно команды панелей инструментов, связанных с конкретными элементами формы, и управляющие ими, например с командами "Добавить", "Сортировать" какого-либо табличного поля.
Команда может иметь состояние - доступна ли она сейчас, найдется ли для нее обработчик, задаваемый для команды текст и т.п.
В силу того, что пути прохождения команд открывались мной не сразу, а по мере углубления исследований, методы для работы с разными вариантами обработки команд несколько разбросаны по SnegAPI. Данный метод проверяет состояние команды, пропуская ее через обработчик команд главного окна.
Так как помнить и работать с guid'ами иномерами команд трудно, был создан скрипт core\std\scripts\2_commands.js
.
Он содержит описания групп и состава найденных команд, создает объектную "обертку" вокруг команд для более
удобной работы, а также автоматически создает макросы для посылания этих команд в главное окно (чтобы можно было
назначить для них хоткеи). Кроме того, он объединяет в одной объектной модели разбросанные по SnegAPI методы
работы с командами (помните, что я говорил о "кирпичиках" SnegAPI?). С помощью этого скрипта работать с командами
становиться проще. В начале скрипта подключаем аддин:
$addin stdcommands
Затем можем использовать:
// Сохраним конфигурацию
stdcommands.Config.Save.send()
...
// Узнать, открыта ли конфигурация
function isConfigOpen()
{
var s = stdcommands.Config.Close.getState()
return s && s.enabled
}
Портирован частично, без указания подкоманды. Поэтому некоторыми командами воспользоваться еще нельзя
Посылает команду в главное окно 1С.
Синтаксис:
sendCommand(гуидГруппы, номерКоманды, [ПодномерКоманды])
Параметры:
- гуидГруппы. Обязательный. Строка. GUID группы команд.
- номерКоманды. Обязательный. Число. Номер команды в группе.
- [ПодномерКоманды]. Необязательный. Число. Номер подкоманды в списке.
Возвращает: Истина, если команда обработана, иначе Ложь.
Данный метод позволяет запустить выполнение какой-либо команды, как если бы ее нажал пользователь. Подномер команды используется для команд, состоящих из списка пунктов. Например, это команды для открытия одного из последних файлов. Тогда в методе getCmdState можно получить весь список подкоманд, и указать, который из них открывать.
Портировано полностью
Чтение и запись. Включает и выключает трассировку команд. Применяется в исследовательских целях. При включении перехватывает прохождение всех команд, посылаемых в главное окно, и выводит в окно сообщений информацию о проходящей команде. Именно этим методом и был создан список команд в скрипте commands.js.
Портировано полностью
Только чтение. Строка с номером версии Снегопата.
Портировано полностью
Только чтение. Строка с номером версии релиза 1С.
НОВОЕ
Только чтение. Версия релиза 1С в виде 64битного значения, где под каждую часть номера отводится 16 бит.
НОВОЕ
Только чтение. Путь к папке расположения snegopat.dll, с завершающим слэшем.
Портировано частично. Свойство есть, но еще не все методы работают.
Только чтение. Содержит объект ISnegopat.
Портировано полностью
Вызывает сохранение настроек 1С.
Синтаксис:
saveProfile();
1С сохраняет свои настройки только при завершении работы. В случае краха программы изменения настроек остаются несохраненными. Метод позволет принудительно сохранить их.
Портировано полностью
Только чтение. Содержит объект IEventConnector, позволяющий организовать подписку на события. Служит для замены стандартного для OLE-Automation интерфейса IConnectionPoint, т.к. тот не так гибок, как хотелось бы.
Портирован полностью
Создает таймер, вызывающий заданную функцию через заданный временнОй промежуток.
Синтаксис:
createTimer(Интервал, Объект, [Обработчик] = "")
Параметры:
- Интервал. Обязательный. Число. Количество миллисекунд для срабатывания таймера.
- Объект. Обязательный. Задает объект, среди методов которого ищется функция-обработчик.
- Обработчик. Не обязательный. Строка. Название метода объекта, который будет вызван при срабатывании таймера. Если передана пустая строка, будеть вызван метод объекта "по умолчанию", т.е. с номером 0.
Возвращает: Число, идентификатор созданного таймера.
Портирован полностью
Уничтожает таймер.
Синтаксис:
killTimer(НомерТаймера);
Параметры:
- НомерТаймера. Обязательный. Число. Идентификатор таймера, который был вернут методом createTimer.
Портирован полностью
Позволяет узнать больше о значении из 1С.
Синтаксис:
res = toV8Value(Значение)
Параметры:
- Значение. Обязательный. Любой. Значение, информацию о котором желаем получить.
Возвращает: объект IV8Value, позволяющий получить информацию о значении.
Хотя 1С и заточена для работы с COM, и любое значение из 1С может быть преобразовано в тип, поддерживаемый OLE-Automation, преобразование сделано простым, и многая информация о значении недоступна. Имея COM-объект, невозможно узнать, какого типа 1С этот объект, получить его строковое представление. Чтобы обойти это ограничение, был создан объект IV8Value, который получая COM-значение, преобразует его обратно в значение 1С и предоставляет информацию о нем.
Портировано частично. Не все методы реализованы
Только чтение. Содержит объект IV8Windows, содержащий методы для работы с оконной подсистемой 1С.
портировано полностью
Только чтение. Содержит объект IV8MetaData, содержащий методы для работы со всеми открытыми в 1С метаданными.
портировано
Только чтение. Содержит объект IV8Files, содержащий методы для работы с файлами через движок 1С.
портировано
Загружает строку из ресурсных файлов 1С.
Синтаксис:
res = loadResourceString(ИмяМодуля, ИдентификаторСтроки);
Параметры:
- ИмяМодуля. Обязательный. Строка. Задает имя ресурсного файла (без расширения), из которого надо получить строку.
- ИдентификаторСтроки. Обязательный. Строка. Задает идентификатор строки в ресурсном файле.
Вся локализация интерфейса в 1С построена на системе ресурсных файлов (смотри Работа с ресурсными файлами 1С).
Файлы в том числе содержат и строковые константы, задающие различные сообщения и прочие элементы интерфейса.
Данный метод позволяет получить строку по имени модуля и ее идентификатору в модуле, в активной локали интерфейса 1С.
Например:
loadResourceString("config", "IDS_AFTERLOADIBBAD")
Вернет "Информационную базу загрузить не удалось."
при запуске 1С в русском интерфейсе, и
"Couldn't restore the Infobase."
при запуске 1С в английском интерфейсе.
Портировано полностью
Только чтение. Строка, содержащая название владельца данной копии snegopat.dll, как оно появляется в сплеш-заставке.
Не портировано
Только чтение. Содержить объект IV8Debugger, позволяющий немного взаимодействовать с отладчиком 1С.
Портировано полностью
Вызывается при выводе текста в окно сообщений.
Параметры обработчика:
-
Объект IMessageParams. Содержит информацию о выводимом сообщении. Свойства объекта:
- text. Только чтение. Содержит текст сообщения.
- marker. Только чтение. Число, номер маркера сообщений, описание смотри в методе Message.
- cancel. Чтение и запись. Булево. При установке в true подавляет вывод текста в окно сообщений.
Портировано полностью
Вызывается перед попыткой закрытия приложения. Позволяет отменить закрытие.
Параметры обработчика:
-
Объект IParamsWrapper. Свойства объекта:
- val. Чтение и запись. Булево. При установке в true позволяет отменить закрытие приложения.
Портировано полностью
Вызывается при закрытии приложения. Параметров нет.
Портировано полностью
Вызывается при загрузке аддина.
Параметры обработчика:
- Объект IAddin. Содержит информацию о загруженном аддине.
Портировано полностью
Вызывается при выгрузке аддина.
Параметры обработчика:
- Объект IAddin. Содержит информацию о выгружаемом аддине.
Портировано полностью
Вызывается при "простое" программы, т.е. когда все сообщения из очереди событий обработаны. Параметров нет. Позволяет организовать выполнение каких-либо в как-бы фоновом режиме.
портировано
Вызывается при открытии диалога выбора файлов.
Параметры обработчика:
- Объект ISelectFileData. Содержит информацию об открываемом диалоге.
При вызове обработчиков этого события перехват с открытия диалога выбора файлов снимается, и в обработчике можно пользоваться этим диалогом, не опасаясь зацикливания.
портировано полностью
Возникает при создании окна текстового редактора. Позволяет подключится к этому окну альтернативным редакторам.
Параметры:
- Объект ITextWindow - создаваемы текстовый редактор.
Портировано полностью
Объект предназначен для организации системы работы с событиями, позволяет одним объектам реагировать на события, порожденные другим объектом, подписываясь и отписываясь в любое время на любое из них. Служит для замены стандартного для OLE-Automation интерфейса IConnectionPoint.
Событие всегда характеризуется объектом - источником события и именем события. При подписке и отписке указывается объект - приемник события и имя метода - обработчика события этого объекта. На каждое событие может быть подписано несколько обработчиков. Все они выполняются в порядке подписки. Имя события - регистроНЕзависимое (в отличии от прошлого API). Пример подписки на событие:
function onIdle()
{
.....
}
events.connect(Designer, "onIdle", SelfScript.self)
В Snegopat-Reborn можно при подписке на событие указывать имя метода-обработчика, как "-". В этом случае у объекта-обработчика не ищется метод по его имени, а вызывается метод "по умолчанию", т.е. номером 0. Для объектов-функций JScript - это непосредственно вызов функции. Таким образом, можно подписчиком можно указать сразу анонимную "inplace" функцию, указав имя обработчика, как "-":
connect(Designer, "onIdle", function() {doIdleWork()}, "-");
Кроме того, методы connect и addCommandHandler теперь возвращают объект, описывающий подписку на событие. У него можно при желании поменять объект-обработчик и имя метода. При отписке можно в методе disconnectNode указать этот объект, не используя старый метод отписки с указанием объекта-обработчика и имени метода.
Портировано полностью
Позволяет подписаться на событие.
Синтаксис:
events.connect(ОбъектИсточник, ИмяСобытия, ОбъектПриемник, [ИмяОбработчика])
Параметры:
- ОбъектИсточник. Обязательный. Объект (IDispatch). Ссылка на объект, которой порождает событие.
- ИмяСобытия. Обязательный. Строка. Имя события.
- ОбъектПриемник. Обязательный. Объект (IDispatch). Ссылка на объект, который содержит обработчик события.
- [ИмяОбработчика]. Необязательный. Строка. Название метода в объекте-приемнике, который будет обработчиком события. Если не указан, то считается совпадающим с именем события. Если указан "-", то вызывается метод объекта "по умолчанию", т.е. с номером 0.
Возвращает: объект HandlerNode, описывающий подписку.
Портировано полностью
Позволяет отписаться от события.
Синтаксис:
events.disconnect(ОбъектИсточник, ИмяСобытия, ОбъектПриемник, [ИмяОбработчика])
Параметры:
- ОбъектИсточник. Обязательный. Объект (IDispatch). Ссылка на объект, которой порождает событие.
- ИмяСобытия. Обязательный. Строка. Имя события.
- ОбъектПриемник. Обязательный. Объект (IDispatch). Ссылка на объект, который содержит обработчик события.
- [ИмяОбработчика]. Необязательный. Строка. Название метода в объекте-приемнике, который будет обработчиком события. Если не указан, то считается совпадающим с именем события.
Среди подписок на события ищется та, которая полностью совпадает с переданными аргументами, и удаляется из списка подписок.
НОВОЕ
Позволяет отписаться от события.
Синтаксис:
events.disconnectNode(ОбъектПодписки)
Параметры:
- ОбъектПодписки. Обязательный. Объект HandlerNode, возвращенный в методах connect и addCommandHandler.
Удаляет указанную подписку на событие.
Портировано полностью
Генерирует событие.
Синтаксис:
events.fireEvent(ОбъектИсточник, ИмяСобытия, [Дополнительные параметры события...]);
Параметры:
- ОбъектИсточник. Обязательный. Объект (IDispatch). Ссылка на объект, которой порождает событие.
- ИмяСобытия. Обязательный. Строка. Имя события.
- [Дополнительные параметры события...]. Необязательные параметры любого типа и количества. Все они будут переданы как аргументы подписчикам - обработчикам события.
При вызове этого метода у всех объектов-подписчиков, которые указали этот объект и имя события
в методе connect
будут вызваны их методы - обработчики. При вызове им будут переданы в качестве
аргументов все дополнительные параметры, указанные при вызове fireEvent
.
Вообще с помощью этого механизма можно организовывать не только реагирование на события SnegAPI, но и свои события и оповещения. Генератору события достаточно вызвать fireEvent, и все подписчики на это событие будут оповещены.
НОВОЕ
Отписывает всех подписчиков объекта. Синтаксис:
events.removeMyListeners(ОбъектИсточник);
Параметры:
- ОбъектИсточник. Обязательный. Объект (IDispatch). Ссылка на объект - источник событий.
Удаляет из списка все подписки на все события этого объекта-источника.
Портировано полностью
Позволяет подписаться на срабатывание команды, посылаемой в главное окно.
Синтаксис:
events.addCommandHandler(ГУИДКоманды, НомерКоманды, ОбъектОбработчик, ИмяОбработчика);
Параметры:
- гуидГруппы. Обязательный. Строка. guid, задающий группу команд.
- НомерКоманды. Обязательный. Число. Номер команды в группе.
- ОбъектОбработчик. Обязательный. Объект (IDispatch). Задает объект, чей метод будет обработчиком.
- ИмяОбработчика. Обязательный. Строка. Имя метода, который будет вызваться. Если указан "-", то вызывается метод объекта "по умолчанию", т.е. с номером 0.
Возвращает: объект HandlerNode, описывающий подписку.
О командах и их обработке можно прочитать здесь.
Можно подписаться на срабатывание команды, посылаемой в главное окно. Неважно, как она будет активирована - программно, или пользователем - обработчик сработает. Обработчик может выполнить какие-либо действия при своем вызове, вплоть до отмены прохождения команды в стандартный обработчик 1С. Обработчик должен принимать один аргумент. В него будет передан объект ICmdHandlerParam, который передает информацию о сработавшей команде.
Портировано полностью
Удяляет обработчик команды, установленной методом addCommandHandler.
Синтаксис:
events.delCommandHandler(ГУИДКоманды, НомерКоманды, ОбъектОбработчик, ИмяОбработчика);
Параметры:
- гуидГруппы. Обязательный. Строка. guid, задающий группу команд.
- НомерКоманды. Обязательный. Число. Номер команды в группе.
- ОбъектОбработчик. Обязательный. Объект (IDispatch). Задает объект, чей метод будет обработчиком.
- ИмяОбработчика. Обязательный. Строка. Имя метода обработчика.
Портировано полностью
Этот объект передается как аргумент при вызове обработчика команды, установленного методом addCommandHandler. Сам обработчик вызывается дважды - один раз перед передачей команды в стандартный обработчик 1С. Если команда не была отменена, обработчик вызывается еще один раз после штатной обработки команды.
Портировано полностью
Только чтение. Строка, содержащая guid группы команды.
Портировано полностью
Только чтение. Число, номер команды в группе.
Портировано полностью
Только чтение. Число, параметр, передаваемый с командой.
Портировано полностью
Только чтение. Булево. При первом вызове обработчика (до срабатывания команды) установлено в true. При вызове после срабатывания установлено в false.
Портировано полностью
Чтение и запись. Булево. При вызове обработчика до срабатывания команды установка свойства в true позволяет отменить стандартную обработку команды (заблокировать ее).
портирован
Объект этого типа передается как параметр в обработчик события Designer.onSelectFile. Позволяет получить и установить информацию об открываемом диалоге выбора файлов.
Только чтение. Число. Показывает, в каком режиме открывается диалог.
- sfOpen = 0, Открытие файла
- sfSave = 1, Сохранение файла
- sfFolder= 2, Выбор каталога
Только чтение. Число. Содержит флаги открытия диалога:
- sfMultiSelect = 1, Множественный выбор
- sfPromptCreate = 2, Предупреждать при создании файла
- sfFileMustExist = 4, Выбирать только существующий файл
- sfDisableChangeDir = 8, Не менять каталог
- sfPromptOverwrite = 16, Предупреждать при перезаписи
- sfUsePreview = 32, Использовать просмотр
Только чтение. Число. Содержит количество фильтров в диалоге открытия файлов.
Позволяет получить описание фильтра по его индексу.
Синтаксис:
res = filterDesc(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер фильтра, начиная с 0.
Возвращает: строку с описанием указанного фильтра. Например, "Все файлы".
Позволяет получить значение фильтра (маску) по его номеру.
Синтаксис:
res = filterVal(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер фильтра, начиная с 0.
Возвращает: строку с маской фильтра.
Чтение и запись. Число. Позволяет получить и установить номер выбранного фильтра.
Только чтение. Строка. Содержит расширение файла по-умолчанию.
Только чтение. Строка. Содержит начальное имя файла.
Чтение и запись. Строка. Содержит начальный каталог.
Чтение и запись. Строка. Позволяет прочитать/установить заголовок диалога выбора файлов.
Только чтение. Число. Содержит количество выбранных файлов.
Позволяет получить имя одного из выбранных файлов по его номеру.
Синтаксис:
selectedFile(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер выбранного файла, начиная с 0.
Возвращает: строку, имя файла.
Добавляет путь к файлу в список выбранных файлов.
Синтаксис:
addSelectedFile(ПолныйПуть)
Параметры:
- ПолныйПуть. Обязательный. Строка. Полный путь к добавляемому файлу.
Чтение и запись. Число. Позволяет задать результат диалога.
- sfrNormal = 0, использовать обычное открытие диалога.
- sfrSelected = 1, не открывать диалог, вернуть, что пользователь нажал Ок.
- sfrCanceled = 2, не открывать диалог, вернуть, что пользователь нажал Отмена.
портировано
Для работы с метаданными в режиме предприятия есть объект Метаданные. Он также работает и в режиме конфигуратора, но только с метаданными ИБ. Кроме того, возможности штатного объекта ограниченны и не предоставляют всей полноты информации о метаданных. Поэтому в SnegAPI сделана своя модель работы с метаданными.
Что же из себя они представляют?
Вкратце метаданные - это дерево из объектов метаданных.
Каждый объект относится к определенному классу метаданных, имеет набор собственных свойств,
а также несколько видов дочерних объектов.
Класс объекта метаданных задает, какие виды свойств имеет этот объект и какие виды дочерних объектов.
Например, возьмем объект метаданных какого-либо справочника. Он относится к классу Справочники
.
Данный класс указывает, что у справочника имееются такие-то свойства (Иерархический
, ДлинаКода
,
МодульОбъекта
и т.п.), и следующие виды дочерних объектов: Реквизиты
, ТабличныеЧасти
, Формы
,
Команды
, Макеты
. Конкретные значения свойств и состав дочерних объектов задаются уже в
каждом конкретном объекте метаданных.
У каждого объекта метаданных имеется уникальный идентификатор (guid), а также набор свойств. Свойства - это то, мы видим в окне свойств, активировав объект в дереве метаданных. Обратите внимание, что непосредственно сами модули, формы, макеты - это тоже свойства объекта метаданных, а не дочерние объекты. Каждый класс метаданных и каждый вид свойств также имеет свой собственный уникальный идентификатор (guid).
Сами метаданные организованы в контейнер метаданных. Он задает корневой объект, систему типов,
порожденных этими метаданными, название контейнера и т.д. Если сравнивать с v77, то там был
только один, глобальный контейнер метаданных, то есть по сути, было только одно дерево.
В 8ке это не так. Имеется контейнер с метаданными конфигурации базы данных, метаданными
основной конфигурации, каждая внешняя обработка/отчет и каждый открываемый cf-файл
имеют свое дерево метаданных.
SnegAPI содержит методы, позволяющие перебрать все доступные в данный момент контейнеры
метаданных. Каждый контейнер может быть подчинен другому, master контейнеру. Обычно это
внешние отчеты/обработки, их метаданные подчинены основным метаданным.
Для каждого объекта метаданных можно получить его "внутреннее" представление, то есть те данные, в виде которых 1С хранит этот объект метаданных. Это "штатный" 1Совский список с фигурными скобочками. Если внимательно присмотреться к этим данным, то видно, что часть свойств объекта хранится непосредственно в них (обычно это свойства из простых значений - строка, число, перечисление и т.п.), а часть свойств отсутствует, и хранится в контейнере метаданных отдельно, в виде отдельного файла. Это обычно сложные свойства, вроде модулей, макетов, форм. Поэтому свойства разделяются на "внутренние" и "внешние". Внутренние можно получить как одно значение, внешние получить в виде файла, либо открывать для редактирования.
Корнем доступа ко всем метаданным является свойство Designer.metadata, имеющее тип IV8MetaData. Через него можно перебрать все метаданные, открытые в конфигураторе.
портирован полностью
Предназначен для получения открытых в конфигураторе контейнеров метаданных, а также получения классов метаданных и видов свойств объектов.
Только чтение. IV8MDContainer. Содержит контейнер с метаданными конфигурации базы данных.
Только чтение. IV8MDContainer. Содержит контейнер с текущими активными метаданными. Если конфигурация открыта, возвращает контейнер метаданных основной конфигурации, если закрыта, возвращает метаданные конфигурации базы данных.
Получить класс метаданных по их guid'у.
Синтаксис:
res = metadata.mdClass(гуидКласса)
Параметры:
- гуидКласса. Обязательный. Строка. Содержит guid класса метаданных.
Возвращает: объект IV8MDClass с описанием класса метаданных.
Получить вид свойства метаданных по их guid'у.
Синтаксис:
res = metadata.mdProp(гуидВидаСвойств)
Параметры:
- гуидВидаСвойств. Обязательный. Строка. Содержит guid вида свойств метаданных.
Возвращает: объект IV8MDProperty с описанием вида свойств метаданных.
Только чтение. Число. Количество открытых в Конфигураторе контейнеров метаданных.
Получить контейнер метаданных по индексу.
Синтаксис:
res = metadata.getContainer(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер контейнера, начиная с 0.
Возвращает: объект IV8MDContainer - указанный контейнер метаданных.
портировано полностью
Возникает при изменениях в метаданных. Снегопат сам не отслеживает редактирование матеданых, а только перехватывает внутренние оповещения 1С об изменениях метаданных. Так что я не могу изменить состав событий и добавлять какие-либо еще оповещения.
Параметры:
- Объект IV8MetaDataEvent
портировано полностью, добавлено свойство parentObj
Содержит информацию о событии метаданных.
Только чтение. Число, перечисление MetaDataEvents. Содержит вид произошедшего события:
- mdeAdd = 0, Добавление объекта метаданных
- mdeChangeProp = 1, Изменение свойства объекта метаданных
- mdeDelete = 2, Удаление объекта метаданных
- mdeChange = 3, Изменение объекта метаданных
- mdeSave = 4, Перед сохранением метаданных
- mdeClose = 5, Закрытие контейнера метаданных
- mdeAfterSave = 6, После сохранения метаданных
- mdeOpen = 7, Открытие контейнера метаданных
Только чтение. Булево. Флаг опроса возможности события.
Для некоторых изменений метаданных 1С сначала посылает событие с установленным флагом request. Если кто-то из подписчиков установит result в false, изменение отменяется.
Чтение и запись. Булево. Позволяет отменить событие, при установленном флаге request.
Только чтение. Объект IV8MDContainer. Указывает контейнер метаданных, к которому относится событие.
Только чтение. Объект IV8MDObject. Показывает объект метаданных, к которому относится событие. Может быть null.
Только чтение. Объект IV8MDObject. Показывает родительскй объект метаданных, к которому относится событие. Может быть null.
Только чтение. Объект IV8MDProperty. Показывает свойство объекта метаданных, к которому относится событие. Может быть null.
портирован полностью
Контейнер одного дерева метаданных.
Только чтение. IV8MDObject. Корневой объект метаданных, узел "Конфигурация". С него можно начинать перебор всех метаданных.
портировано
Позволяет получить все типы прикладных объектов, порожденные этим деревом метаданных.
Синтаксис:
res = container.typeList(гуидКатегорииТипов, Язык)
Параметры:
- гуидКатегорииТипов. Обязательный. Строка. Содержит guid, задающий категорию типов, которые мы желаем получить. Если передана пустая строка, возвращает все возможные типы.
- Язык. Обязательный. Число. На каком языке возвращать названия типов. 0 - английский, 1 - русский.
Возвращает: array, содержащий объекты IV8TypeInfo, описывающие типы.
Дело в том, что в режиме конфигуратора 1С не регистрирует в своей системе типов те типы,
которые порождены метаданными (для ясности это к примеру такие как: СправочникСсылка.ХХХ,
ДокументОбъект.ХХХ и т.п.). И получить для них объект ОписаниеТипов не получается.
Однако можно получить guid какого-либо типа и найти его в этом массиве по guid.
Примеры использования можно найти в файлах scripts\code_gen\gen_mgr.js
и
scripts\code_gen\create_doc.js
.
Только чтение. IV8MDContainer. Содержит ссылку на контейнер-владелец этого контейнера. Заполнено для внешних отчетов/обработок.
Только чтение. Булево. Содержит признак измененности метаданных в этом контейнере.
Чтение и запись. Булево. Позволяет получить/установить видимость дерева метаданных этого контейнера.
Позволяет найти объект метаданных по его идентификатору.
Синтаксис:
mdObj = container.findByUUID(Идентификатор)
Параметры:
- Идентификатор. Обязательный. Строка. Содержит guid, идентификатор объекта метаданных.
Возвращает: объект IV8MDObject с указанным идентификатором, если он найден, иначе null.
Найти объект метаданных по идентификатору порожденного им типа.
Синтаксис:
mdObj = container.findByTypeUUID(ИдентификаторТипа)
Параметры:
- ИдентификаторТипа. Обязательный. Строка. Содержит guid, идентификатор типа, порожденного объектом метаданных.
Возвращает: объект IV8MDObject, который образовал тип с указанным идентификатором, если он найден, иначе null.
Некоторые объекты метаданных порождают различные прикладные типы. Например, справочник порождает типы: СправочникОбъект.ХХХ, СправочникСсылка.ХХХ, СправочникМенеджер.ХХХ, СправочникСписок.ХХХ и т.п. Но так как при работе в конфигураторе типы прикладных объектов не регистрируются в системе типов 1С, вместо самих типов мы всегда получаем только их идентификаторы - guid'ы. Этот метод позволяет имея гуид типа, найти объект, который его породил.
Только чтение. Строка. Название контейнера метаданных, как оно отображается в различных
сообщения конфигуратора. Например, "Основная конфигурация"
, Конфигурация базы данных
.
Для внешних отчетов и обработок, а также открытых cf-файлов это обычно имя файла.
портирован полностью
Содержит информацию о прикладном типе, порожденному объектом метаданных.
Только чтение. Строка. Имя типа.
Только чтение. Строка. Идентификатор типа.
Только чтение. Число. Ключ упорядочивания, используемый 1С при показе списка типов.
Только чтение. Число. Второй ключ упорядочивания, используемый 1С при показе списка типов.
Только чтение. Объект Картинка. Пиктограмма типа.
портирован частично, добавлен метод isSame
Представляет объект метаданных.
портировано
Только чтение. Строка. Содержит guid - идентификатор объекта метаданных.
портировано
Только чтение. IV8MDClass. Класс метаданных объекта.
портировано
Только чтение. IV8MDObject. Содержит родительский объект метаданных.
НОВОЕ
Позволяет сравнить, ссылаются ли два объекта IV8MDObject на один и тот же реальный объект метаданных.
Синтаксис:
mdObj.isSame(ДругойОбъект)
Параметры:
- ДругойОбъект. Обязательный. IV8MDObject. Другой объект метаданных.
Возвращает: true - два объекта ссылаются на один реальный объект метаданных.
портировано
Позволяет получить свойство объекта метаданных в виде значения.
Синтаксис:
prop = mdObj.property(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: значение свойства.
Следует учесть, что для внешних свойств метод малополезен, всегда возвращается одно и то же значение для всех объектов и свойств. Также стоит понимать, что не все типы значений 1С имеют адекватное отображение в COM-типы, и для дальнешей с ними работы надо либо использовать метод toV8Value, либо работать с внутренним представлением значения через ЗначениеВСтрокуВнутр.
портировано
Позволяет установить значение свойства объекта метаданных.
Синтаксис:
setProperty(ИндексСвойства, Значение)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
- Значение. Обязательный. Любого типа.
Возвращает: Булево. Удалось ли успешно установить свойство.
Следует учесть, что большинство типов значений нет в COM, и создать их можно только через v8New или ЗначениеИзСтрокиВнутр. Также надо понимать, что значения внешних свойств здесь также не поменять, у них надо менять их файлы.
портировано
Позволяет получить количество дочерних объектов указанного вида.
Синтаксис:
res = mdObj.childObjectsCount(ВидОбъектов)
Параметры:
- ВидОбъектов. Обязательный. Строка или Число. Указывается либо номер вида дочерних объектов, начиная с 0, либо гуид вида, либо его название.
Возвращает: Число. Количество дочерних объектов заданного вида.
Пример, узнать сколько у объекта есть табличных частей:
var count = mdObj.childObjectsCount("ТабличныеЧасти")
портировано
Позволяет получить дочерний объект заданного вида по его индексу.
Синтаксис:
child = md.childObject(ВидОбъектов, Индекс)
Параметры:
- ВидОбъектов. Обязательный. Строка или Число. Указывается либо номер вида дочерних объектов, начиная с 0, либо гуид вида, либо его название.
- Индекс. Обязательный. Строка или Число. Указывается либо номер дочернего объекта, начиная с 0, либо гуид дочернего объекта, либо его название.
Возвращает: IV8MDObject. Указанный дочерний объект.
Пример:
// Получить первый документ основной конфигурации
var mdDoc = metadata.current.rootObject.childObject("Документы", 0)
// Получить справочник по имени
var mdRef = metadata.current.rootObject.childObject("Справочники", "Номенклатура")
портировано
Только чтение. IV8MDContainer. Контейнер метаданных, к которым принадлежит объект.
портировано
Активирует объект метаданных в дереве метаданных.
Синтаксис:
mdObj.activateInTree()
При вызове метода заданный объект стает активным в окне - дереве метаданных, фокус переключается в дерево.
портировано
Позволяет открыть для редактирования свойство объекта метаданных.
Синтаксис:
mdObj.editProperty(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: объект IV8View, окно редактора свойства.
Метод применяется для открытия редактора внешнего свойства - модулей, форм, макетов и т.п. Например:
// Открыть модуль обычного приложения:
metadata.current.rootObject.editProperty("МодульОбычногоПриложения")
портировано
Позволяет открыть для редактирования сам объект, как если бы мы выбрали пункт меню "Изменить (F2)" в окне
конфигурации.
Синтаксис:
mdObj.openEditor()
портировано
Только чтение. Строка. Имя объекта метаданных. Хотя оно и доступно через property("Имя")
,
для удобства сделано отдельным свойством.
портирован
Позволяет получить гуиды типов этого объекта метаданных, если объект имеет тип. Синтаксис:
t = mdObj.types()
Возвращает: array, содержащий строки-гуиды: идентификаторы типов этого объекта.
портировано
Позволяет получить синоним объекта метаданных.
Синтаксис:
s = mdObj.synonym(КодЯзыка)
Параметры:
- КодЯзыка. Обязательный. Строка. Содержит код языка, для которого надо получить синоним. Например, "ru", "en" и т.д.
Возвращает: Строка. Синоним объекта для указанного языка.
портировано
Только чтение. Строка. Комментарий к объекту метаданных.
портировано
Позволяет узнать, содержит ли указанное свойство модуль.
Синтаксис:
mdObj.isPropModule(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: Булево. true, если указанное свойство содержит модуль, иначе false.
портировано
Позволяет получить текст модуля свойства.
Синтаксис:
text = mdObj.getModuleText(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: Строка. Текст модуля.
не портировано
Позволяет установить текст модуля свойства.
Синтаксис:
mdObj.setModuleText(ИндексСвойства, Текст)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
- Текст. Обязательный. Строка. Текст модуля.
портировано
Позволяет открыть редактор модуля.
Синтаксис:
editor = mdObj.openModule(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: объект ITextWindow, текстовый редактор модуля.
В отличии от метода editProperty
всегда открывает именно модуль (например для форм
переключается на вкладку модуля) и возвращает текстовый редактор модуля.
портирован
Позволяет узнать гуид вида внешнего свойства.
Синтаксис:
uid = mdObj.extPropUUID(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: Строка. Гуид вида внешнего свойства.
Объект может иметь внешние свойства разного вида, например, текстовый документ, табличный документ и т.п. По возвращаемому гуиду можно понять, что за вид внешнего свойства содержится в нем. Точных значений пока не приведу, эксперементируйте, выясняйте.
портирован
Позволяет получить внешнее свойство.
Синтаксис:
ep = mdObj.getExtProp(ИндексСвойства)
Параметры:
- ИндексСвойства. Обязательный. Строка или Число. Указывается либо номер свойства, начиная с 0, либо строка-гуид свойства, либо имя свойства.
Возвращает: объект IV8ExtProp, описывающий внешнее свойство объекта.
портирован
Позволяет сохранить внутреннее представление объекта метаданных в файл.
Синтаксис:
f = mdObj.saveToFile([Файл])
Параметры:
- [Файл]. Необязательный. Объект IV8DataFile, в который будет сохранен объект метаданных. Если не задан, будет создан файл в памяти.
Возвращает: Объект IV8DataFile, в который сохранился объект.
портирован
Позволяет загрузить содержимое объекта метаданных из файла.
Синтаксис:
mdObj.loadFromFile(Файл)
Параметры:
- Файл. Обязательный. Объект IV8DataFile, в котором находятся данные для загрузки.
Метод возможно нестабилен.
портировано
Только чтение. Картинка. Пиктограмма объекта метаданных.
не портировано
Только чтение. IObjectProperties. Содержит объект, позволяющий работать со свойствами объекта метаданных, отображаемыми в окне свойств.
портирован полностью
Объект содержит описание класса метаданных.
Только чтение. Строка. Содержит гуид - идентификатор класса метаданных.
Позволяет получить имя класса метаданных.
Синтаксис:
name = mdClass.name(НомерЯзыка, [МножественнаяФорма])
Параметры:
- НомерЯзыка. Обязательный. Число. 0 - английское название, 1 - русское.
- [МножественнаяФорма]. Необязательный. Булево. true - получить название во множественное форме, false - в единственной. По-умолчанию - false.
Возвращает: Строка. Название класса метаданных.
Позволяет получить представление класса метаданных.
Синтаксис:
p = mdClass.presentation([МножественнаяФорма])
Параметры:
- [МножественнаяФорма]. Необязательный. Булево. true - получить название во множественное форме, false - в единственной. По-умолчанию - false.
Возвращает: Строка. Представление класса метаданных.
Только чтение. Число. Количество свойств метаданных, которые имеет объект этого класса.
Позволяет получить описание свойства метаданных, принадлежащего классу, по его номеру.
Синтаксис:
propDef = mdClass.propertyAt(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер свойства, начиная с 0.
Возвращает: объект IV8MDProperty, описывающий свойство метаданных.
Только чтение. Число. Количество дочерних классов.
Позволяет получить дочерний класс метаданных по его номеру.
Синтаксис:
classDef = mdClass.childClassAt(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер дочернего класса, начиная с 0.
Возвращает: объект IV8MDClass, описывающий дочерний класс.
childsClassesCount
и childClassAt
позволяют создать универсальную процедуру для обхода
всех объектов дерева метаданных, чего нельзя сделать штатным объектом Метаданные.
Пример:
// Функция для обхода всех объектов метаданных, для каждого из них вызывается метод callback
function forAllMdObjects(root, callback)
{
callback(root)
var mdc = root.mdclass;
for(var i = 0; i < mdc.childsClassesCount; i++)
{
for(var chldidx = 0, c = root.childObjectsCount(i); chldidx < c; chldidx++)
forAllMdObjects(root.childObject(i, chldidx), callback)
}
}
// Собственно, сам вызов обхода. Например, нам надо показать все объекты, у которых непустой
// модуль менеджера. try используется потому что возникает исключение, если у объекта
// нет свойства МодульМенеджера, чтобы не проверять его наличие.
forAllMdObjects(metadata.current.rootObject, function(mdObj){
try{
if(mdObj.getModuleText("МодульМенеджера").length)
Message(mdObj.mdclass.name(1) + "." + mdObj.name)
}catch(e){}
})
портирован полностью
Содержит описание свойства объекта метаданных.
Только чтение. Строка. Содержит гуид - идентификатор свойства метаданных.
Позволяет получить название свойства метаданных.
Синтаксис:
name = mdPropDef.name(НомерЯзыка)
Параметры:
- НомерЯзыка. Обязательный. Число. 0 - английское название. 1 - русское.
Возвращает: Строка. Название свойства объекта метаданных.
Только чтение. Строка. Описание свойства объекта метаданных.
Только чтение. Строка. Категория свойства объекта метаданных.
портирован
Представляет внешнее свойство объекта метаданных. Внешние свойства объектов метаданных хранятся отдельно от самого объекта, в виде дополнительного файла. Не стоит воспринимать этот файл как отдельный файл на диске, в 1С поддерживется свой формат файлов-контейнеров (*.cf), которые внутри сами представляют собой файловую систему, хранилище файлов. Подробнее о файлах в соответствующем разделе.
Чтобы понять, что же хранится в этом файле, помогут свойства idData
и idEditor
.
Они задают вид объекта и вид редактора объекта. По ним можно определить, текстовый ли это документ,
или таблица, и т.д. Конкретных значений гуидов пока не приведу, нет под рукой.
// TODO - привести гуиды
Только чтение. Строка. Гуид вида данных, хранящихся во внешнем свойстве.
Только чтение. Строка. Гуид вида редактора внешнего свойства.
Только чтение. Строка. Содержит путь к файлу внешнего свойства.
Только чтение. Строка. Заголовок внешнего свойства.
Только чтение. Булево. Показывает, доступно ли редактирование свойства.
Позволяет сохранить внешнее свойство в файл.
Синтаксис:
extProp.saveToFile([Файл])
Параметры:
- [Файл]. Необязательный. Объект IV8DataFile, в который нужно сохранить данные. Если не указан, создается файл в памяти.
Возвращает: Объект IV8DataFile, в который сохранены данные.
Позволяет загрузить данные из файла во внешнее свойство.
Синтаксис:
extProp.loadFromFile(Файл)
Параметры:
- Файл. Обязательный. Объект IV8DataFile, из которого нужно загрузить данные.
Метод возможно работает нестабильно.
Позволяет получить внешнее свойство как объект 1С.
Синтаксис:
obj = extProp.getForm()
Возвращает: объект 1С.
Если внешнее свойство содержит объект, который можно преобразовать к значению 1С,
то вернет это значение. Применяется в основном для свойства Форма (для толстых форм,
будет вернут объект Форма), для свойства Макет (будет вернут соответствующий макету
объект - табличный документ, текстовый документ и т.п.).
И в дальнейшем можно работать уже с этим объектом. Аналог 1Сного ПолучитьМакет
.
Портирован частично
Содержит ряд методов и свойств для взаимодействия со Снегопатом.
Портировано
Позволяет получить текущее активное текстовое окно.
Синтаксис:
wnd = snegopat.activeTextWindow()
Возвращает: объект ITextWindow, представляющий текстовый редактор активного окна. Если активного текстового окна нет, возвращает null. При наличии открытого модального окна все-равно возвращает ссылку на редактор, так что в макросах лучше проверять текщий модальный режим.
Портировано полностью
Позволяет обработать текст штатным 1Сным процессором шаблонов.
Синтаксис:
text = snegopat.parseTemplateString(СтрокаШаблона, [ИмяШаблона])
Параметры:
- СтрокаШаблона. Обязательный. Строка. Содержит текст, который будет обработан.
- [ИмяШаблона]. Необязательный. Строка. Имя шаблона. Будет использоваться для диалогов ввода значений.
Возвращает: Строка. Текст, обработанный шаблонизатором 1С.
Метод позволяет программно использовать все те возможности, которые есть в "родных" шаблонах 1С. При этом не надо как в штатных шаблонах готовить и хранить их где-то заранее - текст для шаблона можно создать "на лету".
не портировано
Показывает снегопатовский список методов модуля.
Синтаксис:
snegopat.showMethodsList()
Возвращает: Булево. Открыт или нет список модуля.
Используется в макросах снегопата, для назначения сего действия на хоткей, по умоланию Ctrl + 1
.
не портировано
Открывает выпадающий список Снегопата.
Синтаксис:
snegopat.showSmartBox()
Возвращает: Булево. Открыт или нет список Снегопата.
Используется в макросах снегопата, для назначения сего действия на хоткей, по умоланию Ctrl + Alt + Пробел
.
не портировано
Открывает снегопатовскую подсказку о параметрах метода.
Синтаксис:
snegopat.showParams()
Возвращает: Булево. Открыта или нет подсказка.
Используется в макросах снегопата, для назначения сего действия на хоткей, по умоланию Ctrl + Shift + Пробел
.
не портировано
Позволяет переключить подсказку на следующий тип.
Синтаксис:
snegopat.nextParams()
Возвращает: Булево. Переключилось или нет.
Если подсказка о параметрах метода отображет методы для нескольких типов ([N из M]),
позволяет переключить ее на следующий тип.
Используется в макросах снегопата, для назначения сего действия на хоткей, по умоланию Alt + Вниз
.
не портировано
Позволяет переключить подсказку на предыдущий тип.
Синтаксис:
snegopat.prevParams()
Возвращает: Булево. Переключилось или нет.
Если подсказка о параметрах метода отображет методы для нескольких типов ([N из M]),
позволяет переключить ее на предыдущий тип.
Используется в макросах снегопата, для назначения сего действия на хоткей, по умоланию Alt + Вверх
.
не портировано
Позволяет получить список типов, для которых сейчас отображается подсказка о параметрах метода.
Синтаксис:
res = snegopat.paramsTypes()
Возвращает: COMSafeArray (VBArray), в котором перечислены названия типов.
не портировано
Позволяет получить экранные координаты подсказки о параметрах.
Синтаксис:
res = snegopat.paramsPosition()
Возвращает: объект ISelection, в котором перечислены экранные координаты окна подсказки о параметрах.
не портировано
Позволяет переключить подсказку о параметрах на нужный номер типа.
Синтаксис:
snegopat.setParamType(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер, на который нужно переключить подсказку, начиная с 0.
Возвращает: Булево. Переключилась или нет.
не портировано. И не будет, так как снегопат теперь сам сохраняет список слов
Позволяет получить список "горячих" слов списка снегопата.
Синтаксис:
res = snegopat.getHotWords()
Возвращает: COMSafeArray (VBArray), содержащий список "горячих" слов.
"Горячие" слова - это те, которые недавно выбирались из списка снегопата. Снегопат сортирует свой список не только по алфавиту, но и с учетом этого списка. Это позволяет часто-употребительным словам находится вначале списка и их гораздо проще выбирать в дальнейшем. Метод применяется для возможности сохранять этот список между сеансами работы в конфигураторе, чтобы не "накачивать" этот список каждый раз заново.
не портировано
Позволяет установить список горячих слов списка снегопата.
Синтаксис:
snegopat.setHotWords(МассивСлов)
Параметры:
- МассивСлов. Обязательный. COMSafeArray. Содержит список горячих слов для списка Снегопата.
Метод применяется в-основном для восстановления списка горячих слов, сохраненных в прошлом сеансе работы.
портировано полностью
Создает парсер текстов модулей 1С.
Синтаксис:
parser = snegopat.parseSources(ИсходныйТекст, [НомерНачальнойСтроки])
Параметры:
- ИсходныйТекст. Обязательный. Строка. Содержит код модуля.
- [НомерНачальнойСтроки]. Необязательный. Число. Содержит номер, который будет присвоен первой строке переданного текста. Полезно, когда вы парсите кусок модуля не с начала модуля. Тогда задав номер начальной строки, вы автоматом получите все номера строк, как в исходном модуле.
Возвращает: объект IV8Lexer, служащий для разбора текста модуля.
не портировано
Только чтение. Содержит объект IDescriptionArray, содержащий описания типов 1С из файла v8types.txt, массив ITypeDescription.
не портировано
Позволяет прочитать файл описания типов и добавить их к общему описанию типов.
Синтаксис:
snegopat.readTypeFile(ПутьКФайлу)
Параметры:
- ПутьКФайлу. Обязательный. Строка. Содержит путь к загружаемому файлу с описанием типов.
не портировано
Возникает при внесении изменений в текстовый редактор 1С.
Синтаксис:
onChangeTextManager(АдресБуфера, ВыделениеДо, ВыделениеПосле)
Параметры:
- АдресБуфера. Число. Адрес внутреннего объекта 1С TextManager.
- ВыделениеДо. Объект ISelection. Показывает область выделения текста перед изменением.
- ВыделениеПосле. Объект ISelection. Показывает область выделения текста после изменения.
не портировано
Возникает после обработки текста штатным процессором шаблонов 1С. Позволяет
внести дополнительные изменения в текст.
Синтаксис:
onProcessTemplate(ПараметрыШаблона)
Параметры:
- ПараметрыШаблона. Объект IProcessTemplateParam, содержащий параметры обрабатываемого шаблона.
не портировано
Возникает перед показом подсказки о параметрах метода. Позволяет модифицировать
состав подсказки о параметрах.
Синтаксис:
onShowParams(ПараметрыПодсказки)
Параметры:
- ПараметрыПодсказки. Объект IShowParamsData. Содержит информацию о подсказках и позволяет ее изменять.
не портировано
Вызывается в некоторых случаях перед вставкой текста из списка снегопата.
Позволяет изменить вставляемый текст.
Синтаксис:
onProcessInsert(ПараметрыВставки)
Парметры:
- ПараметрыВставки. Объект IGetInsertText. Содержит описание вставляемого текста.
не портировано
Служит для передачи параметров события onProcessTemplate
.
Только чтение. Строка. Имя шаблона
Только чтение. Строка. Оступ, который будет вставляться в каждой строке текста.
Чтение и запись. Строка. Содержит уже обработаный текст. Можно его изменять.
Чтение и запись. Булево. При установке в true - отменяет вставку шаблона.
не портировано
Этот объект является параметром события onShowParams
и содержит различную информацию о подсказе
о параметрах метода, которая сейчас должна показываться.
Через него можно из аддинов изменять ее состав - удалять лишние типы, добавлять
недостающие, переставлять их местами.
При показе подсказки снегопат определяет имя метода, для которого надо показать подсказку. Потом он ищет типы, в которых есть такой метод и составляет массив таких типов. В этот массив также добавляются и модули, в которых он нашел этот метод, за имя типа берется имя модуля. Из описаний метода в найденных типах и сигнатруры метода в найденных модулях и формируется подсказка. Если типов/модулей найдено несколько, подсказка показывает их по одному, позволяя листать их.
Пример использования этого объекта можно в скрипте scripts\choiseParamType.js
.
Только чтение. Строка. Содержит имя метода, для которого должна быть показана подсказка.
Только чтение. Строка. Содержит исходный код модуля от начала текущей процедуры/функции до места подсказки. Для облегчения анализа текста.
Только чтение. Число. Содержит количество типов, которые будут показаны в подсказке.
Позволяет получить имя типа по его номеру в списке.
Синтаксис:
name = param.typeName(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер в списке, начиная с 0.
Возвращает: Строка, имя типа.
Позволяет узнать, является ли тип с указанным номером модулем.
Синтаксис:
res = param.typeIsModule(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер в списке, начиная с 0.
Возвращает: Булево. Показывает, является ли тип с указанным номером модулем.
Позволяет переместить тип с одного места на другое.
Синтаксис:
param.move(Откуда, Куда)
Параметры:
- Откуда. Обязательный. Число. Номер в списке, начиная с 0, откуда следует переместить элемент списка.
- Куда. Обязательный. Число. Номер в списке, начиная с 0, куда следует переместить элемент списка.
Удаляет элемент из списка типов.
Синтаксис:
param.remove(Индекс)
Параметры:
- Индекс. Обязательный. Число. Номер в списке, начиная с 0.
Добавляет элемент в список подсказки.
Синтаксис:
param.insert(Индекс, ИмяМетода, ИмяТипа, Описание, Возвращает, ЭтоМодуль)
Параметры:
- Индекс. Число. Номер в списке, куда вставлять элемент.
- ИмяМетода. Строка. Содержит имя метода. Так как названия методов могут отличаться регистром букв, для каждого элемента задается его вариант написания метода.
- ИмяТипа. Строка. Содержит имя типа, к которому относится метод.
- Описание. Строка. Содержит описание метода.
- Возвращает. Строка. Содержит текст, который будет показан после
Возвращает:
- ЭтоМодуль. Булево. Задает, является ли этот тип модулем. Для типов и для модулей несколько по разному строится текст описание метода.
Добавляет описание параметра к методу.
Синтаксис:
param.addParamDescr(Индекс, ИмяПараметра, Описание)
Параметры:
- Индекс. Число. Задает номер в списке, для которого добавляется параметр.
- ИмяПараметра. Строка. Задает имя добавляемого параметра.
- Описание. Строка. Задает описание добавляемого параметра.
не портировано
Содержит параметры для события onProcessInsert
.
Только чтение. Число, перечисление InsertTextType. Обозначет тип вставляемого текста. Сейчас поддерживаются следующие типы вставки:
- itKeyword = 0, вставка ключевого слова.
Только чтение. Строка. Содержит название вставляемого пункта списка, как оно показывается в списке.
Чтение и запись. Строка. Текст, который будет вставлен. Можно его изменять.
В тексте используется символ ¦
для обозначения места вставки курсора.
Набрать символ можно так - зажав Alt, набрать 0166 на цифровой клавиатуре.
Или скопировав отсюда. Если такого символа в тексте нет, курсор будет вставлен
в конце текста.
портирован частично
Объект представляет собой текстовый редактор 1С и содержит методы и свойства для работы с ним.
Для изменения текста необходимо установить выделение текста в нужных границах изменения,
и присвоить свойство selectedText
.
Во всех местах, где надо оперировать с номером строки учитывайте, что нумерация строк в текстовом редакторе начинается с 1.
портировано полностью
Только чтение. Строка. Содержит весь текст редактора.
портировано полностью
Позволяет получить границы выделенного текста.
Синтаксис:
selection = textWnd.getSelection()
Возвращает: Объект ISelection, границы выделенного текста.
портировано полностью
Позволяет установить границы выделения текста.
Синтаксис:
txtWnd.setSelection(НачальнаяСтрока, НачальнаяКолонка, КонечнаяСтрока, КонечнаяКолонка)
Параметры:
- НачальнаяСтрока. Число. Номер строки начала выделения.
- НачальнаяКолонка. Число. Номер колонки начала выделения.
- КонечнаяСтрока. Число. Номер строки конца выделения.
- КонечнаяКолонка. Число. Номер колонки конца выделения.
портировано полностью
Чтение и запись. Строка. Позволяет прочитать/установить текущий выделенный текст.
При присвоении действует также, как при вставке из клипборда. Не потому, что реально присваивает через клипборд, а потому, что так работает движок редактора 1С.
портировано полностью
Позволяет получить положение каретки в тексте.
Синтаксис:
caretPos = textWnd.getCaretPos()
Возвращает: Объект ISelection, в котором свойства beginRow
и beginCol
указывают
положение каретки в тексте.
портировано полностью
Позволяет установить положение каретки в тексте.
Синтаксис:
textWnd.setCaretPos(НомерСтроки, НомерКолонки)
Параметры:
- НомерСтроки. Число. Номер строки, в которую надо установить каретку.
- НомерКолонки. Число. Номер колонки в строке, в которую надо установить каретку.
При установке положения каретки также автоматически скроллируется окно редактора так, чтобы положение каретки было видимым на экране.
портировано полностью
Только чтение. Число. Содержит количество строк в тексте редактора.
портировано полностью
Позволяет получить текст строки с указанным номером.
Синтаксис:
text = txtWnd.line(НомерСтроки)
Параметры:
- НомерСтроки. Число. Номер строки, текст которой надо получить.
Возвращает: Строка. Тест заданной строки текста.
Нумерация строк начинается с 1.
портировано полностью
Только чтение. Булево. true, если текст в редакторе открыт в режиме "только чтение" и не может быть изменен.
портировано полностью
Только чтение. Строка. Содержит название установленного расширения редактора.
Например, Встроенный язык
, Язык запросов
, Текст
.
портировано полностью
Только чтение. Число. WinAPI HWND описатель окна редактора.
портировано
Только чтение. Объект IV8MDContainer. Если текст относится к какому-либо объекту метаданных, указывает на контейнер этих метаданных. Иначе - null.
портировано
Только чтение. Объект IV8MDObject. Если текст относится к какому-либо объекту метаданных, указывает на этот объект. Иначе - null.
портировано
Только чтение. Объект IV8MDProperty. Если текст относится к какому-либо объекту метаданных, указывает на то свойство этого объекта, к которому относится текст. Иначе - null.
не портировано
Чтение и запись. Булево. Признак включения режима множественных изменений.
Если необходимо внести несколько изменений в текст, рекомендуется сначала установить это свойство в true, внести изменения, установить свойство в false. При включении этого свойства отключается вызов перерисовки всех окон редактора при внесении изменений, и сброс синтаксического кэша. Затем при отключении режима вызывается перерисовка всех окон редактора и производится сброс кэша синтакс-разбора. То есть эти действия делаются один раз, а не при каждом изменении. Хотя если вы и не сделаете это, ничего особо страшного не случится.
портировано полностью
Только чтение. Число. Содержит адрес внутреннего объекта TextManager, связанного с этим
редактором. Служит для того, чтобы альтернативные редакторы могли узнать в событии
onChangeTextManager
, которое из их окон надо обновлять.
портировано
Только чтение. Значение 1С. Содержит "внешний" объект, к которому относится модуль.
Когда редактор инициализируется для модуля, для работы контекстной подсказки редактору передается
объект, описывающий методы и свойства того объекта, которые должны быть доступны в модуле
"глобально". Снегопат отлавливает установку такого объекта.
Если этот переданный объект можно преобразовать в значение 1С, то он отдает его в этом
свойстве. Пока такой финт возможен для объекта Форма
в обычных формах.
Говоря короче, если это модуль обычой формы, здесь можно получить объект "Форма".
НОВОЕ
Только чтение. Значение 1С. Содержит объект типа "ТекстовыйДокумент", который редактируется в этом окне.
НОВОЕ
Только чтение. Булево. Показывает, существует ли еще окно, определяемое этим объектом. После закрытия окно оно будет false.
НОВОЕ
Возникает при закрытии окна редактора. Объект источник - само ITextWindow. Оно же передаётся и как параметр события.
портировано полностью
По сути это просто объект с четырмя числовыми свойствами. Применяется для получения границ выделения в текстовом редакторе, положения каретки, а также экранных координат окна подсказки о параметрах.
Содержит четыре числовых свойства: beginRow
, beginCol
, endRow
, endCol
.
портирован полностью
Предназначен для управления аддинами и взаимодействия между ними.
Аддины - это динамически загружаемый расширения для Снегопата. Могут быть выполнены по различным технологиям. Снегопат нативно поддерживает аддины выполненые в виде скриптов на Windows Script Host-совместимых языках, и аддины, выполненные в виде обычных dll.
Каждый аддин характеризуется уникальным именем, и может предоставлять макросы и объект аддина. Все аддины организуются в группы, которые могут быть вложены друг в друга.
Только чтение. Число. Количество загруженных аддинов.
Позволяет найти аддин по его уникальному имени.
Синтаксис:
addin = addins.byUniqueName(ИмяАддина)
Параметры:
- ИмяАддина. Строка. Уникальное имя аддина, по которому его надо найти.
Возвращает: объект IAddin, содержащий информацию об аддине, либо null, если аддин с таким уникальным именем не найден.
Позволяет найти аадин по его строке загрузки.
Синтаксис:
addin = addins.byFullPath(СтрокаЗагрузки)
Параметры:
- СтрокаЗагрузки. Строка. Содержит строку загрузки аддина.
Возвращает: объект IAddin, содержащий информацию об аддине, либо null, если аддин с такой строкой загрузки не найден.
Для загрузки аддинов используется "строка загрузки", описывающая загружаемый аддин. Она состоит из указания имени загрузчика аддинов, двоеточия, и данных для загрузчика аддинов. Метод позволяет найти аддин по его строке загрузки.
Позволяет получить аддин по номеру.
Синтаксис:
addin = addins.byIdx(Индекс)
Параметры:
- Индекс. Число. Номер аддина, начиная с 0.
Возвращает: объект IAddin по заданному номеру.
Только чтение. Объект IAddinGroup. Содержит корневую группу для загрузки аддинов.
Загружает аддин.
Синтаксис:
addind = addins.loadAddin(СтрокаЗагрузки, ГруппаАддинов)
Параметры:
- СтрокаЗагрузки. Строка. Задает строку загрузки аддина.
Состоит из названия загрузчика, двоеточия, и данных для загрузчика
аддинов. Например для скриптов строка имеет вид:
script:путь к файлу скрипта
, для dll:dll:путь к dll-файлу
. Различные расширения могут регистрировать свои загрузчики аддинов. - ГруппаАддинов. Объект IAddinGroup. Группа, в которую надо загрузить аддин.
Возвращает: объект IAddin для загруженного аддина.
Выгружает указанный аддин.
Синтаксис:
addins.unloadAddin(Аддин)
Параметры:
- Аддин. Объект IAddin выгружаемого аддина.
Не все аддины поддерживают выгрузку.
Регистрирует дополнительный загрузчик аддинов.
Синтаксис:
addins.registerLoader(Загрузчик)
Параметры:
- Загрузчик. Объект IAddinLoader, реализующий дополнительный загрузчик аддинов.
Позволяет получить все команды загрузки аддинов от всех зарегистрированных загрузчиков.
Синтаксис:
res = addins.getLoaderCommands()
Возвращает: COMSafeArray (VBArray), который содержит все команды для загрузки аддинов.
Применяется в скриптах снегопата для создания меню загрузки аддинов.
При вызове этого метода снегопат обходит все зарегистрированные загрузчики аддинов,
и каждый добавляет свою команду для меню загрузки аддинов.
Каждая добавленная команда имеет вид "Название команды|перфикс загрузчика".
Например, загрузчик скриптов добавляет Загрузить скрипт|script
.
Часть до |
должна показываться в интерфейсе пользователя, а часть после |
- передаваться
менеджеру аддинов при выборе этой команды.
Передает команду нужному загрузчику аддинов для выбора пользователем аддина
и его загрузки.
Синтаксис:
addins.selectAndLoad(ПрефиксЗагрузчика, ГруппаАддинов)
Параметры:
- ПрефиксЗагрузчика. Строка. Задает загрузчик, который должен обработать
команду. Берется часть после
|
из команды загрузчика. - ГруппаАддинов. Объект IAddinGroup. Группа, в которую надо загрузить аддин.
Возвращает: объект IAddin для загруженного аддина.
Позволяет узнать, поддерживает ли аддин выгрузку.
Синтаксис:
res = addins.isAddinUnloadable(Аддин)
Параметры:
- Аддин. Объект IAddin для которого необходимо узнать возможность выгрузки.
Возвращает: Булево. Поддерживает аддин выгрузку или нет.
Содержит информацию о загруженном аддине, и позволяет взаимодействовать с ним.
Только чтение. Строка. Отображаемое имя аддина, для интерфейса.
Только чтение. Строка. Уникальное имя аддина. Каждый аддин должен иметь такое имя.
Только чтение. Строка. Полная строка загрузки аддина.
Только чтение. COM-объект (IDispatch). Если аддин предоставляет объект для взаимодействия, то здесь можно его получить, чтобы вызывать методы аддина.
Позволяет получить список макросов аддина.
Синтаксис:
res = addin.macroses()
Возвращает: COMSafeArray (VBArray). Массив с именами макросов аддина.
Позволяет вызвать макрос аддина.
Синтаксис:
addin.invokeMacros(ИмяМакроса)
Параметры:
- ИмяМакроса. Строка. Имя макроса, который надо вызвать.
Возвращает: то, что вернул макрос.
Только чтение. Объект IAddinGroup. Группа, в которою загружен аддин.
портировано полностью
Представлет группу для аддинов.
Только чтение. Строка. Название группуы.
Только чтение. Объект IAddinGroup. Родительская группа.
Только чтение. Объект IAddinGroup. Первая дочерняя группа.
Только чтение. Объект IAddinGroup. Следующая группа.
Только чтение. Число. Количество аддинов в группе.
Позволяет получить аддин группы по его номеру.
Синтаксис:
addin = group.addin(Индекс)
Параметры:
- Индекс. Число. Номер аддина, начиная с 0.
Возвращает: объект IAddin для аддина с указанным номером.
Добавляет дочернюю группу.
Синтаксис:
child = group.addGroup(ИмяГруппы)
Параметры:
- ИмяГруппы. Строка. Название добавляемой группы.
Возвращает: Объект IAddinGroup добавленной группы.
портирован полностью
Предназначен для работы с хранилищем настроек 1С.
Все настройки 1С организованы в древовидную структуру, некий аналог реестра Windows. Однако для каждого хранимого значения можно задать место, где на самом деле должно физически хранится значение, т.е. уникально ли оно в пределах базы данных, пользователя и т.п. Данный объект представляет собой "папку" в дереве настроек и позволяет перебрать имеющиеся в ней значения и подпапки, создавать новые, удалять существуующие, а также получать и устанавливать значения. Каждое значение перед использованием должно быть создано, с указанием одного из вариантов места его хранения и дефолтного значения.
Доступ к корневой папке осуществляется через свойство designer.profileRoot
.
Если вам не нужно обходить хранящиеся значения и вам известен путь в дереве настроек
до нужного значения, к нему можно сразу обратится от корневой папки, указав полный
путь, используя разделителем символ /
.
Для просмотра структуры дерева настроек и примеров его программного обхода используйте
скрипт scripts\DevTools\pflview.js
.
Только чтение. Строка. Название раздела.
Создает значение в дереве настроек.
Синтаксис:
createValue(Путь, ЗначениеПоУмолчанию, Хранилище)
Параметры:
- Путь. Строка. Название или полный путь к значению, например
MyValue
,SomeFolder/SomeValue
. Если указан полный путь, все папки по этому пути также будут созданы. - ЗначениеПоУмолчанию. Любой. Значение, которое будет установлено, если создаваемого значения еще нет в настройках.
- Хранилище. Число. Вариант места хранения значения:
- pflSeanse = 0, Для сеанса. Хранится в памяти на время одного сеанса.
- pflComputer = 1, Для компьютера. Уникально для компьютера.
- pflBase = 2, Для базы.
- pflBaseUser = 3, Для базы и пользователя.
- pflCompBase = 4, Для компьютера и базы.
- pflCompBaseUser = 5, Для компьютера, базы и пользователя.
- pflSnegopat = 6, Для Снегопата. Хранится в папке Снегопата в файле snegopat.pfl.
Система хранения настроек должна знать, где именно должно хранится каждое значение, поэтому сначала надо ей это указать.
Позволяет получить хранящееся значение.
Синтаксис:
val = folder.getValue(Путь)
Параметры:
- Путь. Строка. Содержит название значения или полный путь к нему во вложенных папках.
Возвращает: хранящееся значение.
Позволяет установить значение.
Синтаксис:
folder.setValue(Путь, Значение)
Параметры:
- Путь. Строка. Содержит название значения или полный путь к нему во вложенных папках.
- Значение. Любое значение, которое надо сохранить.
Реальное сохранение значений в файлы происходит при завершении работы программы, либо при вызове метода designer.saveProfile.
Только чтение. Число. Количество хранящихся в папке значений.
Позволяет получить имя значения по его номеру.
Синтаксис:
name = folder.valueName(Индекс)
Параметры:
- Индекс. Число. Номер значения.
Возвращает: Строка. Имя значения.
Позволяет получить значение по его номеру.
Синтаксис:
val = folder.getValueAt(Индекс)
Параметры:
- Индекс. Число. Номер значения.
Возвращает: Хранящееся значение.
Позволяет установить значение по его номеру.
Синтаксис:
folder.setValueAt(Индекс, Значение)
Параметры:
- Индекс. Число. Номер значения.
- Значение. Любое значение, которое надо сохранить.
Возвращает:
Позволяет удалить значение по его имени.
Синтаксис:
folder.deleteValue(Путь)
Параметры:
- Путь. Строка. Содержит название значения или полный путь к нему во вложенных папках.
Позволяет удалить значение по его номеру.
Синтаксис:
folder.deleteValueAt(Индекс)
Параметры:
- Индекс. Число. Номер значения.
Возвращает:
Создает вложеннную подпапку.
Синтаксис:
folder.createFolder(Имя, ВариантХранения)
Параметры:
- Имя. Строка. Название папки.
- ВариантХранения. Число. Указание места для хранения папки.
Только чтение. Число. Количество вложеных папок.
Позволяет получить вложенную папку по имени.
Синтаксис:
subFolder = folder.getFolder(Путь)
Параметры:
- Путь. Строка. Содержит название папки или полный путь к ней во вложенных папках.
Возвращает: объект IProfileStore. Вложенная папка.
Позволяет получить вложенную папку по ее номеру.
Синтаксис:
subFolder = folder.getFolderAt(Индекс)
Параметры:
- Индекс. Число. Номер вложенной папки.
Возвращает: объект IProfileStore. Вложенная папка.
Удаляет вложенную папку.
Синтаксис:
folder.deleteFolder(Путь)
Параметры:
- Путь. Строка. Содержит название папки или полный путь к ней во вложенных папках.
Удаляет вложенную папку по ее номеру.
Синтаксис:
folder.deleteFolderAt(Индекс)
Параметры:
- Индекс. Число. Номер вложенной папки.
портировано полностью
Этот объект не являются частью SnegAPI, а предоставляется загрузчиком скриптов
отдельно для каждого загруженного скрипта. С его помощью скрипт может получить информацию о
себе, получить ссылку на себя, а также добавлять объекты в свое пространство имен.
Каждый скрипт имеет доступ к этому объекту через имя SelfScript
.
Только чтение. Строка. Уникальное имя скрипта.
Только чтение. Строка. Отображаемое имя скрипта.
Только чтение. Строка. Полный путь к файлу скрипта.
Добавляет объект в пространство имен скрипта.
Синтаксис:
SelfScript.addNamedItem(Имя, Объект, [Глобально])
Параметры:
- Имя. Строка. Название, под которым объект будет доступен в скрипте.
- Объект. Ссылка на добавляемый объект.
- [Глобально]. Необязательный. Булево. По-умолчанию false. Если передать true, объект добавиться как глобальный, т.е. к его методам и свойствам можно будет обращаться напрямую, без указания имени объекта.
Только чтение. Объект. Сам объект скрипта, т.е. то, как он видится со-стороны. Служит для передачи ссылки на себя в различные методы.
портирован полностью
Менеджер хоткеев Снегопата. Служит для назначения горячих клавиш на макросы аддинов. На один хоткей может быть назначено несколько макросов. В этом случае они выполняются последовательно в порядке своего добавления, пока один из макросов не вернет true. Тогда считается, что он обработал хоткей, и дальнейшие макросы не вызываются.
Объект доступен через свойство Designer.hotkeys
. Так как он содержит довольно "низкоуровневый" доступ
к хоткееям, для более удобной работы с ними был создан скрипт core\std\scripts\hotkeys.js
, который
вызывается кнопкой "Клавиатура" в окне снегопата.
Позволяет получить хоткей по его номеру.
Синтаксис:
hk = hotkeys.item(Индекс)
Параметры:
- Индекс. Число. Номер хоткея.
Возвращает: объект IHotKey.
Только чтение. Число. Количество хоткеев.
Удаляет хоткей с укзанным номером.
Синтаксис:
hotkesy.remove(Индекс)
Параметры:
- Индекс. Число. Номер хоткея.
Добавляет новый хоткей.
Синтаксис:
hotkeys.add(КодКлавиши, ИмяАддина, ИмяМакроса)
Параметры:
- КодКлавиши. Число. Виртуальный код клавиши + модификаторы:
- hkCtrl = 0x10000.
- hkAlt = 0x20000.
- hkShift = 0x40000.
- ИмяАддина. Строка. Уникальное имя аддина.
- ИмяМакроса. Строка. Название вызываемого макроса в аддине.
Возвращает: объект IHotKey. Добавленный хоткей.
Удаляет все хоткеи.
Синтаксис:
hotkeys.clearAll()
Добавляет временный хоткей.
Синтаксис:
hkID = hotkeys.addTemp(КодКлавиши, ИмяАддина, ИмяМакроса)
Параметры:
- КодКлавиши. Число. Виртуальный код клавиши + модификаторы:
- hkCtrl = 0x10000.
- hkAlt = 0x20000.
- hkShift = 0x40000.
- ИмяАддина. Строка. Уникальное имя аддина.
- ИмяМакроса. Строка. Название вызываемого макроса в аддине.
Возвращает: Число. Идентификатор временного хоткея.
Предназначен для временного назначения какого-либо хоткея, например в каком-либо
модальном диалоге. В отличии от обычных хоткеев, которые вызываются в порядке своего
добавления - вызывается ПЕРЕД ними. Данные хоткеи не входят в число count
остальных
хоткеев, их нельзя перечислить, они не сохраняются скриптом hotkeys.js
.
НОВОЕ
Добавляет временный хоткей, вызывающий обработчик.
Синтаксис:
hkID = hotkeys.addTempFunction(КодКлавиши, ОбъектОбработчик, [ИмяМетода] = "")
Параметры:
- КодКлавиши. Число. Виртуальный код клавиши + модификаторы:
- hkCtrl = 0x10000.
- hkAlt = 0x20000.
- hkShift = 0x40000.
- ОбъектОбработчик. Объект, метод которого будет вызван при срабатывании хоткея.
- ИмяМетода. Строка. Необязательный параметр. По умолчанию - пустая строка. Название вызываемого метода в объекте. Если передана пустая строка, будет вызван метод объекта "по умолчанию", т.е. с номером 0. К примеру для объектов-функций JScript - это вызов самой функции.
Возвращает: Число. Идентификатор временного хоткея.
Предназначен для временного назначения какого-либо хоткея, например в каком-либо
модальном диалоге. В отличии от обычных хоткеев, которые вызываются в порядке своего
добавления - вызывается ПЕРЕД ними, в обратном порядке, т.е. назначенный позже
хоткей для этой клавиши будет вызван перед назначенным раньше. Данные хоткеи не входят в
число count
остальных хоткеев, их нельзя перечислить, они не сохраняются скриптом
hotkeys.js
.
Удаляет временный хоткей.
Синтаксис:
hotkeys.removeTemp(ИдХоткея)
Параметры:
- ИдХоткея. Число. Идентификатор хоткея, который был получен методом
addTemp
.
портирован полностью
Служит для описания хоткея.
Только чтение. Строка. Строковое представление комбинации клавиш хоткея.
Только чтение. Строка. Уникальное имя аддина, обрабатывающего хоткей.
Только чтение. Строка. Название макроса в аддине, обрабатывающий хоткей.
Чтение и запись. Число. Комбинация клавиш хоткея.
Позволяет задать команду, выполняемую хоткеем.
Синтаксис:
hk.setCommand(ИмяАддина, ИмяМакроса)
Параметры:
- ИмяАддина. Строка. Уникальное имя аддина.
- ИмяМакроса. Строка. Название вызываемого макроса в аддине.
Портировано всё, за исключением свойства subCommands
Содержит информацию о состоянии команды.
Только чтение. Булево. Доступность команды
Только чтение. Булево. Помечена ли команда.
Только чтение. Строка. Текст команды.
Только чтение. Строка. Описание команды, выводится в строке состояния.
Только чтение. Строка. Тултип команды
Только чтение. Число. Количество подкоманд.
портирован
Предоставляет доступ к внутреннему механизу работы с файлами 1С.
В движке 1С файл - это не только то, что мы понимаем как файл на диске.
Там это целая абстракция - сущность, поток байтов, в который можно записывать данные,
читать из них, позиционироваться в них. Он необязательно должен быть обычным дисковым
файлом - это может быть файл в памяти, файл внутри ресурсов 1С, файл внутри справки 1С,
файл внутри другого файла и т.п. Для задания конкретного типа файлов используется концепция
URL, и вид файла задается как часть URL. Например, обычный файл открывается как
file://путь к файлу на диске
, файл из ресурсов - v8res://имя ресурсного файла/имя файла внутри ресурса
и т.п.
Для работы с файлами служит объект IV8DataFile. Также этот файл может быть сам так называемым "контейнерным" файлом, cf. Это файл, в котором хранятся другие файлы. В семерке для этого использовались стандартные compaund файлы, в 8ке 1С создала свой формат. Для работы с контейнерым файлом служит объект IV8StorageFile, который создается на основе объекта файла.
Доступ к менеджеру файлов осуществляется через свойство Designer.v8files
.
Открывает файл.
Синтаксис:
file = v8files.open(URL, РежимОткрытия)
Параметры:
- URL. Строка. Указывает, какой файл надо открыть. Для обычных файлов имеет вид
file://путь к файлу
. - РежимОткрытия. Число. Задает режим открытия файла:
- fomAppend = 0x1, Не очищать файл при открытии
- fomTruncate = 0x2, Очистить файл при открытии
- fomIn = 0x8, Открыть файл для чтения
- fomOut = 0x10, Открыть файл для записи
- fomShareRead = 0x100, Разделяемое чтение
- fomShareWrite = 0x200, Разделяемая запись
Возвращает: объект IV8DataFile, открытый файл.
Создает файл в памяти.
Синтаксис:
file = v8files.createMemoryFile()
Возвращает: объект IV8DataFile, открытый файл.
Создает временный файл.
Синтаксис:
file = v8files.createTempFile([ЛимитПамяти])
Параметры:
- [ЛимитПамяти]. Число. По-умолчанию 0. Пока размер файла не превысил лимита, он будет находится только в памяти. Как только размер стал больше, файл становится файлом во временном каталоге, для экономии памяти.
Возвращает: объект IV8DataFile, открытый файл.
Позволяет работать с файлом как с контейнерным файлом.
Синтаксис:
cf = v8files.attachStorage(ИсходныйФайл, [СоздатьНовый])
Параметры:
- ИсходныйФайл. Объект IV8DataFile, исходный открытый файл.
- [СоздатьНовый]. Булево. По-умолчанию false. Создавать новый контейнерный файл. Если указано false, а исходный файл не является контейнерным файлом, генерируется исключение.
Возвращает: объект IV8StorageFile, через который можно работать с содержимым контейнера.
Создает объект MemoryBuffer заданного размера.
Синтаксис:
buffer = v8files.newMemoryBuffer(Размер)
Параметры:
- Размер. Число. Количество выделяемой для буфера памяти в байтах.
Возвращает: объект MemoryBuffer.
портирован
Служит для работы с данными файла.
Позволяет прочитать блок данных из файла.
Синтаксис:
data = file.read(Количество)
Параметры:
- Количество. Число. Сколько байт считать из файла.
Возвращает: объект MemoryBuffer с прочитанными данными.
Чтение осуществляется с текущей позиции в файле.
Записывает данные в файл.
Синтаксис:
file.write(Данные)
Параметры:
- Данные. Объект MemoryBuffer. Массив байт для записи.
Позицонироваться в файле.
Синтаксис:
file.seek(Откуда, Смещение)
Параметры:
-
Откуда. Число. Задает режим перемещения указателя.
- fsBegin = 1, перемещаться от начала файла.
- fsCurrent = 2, перемещаться от текущей позиции.
- fsEnd = 4, перемещаться от конца файла.
-
Смещение. Число. Насколько байт надо сместиться. Положительное смещение - в сторону конца файла, отрицательное - в сторону начала файла.
Возвращает: Число. Новую позицию указателя в файле от его начала.
Прочитать данные из файла как строку.
Синтаксис:
str = file.getString(ТипСтроки, [Длина])
Параметры:
-
ТипСтроки. Число. Показывает, в каком режиме считывать строку:
- dsAnsi = 1, Строка в файле в формате ANSI.
- dsUtf8 = 2, Строка в файле в формате UTF-8.
- dsUtf16 = 3, Строка в файле в формате UTF-16
-
[Длина]. Число. По-умолчанию -1. Задает длину считываемой строки. Если задано -1, строка считывается до первого нулевого символа.
Возвращает: Строка. Считанный текст.
Позволяет записать данные из строки.
Синтаксис:
file.putString(ТипСтроки, Текст, [Длина])
Параметры:
- ТипСтроки. Число. Задает, в каком виде записать строку:
- dsAnsi = 1, Записать строку в файл в формате ANSI.
- dsUtf8 = 2, Записать строку в файл в формате UTF-8.
- dsUtf16 = 3, Записать строку в файл в формате UTF-16
- Текст. Строка. Записываемый текст.
- [Длина]. Число. По-умолчанию -1. Длина записываемой строки в символах. Если задано -1, записывается до первого нулевого символа.
Сбрасывает буфер записи.
Синтаксис:
file.flush()
При записи в дисковый файл даные сначала попадают в буфер записи. Вызов этого метода заставляет переписать все накопившееся в буфере на диск.
Устанавливает конец файла в текущей позиции.
Синтаксис:
file.setEOF()
Только чтение. Строка. URL файла.
Закрывает файл.
Синтаксис:
file.close()
портирован
Представлят собой контейнерный файл 1С (cf). Состоит из нескольких файлов, вложенных в этот файл. В свою очередь, вложенные файлы могут быть как обычными, так и тоже контейнерными файлами, такая "матрешка" получается.
Позволяет получить список файлов в контейнере.
Синтаксис:
files = stg.files()
Возвращает: Массив строк с названиями файлов в контейнере.
Открывает файл в контейнере. Синтаксис:
file = stg.open(ИмяФайла, РежимОткрытия)
Параметры:
- ИмяФайла. Строка. Задает имя открываемого файла.
- РежимОткрытия. Число. Задает режим открытия:
- fomAppend = 0x1, Не очищать файл при открытии
- fomTruncate = 0x2, Очистить файл при открытии
- fomIn = 0x8, Открыть файл для чтения
- fomOut = 0x10, Открыть файл для записи
- fomShareRead = 0x100, Разделяемое чтение
- fomShareWrite = 0x200, Разделяемая запись
Возвращает: объект IV8DataFile, открытый файл.
Переименует файл в контейнере.
Синтаксис:
stg.rename(СтароеИмя, НовоеИмя)
Параметры:
- СтароеИмя. Строка. Старое имя файла.
- НовоеИмя. Строка. Новое имя файла.
Удаляет файл из контейнера.
Синтаксис:
stg.remove(ИмяФайла)
Параметры:
- ИмяФайла. Строка. Имя удаляемого файла.
портирован
Служит для разбора текстов модулей на составляющие их лексемы и работы с ними. Подробнее описано здесь
Только чтение. Строка. Исходный текст.
Только чтение. Строка. Текст в виде аббревиатур значимых лексем для анализа с помощью regexp'ов
Только чтение. Число. Количество лексем в тексте.
Позволяет получить лексему по ее номеру.
Синтаксис:
l = parser.lexem(Индекс)
Параметры:
- Индекс. Число. Номер лексемы.
Возвращает: объект ILexem.
Только чтение. Число. Количество различных идентификаторов в тексте. Все найденные во время разбора идентификаторы (названия), собираются в один массив. Свойство показывает величину этого массива.
Позволяет получить идентификатор из массива найденных названий по его номеру.
Синтаксис:
name = parser.name(Индекс)
Параметры:
- Индекс. Число. Номер идентификатара в массиве, начиная с 0.
Возвращает: Строку. Идентификатор.
Позволяет найти номер идентификатора в массиве по его имени.
Синтаксис:
num = parser.idxOfName(Имя)
Параметры:
- Имя. Строка. Искомое имя.
Возвращает: Число. Номер имени в массиве. Если имя не найдено, -1.
Позволяет найти номер лексемы по ее позиции в строке reStream
.
Синтаксис:
num = parser.posToLexem(Позиция)
Параметры:
- Позиция. Число. Позиция аббревиатуры лексемы в строке
reSream
.
Возвращает: Число. Номер лексемы в общем списке. Если переданная позиция не соответствует ни одной лексеме, -1.
НОВОЕ
Позволяет получить индекс идентификатора в строковой форме для поиска в reStream, т.е. как NmXXXXXX.
Синтаксис:
strIdx = parser.strNameIdx(Идентификатор)
Параметры:
- Идентификатор. Строка. Название идентификатора.
Возвращает: Строку. Индекс идентификатора в строковом виде, либо пустую строку, если такой идентификатор не найден.
портирован
Описывает одну лексему текста исходного кода 1С.
Только чтение. Число. Тип лексемы.
|Тип лексемы|Лексема|Аббревиатура в reStream| |ltUnknown|неизвестная лексема|"Un"| |ltRemark|Комментарий|""| |ltQuote|Строка|"Qt"| |ltDate|Дата|"Dt"| |ltNumber|Число|"Nu"| |ltPreproc|Команда препроцессора|"Pr"| |ltDirective|Директива компиляции|"Dr"| |ltLabel|Метка|"Lb"| |ltLPar|(|"Lp"| |ltRPar|)|"Rp"| |ltLBrt|[|"Lr"| |ltRBrt|]|"Rr"| |ltEqual|=|"Eq"| |ltComma|,|"Cm"| |ltSemicolon|;|"Sc"| |ltPlus|+|"Pl"| |ltMinus|-|"Mn"| |ltMult|*|"Mu"| |ltDivide|/|"Dv"| |ltMod|%|"Mo"| |ltQuestion|?|"Qs"| |ltPeriod|.|"Pd"| |ltLess|<|"Ls"| |ltLessEq|<=|"Le"| |ltGrat|>|"Gt"| |ltGratEq|>=|"Ge"| |ltNotEq|<>|"Ne"| |ltName|Идентификатор|"Nm000000"| |ltIf|If, Если|"If"| |ltThen|Then, Тогда|"Th"| |ltElsIf|ElseIf, ИначеЕсли|"Es"| |ltEndIf|EndIf, КонецЕсли|"Ei"| |ltElse|Else, Иначе|"El"| |ltFor|For, Для|"Fo"| |ltEach|Each, Каждого|"Ea"| |ltIn|In, Из|"In"| |ltTo|To, По|"To"| |ltWhile|While, Пока|"Wl"| |ltDo|Do, Цикл|"Do"| |ltEndDo|EndDo, КонецЦикла|"Ed"| |ltProcedure|Procedure, Процедура|"Pc"| |ltFunction|Function, Функция|"Fu"| |ltEndProcedure|EndProcedure, КонецПроцедуры|"Ep"| |ltEndFunction|EndFunction, КонецФункции|"Ef"| |ltVar|Var, Перем|"Va"| |ltGoto|Goto, Перейти|"Go"| |ltReturn|Return, Возврат|"Re"| |ltContinue|Continue, Продолжить|"Co"| |ltBreak|Break, Прервать|"Br"| |ltAnd|And, И|"An"| |ltOr|Or, Или|"Or"| |ltNot|Not, Не|"Nt"| |ltTry|Try, Попытка|"Tr"| |ltExcept|Except, Исключение|"Ec"| |ltRaise|Raise, БроситьИсключение|"Rs"| |ltEndTry|EndTry, КонецПопытки|"Et"| |ltNew|New, Новый|"Nw"| |ltExecute|Execute, Выполнить|"Eu"| |ltTrue|True, Истина|"Tu"| |ltFalse|False, Ложь|"Fl"| |ltAddHandler|AddHandler, ДобавитьОбработчик|"Ah"| |ltRemoveHandler|RemoveHandler, УдалитьОбработчик|"Rh"| |ltExport|Export, Экспорт|"Ex"| |ltNull|Null|"Nl"| |ltUndefined|Undefined, Неопределено|"Uf"| |ltVal|Val, Знач|"Vl"|
Только чтение. Число. Позиция начала строки в исходном тексте (в символах).
Только чтение. Число. Длина лексемы.
Только чтение. Число. Номер строки исходного текста, в которой расположена лексема.
Только чтение. Строка. Текст лексемы.
портирован частично
Служит "точкой входа" для работы с оконной подсистемой 1С, через свойство Designer.windows
.
Оконная система 1С состоит из Views (представлений). Обычно это окно, но не всегда.
Все представления организованы в иерахическую структуру, то есть внутри одного представления могут
находится другие - например, можно разделить некоторые окна редакторов на несколько, или
"сцепить" несколько окон в одно (либо "затащив" одно окно на другое мышью с нажатым Shift,
либо с помощью диалога "Окна" в меню "Окна").
портировано
Только чтение. Объект IV8View. Представление главного окна программы.
портировано
Только чтение. Объект IV8View. Представление MDI-части окна конфигуратора.
портировано
Только чтение. Число. Показывает, открыто ли сейчас модальное окно:
- msNone = 0, нет модальных окон.
- msPseudo = 1, открыто псевдо-модальное окно.
- msModa = 2, открыто модальное окно.
портировано
Чтение и запись. Строка. Текущий заголовок окна конфигуратора.
портировано
Чтение и запись. Строка. Основная часть заголовка конфигуратора.
портировано
Чтение и запись. Строка. Дополнительная часть заголовка конфигуратора.
портировано
Чтение и запись. Булево. Видимость окна свойств.
портирован
Позволяет получить активное представление.
Синтаксис:
view = windows.getActiveView()
Возвращает: Объект IV8View. Активное представление.
портирован
Позволяет получить представление, которое сейчас в фокусе.
Синтаксис:
view = windows.getFocusedView()
Возвращает: Объект IV8View. Представление, которому принадлежит фокус ввода. Может не совпадать с активным представлением.
не портировано
Возникает при показе модальных диалогов.
Синтаксис:
onDoModal(ПараметрыСобытия)
Параметры:
- ПараметрыСобытия. Объект IDoModalHook, содержащий описание события.
портировано полностью
Возникает перед показом предупреждения.
Синтаксис:
onMessageBox(ПараметрыСобытия)
Параметры:
- ПараметрыСобытия. Объект IMsgBoxHook, содержащий описание события.
портировано полностью
Возникает при изменении заголовка основного окна.
Синтаксис:
onChangeTitles(ПараметрыСобытия)
Параметры:
- ПараметрыСобытия. Объект ISetMainTitleHook, содержащий описание события.
портировано полностью
Содержит параметры события перехвата Предупреждения.
Только чтение. Строка. Заголовок окна предупрждения.
Только чтение. Строка. Текст предупреждения.
Только чтение. Число. Флаги типа предупреждения. Смотри описание метода MessageBox.
Только чтение. Число. Таймаут предупреждения.
Чтение и запись. Булево. Признак отказа. При установке в true, предупреждение не будет выведено на экран.
Чтение и запись. Число. Ответ. Если показ предупреждения отменен, вызывающему будет вернут этот ответ.
портировано полностью
Параметры события изменения основного заголовка Конфигуратора.
Пример использования смотри в скрипте scripts\configCaption.js
.
Заголовок окна конфигуратора состоит из двух частей - основного заголовка,
это неизменная часть, и дополнительного заголовка, который описывает активное
окно в конфигураторе, если оно есть и максимизировано.
При вызове этого события перехват с него временно снимается, и возможно программно изменить заголовок конфигуратора на нужный, уже без вызова этого события, для избежания рекурсии.
Только чтение. Строка. Основной заголовок.
Только чтение. Строка. Дополнительный заголовок.
Чтение и запись. Булево. Отказ от штатной обработки. При установке в true, подавляет вызов стандартной процедуры установки заголовка.
не портировано
Содержит информацию о событии перехвата открытия модального окна. Это событие вызывается несколько раз во время появления модального диалога.
Только чтение. Строка. Заголовок диалога.
Только чтение. Объект IV8Form, если диалог на основе формы 1С.
Чтение и запись. Булево. При установке в true завершает диалог.
Чтение и запись. Число. Код завершения диалога. Если показ диалога отменен, вызывающему будет вернут этот код.
Только чтение. Число. Описывает этап, во время которого вызван обработчик события:
|beforeDoModal|0|Перед открытием. Диалог еще не инициализирован, окно еще не показано на экране.| |openModalWnd |1|При открытии окна. Окно только-что показано на экране. | |afterDoModal |2|После закрытия. Можно посмотреть код завершения диалога. | |afterInitial |3|После инициализации. Диалог уже инициализирован, но окно еще не показано |
портирован
Объект для работы с отображением 1С.
Только чтение. Строка. Содержит guid представления. Каждое представление имеет свой идентификатор.
Только чтение. Строка. Заголовок представления.
Только чтение. Число. HWND окна предстваления, если оно есть.
Позволяет получить положение представления.
Синтаксис:
pos = view.position()
Возвращает: объект IV8ViewPosition, положение представления.
Только чтение. Объект IV8View. Родительское представление.
Позволяет получить список дочерних представлений.
Синтаксис:
views = view.enumChilds()
Возвращает: объект IV8ViewList со списком дочерних представлений.
Позволяет "соединить" два представления.
Синтаксис:
view.merge(ДругоеПредставление, Способ)
Параметры:
- ДругоеПредставление. Объект IV8View, с кем объединять.
- Способ. Число. Перечисление ViewPlacements.
Только чтение. Число. Показывает, является ли представление контейнером других представлений:
|vctNo |0|Не контейнер | |vctTabbed |1|Контейнер с закладками | |vctTwoViewsHorz|2|Два отображения горизонтально| |vctTwoViewsVert|3|Два отображения вертикально | |vctMdiContainer|4|MDI контейнер | |vctUnknown |5|Неизвестный тип контейнера |
Только чтение. Строка. Если представление имеет окно, содержит название класса окна.
Чтение и запись. Булево. Видимость представления.
Только чтение. Объект IV8View. Активное подчиненное отображение, если оно есть.
Активирует представление.
Синтаксис:
view.activate()
Закрывает представление.
Синтаксис:
view.close([Обязательно])
Параметры:
- [Обязательно]. Булево. По-умолчанию false. Если true, то представление закроется без вопросов, иначе может отменить свое закрытие. Например, измененный документ может отменить закрытие.
Позволяет получить состояние команды. Аналогично методу Designer.getCmdState, только состояние команды запрашивается не у главного окна, а у этого представления.
Посылает команду в представление. Аналогично методу Designer.sendCommand, только команда посылается не в главное окно, а в это представление.
Позволяет получить объект IViewDocument, если отображение связано
с редактированием какого-либо документа.
Синтаксис:
doc = view.getDocument()
Возвращает: объект IViewDocument.
Позволяет получить объект языка 1С, если объект связан с редактированием такого объекта.
Например, редактор текстового документа вернет ТекстовыйДокумент, табличного документа -
ТабличныйДокумент и т.п.
Синтаксис:
obj = view.getObject()
Возвращает: объект 1С.
Позволяет получить "внутреннюю" форму 1С, если представление сделано на основе формы.
Синтаксис:
form = view.getInternalForm()
Возвращает: объект IV8Form, если представление на основе формы, иначе null.
Только чтение. Объект IV8MDObject, если представление относится к объекту метаданных.
Только чтение. Объект IV8MDProperty. Свойство объекта метаданных, если представление относится к свойству объекта метаданных.
Только чтение. Объект Картинка. Иконка представления.
портировано
Константы, определяющие положение представления.
|vpNo |0 |Нигде | |vpLeft |1 |Слева | |vpTop |2 |Сверху | |vpRight |4 |Справа | |vpBottom|8 |Снизу | |vpCenter|16|По центру | |vpTabbed|32|Закладками|
портировано частично
Объект - положение представления.
Чтение и запись. Число. Состояние представления. Перечисление ViewStates:
|vsDock |1 |Доковано | |vsFloat |2 |Плавающее | |vsMDI |4 |Обычное MDI| |vsHardDock|8 |Прибито | |vsHiding |16|Прячущееся |
Чтение и запись. Число. Положение отображения. Перечисление ViewPlacements.
Чтение и запись. Число. Номер строки в доке.
Чтение и запись. Число. Положение в строке дока.
Чтение и запись. Число. Ширина в доке.
Чтение и запись. Число. Высота в доке.
Чтение и запись. Булево. Соединяемое.
Чтение и запись. Число. Размер в плавающем состоянии.
Чтение и запись. Число. Размер в плавающем состоянии.
Чтение и запись. Число. Размер в плавающем состоянии.
Чтение и запись. Число. Размер в плавающем состоянии.
Чтение и запись. Число. Размер в MDI состоянии.
Чтение и запись. Число. Размер в MDI состоянии.
Чтение и запись. Число. Размер в MDI состоянии.
Чтение и запись. Число. Размер в MDI состоянии.
Чтение и запись. Булево. Окно максимизировано в MDI состоянии.
Свойство hiddenWidth
Чтение и запись. Число. Ширина в авто-скрытом состоянии.
Свойство hiddenHeight
Чтение и запись. Число. Высота в авто-скрытом состоянии.
Чтение и запись. Число. Флаг возможных состояний.
Чтение и запись. Число. Возможные положения.
Чтение и запись. Булево. Прикрепляемое.
портирован
Служит для передачи списка представлений.
Только чтение. Число. Количество представлений в списке.
Получить представление по номеру.
Синтаксис:
view = list.item(Индекс)
Параметры:
- Индекс. Число. Номер представления.
Возвращает: объект IV8View.
не портировано
Служит для работы с данными представления.
Только чтение. Строка. Путь данных.
Только чтение. Булево. Данные в режиме "только чтение".
Только чтение. Булево. Данные модифицированы.
Только чтение. Булево. Данные часть конфигурации.
Только чтение. Строка. Заголовок.
Только чтение. Строка. Ключ данных.
Только чтение. Строка. GUID вида данных.
Позволяет получить все представления данных.
Синтаксис:
views = doc.enumViews()
Возвращает: объект IV8ViewList, список представлений данных.
не портировано
Служит для взаимодействия с отладчиком. Доступен как свойство Designer.v8debug
.
Позволяет вычислить отладочное выражение.
Синтаксис:
res = v8debug.eval(Выражение)
Параметры:
- Выражение. Строка. Содержит вычисляемое выражение.
Возвращает: объект IDebugEvalResult, результат вычисления.
не портировано
Только чтение. Булево. Показывает, успешно ли было вычислено выражение.
Только чтение. Строка. Текстовое представление результата.
Только чтение. Число. Код типа результата.
Только чтение. Строка. Название типа результата.
Только чтение. Число. Количество свойств результата. Если результат представляет собой объект, можно получить свойства объекта.
Позволяет получить свойство результата по его номеру.
Синтаксис:
p = res.prop(Индекс)
Параметры:
- Индекс. Число. Номер свойства.
Возвращает: объект IDebugEvalProp, описывающий свойство результата.
не портировано
Описывает одно из свойств результата вычисления отладочного выражения.
Только чтение. Строка. Название свойства.
Только чтение. Строка. Текстовое представление значения свойства.
Только чтение. Число. Код типа значения свойства.
Только чтение. Строка. Название типа значения свойства.
Только чтение. Булево. Свойство можно развернуть дальше, т.е. оно само содережит свойства.
не портировано
Служит для взаимодействия с "внутренними" формами 1С. Это те формы, на базе которых сделаны диалоги самой 1С и часть ее окон. Похожи на обычные, "толстые" формы, используемые для прикладной разработки, но немного не те. Форма является контейнером для контролов (элементов управления), и сама тоже может рассматриваться как контрол. Котролы могут посылать форме события, которые задаются числом - номером события и могут иметь параматры - различные данные. Форма может принимать команды, как обычные, так и команды контролов. Каждый контрол имеет ID - целое число, и может иметь строку - имя.
Только чтение. Число. Количество элементов управления на форме.
Позволяет получить элемент управления по номеру или имени.
Синтаксис:
control = form.getControl(Индекс)
Параметры:
- Индекс. Строка или Число. Указывает имя или номер контрола. Если передано -1 или пустая строка, возвращает контрол - саму форму.
Возвращает: объект IV8Control, описывающий элемент управления.
Чтение и запись. Булево. Включает и выключает трассировку событий в форме. При включенной трассировке в окне сообщений отображаются различные события, принимаемые формой. Используется в исследовательских целях разработчиками аддинов.
Позволяет послать событие форме, имитируя какое-либо действие.
Синтаксис:
form.sendEvent(ИДКонтрола, НомерСобытия, [Данные...])
Параметры:
- ИДКонтрола. Число. Идентификатор контрола - инициатора события.
- НомерСобытия. Число. Номер события. Каждый вид контролов имеет свой набор событий со своей нумерацией.
- [Данные...]. Необязательные аргументы, передающие данные о событии. Набор данных зависит от события.
Позволяет получить состояние команды. Аналогично методу Designer.getCmdState, только состояние команды запрашивается не у главного окна, а у этой формы.
Посылает команду в представление. Аналогично методу Designer.sendCommand, только команда посылается не в главное окно, а в эту форму.
Позволяет получить состояние команды. Аналогично методу Designer.getCmdState. Добавляется первый параметр - ИД контрола. Состояние команды запрашивается у этой формы для этого контрола. Обычный пример - команды на панелях команд таблиц - Добавить, Сортировать и т.п.
Посылает команду в представление. Аналогично методу Designer.sendCommand. Добавляется первый параметр - ИД контрола. Команда посылается этой форме от этого контрола. Обычный пример - команды на панелях команд таблиц - Добавить, Сортировать и т.п.
Чтение и запись. Объект IV8Control. Позволяет получить или установить текущий (активный) элемент управления.
не портировано
Служит для взаимодействия с элементами управления на внутренних формах 1С.
Чтение и запись. Значение контрола.
Если элемент управления представляет значение, его можно получить/установить через это
свойство. Это такие элементы, как Надпись
- текст надписи, ПолеВвода
- текст поля,
Флажок
- значение флажка, табличное поле, если источник данных у него список значений,
таблица значений, дерево значений и т.д.
Только чтение. Число. Идентификатор элемента управления.
Только чтение. Строка. Имя элемента управления. Может быть пустым.
Только чтение. Число. Если у элемента управления есть окно, то HWND этого окна.
Только чтение. Различные объекты.
Свойство позволяет получить дополнительный интерфейс для работы с контролами определенных видов. Так, для табличного поля возвращает интерфейс IGridCtrl, а для панелей - ITabPanel.
Только чтение. Объект IObjectProperties, позволяет работать со свойствами элемента управления.
не портировано
Служит для взаимодействия с элементами управления - табличными полями на внутренних формах 1С. Содержит колонки. Каждая колонка имеет свой ИД, обычно совпадает с номером колонки, но не обязательно.
Только чтение. Объект IDataSource, работающий с источником данных этого поля.
Только чтение. Число. Количество колонок.
Чтение и запись. Объект IDataRow, задающий текущую строку.
Чтение и запись. Число. ID текущей колонки.
Позволяет узнать, развернута ли строка, если поле представляет дерево.
Синтаксис:
res = grid.isExpanded(СтрокаДанных)
Параметры:
- СтрокаДанных. Объект IDataRow, строка источника данных.
Возвращает: Булево. Развернута ли строка.
Позволяет развернуть/свернуть строку в дереве.
Синтаксис:
grid.expand(СтрокаДанных, Развернуть, [СПодчиненными])
Параметры:
- СтрокаДанных. Объект IDataRow, строка источника данных.
- Развернуть. Булево. Развернуть (true) или свернуть (false) строку.
- [СПодчиненными]. Булево. Необяательный параметр, по-умолчанию false. Разворачивать/сворачивать также все дочерние строки этой строки.
Позволяет узнать, установлена ли пометка в ячейке.
Синтаксис:
grid.isCellChecked(СтрокаДанных, ИДКолонки)
Параметры:
- СтрокаДанных. Объект IDataRow, строка источника данных.
- ИДКолонки. Число. Идентификатор колонки.
Возвращает: Число. 0 - нет пометки, 1 - помечен, 2 - серый.
Позволяет пометить ячейку табличного поля.
Синтаксис:
grid.checkCell(СтрокаДанных, ИДКолонки, [Пометка])
Параметры:
- СтрокаДанных. Объект IDataRow, строка источника данных.
- ИДКолонки. Число. Идентификатор колонки.
- [Пометка]. Число. 0 - нет пометки, 1 - помечен, 2 - серый. По-умолчанию 1.
не портировано
Служит для взаимодействия с элементом управления Панель
Только чтение. Объект СтраницыПанели (см в Синтакс-Помощнике).
Чтение и запись. Число. Позволяет получить/установить активную страницу панели.
не портировано
Служит для взаимодействия с источниками данных табличных полей внутренних форм.
Только чтение. Число. Тип источника данных.
|dstGrid| 0|Источник данных Таблица| |dstTree| 1|Источник данных Дерево |
Только чтение. Булево. Имеет ли источник данных поддержку оформления ячеек.
Только чтение. Объект IDataRow. Начальная точка для получения данных. Реальные данные есть дочерние строки этой строки.
не портировано
Строка с данными источника данных.
Только чтение. Объект IDataSource, которому принадлежит строка.
Только чтение. Объект IDataRow, родительская строка. У строк верхнего уровня родителей нет.
Только чтение. Объект IDataRow, первая дочерняя строка этой строки.
Только чтение. Объект IDataRow, последняя дочерняя строка этой строки.
Только чтение. Объект IDataRow, следующая строка.
Только чтение. Объект IDataRow, предыдущая строка.
Позволяет получить значение ячейки в указанной колонке.
Синтаксис:
val = row.getCellValue(ИДКолонки)
Параметры:
- ИДКолонки. Число. Идентификатор колонки. Обычно совпадает с номером колонки, но не обязательно.
Возвращает: значение ячейки. Значение может и отсутствовать, а отображение задаваться через оформление ячейки.
Позволяет получить оформление ячейки заданной колонки, если оно есть.
Синтаксис:
val = row.getCellAppearance(ИДКолонки)
Параметры:
- ИДКолонки. Число. Идентификатор колонки. Обычно совпадает с номером колонки, но не обязательно.
Возвращает: объект ICellAppearance, оформление указанной ячейки.
не портировано
Оформление ячейки строки источника данных.
Только чтение. Строка. Текст ячейки.
Только чтение. Число. Состояние пометки - 0 сброшен, 1 - помечен, 2 - серый
Только чтение. Объект Картинка. Картинка ячейки.
Только чтение. Объект Картинка. Дополнительная картинка ячейки.
Только чтение. Значение ячейки.
не портировано
Предназначен для работы со свойствами объектов. Многие объекты внутри 1С поддерживают универсальный интерфейс для отображения своих свойств в окне свойств. Я пока вывел этот интерфейс для контролов и объектов метаданных.
Только чтение. Число. Количество свойств объекта.
Позволяет получить имя свойства.
Синтаксис:
name = obj.propName(Индекс)
Параметры:
- Индекс. Число. Номер свойства, начиная с 0.
Возвращает: Строка. Имя свойства.
Позволяет получить значение свойства.
Синтаксис:
val = obj.getValue(Индекс)
Параметры:
- Индекс. Число, Строка. Номер свойства или его имя.
Возвращает: значение свойства. В COM-значения, нормально преобразуются только простые свойства - строки, числа, булево. Остальные значения можно исследовать через ЗначениеВСтрокуВнутр, либо используя метод Designer.toV8Value.
Позволяет установить значение свойства.
Синтаксис:
obj.setValue(Индекс, Значение)
Параметры:
- Индекс. Число, Строка. Номер свойства или его имя.
- Значение. Значение свойства.
Позволяет активировать свойство в окне свойств.
Синтаксис:
obj.activateProperty()
Параметры:
- Индекс. Число, Строка. Номер свойства или его имя.
не портировано
Набор описаний элементов системы типов, прочитанных из файла v8types.txt. Каждый элемент унаследован от общего класса IDescription.
В этом наборе могут находится элементы следующих типов:
- ITypeDescription - описание типа.
- IMethDescription - описание метода типа.
- IMethSyntaxDescription - описание синтаксиса метода.
- IParamDescription - описание параметра в синтаксисе метода.
- IPropDescription - описание свойства типа.
В некоторых из элементов есть свойство access
. Оно указывает на доступность элемента
в разных режимах запуска:
|1 |Сервер | |2 |Толстый клиент | |4 |Тонкий клиент | |8 |Веб-клиент | |16|Внешнее соединение|
Только чтение. Число. Количество элементов.
Получить элемент по его номеру.
Синтаксис:
descr = arr.item(Индекс)
Параметры:
- Индекс. Число, Строка. Номер элемента или его имя.
Возвращает: объект, унаследованный от IDescription.
не портировано
Базовый класс для описаний элементов системы типов 1С. От него унаследованы:
- ITypeDescription - описание типа.
- IMethDescription - описание метода типа.
- IMethSyntaxDescription - описание синтаксиса метода.
- IParamDescription - описание параметра в синтаксисе метода.
- IPropDescription - описание свойства типа.
Получить имя элемента.
Синтаксис:
name = obj.name([НомерЯзыка])
Параметры:
- [НомерЯзыка]. Число. По-умолчанию 0. Номер языка, 0 - английский, 1 - русский.
Возвращает: Строка. Имя элемента.
Получить описание элемента.
Синтаксис:
descr = obj.descr([НомерЯзыка])
Параметры:
- [НомерЯзыка]. Число. По-умолчанию 0. Номер языка, 0 - английский, 1 - русский.
Возвращает: Строка. Описание элемента.
не портировано
Описание типа, наследован от IDescription, вместе с его методами name
, descr
.
Только чтение. Число. Доступность типа.
Только чтение. Строка. Гуид типа.
Только чтение. Объект IDescriptionArray, содержащий элементы IMethDescription. Список описаний конструкторов типа.
Только чтение. Объект IDescriptionArray, содержащий элементы IMethDescription. Список описаний методов типа.
Только чтение. Объект IDescriptionArray, содержащий элементы IMethDescription. Список описаний событий типа.
Только чтение. Объект IDescriptionArray, содержащий элементы IPropDescription. Список описаний свойств типа.
Только чтение. Строка. Если тип является коллекцией, содержит имя типа элементов коллекции.
не портировано
Описание метода, наследован от IDescription, вместе с его методами name
, descr
.
Только чтение. Объект ITypeDescription. Содержит ссылку на тип, членом которого он является.
Только чтение. Строка. Тип возвращаемого значения. Пустая строка для процедур.
Только чтение. Число. Доступность метода.
Только чтение. Объект IDescriptionArray, содержащий элементы IMethSyntaxDescription. Список описаний вариантов синтаксиса метода.
не портировано
Описание синтаксиса метода, наследован от IDescription, вместе с его методами name
, descr
.
Только чтение. Объект IDescriptionArray, содержащий элементы IParamDescription. Список описаний параметров метода.
не портировано
Описание параметра метода, наследован от IDescription, вместе с его методами name
, descr
.
Только чтение. Строка. Тип параметра.
не портировано
Описание свойства типа, наследован от IDescription, вместе с его методами name
, descr
.
Только чтение. Объект ITypeDescription. Содержит ссылку на тип, членом которого он является.
Только чтение. Строка. Тип свойства.
Только чтение. Число. Доступность свойства.
Только чтение. Булево. Свойство доступно только для чтения.
портировано полностью
Данный объект является "оберткой" над переданным в метод toV8Value значением, позволяя узнать о нем больше информации, в случае, если это значение является каким-либо значением из 1С. С его помощью можно узнать название типа 1С этого значения, получить его строковое представление, внутреннее предстваление в виде строки, и список методов объекта.
Получить название типа значения, соответствует ТипЗнч в 1С.
Синтаксис:
typeName = obj.typeName([НомерЯзыка])
Параметры:
- [НомерЯзыка]. Число. По-умолчанию 0. Номер языка, 0 - английский, 1 - русский.
Возвращает: Строка. Название типа значения.
Получить строковое представление значения.
Синтаксис:
descr = obj.presentation([)
Возвращает: Строка. Представление значения.
Проверить, является ли значение объектом 1C.
Синтаксис:
isObj = obj.isObject()
Возвращает: Булево. Если значение является объектом 1C, возвращает true, если значение простого типа - false.
Получить cписок методов/свойств объекта 1С. Предназначен в основном для исследовательских целей.
Синтаксис:
info = obj.contextInfo()
Параметры:
Возвращает: Строка. Список методов и свойств объекта. Названия возвращаются на русском языке, по одному названию в строке.
Получить внутреннее представление значения, то же самое, что ЗначениеВСтрокуВнутр.
Синтаксис:
val = obj.toStringInternal()
Возвращает: Строка. Внутреннее представление значения.
Только чтение. Строка. Содержит внутренний UUID типа значения. Для исследовательских целей.