1sqlite


Внешняя компонента для работы с базами данных SQLite, плюс прямые запросы в ДБФ-базах 1С.

Внешняя компонента, предназначенная для работы с базами данный SQLite.
Версия 1.0.2.3

Основана на проекте http://www.sqlite.org.

Основная страница проекта: http://snegopat.ru/1sqlite/

Кроме того, при работе в ДБФ-версии 1С, компонента позволяет посредством "движка" SQLite и встроенным в него механизмом "виртуальных таблиц" обращаться на чтение к таблицам базы данных 1С через "родные" методы самой 1С. Что позволяет выполнять запросы к базе 1С даже в монопольном режиме работы.

Основные фичи компоненты:

  • SQLite версии 3.6.11
  • Движок SQLite доработан в плане регистронезависимости русских символов, нормально работают lower, upper, like, названия таблиц, полей.
  • Добавлено collate _1С - сравнение строк без учета регистра и завершающих пробелов.
  • Отображение ДБФ-таблиц 1С в базу данных SQLite и возможность использовать их в запросах.
  • Работа с ДБФ-таблицами 1С в монопольном режиме.
  • Получение в прямых запросах "длинных" строк 1С-ДБФ.
  • Типизация результатов запроса типами данных 1С.
  • Работа с текстовыми и sql-параметрами в запросах.
  • Укладка в базу данных SQLite ТаблицЗначений.
  • Укладка в базу данных SQLite СписовЗначений с объектами 1С, с возможностью в ДБФ версии разворота групп справочников или счетов по иерархии.
  • Поставщик данных табличного поля 1С++


История версий:

1.0.1.1

  • Исправлен вылет при попытке подключить таблицу строк документа, у которого нет ТЧ.
  • Добавлены текстовые параметры: :ВидСубконто и :ПланСчетов

1.0.1.2

  • Исправлена работа с преобразованием значений типа Дата в формат БД.

1.0.1.3

  • Исправлена ошибка в метапарсере при обработке вхождений текстовых параметров.

1.0.1.4

  • Добавлено авто-подключение таблиц.

1.0.1.5

  • Исправлена ошибка подстановки текстового параметра ":ВидСправочника.ХХХ"
  • Добавлен модификатор 3 для подстановки значений типа Строка. Подставляет фрагмент текста без кавычек, для динамического формирования текста запроса.

1.0.1.6

  • Исправлена подстановка значения пустой даты.
  • Добавлена типизация :Субконто
  • Добавлена типизация :Время
  • Добавлена функция str2id
  • Добавлена функция id2str

1.0.1.7

  • Доработана работа 3го модификатора текстового параметра типа "Строка". Теперь подставляемый фрагмент текста также обрабатывается метапарсером.
  • Удалены типизация ":ВидДокумента" и ":ВидДокументаПредставление".
  • Добавлены типизации ":ИмяВида" и ":ПредставлениеВида".
  • Доработан метод SQLiteQuery::ВыполнитьЗапрос. Теперь можно получать результат выполнения запроса в таблицу значений, список значений, полем из скалярного запроса, а также в любой объект, реализующий интерфейс загрузки результата запроса (ISQLiteResultLoader).

1.0.1.8

  • Исправлена ошибка обработки NULL значений.
  • Исправлена ошибка преобразования из utf-8 нулевых строк
  • Устранена гигантская утечка памяти при некоторых случаях использования LIMIT
  • Рефакторинг классов базы данных и запросов, с целью облегчения использования их в других компонентах
  • Из соображений производительности восстановлены типизации :ВидДокумента и :ВидДокументаПредставление
  • Из соображений производительности добавлены типизации :ВидСубконто и :ВидСубконтоПредставление

1.0.1.9

  • - Сделано принудительное округление чисел при типизации :Число, тк получатели результата (кроме ТаблицыЗначений) сами этого не делают.
  • Исправлена работа типизации при обработке NULL значений, тк получатели результата (кроме ТаблицыЗначений) сами этого не делают.
  • Изменена логика работы с Begin/EndReadSequnce. В немонопольном режиме падение производительности, зато не падает.
  • Добавлен метод SQLiteQuery::ОбработатьТекстЗапроса
  • Добавлено свойство SQLiteQuery::ВыполнятьВТранзакции
  • Исправлена ошибка программы при подключении таблиц шапки документа, не имеющего реквизитов шапки.
  • Исправлена ошибка при выборке из таблиц 1С, иногда могущая привести к зависанию программы.
  • Добавлено подключение таблиц ЖурналовРасчетов ДБФ версии 1С.
  • Исправлена укладка списка объектов при наличии иерархии - неверно укладывались объекты, содержащие в идентификаторе русские буквы (распределенка с русским префиксом ИБ).
  • Добавлен объект SQLiteDataProvider - поставщик данных табличного поля 1С++ для таблиц sqlite и таблиц 1С DBF-версии.

1.0.2.0 bugfix 2

  • SQLite обновлен до релиза 3.6.11
  • Добавлена способность ПоставщикаДанных динамически менять текст запроса, если некоторые поля не нужны табличному полю для отображения
  • Добавлена возможность быстрого поиска для поставщика данных
  • Исправлена ошибка выборки данных при некоторых условиях (where date <= '09или19или29.месяц.год' order by date desc)
  • Убрана странная ошибка при попытке подготовить запросы с текстом запроса длиннее 972 символов.
  • Порядок сортировки в 'collate _1C' сделан точно соответствующим порядку сортировки в дбф-файлах 1С.
  • Изменены методы:
    • SQLiteDataProvider::УстановитьТекстЗапроса
    • SQLiteDataProvider::Отладка
  • Добавлены методы:
    • SQLiteDataProvider::НеУдалятьПоля
    • SQLiteDataProvider::ПоляБыстрогоПоиска
    • SQLiteDataProvider::ПолучитьТекстЗапроса

 1.0.2.2

  • SQLite обновлен до релиза 3.6.18

1.0.2.3

  • SQLite обновлен до релиза 3.6.22
  • Исправлена ошибка автоподключения таблиц 1С, названия которых начинаются с подчеркивания
  • Доработано автоподключение таблиц 1С, теперь можно просто указывать имя таблицы, заключенное в [].
  • Изменен алгоритм выгрузки результата запроса в СписокЗначений.   
-