1sqlite

0. orefkov 1151 01.01.70 03:00 Сейчас в теме
Внешняя компонента для работы с базами данных SQLite, плюс прямые запросы в ДБФ-базах 1С.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
197. rovix 22.09.08 11:54 Сейчас в теме
198. rovix 08.10.08 10:19 Сейчас в теме
так что, надеяться на реализацию работы с ЖР не стоит?
199. orefkov 1151 19.11.08 10:37 Сейчас в теме
Выпущена версия 1.0.1.9

- Сделано принудительное округление чисел при типизации :Число, тк получатели
результата (кроме ТаблицыЗначений) сами этого не делают.
- Исправлена работа типизации при обработке NULL значений, тк получатели
результата (кроме ТаблицыЗначений) сами этого не делают.
- Изменена логика работы с Begin/EndReadSequnce. В немонопольном режиме падение
производительности, зато не падает.
- Добавлен метод SQLiteQuery::ОбработатьТекстЗапроса
- Добавлено свойство SQLiteQuery::ВыполнятьВТранзакции
- Исправлена ошибка программы при подключении таблиц шапки документа, не имеющего
реквизитов шапки.
- Исправлена ошибка при выборке из таблиц 1С, иногда могущая привести к зависанию
программы.
- Добавлено подключение таблиц ЖурналовРасчетов ДБФ версии 1С.
- Исправлена укладка списка объектов при наличии иерархии - неверно укладывались
объекты, содержащие в идентификаторе русские буквы (распределенка с русским
префиксом ИБ).
- Добавлен объект SQLiteDataProvider - поставщик данных табличного поля 1С++ для
таблиц sqlite и таблиц 1С DBF-версии.
200. Duke 17.12.08 16:43 Сейчас в теме
Подскажите плиз, как выбрать все документы определенного вида, например, РасходнаяНакладная, у которых Контрагент тому, который выбираем на форме отчета (ВыбКонтрагент) ? Пишу
select d.iddoc [Документ :Документ]
from Документ_РасходнаяНакладная as d
where d.Контрагент = :ВыбКонтрагент"

Запрос пустой :-(

201. Duke 17.12.08 16:54 Сейчас в теме
Уже сам разобрался. Недотипизировал объект....Нужно было
select d.iddoc [Документ :Документ.РасходнаяНакладная] писать
202. Duke 26.12.08 12:07 Сейчас в теме
Подскажите, как написать запрос по продажам в 1с 7.7 ТиС:
|Период С Дата1 По Дата2;
|Фирма=Регистр.ОстаткиТоваров.Фирма;
|Товар=Регистр.ОстаткиТоваров.Товар;
|Склад=Регистр.ОстаткиТоваров.Склад;
|ДокументДвижения=Регистр.ОстаткиТоваров.ТекущийДокумент;
|Кол=Регистр.ОстаткиТоваров.ОстатокТовара;
| РасхКол=Расход(Кол);
|Функция КонКол=КонОст(Кол);
|Группировка Товар без групп все;
Не понятно как вязать Регистр_ОстаткиТоваров и РегистрИтоги_ОстаткиТоваров... Или это нереальано с помощью Sqlite ?
203. JohnyDeath 300 26.12.08 14:38 Сейчас в теме
(202) всё реально. Читай описание подсистем регистров.
Или возьми и покумекай класс: http://www.1cpp.ru/forum/YaBB.pl?num=1216729138/30#32
204. orefkov 1151 07.04.09 17:00 Сейчас в теме
Новая версия 1.0.2.0


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

- SQLiteDataProvider::УстановитьТекстЗапроса
- SQLiteDataProvider::Отладка

- Добавлены методы:

- SQLiteDataProvider::НеУдалятьПоля
- SQLiteDataProvider::ПоляБыстрогоПоиска
- SQLiteDataProvider::ПолучитьТекстЗапроса

Брать на http://code.google.com/p/sqlite1c/downloads/list
205. Свой 164 05.05.09 19:44 Сейчас в теме
спасибо
можно ли ожидать увеличения скорости компоненты всвязи с обновленным движком ?
206. s_vidyakin 64 08.06.09 23:50 Сейчас в теме
А скажите как написать условие, аналогичное 1Сному
"Условие (Номенклатура.ПринадлежитГруппе(Молоко)=1)"
Причем группа Молоко многоуровневая
207. orefkov 1151 09.06.09 08:06 Сейчас в теме
Сначала использовать УложитьОбъекты, потом сделать джойн с таблицой уложенных элементов.
208. MrDen 263 28.08.09 15:22 Сейчас в теме
текущая версия sqlite 3.6.17 бедт ли изменена ВК?
209. drumboss 13.10.09 17:34 Сейчас в теме
Из каких соображений нельзя уложить в Лайт ТЗ с количеством строк =0 ??
приходится писать что-то подобное...

Процедура УложитьТЗвЛайт(База,_ТЗ,ИмяТаблицы,Врем=0)
Если _ТЗ.КоличествоСтрок()=0 Тогда
_ТЗ.НоваяСтрока();
База.УложитьТЗ(_ТЗ,ИмяТаблицы,Врем);
Запрос=База.НовыйЗапрос();
Запрос.ВыполнитьЗапрос("delete from "+ИмяТаблицы);
Иначе
База.УложитьТЗ(_ТЗ,ИмяТаблицы,Врем);
КонецЕсли;
КонецПроцедуры

Может
SQLiteBase::putVT(CValueTable* pVT, const CString& strNameOfTable, BOOL bAsPersistent)
...
DWORD rows = pVT->GetRowCount();
if(!rows){tg.err = FALSE;return;}
210. CheBurator 3114 17.11.09 02:54 Сейчас в теме
в примере с поиском по подстрокам
.
РазбиваемаяСтрока=СтрЗаменить(РазбиваемаяСтрока,"'","''");
РазбиваемаяСтрока=СтрЗаменить(СокрЛП(стрПоиска)," ",РазделительСтрок);
- вот тут вот как-то неаккуратненько???
211. shtah 20.11.09 17:29 Сейчас в теме
Здравствуйте! Подскажите пожалуйста, никак не могу собрать запрос, в котором в качестве условия фигурировало бы перечисление.

select ФИО, Рез from НужныйСправочник where Рез='+'

Рез - Перечисление "Булево", имеет значения "+" или "-"
212. shtah 23.11.09 12:06 Сейчас в теме
знаю, что дело в типизации..
Но вот так тоже не выходит:

SELECT
ФИО, ПолеСПеречислением [ПолеСПеречислением :Перечисление.Булево]
FROM НужныйСправочник
WHERE ismark <> '*'
AND (ФИО LIKE '%А%') AND (ПолеСПеречислением ='+')
213. JohnyDeath 300 23.11.09 15:57 Сейчас в теме
(212)
В запросе:
AND (ПолеСПеречислением =:Плюсик)

Далее:
Запрос.Подставлять("Плюсик", Перечисление.Булево.+);

П.С. У тебя прям в конфигураторе в ИД стоит "+"?
214. shtah 23.11.09 17:24 Сейчас в теме
(213)
у меня там словом, разобрался, спасибо!

215. MrDen 263 25.11.09 17:04 Сейчас в теме
На офсайте версия 1.0.2.0 bugfix 3
216. Alav 13 01.01.10 21:35 Сейчас в теме
Так что с обновлением?

Текущая версия 1.0.2.0 bugfix 3
* SQLite версии 3.6.11
(с) http://code.google.com/p/sqlite1c/

Current Status
* Version 3.6.21 of SQLite is recommended for all new development. Upgrading from version 3.6.12, 3.6.13, 3.6.14.2, or 3.6.16 through 3.6.20 is optional. Upgrading from all other SQLite versions is recommended. (с) http://www.sqlite.org/
217. Alav 13 02.01.10 02:43 Сейчас в теме
И второй вопрос, чем можно посмотреть файл с базой, созданной этой компонентой?
218. JohnyDeath 300 03.01.10 13:22 Сейчас в теме
(217) если в базе присутствуют и виртуальные таблице, то посмотреть их можно только с использованием текущей компоненты. Иначе есть несколько хороших программ, например вот эта http://www.sqliteexpert.com/
219. Alav 13 10.01.10 00:59 Сейчас в теме
Хорошо попробую.

В принципе плагин к лисе тоже вроде бы нормально видит эти базы
http://code.google.com/p/sqlite-manager/
220. пользователь 16.02.10 00:20
Сообщение было скрыто модератором.
...
221. MegaMouse 372 07.04.10 11:23 Сейчас в теме
Добрый день! Маленько не по теме, но всеже.
Пытаюсь создать Базу в консоли : на винде получается через три на четвертый(закономерности не заметил) на линухе с первого раза. Из 1С (7,7 ) база создается , но загрузить в нее данные не получается, в какую сторону копать?
Как загрузить данные из виртуальной таблицы в файл базыSQL?
И еще вопрос про относительные пути в 1С 7и 8 ? если обработка запуска лежит в каталоге, отличном от каталога базы , прогФайлов(допустим на флешке) как определить програмно путь до нее? (база естественно будет лежать неподалеку, да и DLL-ка тоже)
222. MegaMouse 372 12.04.10 18:15 Сейчас в теме
(221) Наверно вопрос глупый....
223. alest 18.03.11 17:31 Сейчас в теме
orefkov, можно ли с помощью вашей разработки записать файл в произвольную базу данных sqlite?
Если да, то подскажите, пожалуйста, каким объектом? Вот если бы из 1с++ binarydata туда ложить данные можно было...
224. cool.vlad4 2 18.03.11 17:48 Сейчас в теме
Ай, красава...только вот недавно пришла идея сделать хитрый обмен через инет с помощью мини баз на sqlite, а тут на ИС такую штуку проглядел...
225. МАлексей 08.11.11 16:51 Сейчас в теме
Замечательная штука. Совместно с прямыми запросами кратно увеличивала скорость работы сложных отчетов при работе по сети с dbf (в смысле позволяла не гонять данные по сети, а скопировать на комп и с ними работать).
226. KrakoZyabl 77 31.01.12 14:18 Сейчас в теме
Много сказано благодарных слов, остается только присоединиться к ним и выразить особую благодарность автору за его труд!!! Спасибо :)
227. orefkov 1151 01.02.12 10:33 Сейчас в теме
Несколько новостей.
Проект переехал сюда.
Выпущена версия 1.0.2.5 - sqlite обновлен до 3.7.10
Документация по добавленным в 1.0.2.4 фичам - готовится.
228. nicxxx 250 02.02.12 02:37 Сейчас в теме
229. orefkov 1151 02.02.12 08:21 Сейчас в теме
(228)
Во-первых, адрес без www
Во-вторых, заработало :)
(У хостера что-то там было...)
230. orefkov 1151 03.02.12 08:32 Сейчас в теме
Выпущена версия 1.0.2.6
Исправлена ошибка, приводящая к вылету при попытке работать с файловыми базами данных.
231. orefkov 1151 03.02.12 15:03 Сейчас в теме
Вот наконец-то пытаюсь уйти от старой шестой студии 98 года, и пересобрать библиотеку современными средствами, в Visual Studio 2008. Размером получается чуть меньше, работает чуть пошустрее.
Кому охота, может затестить.
http://snegopat.ru/downloads/1sqlite/1sqlite_1026_2008.zip
232. alyuev 202 06.02.12 19:21 Сейчас в теме
Есть вопрос:

	База.УложитьТЗ(ТЗ,"ТЗ");
	запросSQLLite.ВыполнитьЗапрос("INSERT INTO base Select * From ТЗ");


Уложенная ТЗ - это виртуальная таблица в памяти, чтобы заполнить базу значениями из неё (запросом INSERT)? Т.е. она сама (ТЗ) не сохраняется в базе при укладке?
233. orefkov 1151 06.02.12 21:13 Сейчас в теме
(232)
Смотри внимательнее параметры метода УложитьТЗ, там есть "как постоянную"
т.е. по дефолту таблица под ТЗ создается компонентой как
Код
create temporary table
Показать полностью

и автоматом дропается при закрытии базы, а может создаваться как
Код
create table
Показать полностью
234. alyuev 202 07.02.12 13:29 Сейчас в теме
(233) Спасибо! Понял. А онлайн-документация пока только здесь =>> Дока по 1SQLite?
236. orefkov 1151 07.02.12 13:43 Сейчас в теме
(234)
Лучше здесьсмотреть свежие версии, нужно только залогиниться как анонимус.
(235)
первые N:
Код
select .... limit N
Показать полностью

последние - отбирать как первые N с обратной сортировкой.
235. alyuev 202 07.02.12 13:31 Сейчас в теме
И ещё вопрос - есть ли возможность получать первые/последние N записей результата запроса?
237. alyuev 202 07.02.12 17:54 Сейчас в теме
А как можно объединить 2 таблицы с одинаковой структурой? Есть база SQLite и есть ТЗ с аналогичной структурой. ТЗ укладываю. И дальше хотел бы объединить эту ТЗ с базой запросом типа MERGE. Чтобы потом сделать общий запрос.
238. alyuev 202 07.02.12 18:32 Сейчас в теме
Пытаюсь работать с INSERT OR REPLACE INTO - для слияния 2х таблиц (одна под другой)

		|INSERT OR REPLACE INTO 
		|	main (< ... тут перечень полей ...>)
		|SELECT * 
		|FROM ТЗ";

тестирую несколько раз - записи каждый раз добавляются. Т.е. как понимаю REPLACE не срабатывает. Что-то не так делаю?
240. orefkov 1151 07.02.12 18:37 Сейчас в теме
(238)
replace срабатывает при вставке с уникальным полем.
239. orefkov 1151 07.02.12 18:34 Сейчас в теме
Если влить данные из ТЗ в таблицу, то
Код
insert into basetable select ... from tzTable
Показать полностью

а если просто выбрать данные, то
Код
select .... from basetable
union all
select .... from tztable
Показать полностью

вот тут есть описание языка, правда по-аглицки.
241. alyuev 202 08.02.12 14:03 Сейчас в теме
(239) За "UNION ALL" - большое спасибо - самое то!
(240) А как определить/назначить ключевое поле (PRIMARY KEY) для уложенной ТЗ? И в базе данных - создание индекса - не равносильно ли PRIMARY KEY? Я при создании базы не прописывал ключевое поле, но создал индекс.
242. orefkov 1151 08.02.12 15:05 Сейчас в теме
(241)
Ну да, достаточно создать индекс.
243. alyuev 202 09.02.12 17:01 Сейчас в теме
(242) А для уложенной ТЗ как задать ключ?
244. orefkov 1151 09.02.12 17:07 Сейчас в теме
(243)
Если ты применительно к задаче "insert or replace", то ключ надо задавать в таблице-приемнике, а не в источнике.
Либо сразу при создании таблицы указываешь, либо потом индекс по полю создаешь.
245. alyuev 202 14.02.12 17:38 Сейчас в теме
(244) Не работает у меня "insert or replace". Это я делаю переброску МЛГ в SQLite. Создал базу с тремя индексами: Дата, Пользователь, ИД. Заполняю ТЗ (из МЛГ), укладываю её и делаю запрос как в (238). Сделал себе обработку с кнопкой. Так вот сколько раз нажму кнопку - столько раз и запишется в базу одна и та же инфа.
247. alyuev 202 15.02.12 15:34 Сейчас в теме
(242) Что-то мне кажется, что Ключевое поле и Индекс - не равнозначны. Индекс, если я правильно понимаю, нужен для быстрой выборки, сортировки. Но в индексном поле могут быть одинаковые значения в разных строках. А для Ключевого поля такого не может быть по определению. Т.к. в ключевом поле (опять же, если я правильно понимаю) должны быть исключительно уникальные значения во всей таблице.
246. alyuev 202 15.02.12 12:46 Сейчас в теме
А есть где-то пример Журнала регистрации на SQLite?
248. orefkov 1151 15.02.12 16:20 Сейчас в теме
249. orefkov 1151 15.02.12 16:26 Сейчас в теме
Проверял:
Код
create table a(a, b, c)
insert into a values(1, 2, 3)
create unique index a_a on a(a)
insert or replace into a values(1, 10, 4)
select * from a
Показать полностью

1 10 4
250. sss999 49 13.11.13 11:08 Сейчас в теме
Хотелось бы высказать некоторые хотелки,мне как человеку не писавшему прямые запросы ранее хотелось бы видеть удобо-читаемую инструкцию как это начать делать,мне нужно для базы dbf.А так в одном месте какая то инфа,в другом часть,что бы собрать все вместе нужно лазить пол дня,есть база дбф,я закинул в bin свеже скачанную dll 1cpp,скачал консоль с инфостарта одну,она не заработала,значит чего то не хватило,наткнулся на классы прямого запроса,там вразумительного ничего не сказано,здесь говорится про скл лайт как работа с этим объектом ,откуда он должен взяться,как он подключается в скачке одна dll только,это и есть этот объект и он формирует внутри виртуальные таблицы?(((
251. orefkov 1151 13.11.13 11:22 Сейчас в теме
(250)
1C++ и 1sqlite - это разные компоненты, работающие независимо друг от друга.
Просто с помощью 1C++ сделан класс, автоматически преобразующий текст запроса в версии для sql и dbf. К самой компоненте есть документация, описывающая, как выполнять запросы. Просто надо ещё знать структуру хранения данных в 1С. На форумах по 1С++ есть много информации на эти темы. Можно ещё и на мисте поспрашивать.
252. sss999 49 13.11.13 11:37 Сейчас в теме
Спасибо за ответ,но я немножко другое спросил,как начать работать с вашей dll,небольшой readme так сказать,что куда закинуть и что подключить,так как неявно предполагается наверняка наличие еще и других dll и чего то еще,чего только вы знаете,я зашел на форум а там тоже ссылки,а где гарантия что в той ссылке тоже не будет ссылки.Поэтому вот вы выложили а как все подключить,все требования по установленному п.о. не написали.
253. sss999 49 13.11.13 11:57 Сейчас в теме
Я скачал вашу консоль написал почти как у вас в примере,отметил там подключение таблицы галочкой по плану счетов и он мне выдал данные,причем dll liteSql я не прописывал и не закидывал.Если вы не можете внятно это объяснить,кто стоял у истоков, то я сомневаюсь что вообще кто-то может)
254. Ёпрст 1060 13.11.13 13:29 Сейчас в теме
(253) Ну а вопрос то у вас в чем хоть ?
Что не работает ?
255. sss999 49 13.11.13 13:47 Сейчас в теме
в общем закинул dll в бин и консоль вроде работает,но вот другая консоль у которой есть параметры не работает,хоть я и выбирал там все методы и прямой запрос и odbc и ole db,а автор тот вообще не отвечает,и инструкции тоже нет,пишет "Неудачная попытка создания объекта (ПрямойЗапрос)"..вопрос в том что нужно писать ридми что нужно для работы.Как то нужно свести инфу вместе,а то есть какие то классы ,то ли не есть,есть прямой запрос, есть кривой,неужели так трудно было к синтаксису восьмерки привести.все в разных местах,находится,и ниче не понятно.Мне вот нужно написать запрос подключаемый к разным базам,а здесь синтаксиса метода открыть объекта база нет.
257. Ёпрст 1060 13.11.13 14:20 Сейчас в теме
(255)
1. Всё писалось разными людьми, для разных целей и задач. Не для начинающих.
2. Есть целый форум, посвященный прямым запросам.
3. Классы, в том числе класс ПрямойЗапрос созданы как раз для облегчения написания чего-либо
4. 1sqlite не позволяет строить запросы к сторонней базе, только в родной.
5. Для написания запроса к сторонней базе, для дбф варианта, достаточно иметь компоненту 1cpp.dll, установленный vfpoledb провайдер.
Обо всём, более подробно можно прочитать тут
http://www.1cpp.ru/forum/YaBB.pl?board=query
welcome!
256. sss999 49 13.11.13 14:08 Сейчас в теме
куча старой инфы на этом форуме,нафига рыться в этой куче,если уже то не нужно то не нужно..жесть,удалить его вообще.
258. Ёпрст 1060 13.11.13 14:26 Сейчас в теме
>>>неужели так трудно было к синтаксису восьмерки привести
Зачем это убожество ?
Гораздо проще писать на православном t-sql, и без всяких классов.
259. sss999 49 13.11.13 14:31 Сейчас в теме
Я уже придумал просто скинуть в текущую базу dbf из других баз,и обращаться к таблицам по названиям,возможно прийдется расширять md файл еще не знаю.Ну вот это все и не удобно,писали для себя если то и писали бы тогда а не выкладывали,если не могут объяснить нормально как с этим работать,уж как плох синтаксис 1с но их документация в сравнении с 1с это вообще нечто,примеры где.Вот и непонятно,мог бы кто то кто знает обобщить все эти множества сказать какая dll повторяет методы другой,как я понимаю в этой dll уже не нужен класс она и так работает без закорючек.Почему типизацию нельзя было сделать встроенную,и привести синтаксис к 1с 8,но это ладно понятно,наверно долго,или лень
261. Ёпрст 1060 13.11.13 14:36 Сейчас в теме
(259) Документации, примеров, обсуждений - вагон и маленькая тележка.
Вам просто лень ЭТО осилить.
Про убогий синтаксис языка запросов снеговика, лучше вообще не стоит упоминать.
А типизация там есть, более того, можно лепить запросы к нескольким базам одновременно.
260. sss999 49 13.11.13 14:34 Сейчас в теме
в чем удобство на конкретном примере пож-та,или просто привычка,а я вот привык на 8 синтаксисе..
262. sss999 49 13.11.13 14:43 Сейчас в теме
а зачем тратить два дня на всю эту инфу,если можно просто написать запрос в знакомом синтаксисе.
263. Ёпрст 1060 13.11.13 14:44 Сейчас в теме
(262) Когда это изначально писалось, снеговика еще в зародыше не было
264. Ёпрст 1060 13.11.13 14:49 Сейчас в теме
Ну и то, что vandalsvq в своих классах реализовал парсер запросов "аля снеговик".. по большому счету, не нужно.
265. sss999 49 13.11.13 14:50 Сейчас в теме
а с какого года восьмерка по вашему?
267. Ёпрст 1060 13.11.13 15:16 Сейчас в теме
(265) с 2003 года, если не изменяет память появился снеговик..
266. sss999 49 13.11.13 15:00 Сейчас в теме
у меня вопрос как обратиться к регистру по имени dbf файла,получается только через регистр.имя,что бы потом сделать union по всем файлам dbf
268. Ёпрст 1060 13.11.13 15:17 Сейчас в теме
(266) задача то какая ?
если че

таблица движений регистра:
${Регистр|Register}.<Регистр> = raXXXX

таблица итогов (остатков/оборотов) регистра:
${РегистрИтоги|RegisterTotals}.<Регистр> = rgXXXX
269. sss999 49 13.11.13 15:41 Сейчас в теме
задача собрать дебиторку
270. sss999 49 13.11.13 15:52 Сейчас в теме
не понял команду синтаксис, название таблицы Rф2207,from $Rф2207,не работает,from $Регистр.Покупатели=$Rф2207,from ${Регистр}.Покупатели=$Ra2207, непонятно
271. sss999 49 13.11.13 15:55 Сейчас в теме
select *
from [Регистр.Покупатели] =:RA2207
272. Ёпрст 1060 13.11.13 16:01 Сейчас в теме
Ё...
На вот, занимайся.
2 запроса, один на фоксе, другой на 1sqlite
Прикрепленные файлы:
_ЗапросОстаткиИОбороты_Фокс_СкульЛайт.ert
276. sss999 49 26.11.13 11:12 Сейчас в теме
Я тут все воюю с запросом,не могу во понять почему не работает конструкция Where Жур.IDDocDef = $ВидДокумента.Реализация,и в связи с эти хотелось бы понять как она вообще работает.Вот к этому запросу хотел прилепить,что бы потом еще добавить отбор по реквизиту который есть только у реализации.
select distinct
СпрКонтр.Descr as Контрагент,
СпрДог.Descr as Договор,
Sum(iif(покуп.debkred=1, Покуп.Sp2201, -Покуп.Sp2201) )as СуммаПродОстаток,
Sum(Покуп.Sp2201) as СуммаПрод,
Sum(Sp2203) as СуммаСебест,
Max(покуп.SP2198) as [док $Документ ]
from
ra2207 as покуп
LEFT JOIN SC92 as СпрДог
LEFT JOIN SC134 as СпрКонтр
ON СпрКонтр.id= СпрДог.parentext
ON Покуп.SP2195 = СпрДог.ID

left JOIN 1Sjourn as Жур

ON Жур.IDDoc = покуп.SP2198
Group by Контрагент,Договор
277. sss999 49 26.02.14 10:53 Сейчас в теме
Не подскажешь в чем ошибка,1sqllite лежит в базе.Ошибка такая,в обработке прямой запрос создается Объект

{C:\Base77\База\ПрямойЗапрос.ert(1
ПрямойЗапрос::СоздатьОбъектыЗапроса(Строка ПутьКБазеSQL=:memory:) : Неудачная попытка создания объекта
БазаSQLite = СоздатьОбъект("SQLiteBase");
{C:\Base77\База\ПрямойЗапрос.ert(1057) }
278. Ёпрст 1060 26.02.14 13:54 Сейчас в теме
(277)
ЗагрузитьВнешнююКомпоненту("1sqlite.dll") нет в коде
280. starik-2005 2834 17.05.16 14:09 Сейчас в теме
281. Jill 17 03.11.16 11:55 Сейчас в теме
Доброго дня!
Возник вопрос: обновил компоненту с 1.0.2.3 до 1.0.2.6 (запросы работали корректно).
Спустя неделю вылезла проблема с запросом:
	|SELECT
	|	doc as [Реализация $Документ.Реализация],
	|	doc as РеалId
	|FROM 
	|	Sklad
	|WHERE
	|	(date between :НачДатаПров and :КонДатаПров) and (doc=:ПроверДок) 
Показать


Он просто начал игнорировать часть условия с "(doc=:ПроверДок)" отлавливать такие моменты по всем обработкам возможности нет. Да и на боевой базе нужно чтобы все работало здесь и сейчас.
Решил вернуться на 1.0.2.3 но базы стали "file is encrypted or is not a database".
Нашел 1.0.2.4, но часть запросов, н-р:
	|CREATE TABLE IF NOT EXISTS ContrSendConfS (id INTEGER PRIMARY KEY NOT NULL, IdContr INTEGER, IdType INTEGER, IdFormat INTEGER, IdMethod INTEGER, Adress STRING);
, стали дико тормозными...

Вопрос: как можно вернуться к версии 1.0.2.3?
Заранее очень благодарен!
282. orefkov 1151 03.11.16 15:24 Сейчас в теме
(281) Jill, я уже давно не занимаюсь этой ВК, но её доработкой занимается другой человек.
Последнее, что видел, обсуждалось на http://www.forum.mista.ru/topic.php?id=778632, там же была ссылка на скачивание https://cloud.mail.ru/public/DKJV/b2M1dvj3K
283. Jill 17 03.11.16 16:07 Сейчас в теме
(282) понятно. Спасибо!
Последняя выложенная ведет себя, так же, не корректно.
1.0.2.4 - возвращает корректное значение.

Я так понял, что при открытии базы новым sqlite он эту базу конвертировал, но при открытии менее молодой версией обратно он её не преобразовывает. База используется достаточно активно, поэтому бэкапы уже не спасут.

Сейчас пытаюсь набросать обработку, которая пересоздаст базы и перезаполнит (1.0.2.4).
Разработчику постараюсь сообщить.

Но сообщение, о том что грабли с возвратом с нестабильной (по крайней мере пока) библиотеки стоят за углом и ждут, хорошо бы где-нибудь в шапке опубликовать.
284. orefkov 1151 03.11.16 16:17 Сейчас в теме
Стоп. Вы делаете запрос именно из базы данных sqlite? И говорите, что такой простой запрос в родной базе sqlite выполняется неправильно? Можете выслать на orefkov @ gmail.com тестовую базу и текст запроса? Я бы проверил.
285. Jill 17 03.11.16 16:32 Сейчас в теме
(284) Да. Именно так.
Конечно могу. Выслал.
Базу резать на всяк. случай не стал.
287. orefkov 1151 03.11.16 21:15 Сейчас в теме
(285) Jill, у вас в таблице Sklad поле doc объявлено как integer, а сравниваете с текстом.
При изменении условия на
and (cast(Sklad.doc as text) =' 1E600 ')
отрабатывает нормально.
Лучше измените тип столбца на text
288. Jill 17 03.11.16 22:35 Сейчас в теме
(287) Спасибо ОГРОМНОЕ!
В упор типизацию не видел. Сам балбес оказался.

Завтра буду шерстить. На предмет INTEGER id'шников (видимо любые id по привычке как INTEGER заводились).


Странно что 2.3, 2.4 умудрялись корректные данные возвращать.
286. Jill 17 03.11.16 17:19 Сейчас в теме
(284) что характерно, новая версия компоненты вот так работает:
	|SELECT
	|	Sklad.doc as [Реализация $Документ.Реализация]
	|FROM 
	|	Sklad
	|WHERE
	|	(Sklad.date between :НачДатаПров and :КонДатаПров) 
	//|	and (Sklad.doc=:ПроверДок) 
	|	and (Sklad.doc LIKE '%'||:ПроверДок||'%')
Показать


Т.е. проблема явно связана с непечатными символами в базе (очень похоже на то, что начиная с какой-то версии при выполнении запроса к базе они режутся с ними что-то происходит и условие игнорируется). Но база заполненная ранними версиями, через
ЗапросSQLite.Подставлять("ТекВремя",ТекущееВремя());
ЗапросSQLite.Подставлять("ТекДата",ТекущаяДата());
ЗапросSQLite.Подставлять("ТекДок",Док); 
			
ТекстЗапроса="
|INS ERT IN TO Sklad (time, date, given, doc) VALUES (:ТекВремя,:ТекДата,0,:ТекДок);
|"; 
Показать
их имеет.
289. Djelf 249 04.11.16 21:21 Сейчас в теме
1. В движке sqlite, используемом в версии 1sqlite 1.0.2.6, была расширена поддержка чисел с экспонентой http://www.sqlite.org/src/info/ca154f97a5907455
В результате 1E4RS из-за динамической типизации sqlite остается строкой и запрос выводит правильное значение, а 1E702 из-за указанной типизации integer становится числом, но sqlite не поддерживает 10 в 702 степени и запрос работает не так как хочется.
2. Понизить версию базы после запуска на 1.0.2.4-1.0.2.6, чтобы запустить на 1.0.2.3, возможно. Нужно изменить хекс редактором байты по адресу 0х12 и 0х13 с 0х02 на 0х01
Обязательно сделайте копию! Гарантии работоспособности такого варианта нет.
290. orefkov 1151 05.11.16 00:42 Сейчас в теме
(289) Djelf, огромное спасибо за развитие проекта вообще, и за помощь в решении этой конкретной проблемы в частности!
Нет желания создать на ИСе свою публикацию со своими доработками 1sqlite? Я бы против нисколько не был.
291. Djelf 249 05.11.16 10:18 Сейчас в теме
1sqlite reborn? ;) Ок, сделаю страничку.
Нумерацию только придется изменить, иначе получается путаница.
Поскольку sqlite стал с 3х значной нумерацией, а серьезных изменений в 1sqlite я пока не планирую, то версии будет выходить как [версия sqlite].[патчсет]
Оставьте свое сообщение
Вакансии
Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Бизнес-аналитик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Аналитик-архитектор 1С ЕРП (управленческого учета)
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день