Кому нужен regexp в 1sqlite - можно использовать плагин - https://github.com/nalgeon/sqlean/releases/tag/0.23.0 - именно x86 версия. Т.к. последние версии все x64 и похоже, что поддержку x86 больше не будут осуществлять.
https://github.com/nalgeon/sqlean/blob/main/docs/regexp.md
ПредварительныйЗапрос="SELECT load_extension('regexp.dll')";
Ага, вот и свежее есть x86, почти последняя - https://github.com/nalgeon/sqlean/releases/tag/0.27.4
Всем привет. Кто-то знает - остались ли где-то исходники 1sqlite от Djelf?
У меня что то есть, могу скинуть на почту 1sqlite_3.32.3.23_src.zip
А по карлику, случаем нет?
Цитата: MWW_Ruza от 03 июня 2026, 14:33А по карлику, случаем нет?
Есть, 1ScURL16.src.20240317.7z
Цитата: smitti911 от 03 июня 2026, 15:16Есть, 1ScURL16.src.20240317.7z
Да, оно самое... Если не сложно на m_w_w"ГАВ"mail.ru скиньте пожалуйста...
А то прноблеммка возникла: https://forum.dorex.pro/index.php?topic=352.0 , не знавю, поможет это чем-то или нет, разберусь сам, или кого-то попрошу помочь, но попробую...
и мне скиньте если есть наработки Антона, на tomba-жаба-майлру. Положу в репозиторий себе.
Отправил
1sqlite_3.32.3.23_src
https://drive.google.com/file/d/1Zn_RnwM0EQor4ZyqhG5C3K9Fj6WEI4XH/view?usp=sharing
1ScURL16.src.20240317
https://drive.google.com/file/d/1YgNdgCNqgAbgxXYWYBj1XUU2s8aq-e30/view?usp=sharing
Из последних ДЛЛ у меня 3-50-2-32
исходников нет
Спасибо.
А есть возможность поделиться содержимым https://snegopat.ru/1sqlite/dir?name=sqlite1c/_1Common/ - ?
У меня этот сайт недоступен. Хочу попробовать натравить исходники на ИИ. Может что-то получится реанимировать.
На данный момент просит дать ему _1Common
https://www.dropbox.com/scl/fo/weolus4mr66ahrd8hzb8t/AGhlwdbIIdUGLM-yyILluSw?rlkey=rln77f617zb5qgg7uuwgd09xb&dl=0
Спасибо.
Хм.... На удивление - даже получилось. Откомпилилась библиотека 1sqlite_3.32.3.23, а потом даже обновился движок и теперь 3.53.2. И запустился в 1С. Но пока ещё плотно не проверял. Да, и не скажу на счет того, что нужно сделать, чтобы подогнать все изменения, которые делались Антоном после версии 3.32. Нашел только вот это в истории версий
* 1sqlite 3.32.3.24
+ Изменена функция подключения таблиц, это позволило подключать таблицы 1С с наличием в Идентификаторе знака подчёркивания "_".
Подобные таблицы не редкость, пример: Справочник_КонтурEDI_ДополнительныеРеквизиты
* 1sqlite 3.33.0.24
+ Обновлен движок: https://sqlite.org/releaselog/3_33_0.html (https://sqlite.org/releaselog/3_33_0.html)
Хорошее обновление! UPDATE FROM значительно ускоряет обновление поля в таблице sqlite. Обновление таблицы размером в 4000 строк с 900мс, ускоряется до 32мс, за счет отсутствия дерганья 4000 раз коррелирующего подзапроса.
* 1sqlite 3.33.0.25
Внезапно обнаружил, что CDO под Linux+Wine@Etersoft не работает, его там просто нет, а перекодировать из/в BASE64 под 1С 7.7 без него большие сообщения довольно затруднительно (слишком медленно). Поэтому:
+ функции text_base64 to_base64(text_utf-8) и text_utf-8 from_base64(text_base64)
Примечание: кодировка Windows-1251 таким образом используется в 0.01% случаев, а sqlite внутри своей базы использует utf-8, а 1sqlite прозрачно преобразовывает Windows-1251 при передаче в sqlite и наоборот, то такой вариант работы с BASE64 приемлем.
ВНИМАНИЕ!!! Закодированный в BASE64 текст будет в кодировке UTF-8
* 1sqlite 3.35.1.25
Обновлен движок https://www.sqlite.org/releaselog/3_35_1.html
Компиляция движка произведена с включением математических функций (+3кб): https://www.sqlite.org/lang_mathfunc.html
* 1sqlite 3.36.0.26
Внезапно оказалось что запрос к пустой дате возвращает не совсем пустую дату, т.е. ПустоеЗначение(ДатаИзSQLite)=0, а не 1 как должно быть. Исправлено.
* 1sqlite 3.40.1.26
Обновлен движок sqlite, изменения всегда тут: https://www.sqlite.org/changes.html (https://www.sqlite.org/changes.html)
Включен json по-умолчанию https://www.sqlite.org/json1.html
Но, на мой взгляд, из интересного для нас только: RIGHT and FULL OUTER JOIN (https://www.sqlite.org/lang_select.html#rjoin).
Возможно еще и материализация (повторное использование первого запроса, без обращения к базе) отразится в скорости запросов к CTE и VIEW, что-то может резко поменяться, но такие запросы редкость.
Все остальные фишки и оптимизации вроде с клюшками не работают никак, но может где-то Вы это и заметите. Если найдете, обязательно сообщите.
_________________
Если получится это восстановить - будет хорошо. Или вдруг кто-то найдет более свежие исходники - будет совсем здорово.
Лучи добра за поддержание проекта.
Обнаружил на другом компе sqlite1c_3.46.0.31:
https://drive.google.com/file/d/1KMOJ_ItRkYC-ZFfEa_jbGlQFa-XcGTtr/view?usp=sharing
О! Благодарю! Сейчас кину в анализ.
Вот, что написал ИИ Claude после анализа.
Что было в авторском исходнике 3.46.0.31 (Фиксы.txt)Автор оставил свои реальные правки. Разбор:1. 🔴 Регистронезависимость ИМЁН ПОЛЕЙ (sqlite3StrIHash) — у нас этого НЕ БЫЛО, добавил.
Баг автора: запросSELECT Автомобили.МаркА FROM Справочник_Автомобили AS АвтомобилИ
GROUP BY Автомобили.ID
давал no such column: Автомобили.МаркА. Причина: имена идентификаторов хешируются функцией sqlite3StrIHash, а она складывала байты через UpperToLower. Для кириллицы в разном регистре («МаркА» vs «Марка») получались разные хеши → разные корзины → поле не находилось. Мы чинили парный StrICmp (сравнение), но забыли хеш. Это и был пропущенный фикс — теперь хеш считается по кодовым точкам через oasUpper2Lower, как у автора.2. 🟡 Фикс компиляции u64→double (ошибка C2520) — у автора в коде printf-форматирования. У нас та же проблема решена в других местах того же движка (sqlite3AtoF/JSONB) — эквивалентно.3. 🟡 Пустая дата (CDate) — автор делает if(m_Date.m_DateNum == -1) m_Date.m_DateNum = 0 (прямой доступ — у него работает, т.к. раскладка в его заголовках совпадает). У нас — безопасный эквивалент через *pValue = CDate... (работает независимо от раскладки). Оставил наш.4. 🟢 baseStr2Id — автор перевёл на strtol(..., 36) (выравнивание с 1С++ MetaDataWork). Мелочь; у нас кастомный парсер, трогать рискованно.Плюс: его to_base64/from_base64 — это библиотека libb64, но в 3.46 она даже не зарегистрирована (код лежит, но не подключён). Наш рукописный base64 зарегистрирован и проверен — то есть у нас функциональнее.Итог- Добавлен реальный пропущенный фикс — кириллические имена полей в разном регистре теперь находятся (
GROUP BY Поле, алиасы и т.п.). Релиз
1sqlite_3.53.2.49.dll. - Остальное у нас уже есть в эквиваленте или лучше.
круть
Интересно, а в github можно выложить исходники? Никто не будет протестовать?
У кого есть возможность - потестите этот релиз sqlite_3.53.2.53
https://drive.google.com/file/d/1wXdezP2Eapp-0PH5IK5tcWo9bmV9A_On/view?usp=sharing
Движок sqlite обновлен до последнего (3.53). Чисто механически. Т.е. что из него может быть полезного - даже не проверялось. Попытался сохранить все доделки, которые были известны.
Т.е., как вы поняли, этот релиз - это была просто попытка понять - а можно ли поднять "знамя" этой ВК и нести дальше. Я не являюсь специалистом по c++. Но пока наличие такого инструмента как ИИ Claude - дало надежду на такое продлжение. Вот то, что получилось выложил на тест. В дальнейшем хочу выложить исходники и сопутствующие необходимые файлы на github.
https://github.com/alyuev/1sqlite
я 1SQLite использую очень мало, толком и потестить не смогу
Закинул в рабочую базу. Если кто заверещит, отпишусь.
Из интересного и непонятного: 3.40 работала ок, 3.50 запрос периодики минутами хрустела, 3.53 (с гитхаба) этот запрос отрабатывает быстро. Не уверен, в чём была/есть проблема, и тестовый стенд куда-то дел. И шут с ним.
А случайно исходников для StrMatch.dll, которую допиливал Djelf нет?
У меня вот готовая компонента и описание, того что он делал есть, но исходников от Djelf нет.
StrMatch.dll
Гибридная компонета, работающая как ВК без регистрации в реестре
и одновременно расширение к sqlite3, работающее без 1С
Автор первоначальной версии Sk0rp:
https://infostart.ru/public/237186/
Исходники взяты отсюда:
https://github.com/5k0rp/StrMatch
Использовались куски кода и движок из 1sqlite:
https://snegopat.ru/1sqlite/index
Изменения компоненты:
1. Движок ВК переведен на движок от Орефкова.
Это позволило ВК загружаться в 1С и работать без регистрации в реестре
Методы и свойства совместны с оригинальной компонетой
2. Добавлен интерфейс загрузки в sqlite3
Использование:
База = СоздатьОбъект("SQLiteBase");
База.Открыть(":memory:");// без этого будет вылет
База.РазрешитьЗагрузкуРасширений(1);
Запрос=База.НовыйЗапрос();
Запрос.ВыполнитьЗапрос("SELECT load_extension('strmatch.dll'););
Запрос.ВыполнитьЗапрос("
SELECT
descr,
strmatch(descr,'что-то тут ищем') as Рейтинг
from Справочник_Номенклатура
order by strmatch(descr,'что-то тут ищем') desc;
Примечание:
Перебор через 1С с использованием кэша ~2-3c на 5к строк
Запрос через 1sqlite ~150мс
Совсем не в тему. Но может кого-то заинтересует и пригодится - https://github.com/alyuev/TimeRec - трекер выполнения задач в течение дня с возможностью записывать аудио (микрофон+системные). Писалось с помощью ИИ. По следам LazyCure+Bandicam.