Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

разбор на C# результата выполнения процедуры "ПолучитьСтруктуруХраненияБазыДанных" из 1С 8.2

closed without completion
C#


Коллеги, тут работы на полчаса, по-моему, для знающего человека. Разве нет?Предлагайте цену.

Получить из внешнего приложения .NET (C# 4.5) результат выполнения процедуры "ПолучитьСтруктуруХраненияБазыДанных" из 1С 8.2 (она же - GetDBStorageStructureInfo) и разобрать полученный результат - названия и назначения таблиц, названия, назначение и тип полей в этих таблицах (см. справку в !С по процедуре "ПолучитьСтруктуруХраненияБазыДанных"). К базе 1С нужно подключаться через V82.COMConnector. Не нужно создавать "обработки", итоговый код должен запускаться на любой машине с 1С без какой-либо предварительной подготовки (если известна строка подключения и реквизиты пользователя).

Фактически, нужно, чтобы заработал вот такой примерно код GetDB:

public static void GetConnection()
{
if (Connection == null)
{
string[] arguments = new string[] { "Srvr=\"сервер\";Ref=база\";Usr=\"Администратор\";Pwd=\"пароль\"" };
var v82comConnector = Type.GetTypeFromProgID("V82.COMConnector");
var v82 = Activator.CreateInstance(v82comConnector);
Connection = v82comConnector.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v82, arguments);
}
}

public static void GetDB()
{
GetConnection();
dynamic StorageStructure = Connection.GetDBStorageStructureInfo();

int i = 0;

foreach (dynamic item in StorageStructure)
{
i++;
string StorageTableName = //ИмяТаблицыХранения(StorageTableName) – имя таблицы модели базы данных 1С:Предприятия или базы данных;
string TableName = // ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
string Metadata = //Метаданные(Metadata) – полное имя объекта метаданных;
string Purpose = //Назначение(Purpose) – назначение таблицы:

// Поля(Fields) - таблица значений с полями таблицы базы данных;
foreach (var Field in item.Fields)
{
string StorageFieldName = // ИмяПоляХранения(StorageFieldName) - имя поля модели базы данных 1С:Предприятия или базы данных;
string FieldName = // ИмяПоля(FieldName) - имя поля в терминах языка запросов (для тех у кого оно есть);
string Metadata = //Метаданные(Metadata) – полное имя объекта метаданных;
}
}

}

Make a proposal!

The client doesn't want to make prepayment? Offer him to make a payment via Safe to avoid possible fraud.

Project published
12 July 2013
201 views