You've already forked OneSTools.FileDatabase
mirror of
https://github.com/akpaevj/OneSTools.FileDatabase.git
synced 2026-04-24 19:13:53 +02:00
56 lines
2.6 KiB
Markdown
56 lines
2.6 KiB
Markdown
# OneSTools.FileDatabase
|
|
[](https://www.nuget.org/packages/OneSTools.FileDatabase)
|
|
Библиотека для чтения данных файловых информационных баз 1С. Поддерживается работа только с версией формата файлов 8.3.8 и только операции чтения.
|
|
Кроме обычных информационных баз, так-же дает возможность прочитать данные базы хранилища конфигураций.
|
|
|
|
Пример работы с библиотекой:
|
|
|
|
```csharp
|
|
using var database = new FileDatabaseConnection("..\\1Cv8.1CD");
|
|
database.Open();
|
|
|
|
foreach(var table in database.Tables)
|
|
{
|
|
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)
|
|
{
|
|
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)
|
|
{
|
|
Console.WriteLine("\t\tRow");
|
|
}
|
|
}
|
|
}
|
|
```
|
|
Подключение представлено объектом **FileDatabaseConnection**, который предоставляет информацию об открытой базе и в числе прочего содержит коллекцию **Tables**
|
|
Каждый элемент коллекции **Tables** представляет информацию о схеме таблицы и дает доступ к данным таблицы через свойство **Rows** (доступно использование **LINQ**)
|
|
Данные строки - массив **object**, где количество элементов равно количеству полей таблицы и порядок так-же равен порядку полей в коллекции **Fields** таблицы.
|