Имя: Пароль:
1C
 
Внутренний язык программирования 1С 8.3
0 golem14
 
19.07.16
08:44
1. Нормальный язык, развивается. 80% (32)
2. Убог и устарел 20% (8)
Всего мнений: 40

Внутренний язык программирования 1С 8.3. Если посмотреть на него с позиции современных языков, он действительно так плох как его ругают некоторые, или это всё-таки от незнания.
377 vhl
 
20.07.16
16:14
(373) вообще то любой может принять участие в разработке: http://openjdk.java.net/contribute
378 Gary417
 
20.07.16
16:17
(377) может, мне интересно сколько лет займёт внедрение нового модуля в яву который я напишу?
379 b_ru
 
20.07.16
16:17
(376) Основная идея ООП в том, что никаких проверок  Если ( ТипЗначения(Элемент)= *** )  быть не должно. Я в  цикле зову метод, а уж сами объекты знают как этот метод у них исполняется.
Инкапсуляция + наследование + Интерфейсы
380 vhl
 
20.07.16
16:17
(374) Ну документ - объект. Он и в 1С объект. Зачем тебе для этого классы и наследование?
Т.е. единственная проблема - передача параметров? А разве тебе в наследуемом классе не придется то же самое делать через super(params...) - такое же копирование. В чем выгода?
381 Serginio1
 
20.07.16
16:19
374 + Мало того например объекты на сервере могут хранить срстояние между вызовами с клиента в том числе мутабельных значений. В asp.Net можно данные привязывать к сессии.
382 b_ru
 
20.07.16
16:19
(381) У нас же stateless сервер, так что не могут.
383 vhl
 
20.07.16
16:21
(378) Ну ты сначала жаловался что не можешь участвовать. Теперь жалуешься что долго. А если бы было быстро - то жаловался бы что слишком быстро меняется. Не угодишь...
384 vhl
 
20.07.16
16:22
(381) Параметры сеанса для этого есть
385 orefkov
 
20.07.16
16:22
(363)
В 1С боле-менее приличный инеллисенс для языка с динамической типизацией. Большинство ИДЕ для javascript даже так не могут, и подсказки если и вываливают, то практически наугад, сливая тому же typescript'у чуть менее, чем полностью.
386 Serginio1
 
20.07.16
16:23
(380) Тебе этого мало? Это не только передача параметров, но и IntelliSense.
Про хранение состояния между вызовами уже писал.

Наследование это другая песня. Она тоже имеет смысл. Например сделал отчет определил реализацию определенных методов, а в наследниках только добавляю новые методы или переопределяю методы родителя.

Сейчас для обеспечения утинной типизации я должен в каждом отчете писать одни и теже методы.
387 Serginio1
 
20.07.16
16:24
(365) А как же Typescript?
388 vhl
 
20.07.16
16:24
(375) ну модифицируешь ты структуру, чем это плохо? Чем бы ООП тебе помог?
389 b_ru
 
20.07.16
16:24
(385) Нарываешься на комплимент и рекламу снегопата? :)
Если бы в 1С был приличный интеллисенс, зачем он был бы нужен?
390 Mr_Rm
 
20.07.16
16:25
(379) Инкапсуляция + наследование + полиморфизм.
В 1С нет ни наследования, ни функций как объектов. И нет предпосылок к появлению, если только в v9.
391 vhl
 
20.07.16
16:26
(386) >Например сделал отчет определил реализацию определенных методов, а в наследниках только добавляю новые методы или переопределяю методы родителя.
В чем преимущество между:
>Например сделал обработку "ОбщийОтчет" а в других отчетах только добавляю новые методы или переопределяю методы родителя
392 b_ru
 
20.07.16
16:26
(390) Причем тут полиморфизм в том примере?
Предпосылок конечно нет, если за 20 лет 3,5 изменения внесли.
393 Jokero
 
20.07.16
16:27
(379) Основная идея ООП, что с объектом данных работает только сам объект.
И если это не так, то потом начинаются овер сто тыщ тем на форуме, что кто-то меняет данные, но не понятно кто и из какого из овер 100 000 общих модулей происходит подмена.
394 Serginio1
 
20.07.16
16:28
(391) Ты должен создать методы которые есть в ОбщийОтчет
и из них вызывать методы ОбщийОтчет
395 Serginio1
 
20.07.16
16:30
В наследовании если тебе не нужно переопределять методы ОбщийОтчет то ты их просто и не пишешь. То есть если тебе нужно добавить 1 метод, то в новом модуле будет 1 метод. А в ОбщийОтчет  может быть 100 методов
396 Mr_Rm
 
20.07.16
16:30
(390) Если в Элементы Коллекции - объекты-потомки одного класса, то метод Элемент.СделатьЧтоНибудь() будет вызван дл я соответствующего типа (класса).
397 Serginio1
 
20.07.16
16:36
(396) В скриптовых языках это идет через утиную типизацию
398 orefkov
 
20.07.16
16:36
(389)
Заметь, я не писал, что intellisence в 1С идеальный :)
А его расширение снегопатом - лишь малая часть функционала.
Но вот в новой версии подсказку по параметрам методов я уже не реализую - не просят, хватает штатной.
Вот чего бы хотелось, так это иметь возможность явно указывать подсказке тип переменных, как например в TypeScript.
Вот к примеру работа с восьмерочными объектами на TypeScript в Visual Studio Code:
https://www.youtube.com/watch?v=vJnZPLe67Aw
в одном случае TypeScript сам вывел тип переменной из v8New("ТаблицаЗначений"), а для параметра функции я тип указал явно через двоеточие. Пока в 1С это делается через костыли.
399 Mr_Rm
 
20.07.16
16:40
(397) Ну да, есть метод - вызываем, нет - молча пропускаем.
400 Serginio1
 
20.07.16
16:44
(398) Спасибо. Интересно.
401 Serginio1
 
20.07.16
16:48
400+ Вот, во что хотелось бы преобразование 1С так это в TS
402 Serginio1
 
20.07.16
16:48
Kotlin тоже неплох.
403 vhl
 
20.07.16
16:49
(395) Это все теория. На практике таких случаев, когда у тебя будет 10 отчетов с одинаковыми процедурами очень мало. Максимум - 2-3 схожих. Т.е. вроде как и наследование, да только в реальности не используется.
404 romix
 
20.07.16
16:51
(398) Я везде пишу что-то вроде

Если Ложь Тогда док=Документы.ИмяДокумента.ПустаяСсылка(); КонецЕсли
405 Serginio1
 
20.07.16
17:02
(403) В реальности их достаточно. Часто плюёшься как на отсутствие классов так и на отсутствие наследования, а так же отсутствие замыканий при использовании универсальных алгоритмов
http://catalog.mista.ru/public/371762/

Ну и как я уже писал есть конкретные вещи которые могут упростить программирование
Плюс реально по аналогии с await в 1С можно
1. Разворачивать модальные методы используя конечный автомат
2. Вызов серверных функций через замыкания.
3. Асинхронные вызовы
406 b_ru
 
20.07.16
17:04
(403) Это вообще не довод. В 1С же есть БизнесПроцесс, РегистрРрасчета, Задача, ГеографическаяСхема и АнализДанных.
407 orefkov
 
20.07.16
17:06
(404)
Именно это я и называю "костыли".
Со снегопатом я их немного облагородил, позволяя заменить на

//: док=Документы.ИмяДокумента.ПустаяСсылка()

но хотелось бы поддержки этого от платформы в цивилизованном виде. Ведь к примеру когда-то в 8ке не было #Область, не было подсказки параметров методов, но ведь появились же, не будем гадать, по каким причинам. Может, и это появится со временем.
408 vhl
 
20.07.16
17:09
(406) БизнесПроцессы? Вы просто не умеете их готовить: http://imgur.com/a/X7YXp
409 b_ru
 
20.07.16
17:10
(408) Тут целая куча бестолочей которые не умеют готовить ООП вообще никак. Неужели же мне нельзя не уметь готовить бизнес-процессы? :)
410 Задумчивый
 
20.07.16
17:11
куда там жабе, сидиезу, сипласпласу  до него

Нормальный язык, развивается.
411 vhl
 
20.07.16
17:16
(409) Я просто говорю про реальный опыт использования ООП. Все эти "фишки" из книг в реальном мире оказываются бесполезными и вот у тебя 80% приложения из отдельных классов просто потому что там нед дублирующегося функционала. А там где есть, какой-то добрый разработчик поставил private или package private и вот вся ваша красота идет псу под хвост
412 Gary417
 
20.07.16
17:29
(411) Фишки в книгах описаны для общего понимания, они не руководство к действию и даже не рекомендация что "делать надо именно так"
С опытом должно приходить понимание что "да, вот тот шаблон и структура здесь удачно подойдёт"

И есть книжки которые рекомендуют как можно более везде писать "private или package private"  потому что бездумное копирование концепций ООП налево и направо порождает очень сложные и неуловимые глюки в программах. А иногда и крайне запутанные и корявые архитектуры
когда для реализации "Объект.СделатьВсёХорошо()" требует передачу объекту ссылок на огромное количество не связанных с ним напрямую модулей лишь потому что "Объект должен сам себя обрабатывать"
413 b_ru
 
20.07.16
17:34
(411) Реальный опыт использования ООП - это гигантское количество программ, которое написано с помощью ООП. Ты сейчас читаешь это сообщение в браузере, написанном с помощью ООП, например.
Да, в учетных задачах эта технология уместна далеко не везде. Я, например, не призываю переписать типовые конфигурации с использованием ООП. Но наличие поддержки этого инструмента в платформе однозначно пригодится тем, кто умеет это самое ООП готовить. И я уверен, что людей, которые будут использовать ООП на 1С больше чем людей, которые используют эти самые БизнесПроцессы. Правда, на порядок больше тех, кто не умеет ни того, ни другого, потому реализация ООП в 1С мне не кажется первоочередной задачей. Но платформе уже не один десяток лет - пришло время для задач не первоочередных.
414 romix
 
20.07.16
17:38
(407) Теоретически система могла бы сама выстроить деревце функций с параметрами и переменными, анализируя все ветви кода.

Хранить наподобие деревца в ветви Web-сервисы.

Тогда бы не понадобилось там явно указывать. Также это помогло бы починить вот это:
Как автоматически проверить параметры всех функций?
415 quest
 
20.07.16
17:39
(408) респект.



Мое глубокое убеждение - единственное чего не хватает 1С - макросов как в лиспе и функций как объектов. Будет это - все остальное уже пишется.
416 Serginio1
 
20.07.16
17:41
(404) На заметку!
417 ZloyBrawler
 
20.07.16
17:42
(411) Я думаю часть проблем можно закрыть введя НЕ обязательную типизацию переменных и параметров методов, потом помимо типа данных "Структура", дать возможность описывать что-то типа "СтруктураФиксированная" и вывести этот тип в состав метаданных, однако предвижу какой срач там будет в этой ветке конфигурации.
Вот тогда та можно будет передавать структуру с over 9000 полей, и потом радостно после нажатия кнопки "." видеть все что там из этой структуры можно вытащить или наоборот засунуть в нее.

Ах да, как же я забыл, тогда и что-то с типом "ТаблицаЗначений" нужно делать, негоже чтобы число колонок было переменным, нужно тоже ввести еще один тип данных, с фиксированным числом колонок и с жестко заданным типом данных в этих самых колонках.

Так можно и дальше маразматически фантазировать, вот только к чему это приведет?
Сложность конфигураций возрастет однозначно.
А как прекрасно IntelliSense будет работать!
Вот же чудо правда?
418 Serginio1
 
20.07.16
17:43
(414) Нужно просто пойти путем TypeScript
419 vhl
 
20.07.16
17:57
(413) У тебя есть опыт коммерческой разработки на ООП? Сколько лет?
420 b_ru
 
20.07.16
18:20
(419) 7 лет примерно.
421 b_ru
 
20.07.16
18:20
+420 тиражные продукты не писал, если тебя это волнует.
422 romix
 
20.07.16
18:27
(416) Идея не моя. После точки все начинает работать.

(418) Лениво же будет руками вот это писать:
https://ru.wikipedia.org/wiki/TypeScript

declare module arithmetics {
    add(left: number, right: number): number;
    subtract(left: number, right: number): number;
    multiply(left: number, right: number): number;
    divide(left: number, right: number): number;
}

Турбо Паскаль же.
423 Garykom
 
гуру
20.07.16
18:35
(422) Выкинули begin...end с заменой на {...} так что не совсем турбо а уже дальше
424 Garykom
 
гуру
20.07.16
18:38
Кста ща наверно для кого то снова америку/африку открою, но кто мешает заниматься трансляцией из вашего лично любимого супер пупер языка в типовой язык 1С?

scala > java и наоборот http://javatoscala.com/
425 Провинциальный 1сник
 
20.07.16
19:25
(423) Помню учил в вузе алгоритмические языки на старой СМ-совместимой машинке, с 7-битным знакогенератором.. и там не было {} вообще. Их заменяли русские буквы Ш и Щ. Код выглядел весьма экзотично.
426 b_ru
 
20.07.16
19:43
(422) ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича же пишут и ничего
427 Serginio1
 
20.07.16
19:49
(422) То, что не является объектами можно опускать.
Но если ты пишешь общие методу, то лучше указать тип параметра вместо описания.
428 akaBrr
 
20.07.16
21:15
(424) проще поныть на мисте
429 В тылу врага
 
21.07.16
08:52
Ну и забыли кажется еще:

Чтото = 42;

Что здесь?
1. Объявление и инициализация новой локальной переменной
2. Присваивание имеющейся локальной переменной
3. Присваивание переменной модуля
4. Присваивание реквизиту объекта
5. Присваивание переменной модуля приложения
430 jk3
 
21.07.16
09:20
Еще забыл, в языке не хватает макросов, например, чтобы явно обозначать какой из параметров процедуры входной, а какой выходной, чтобы это потом отображалось в IntelliSense.

Процедура МояПроцедура(IN а1, IN а2, OUT а3, OUT а4)
431 В тылу врага
 
21.07.16
09:23
(430) OUT - можно и не надо, а так есть же Знач - это считай IN, а без него это INOUT
432 Serginio1
 
21.07.16
09:49
(430) В 1С все параметры по умолчанию OUT.
Для In есть знач.
433 jk3
 
21.07.16
10:29
(431) Знач -- не полезно, когда огромные таблицы значений передаются в процедуру, т.к. будет создана копия таблицы в памяти.
(432) Это понятно, что все параметры, если не указано Знач, передаются по ссылке.
Это логическое разделение для удобства работы с незнакомыми процедурами. Своеобразная ontext-документация.

Это только одно из применений макросов.
Можно еще придумать куда их с пользой можно применять.
434 Serginio1
 
21.07.16
10:53
(433) Для ссылочных типов ничего не копируется (кроме сериализации). Просто ты не можешь присвоить переменной переданному в параметру новое значение.
А вот, что касается серверных вызовов, то там предпочтительнее знач, если не нужно использовать возвращаемое значение.
435 Serginio1
 
21.07.16
10:54
(кроме сериализации в серверных вызовах)
436 Serginio1
 
21.07.16
11:26
При перередаче ссылочных типов в параметре
1. По ссылке передается адрес переменной
2. По значению передается значение переменной в которой хранится адрес объекта
437 В тылу врага
 
21.07.16
11:37
(433) передаются ссылки на объекты, а не копируются объекты, учи матчасть
438 mistеr
 
21.07.16
11:53
Не хватает пункта:

3. Нормальный язык, но не развивается, к сожалению.
439 orefkov
 
21.07.16
12:16
(433)
Еще один не понимает, как работает Знач.
Никакой копии ТЗ не будет создаваться.
440 jk3
 
21.07.16
12:29
(439) Конечно, т.к. со ссылочными типами получается бред.
Вот такой код прекрасно прокатывает и добавляется строка в ТЗ.

Процедура ТестПередачиПоЗнач(Знач ТЗ)
    ТЗ.Добавить().к1 = "123";
КонецПроцедуры

По-хорошему, так быть не должно.
Если передается параметр по значению, то вызывающей процедуре не должно поменяться содержимое переданного объекта.
А т.к. передается ссылка, то ссылка действительно не меняется, а вот содержимое, которое находится по этой ссылке, прекрасно можно поменять.

Может быть такое поведение и полезно в некоторых ситуациях, но об этом надо помнить.

Да и вообще тема не об этом, а о возможностях языка, которые хотелось бы в него добавить.
441 b_ru
 
21.07.16
12:32
(440) Это тайное ниндзютцу, только программисты знают чем const int * отличается от int * const
442 impulse9
 
21.07.16
12:48
Меня немного напрягает конструкции типа ЕстьNULL или &НаСервере, где надо лишний раз переключаться на английский язык (хотя & можно как Альт+38).
Еще мешает отсутствие регулярных выражений, для проверки, к примеру, валидности электронной почты, приходится строить безумные конструкции.

А так хороший язык, и Конфигуратор в роли IDE тоже неплох.

Нормальный язык, развивается.
443 В тылу врага
 
21.07.16
13:01
(440) так во всех языках типа C#/Java/Delphi
444 В тылу врага
 
21.07.16
13:01
(442) рекомендую раскладку Чистова, сам юзаю
445 PRADA
 
21.07.16
13:09
Вполне.

Нормальный язык, развивается.
446 Serginio1
 
21.07.16
14:55
Смысл с сылочными типами таков

Процедура ТестПередачиПоЗнач(Знач ТЗ)
    ТЗ= 5;
КонецПроцедуры


  ТЗ= Новый ТаблицаЗначений;


ТестПередачиПоЗнач(ТЗ)

То Тз останется презжним.
Без Знач
Тз изменится на 5;
447 Masquerade
 
21.07.16
23:50
1С хорош.

Во первых - он развивает память. Необходимо держать в голове все определения объектов, которые вы создаете в коде. Благо их типов немного, но, как говорится - бедненько, но чистенько.

Во вторых - он развивает усидчивость. Сначала ты сидишь весь день, потому что надо написать тонну процедурного кода, потом ты сидишь неделю, потому что надо разобраться в тонне кода, который написал кто-то другой.

В третих - он Надежен. Не надо дергаться, ибо ничего не изменится. Никто ничего нового не придумает - всё будет как всегда. Не надо ничего учить, знай цель жалом в главбуха - кто тебе что сделает?
448 Злопчинский
 
21.07.16
23:58
(446) ойойой - тут надо осторожнее. на ИС есть боольшущая статья где рассматриваются всякие варианты, там есть особенности по Знач со ссылочными типами
449 Злопчинский
 
22.07.16
00:07
(442) "Еще мешает отсутствие регулярных выражений, для проверки, к примеру, валидности электронной почты, "

Покопайся на ИС, - народ в глубинах платформы раскопал regexp - и его можно заюзать!
450 Злопчинский
 
22.07.16
00:09
Мне наш язык в целом нравится.
Самый писк когда, условно, овладеваешь не только французским языком, но и языком по-французски
451 В тылу врага
 
22.07.16
10:55
(447) "В третих - он Надежен. Не надо дергаться, ибо ничего не изменится"

поведение предопределенных событий типа "ОбработкаЗаполнения" менялось
452 В тылу врага
 
22.07.16
14:03
почему в стандарте SQL

select 5/2
from ...

дает 2, а в запрос 1С дает 2.5
453 Gunner
 
22.07.16
14:09
Норм язык. Циклы есть, объектная модель есть. Многое можно на 1С написать, игры уже пишут))) Что ещё надо?

Нормальный язык, развивается.
454 orefkov
 
22.07.16
14:22
(452)
Говорят, что Oracle тоже даст 2.5
А зато sqlite даже select 5.0/2.0 выдаст 2 :)
455 Кирпич
 
22.07.16
14:34
(454) не может быть. мож какая то старая версия
456 В тылу врага
 
22.07.16
14:50
(454) говорят многое, а есть стандарт и многие к нему стремятся от версии к версии
457 Кирпич
 
22.07.16
14:54
(456) а 1С то каким боком к этому стандарту.
458 В тылу врага
 
22.07.16
14:55
(457) никаким, это печально
459 Кирпич
 
22.07.16
14:58
(458) что тут печального. правильно сделали, что 5/2=2.5
если бы сделали 2, то половина веток на мисте была бы с вопросом почему 1С выдает 2, а не 2.5
460 В тылу врага
 
22.07.16
15:00
(459) тут согласен
461 Кирпич
 
22.07.16
15:01
+(459) да и как 1С может следовать стандарту SQL, если в 1С нет SQL.
462 orefkov
 
22.07.16
15:16
(455)
Ты про oracle или sqlite?
463 Кирпич
 
22.07.16
15:30
(462) про sqlite
464 orefkov
 
22.07.16
23:16
(463)
Нет, проверял буквально только что на свежем sqlite.
Там всё дело в принятой в sqlite динамической типизации. Тип значения выясняется "на-лету", если не задан явно. При этом для числовых литералов подбирается наименее затратный тип. То есть если число может быть представлено целым без потери точности, оно считается целым. Так как 5.0 и 2.0 представляются целыми без потери точности, sqlite их считает как целые. А допустим 5.1 / 2.1 sqlite будет считать уже как double.
Или cast(1.0 as real) / 2 - тоже будет считаться как double - тип задан явно.
465 orefkov
 
22.07.16
23:18
+(464)
Вот "select (5.1 - 0.1)/2" sqlite посчитает как 2.5
466 Jija Grenkov
 
23.07.16
00:24
(461) Стандарта SQL там естественно и быть не может, но построение запросов - это чуть ли не единственное, что действительно пригодилось при разработке на дургих языках. Перевел ключевые слова на англ и вуаля. А запросы по сложности сравнимые с 1с-ными так и не пришлось писать. Даже когда-то провел эксперемент собрал 4-х колег которые утверждали, что знакомы с sql и предложил им написать срез последних. За минут 20 никто не осилил.
467 kolts23381
 
23.07.16
01:09
Язык нормальный свои задачи выполняет, но почти не развивается. А развивается только платформа. Да и рассматривать его отдельно от платформы нет смысла. Даже не вижу какой синтаксис можно добавить.
Хотел бы я посмотреть на умников с хабра которым бы пришлось выучить термины приходная накладная или номенклатура или акт сверки и др. на английском.
Хотя они могут программировать на английском так как платформа позволяет, но чтоб быть до конца правильными, надо все имена метаданных перевести на английский, а то кириллица в исходниках - зло.
468 kolts23381
 
23.07.16
01:33
(466)
В постгрескл, который прекрасно понимает кириллицу, можно так
CREATE TEMP TABLE ЦеныНоменклатуры(
Номенклатура integer,
Цена numeric(15,2),
Период timestamp without time zone);

INSERT INTO ЦеныНоменклатуры (Номенклатура, Цена, Период) VALUES
    (1, 55.00, '2016-05-05 00:00:00'::timestamp without time zone),
    (2, 45.00, '2016-05-05 00:00:00'::timestamp without time zone),
    (3, 47.00, '2016-05-05 00:00:00'::timestamp without time zone),
    (1, 59.00, '2016-06-05 00:00:00'::timestamp without time zone),
    (2, 46.00, '2016-06-05 00:00:00'::timestamp without time zone),
    (3, 48.00, '2016-06-05 00:00:00'::timestamp without time zone);
--С помощью оконной функции
SELECT ПодЗапрос.Номенклатура,ПодЗапрос.Цена FROM
(SELECT Номенклатура,Цена,Период,
MAX(Период) over (PARTITION BY Номенклатура) AS МаксимальныйПериод
FROM
ЦеныНоменклатуры) ПодЗапрос
WHERE  ПодЗапрос.Период = ПодЗапрос.МаксимальныйПериод
469 Jija Grenkov
 
23.07.16
01:40
(468) примерно так платформа и считает, то что - это напишут многие 1с-ники я верю.
470 Лефмихалыч
 
23.07.16
02:12
посмотреть на него с позиции современных языков - это как?
Очередной пионэр прочитал на википедии определение слов "полиморфизм", "инкапсуляция", "наследование" и принялся самоотверженно добывать кумыс из коня?
471 youalex
 
23.07.16
02:58
Навеяло соседней темой.
За ЗаполнитьЗначенияСвойств(), за Структуру и Соответствие - однозначный респект.
Поэтому, собсвтенно,

Лично мне не хватает прямого доступа к БД, произвольных таблиц и, вообще, полного функционала СУБД. Понимаю, что это жертва в угоду универсальности, но хотя бы в виде эксперимента, хотя бы чисто под ms sql - отдельную версию, заточенную именно под нее...

Нормальный язык, развивается.
472 oleg_km
 
23.07.16
10:07
(464) Странно, только что проверил на DB Browser

select 5/2    = 2
select 5.0/2  = 2.5
473 oleg_km
 
23.07.16
10:08
+(472)

Версия 3.8.0

Версия Qt 5.5.1

Версия SQLite 3.9.2
474 orefkov
 
23.07.16
21:37
(473)
Хм, выходит пора обновлять мой dbviewer, в нём
select sqlite_version(), 5.0/2.0, 5/2
3.8.10    2    2

В снегопате
sqliteOpen(":memory:").exec("select sqlite_version(), 5.0/2.0, 5/2").ВыбратьСтроку()
3.13.0    2,5    2

Каюсь, пофиксили.
475 oleg_km
 
23.07.16
22:49
(474) А ему просто нельзя свежую длл подсунуть?
476 orefkov
 
24.07.16
01:28
(475)
Да посмотрел, походу дело не в sqlite. Я использую для просмотра баз SqliteStudio, подсунул ему свежайший sqlite - 3.13.0 - всё равно выдает 5.0/2 = 2. Видимо в SqliteStudio косяк. Когда запрос делаю через мою компоненту - всё нормально.