Имя: Пароль:
1C
1C 7.7
v7: Запросы UPDATE и INSERT не реализованы.
0 Volodja
 
24.02.23
14:41
Как-то встречал, что SQLite поддерживает прямую запись в таблицы 1С 7.7
У меня при попытке выпонить запрос
UPDATE [Справочник.Точки] SET [Префикс] = 'ZZ' WHERE [Префикс] = 'AB'

выходит сообщение "Запросы UPDATE и INSERT не реализованы."
У меня SQLite:
версия продукта  1.0.2.6/3.36.0.25 Djelf
1 Volodja
 
24.02.23
14:47
Запрос
Select sqlite_version()
Выдает 3.36.0
2 Злопчинский
 
24.02.23
15:01
и что?
3 Volodja
 
24.02.23
15:03
(2) ну, собственно сществует ли другая 1sqlite? которая умеет их выполнять?
4 МихаилМ
 
24.02.23
15:05
5 Volodja
 
24.02.23
15:08
(4)Блин, ссылки уже не актуальные.
6 МихаилМ
 
24.02.23
15:13
(5) ссылки мной проверены. рабочие
7 Volodja
 
24.02.23
15:20
(6) Меня сюда не пускает  http://catalog.mista.ru/public/559826/
8 Chai Nic
 
24.02.23
15:39
ODBCRecordSet из 1с++
Но там слегка другой синтаксис использования метаданных.
9 Djelf
 
24.02.23
15:58
(0) DELETE я добавил, это было довольно просто, движок 1С это отрабатывает быстро.
Он работает немного странно - после этого подглючивают уже открытые таблицы, где это сработало. Причину не нашел.
Но чтобы сделать UPDATE и INSERT нужна объектная модель записи т.к. 1sqlite работает изнутри 1С.
Т.е. нужно сначала имитировать ПолучитьОбъект, потом заменить поля, потом записать.
А раз так, то и профита по скорости почти не должно быть.
10 Злопчинский
 
24.02.23
16:10
(9) а ты 1SQlite пересобираешь с выходом очередных версий оригинальной SQLite?
11 Djelf
 
24.02.23
16:12
(10) Только когда мне это кажется интересным и безопасным.
https://www.1cpp.ru/forum/YaBB.pl?num=1214205575/1070#1070
https://cloud.mail.ru/public/9znr/ZJ6ULE9aR
12 Volodja
 
24.02.23
16:50
(11) подскажите тогда в 1sqlite, insert into
есть ваше сообщение (8) где вы пишите, что вставка реализована в движке 3.7.11 ?
13 Djelf
 
24.02.23
17:06
(12) Не путай движок sqlite и ВК 1sqlite.
Первый работает со сторонними базами sqlite напрямую и умеет это делать с базами формата sqlite.
1sqlite тоже так умеет работать с базами формата sqlite, но не с базой формата 1С!
А вот с 1С, 1sqlite работает через прокладку внутри движка 1С и несколько ограничен этим движком на запись и обновление таблиц.
14 Volodja
 
24.02.23
17:11
(13) Ссылка там не открывается, поэтому подумалось, что есть уже и 1sqlite которая писать в таблицу умеет.
Значит 1sqlite  этого не умеет. Вопрос тогда закрыт. Спасибо.
15 Злопчинский
 
24.02.23
18:50
(14) ну, например если делать апдейт скулайтом - то надо модифицировать verstamp, скулайт об этом ничего не знает.
или генерить внутренний ид при инсерте - откуда скулайт знает правила генерации
наверное так вот думаю...
16 Злопчинский
 
24.02.23
19:11
(11) похоже на облаке поименовал неправильно
вместо  3.41.0.26
лежит 3.40.1.26
17 Djelf
 
25.02.23
14:12
(16) Действительно, я очепятался на 1с++, но в облаке лежит правильная версия.

(15) Так то оно так, но, насколько помню, Орефков делал 1sqlite на собственных исследованиях.
С оглядкой вот на эту разработку https://okolokompa.com/katalog/programmistam/1s-predprijatie-7/otchjoty-i-obrabotki-1s-7-7/biblioteka-funkcij-dlja-raboty-s-bazam/
Т.е. алгоритм изменения/добавления данных известен, но при использовании внутри клюшек он будет не эффективен.
Снаружи, из сторонних сред программирования, выбора особенно и нет. Разве что OLE, но это очень медленно.
Я оцениваю увеличение скорости работы, при реализации, всего раза в половину-два, по сравнению с выгрузкой запроса в тз/итз и дальнейшим перебором и записью.
Однако, появилась бы возможность проводить данные по регистрам не на дату документа, а на произвольную и т.п. и т.д.
Это было бы интересно, если бы я на клюшкам стал имитировать снеговик, но такой цели у меня нет.
18 trdm
 
25.02.23
20:55
столько усилий, могли бы уже свою 1С написать...