diff --git a/README.md b/README.md index ce073ab..70a9e1e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,39 @@ # OneSTools.FileDatabase -Библиотека для чтения данных файловых информационных баз 1С (Документация в разработке) +[![Nuget](https://img.shields.io/nuget/v/OneSTools.FileDatabase)](https://www.nuget.org/packages/OneSTools.FileDatabase) +Библиотека для чтения данных файловых информационных баз 1С. Поддерживается работа только с актуальной версией формата файлов (8.3.8) и только операции чтения +Кроме обычных информационных баз, так-же дает возможность прочитать данные базы хранилища конфигурации. -Позволяет считывать данные таблиц (поддерживается только версия файлов 8.3.8). +Пример работы с библиотекой: + +```csharp +using var database = new FileDatabaseConnection("..\1Cv8.1CD"); +database.Open(); + +var table = database.Tables.FirstOrDefault(c => c.Name == "_Document38"); + +if (table != null) +{ + foreach (var values in table.Rows) + { + for (int i = 0; i < table.Fields.Count; i++) + { + var field = table.Fields[i]; + var value = values[i]; + + // Or another one what you need + if (field.Type == FieldType.Numeric) + { + var typedValue = (decimal?)value; + } + if (field.Type == FieldType.NChar + || field.Type == FieldType.NText + || field.Type == FieldType.NVarChar) + { + var typedValue = (string)value; + } + } + } +} +``` +Подключение представлено объектов **FileDatabaseConnection**, который предоставляет информацию об открытой базе и в числе прочего содержит коллекцию **Tables** +Каждый обект коллекции **Tables** представляет информацию о схеме таблицы и предоставляет доступ к данным таблицы через свойство Rows. Это свойство имеет тип **ReadOnlyCollection** и предоставляет возможность считывать данные используя LINQ.