2021-01-03 00:23:54 +03:00
# OneSTools.FileDatabase
2021-01-03 00:48:38 +03:00
[](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 ** таблицы.