1
0
mirror of https://github.com/akpaevj/OneSTools.FileDatabase.git synced 2026-04-30 19:18:48 +02:00
Files

56 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2021-01-03 00:23:54 +03:00
# OneSTools.FileDatabase
2021-01-03 00:48:38 +03:00
[![Nuget](https://img.shields.io/nuget/v/OneSTools.FileDatabase)](https://www.nuget.org/packages/OneSTools.FileDatabase)
2021-01-03 01:24:44 +03:00
Библиотека для чтения данных файловых информационных баз 1С. Поддерживается работа только с версией формата файлов 8.3.8 и только операции чтения.
2021-01-03 01:01:10 +03:00
Кроме обычных информационных баз, так-же дает возможность прочитать данные базы хранилища конфигураций.
2021-01-03 00:26:45 +03:00
2021-01-03 00:48:38 +03:00
Пример работы с библиотекой:
```csharp
2021-01-03 00:49:09 +03:00
using var database = new FileDatabaseConnection("..\\1Cv8.1CD");
2021-01-03 00:48:38 +03:00
database.Open();
2021-01-03 01:23:34 +03:00
foreach(var table in database.Tables)
2021-01-03 00:48:38 +03:00
{
2021-01-03 01:23:34 +03:00
Console.WriteLine($"Table \"{table}\":");
// list the table fields
Console.WriteLine("\tFields:");
foreach (var field in table.Fields)
Console.WriteLine($"\t\tField \"{field}\"");
if (table.Indexes.Count > 0)
{
// list the table indexes
Console.WriteLine("\tIndexes:");
foreach (var index in table.Indexes)
{
Console.WriteLine($"\t\tIndex \"{index}\"");
// list the index fields
Console.WriteLine("\t\t\tIndex fields:");
foreach (var indexField in index.Fields)
Console.WriteLine($"\t\t\t\tIndex field \"{indexField}\"");
}
}
// list the table data (rows)
if (table.Rows.Count > 0)
2021-01-03 00:48:38 +03:00
{
2021-01-03 01:23:34 +03:00
Console.WriteLine("\tRows:");
// values is an array of objects, it contains values as in the same order as fields are represented
foreach (var values in table.Rows)
2021-01-03 00:48:38 +03:00
{
2021-01-03 01:23:34 +03:00
Console.WriteLine("\t\tRow");
2021-01-03 00:48:38 +03:00
}
}
}
```
2021-01-03 00:50:43 +03:00
Подключение представлено объектом **FileDatabaseConnection**, который предоставляет информацию об открытой базе и в числе прочего содержит коллекцию **Tables**
2021-01-03 02:59:12 +03:00
Каждый элемент коллекции **Tables** представляет информацию о схеме таблицы и дает доступ к данным таблицы через свойство **Rows** (доступно использование **LINQ**)
2021-01-03 03:00:10 +03:00
Данные строки - массив **object**, где количество элементов равно количеству полей таблицы и порядок так-же равен порядку полей в коллекции **Fields** таблицы.