Последние сообщения

#1
Дружественные проекты / Re: 1sqlite
Последний ответ от Злоп - Вчера в 22:20
я 1SQLite использую очень мало, толком и потестить не смогу
#2
Дружественные проекты / Re: 1sqlite
Последний ответ от alyuev - Вчера в 19:29
#3
Дружественные проекты / Re: 1sqlite
Последний ответ от alyuev - Вчера в 17:36
Т.е., как вы поняли, этот релиз - это была просто попытка понять - а можно ли поднять "знамя" этой ВК и нести дальше. Я не являюсь специалистом по c++. Но пока наличие такого инструмента как ИИ Claude - дало надежду на такое продлжение. Вот то, что получилось выложил на тест. В дальнейшем хочу выложить исходники и сопутствующие необходимые файлы на github.
#4
Дружественные проекты / Re: 1sqlite
Последний ответ от alyuev - Вчера в 17:10
У кого есть возможность - потестите этот релиз sqlite_3.53.2.53
https://drive.google.com/file/d/1wXdezP2Eapp-0PH5IK5tcWo9bmV9A_On/view?usp=sharing

Движок sqlite обновлен до последнего (3.53). Чисто механически. Т.е. что из него может быть полезного - даже не проверялось. Попытался сохранить все доделки, которые были известны.
#5
Дружественные проекты / Re: 1sqlite
Последний ответ от alyuev - Вчера в 12:55
Интересно, а в github можно выложить исходники? Никто не будет протестовать?
#6
7.7 / Формат результата ТекущееВремя...
Последний ответ от Злоп - Вчера в 10:42
Всегда ли результат ТекущееВремя() возвращается в виде ЧЧ:ММ:СС, то есть всегда с двумя цифрами в каждом показателе (с ведущим 0 если показатель меньше 10)?
Зависит ли это от настроек ОС? Для разных ОС?
.
Пока у меня получается так: возвращается ЧЧ:ММ:СС всегда независимо от настройки ОС, win10home
#7
7.7 / Re: КОПИЛКА: здесь всякие редк...
Последний ответ от Злоп - Вчера в 10:31
ОПРЕДЕЛИТЬ АКТУАЛЬНОСТЬ ТА
обсуждение: https://forum.dorex.pro/index.php?topic=353.0
решение, автор: Харлампий Дымба
Док = СоздатьОбъект("Документ");
Док.УстановитьФильтр(1,0,0,2);
Возврат Док.ВыбратьДокументы(СформироватьПозициюДокумента(ПолучитьДокументТА(),1));
#8
Дружественные проекты / Re: 1sqlite
Последний ответ от Злоп - Вчера в 08:52
круть
#9
Дружественные проекты / Re: 1sqlite
Последний ответ от alyuev - 09 июня 2026, 18:29
Вот, что написал ИИ 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
    
    .
  • Остальное у нас уже есть в эквиваленте или лучше.
#10
7.7 / Re: Определить актуальность ТА...
Последний ответ от Ветер в поле - 09 июня 2026, 18:11
Цитата: Харлампий Дымба от 09 июня 2026, 01:00
Док = СоздатьОбъект("Документ");
Док.УстановитьФильтр(1,0,0,2);
Возврат Док.ВыбратьДокументы(СформироватьПозициюДокумента(ПолучитьДокументТА(),1));


Красивое решение! Пожалуй на нем стоит и остановиться.