From c28e6507e5e73e2d77f2623ee51ff2cbffb31c47 Mon Sep 17 00:00:00 2001 From: Akpaev Evgeny <40080662+akpaevj@users.noreply.github.com> Date: Sun, 3 Jan 2021 00:48:38 +0300 Subject: [PATCH] Update README.md --- README.md | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) 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.