MetaInfoClasses

MetaInfoClasses

Класс "MetaInfoClasses" / "MetaInfoClasses".

1. Удобный сервисный класс, показывающий различную метаинформацию по классам, методам, параметрам методов, определенным символам препроцессора, псевдонимам путей, версию 1С++, текущие настройки 1С++, вложенным файлам (директивой #include).

  2. Класс также умеет динамически подгружать класы - метод ЗагрузитьОписаниеКлассов .

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

4. А также формировать по специальным комментариям в файлах определения классов ( prm-файлы ) XML - документацию и ALS - документацию по классам. Метод СоздатьALS .

Все специальные комментарии формируются в виде XML текста и определяются наличием трех знаков /// перед их началом.

Например:

///<class name = МойКласс Version = 1.0 LastDate =
///descr = Мой первый класс с XML - комментариями
///depends =  use =  author = Гусев Д.А. firm = OXY base =
///example =  remark = >
//А это обычный комментарий, которые не проверяется XML - парсером
class МойКласс=МойКласс.ert
{
};
///</class>

Методы

СоздатьALS / CreateALS | формирует по XML - описаниям классов специального формата, описанного выше, als - файл помощника 1С. И формирует XML-файл описаний. Настройки для этого метода осуществляются с помощью следующих методов: TuningALS, SetFilterClasses, SetFilterNamespace, описание которых см. выше.
УстФильтрПоКлассам / SetFilterClasses | устанавливает фильтр по выгружаемым классам в als-файл содержащихся в текущей конфигурации.
УстФильтрПоПростИмен / SetFilterNamespace | устанавливает фильтр по пространству имен для выгрузки в als-файл.
ПолучитьЗагрВложФайлы / GetLoadIncludeFiles | возвращает список с именами вложенных файлов - загруженных с помощью препроцессорной директивы #include.
ПолучитьОпрСимволыПрепроц / GetDefSymbolOfPreproc | возвращает список определенных препроцессорной директивой #define символов.
ПолучитьВсеИменаКлассов / GetAllClassesNames | возвращает список имен классов и полных путей до них.
ПолучитьПсевдИ_Пути / GetAllAliasAndPath | возвращает список псевдонимов и путей которые они определяют.
ПолучитьИменаМетодовКласса / GetNamesMethOfClass | возвращает список имен методов у класса.
ПолучитьИнфоПоПар / GetInfoParamMeth | возвращает список предопределенных структур параметров метода класса с полями: Имя - имя параметра, Имя - тип параметра, Значение - значение по умолчанию для параметра, Режим - имеет два состояния ПоЗначению и ПоСылке.
КлассСуществует / IsClassExist | Определяет, существует ли в системе зарегистрированный класс с таким именем.
МетодСуществует / IsMethExist | Определяет, существует ли в системе зарегистрированный класс с таким именем и методом.
ПолучитьВерсию / GetVersion | возвращает номер текущей версии ВК 1С++.
ЭтоSQL_Версия / ThisIsSQL_Ver | Возвращает 1, если текущая версия 1С работает с SQL сервером Майкрософт, 0 - иначе.
ПолучитьТекУстановки / GetCurSettings | Метод возвращает установки ВК, которые настраиваются в параметрах на закладке Настройки 1С++, почитать о которых можно в classes.chm.
УстановитьТекУстановки / SetCurSettings | Метод изменяет установки ВК, которые настраиваются в параметрах на закладке Настройки 1С++, почитать о которых можно в classes.chm.
ЗагрузитьОписаниеКлассов / ReadDefinesOfClasses | Загружает описания классов и сами классы из соответствующих файлов.
ПолучитьИменаБазовыхКлассов / GetBaseClasses | Получает список базовых классов для указанного класса.
ЯвляетсяОбъектом / TheClassIs | Возвращает 1, если проверяемый тип совпадает со вторым типом или проверяемый тип является наследников от второго типа.
ПолучитьВерсиюФайла / GetFileVersion | Получает данные о любом поле структуры версии файла.
ОчиститьДанныеОптимизацииКлассов / ClearClassOptimizationData | Позволяет сбросить метаданные у пользовательских классов.


MetaInfoClasses::СоздатьALS / CreateALS

1C++ :: MetaInfoClasses | Ранее: MetaInfoClasses | Далее: УстФильтрПоКлассам / SetFilterClasses
MetaInfoClasses :: СоздатьALS / CreateALS

Синтаксис: СоздатьALS(стрИмяФайлаALS, стрИмяКорня)

Параметры:
  • стрИмяФайлаALS - тип: Строка. Имя файла als.
  • стрИмяКорня - тип: Строка. Имя корневой папки в синтаксис помощнике, в которой будут помещаться описания классов.

Описание: формирует по XML - описаниям классов специального формата, описанного выше, als - файл помощника 1С. И формирует XML-файл описаний. Настройки для этого метода осуществляются с помощью следующих методов: TuningALS, SetFilterClasses, SetFilterNamespace, описание которых см. выше.

Для возможности формирования ALS - файла из XML комментариев определены 6 специальных тэгов названия, которых можно изменять:

· Пространство имен (по умолчанию namespace). Этот тэг формирует папку в синтаксис помощнике 1С

· Класс (по умолчанию class)

· Метод (по умолчанию method)

· Параметр метода (по умолчанию param)

· Возвращаемое значение (по умолчанию returns)

· Свойство (по умолчанию property)

· У всех выше описанных тэгов, кроме возвращаемого значения, обязан быть атрибут имя (по умолчанию name)

Пример в примере жирным выделенных все необходимые тэги и атрибуты:

/// <namespace name=Мои супер классы>
//****************************************************************************
///<class name = МойКласс Version = 1.0 LastDate =
///descr =
///depends =  use =  author = Гусев Д.А. firm = OXY base =
///example =  remark = >
class МойКласс=МойКласс.ert
{
//*********************************************************************
        /// <property name=Атрибут1 access=Public type=Строка>
        /// Атрибут первый
        /// </property>
        //**********************************************************************
        /// <method name=Метод access=Public>
        /// <summary></summary>
        /// <example></example>
        /// <remark></remark>
        /// <param name=Число mod=[in] | [out] type=чПарам1 defaultValue = 1>Параметр первый</param>
        /// <returns type=Число>Что </returns>
        /// <sig>
        Число Метод(Число чПарам1 = 1);
        /// </sig>
        /// </method>
};
///</class>
/// </namespace>

В поставку с ВК включен демонстрационный пример формирования als-файла для класса.
И предложен шаблоны заполнения для 1C редактора, где есть сокращения:
класс\ мет\ пар\ св\ прим\ и их англ. эквиваленты.


MetaInfoClasses::УстФильтрПоКлассам / SetFilterClasses

1C++ :: MetaInfoClasses | Ранее: СоздатьALS / CreateALS | Далее: УстФильтрПоПростИмен / SetFilterNamespace
MetaInfoClasses :: УстФильтрПоКлассам / SetFilterClasses

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

Параметры:
  • стрФильтр - тип: Строка. Имена классов, разделенные запятой, которые необходимо выгружать в als-файл.

Пустая строка - фильтр отключен и выгружаться будут все комментированные классы.

Описание: устанавливает фильтр по выгружаемым классам в als-файл содержащихся в текущей конфигурации.


MetaInfoClasses::УстФильтрПоПростИмен / SetFilterNamespace

1C++ :: MetaInfoClasses | Ранее: УстФильтрПоКлассам / SetFilterClasses | Далее: ПолучитьЗагрВложФайлы / GetLoadIncludeFiles
MetaInfoClasses :: УстФильтрПоПростИмен / SetFilterNamespace

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

Параметры:
  • стрФильтр - тип: Строка. Имена пространств имен, разделенные запятой, которые необходимо выгружать в als-файл.

Пустая строка - фильтр отключен и выгружаться будут все пространства.

Описание: устанавливает фильтр по пространству имен для выгрузки в als-файл.


MetaInfoClasses::ПолучитьЗагрВложФайлы / GetLoadIncludeFiles

1C++ :: MetaInfoClasses | Ранее: УстФильтрПоПростИмен / SetFilterNamespace | Далее: ПолучитьОпрСимволыПрепроц / GetDefSymbolOfPreproc
MetaInfoClasses :: ПолучитьЗагрВложФайлы / GetLoadIncludeFiles

Синтаксис: ПолучитьЗагрВложФайлы()

Возвращаемое значение:
тип: СписокЗначений. Список значений, значения в котором есть имена файлов.

Описание: возвращает список с именами вложенных файлов - загруженных с помощью препроцессорной директивы #include.


MetaInfoClasses::ПолучитьОпрСимволыПрепроц / GetDefSymbolOfPreproc

1C++ :: MetaInfoClasses | Ранее: ПолучитьЗагрВложФайлы / GetLoadIncludeFiles | Далее: ПолучитьВсеИменаКлассов / GetAllClassesNames
MetaInfoClasses :: ПолучитьОпрСимволыПрепроц / GetDefSymbolOfPreproc

Синтаксис: ПолучитьОпрСимволыПрепроц()

Возвращаемое значение:
тип: СписокЗначений. Список значений, значения в котором есть имена символов.

Описание: возвращает список определенных препроцессорной директивой #define символов.


MetaInfoClasses::ПолучитьВсеИменаКлассов / GetAllClassesNames

1C++ :: MetaInfoClasses | Ранее: ПолучитьОпрСимволыПрепроц / GetDefSymbolOfPreproc | Далее: ПолучитьПсевдИ_Пути / GetAllAliasAndPath
MetaInfoClasses :: ПолучитьВсеИменаКлассов / GetAllClassesNames

Синтаксис: ПолучитьВсеИменаКлассов()

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

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


MetaInfoClasses::ПолучитьПсевдИ_Пути / GetAllAliasAndPath

1C++ :: MetaInfoClasses | Ранее: ПолучитьВсеИменаКлассов / GetAllClassesNames | Далее: ПолучитьИменаМетодовКласса / GetNamesMethOfClass
MetaInfoClasses :: ПолучитьПсевдИ_Пути / GetAllAliasAndPath

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

Возвращаемое значение:
тип: СписокЗначений. Список значений, значения в котором есть имена псевдонимов, а в символьном представлении их содержимое.

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


MetaInfoClasses::ПолучитьИменаМетодовКласса / GetNamesMethOfClass

1C++ :: MetaInfoClasses | Ранее: ПолучитьПсевдИ_Пути / GetAllAliasAndPath | Далее: ПолучитьИнфоПоПар / GetInfoParamMeth
MetaInfoClasses :: ПолучитьИменаМетодовКласса / GetNamesMethOfClass

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

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

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

Внимание: Метод работает, только для тех методов, которые были определены в файлах - определений классов (prm-файлы)."


MetaInfoClasses::ПолучитьИнфоПоПар / GetInfoParamMeth

1C++ :: MetaInfoClasses | Ранее: ПолучитьИменаМетодовКласса / GetNamesMethOfClass | Далее: КлассСуществует / IsClassExist
MetaInfoClasses :: ПолучитьИнфоПоПар / GetInfoParamMeth

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

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

Описание: возвращает список предопределенных структур параметров метода класса с полями: Имя - имя параметра, Имя - тип параметра, Значение - значение по умолчанию для параметра, Режим - имеет два состояния ПоЗначению и ПоСылке.

Внимание: Метод работает, только для тех методов, которые были определены в файлах - определений классов (prm-файлы)."


MetaInfoClasses::КлассСуществует / IsClassExist

1C++ :: MetaInfoClasses | Ранее: ПолучитьИнфоПоПар / GetInfoParamMeth | Далее: МетодСуществует / IsMethExist
MetaInfoClasses :: КлассСуществует / IsClassExist

Синтаксис: КлассСуществует(стрИмяКласса)

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

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

Метод является полным аналогом соответствующего метода встроенного класса "Информатор".


MetaInfoClasses::МетодСуществует / IsMethExist

1C++ :: MetaInfoClasses | Ранее: КлассСуществует / IsClassExist | Далее: ПолучитьВерсию / GetVersion
MetaInfoClasses :: МетодСуществует / IsMethExist

Синтаксис: МетодСуществует(стрИмяКласса, стрИмяМетода)

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

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

Внимание: Метод работает, только для тех методов, которые были определены в файлах - определений классов (prm-файлы).

Метод является полным аналогом соответствующего метода встроенного класса "Информатор".


MetaInfoClasses::ПолучитьВерсию / GetVersion

1C++ :: MetaInfoClasses | Ранее: МетодСуществует / IsMethExist | Далее: ЭтоSQL_Версия / ThisIsSQL_Ver
MetaInfoClasses :: ПолучитьВерсию / GetVersion

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

Возвращаемое значение:
тип: Число. Номер версии, число без точек. Пример: если версия ВК 1.1.1.0, то метод вернет 1110.

Описание: возвращает номер текущей версии ВК 1С++.


MetaInfoClasses::ЭтоSQL_Версия / ThisIsSQL_Ver

1C++ :: MetaInfoClasses | Ранее: ПолучитьВерсию / GetVersion | Далее: ПолучитьТекУстановки / GetCurSettings
MetaInfoClasses :: ЭтоSQL_Версия / ThisIsSQL_Ver

Синтаксис: ЭтоSQL_Версия()

Возвращаемое значение:
тип: Число.

Описание: Возвращает 1, если текущая версия 1С работает с SQL сервером Майкрософт, 0 - иначе.


MetaInfoClasses::ПолучитьТекУстановки / GetCurSettings

1C++ :: MetaInfoClasses | Ранее: ЭтоSQL_Версия / ThisIsSQL_Ver | Далее: УстановитьТекУстановки / SetCurSettings
MetaInfoClasses :: ПолучитьТекУстановки / GetCurSettings

Синтаксис: ПолучитьТекУстановки(бВклОптимизация, бВклПроверкаТипов, бВклРежимОтладки)

Параметры:
  • бВклОптимизация - тип: Число. Выходной параметр: 1 - включена, 0 - выключена.
  • <бВклПроверкаТипов - тип: Число. Выходной параметр: 1 - включена, 0 - выключена.
  • <бВклРежимОтладки - тип: Число. Выходной параметр: 1 - включен, 0 - выключен.

Описание: Метод возвращает установки ВК, которые настраиваются в параметрах на закладке Настройки 1С++, почитать о которых можно в classes.chm.


MetaInfoClasses::УстановитьТекУстановки / SetCurSettings

1C++ :: MetaInfoClasses | Ранее: ПолучитьТекУстановки / GetCurSettings | Далее: ЗагрузитьОписаниеКлассов / ReadDefinesOfClasses
MetaInfoClasses :: УстановитьТекУстановки / SetCurSettings

Синтаксис: УстановитьТекУстановки(бВклОптимизация, бВклПроверкаТипов, бВклРежимОтладки)

Параметры:
  • бВклОптимизация - тип: Число. входной параметр: 1 - включена, 0 - выключена, любое другое число не изменяет текущее значение.
  • <бВклПроверкаТипов - тип: Число. Входной параметр: 1 - включена, 0 - выключена, любое другое число не изменяет текущее значение.
  • <бВклРежимОтладки - тип: Число. Входной параметр: 1 - включен, 0 - выключен, любое другое число не изменяет текущее значение.

Описание: Метод изменяет установки ВК, которые настраиваются в параметрах на закладке Настройки 1С++, почитать о которых можно в classes.chm.


MetaInfoClasses::ЗагрузитьОписаниеКлассов / ReadDefinesOfClasses

1C++ :: MetaInfoClasses | Ранее: УстановитьТекУстановки / SetCurSettings | Далее: ПолучитьИменаБазовыхКлассов / GetBaseClasses
MetaInfoClasses :: ЗагрузитьОписаниеКлассов / ReadDefinesOfClasses

Синтаксис: ЗагрузитьОписаниеКлассов(ИмяФайлаОписанияКлассов)

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

Описание: Загружает описания классов и сами классы из соответствующих файлов.

Синтаксис описания и реализации классов - это обычный синтаксис 1С++


MetaInfoClasses::ПолучитьИменаБазовыхКлассов / GetBaseClasses

1C++ :: MetaInfoClasses | Ранее: ЗагрузитьОписаниеКлассов / ReadDefinesOfClasses | Далее: ЯвляетсяОбъектом / TheClassIs
MetaInfoClasses :: ПолучитьИменаБазовыхКлассов / GetBaseClasses

Синтаксис: ПолучитьИменаБазовыхКлассов(ИмяКласса)

Параметры:
  • ИмяКласса - тип: Строка. Имя класса.
Возвращаемое значение:
тип: СписокЗначений. Список значений, значения в котором есть наименования базовых классов.

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


MetaInfoClasses::ЯвляетсяОбъектом / TheClassIs

1C++ :: MetaInfoClasses | Ранее: ПолучитьИменаБазовыхКлассов / GetBaseClasses | Далее: ПолучитьВерсиюФайла / GetFileVersion
MetaInfoClasses :: ЯвляетсяОбъектом / TheClassIs

Синтаксис: ЯвляетсяОбъектом(НазваниеПроверяемогоТипа, НазваниеТипаНаКоторыйПроверяем)

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

Описание: Возвращает 1, если проверяемый тип совпадает со вторым типом или проверяемый тип является наследников от второго типа.

Возвращает 0 в обратном случае.


MetaInfoClasses::ПолучитьВерсиюФайла / GetFileVersion

1C++ :: MetaInfoClasses | Ранее: ЯвляетсяОбъектом / TheClassIs | Далее: ОчиститьДанныеОптимизацииКлассов / ClearClassOptimizationData
MetaInfoClasses :: ПолучитьВерсиюФайла / GetFileVersion

Синтаксис: ПолучитьВерсиюФайла([ПутьФайла = ""], [ИмяПоляСтруктурыВерсии = ""])

Параметры:
  • ПутьФайла - тип: Строка.Путь к файлу. Если путь не задан, значит, подразумевается путь к ВК 1С++, т.е. к исходному файлу 1cp.dllp.
  • ИмяПоляСтруктурыВерсии - тип: Строка. Имя поля. Например, PrivateBuild, SpecialBuild, FileVersion
Возвращаемое значение:
тип: Строка. Значение указанного поля структуры версии для указанного файла.

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


MetaInfoClasses::ОчиститьДанныеОптимизацииКлассов / ClearClassOptimizationData

1C++ :: MetaInfoClasses | Ранее: ПолучитьВерсиюФайла / GetFileVersion | Далее:
MetaInfoClasses :: ОчиститьДанныеОптимизацииКлассов / ClearClassOptimizationData

Синтаксис: ОчиститьДанныеОптимизацииКлассов()

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

После исполнения данного метода классы при создании будут заново перекомпилированы, независимо от включения/выключения режима Оптимизация.

Внимание: Метод удобно использовать для динамического обновления классов без перезагрузки пользователей из 1С.

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