Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) v7lua.dll - ВК для интеграции 1С и Lua (число прочтений - 37416 )
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
v7lua.dll - ВК для интеграции 1С и Lua
11. Июля 2008 :: 09:36
Печать  
ВК позволяет выполнять в среде 1С код, написанный на языке Lua.
Lua считается самым быстрым из интерпретируемых языков программирования.
Примитивы, заложенные в язык, позволяют писать в стиле ООП и ФП.
Для Lua написано огромное количество библиотек (http://lua-users.org/wiki/LibrariesAndBindings)

Цитата:
По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями, спроектирован с целью «не плодить сущности сверх необходимого». Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования с поддержкой прототипов (включая множественное наследование) легко реализуются с использованием метатаблиц, которые также позволяют перегрузку операций и т. п. Реализуемая модель ООП (как и в JavaScript) — прототипная

Цитата:
Как и многие интерпретируемые языки программирования, реализация Lua имеет отдельно компилятор с исходного языка в исполняемый байт-код и виртуальную машину для исполнения сгенерированного байт-кода. Причём байт-код — это не команды стековой машины, а команды некоего виртуального процессора с несколькими регистрами, что повышает эффективность исполнения. В стандартной виртуальной машине Lua используется распределение памяти со сборкой мусора (аналогично Java или .NET).
Для задач критичных по времени имеется JIT компилятор Lua LuaJIT.


ВК включает в себя библиотеки LPeg и LuaCOM

ВК Реализует один объект LuaRef.
LuaRef инкапсулирует виртуальную машину Lua.
Объект не имеет собственных свойств и методов, а предоставляет доступ к глобальным переменным и функциям Lua.
Возможна передача агрегатных типов 1с как аргументов для Lua-функций и значений для свойств.
Возможен вызов методов и доступ к свойствам агрегатных типов 1с из Lua.
При создании ВМ загружаются все стандартные библиотеки и переопределяются следующие глобальные функции:
  • print - выводит текст в окно сообщений 1С.
  • dofile - работает согласно документации, но переделана для запуска в безопасной среде
  • dostring - выполняет код в переданной строке
  • create1sobject - аналог ф-и СоздатьОбъект встроенного языка 1с

При доступе к свойствам и вызове функций из 1С, выполняются преобразования типов Lua в типы 1С:
  • числа преобразуются в числа
  • строки преобразуются в строки
  • таблицы преобразуются в объекты LuaRef. При этом значения таблиц типа "функция" становятся методами, а все остальные - свойствами.

ВК не требует регистрации в реестре.
Скачать ВК можно тут: http://code.google.com/p/v7lua/

Версия 1.0.1.0:
  • добавлена работа с типами 1С (вызов методов и установка свойств объектов 1С из скрипта)


Версия 1.0.1.1:
  • багфиксы


Версия 1.0.1.2:
  • разрешено использование русских идентификаторов
  • исправлен вылет при вызове функций Lua из других ВК.
  • реализовано чтение/установка свойств и вызов методов групповых контекстов


Версия 1.0.1.3:
  • исправлено поведение ф-и print (выводился только последний аргумент)
  • добавлена ф-я create1sobject - аналог ф-и СоздатьОбъект встроенного языка 1с.
  • изменено сообщение вызывающему коду количества параметров ф-й:
    теперь при вызове GetNParams возвращается количество параметров, полученное ранее в вызове IsOleContext из регистра ebx или 0


Версия 1.0.2.0:
  • minor bugfixes
  • в компоненту включены библиотеки LPeg и LuaCOM
  • COM-объекты теперь передаются из 1с в Lua через LuaCOM, минуя CValue, CBLContext и т.п.

« Последняя редакция: 24. Июля 2008 :: 08:50 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #1 - 11. Июля 2008 :: 09:39
Печать  
А что в курилке? Репозиторий вроде получшее место будет Улыбка


Браво, Степ! Сейчас пощупаем!
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #2 - 11. Июля 2008 :: 09:41
Печать  
О_о.
Улыбка
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #3 - 11. Июля 2008 :: 09:46
Печать  
Степан, ты издеваешься.
Еще и lua придется изучать?
Чума. ;)

P.S.
Даешь heroes6 для 1С предприятия 7.7 версия для SQL  ;D
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #4 - 11. Июля 2008 :: 09:46
Печать  
Провел небольшой тест на производительность:
Некоторая таблица из 15000 строк загружалась в ТЗ из базы SQLite и сортировалась по одной колонке методом ТЗ "Сортировать".
Эта же самая таблица загружалась в таблицу Lua и сортировалась по той-же колонке.
Цитата:
luaopen_lsqlite3 = package.loadlib ("lsqlite3.dll", "luaopen_lsqlite3")
luaopen_lsqlite3()
local sano = require 'sano'

tt=os.clock()

db=sqlite3.open('sampledata.db')

Vector = sano.Vector
ordering = sano.ordering
vec = Vector:new()

function showrow(udata,cols,values,names)
 
vec:add({values[1], values[2], values[3], values[4] } )
 
return 0
end
db:exec("SELECT * FROM tmp",showrow,'test_udata')

print(os.clock()-tt)

tt=os.clock()
vec:sort(ordering.byKey(2))
print(os.clock()-tt)

Сортировка в Lua в несколько раз (~7-8) проигрывает встроенной сортировке ТЗ, но при этом сравнивающая функция написана на Lua(т.е. можно осуществлять весьма причудливые сортировки). Тест, конечно, не очень корректен и позволяет судить о производительности интерпретатора весьма косвенно.
« Последняя редакция: 11. Июля 2008 :: 22:10 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #5 - 11. Июля 2008 :: 09:48
Печать  
Arta писал(а) 11. Июля 2008 :: 09:39:
А что в курилке? Репозиторий вроде получшее место будет Улыбка

Статус беты, и версия еще не присвоена Улыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #6 - 11. Июля 2008 :: 09:50
Печать  
А хде и как энто применить можно, если вк создали значит применение какое то уже точно было, что с её помощью удобнее делать в среде 1с ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #7 - 11. Июля 2008 :: 09:51
Печать  
[quote author=kms link=1215769064/0#3 date=1215769575]Степан, ты издеваешься.
Еще и lua придется изучать?
Чума. ;)[/quote]
мне всегда не хватало конструкций типа map или grep из perl'а, не хватало анонимных функций.
Да вообще много еще чего не хватало.
Lua позволит мне писать в стиле, который мне нравится ;)
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #8 - 11. Июля 2008 :: 09:57
Печать  
ev-kov писал(а) 11. Июля 2008 :: 09:50:
А хде и как энто применить можно

Ну вот тут, человек жаловался на скорость работы интерпретатора 1С. В итоге выкатил вот такую штуку, где критичные участки кода написаны на VBS.

ev-kov писал(а) 11. Июля 2008 :: 09:50:
если вк создали значит применение какое то уже точно было

Пока еще не было.
Я сам еще до конца не осознаю, какие возможности открываются Улыбка
Ну что еще...
Кодирование/декодирование base64 на Lua делается очень быстро.
Почитай еще, какие дополнения к Lua существуют по этой ссылке: http://lua-users.org/wiki/LibrariesAndBindings
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #9 - 11. Июля 2008 :: 10:01
Печать  
А методы то какие-нибудь ещё есть?
Как работать с объектами 1с?
Простенький пример можно?
  
Наверх
ICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #10 - 11. Июля 2008 :: 10:10
Печать  
Nick писал(а) 11. Июля 2008 :: 10:01:
А методы то какие-нибудь ещё есть?
нету. Можно добавлять собственные глобальные функции. Чтобы потом их вызвать из 1С нужно выполнить код вроде такого:
Код
Выбрать все
Луа=Луа._G 


При этом перечитается таблица глобальных объектов.
Nick писал(а) 11. Июля 2008 :: 10:01:
Как работать с объектами 1с?
Простенький пример можно?

Я пока думаю, как реализовать передачу объектов 1С в скрипты, и нужно ли это вообще.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #11 - 11. Июля 2008 :: 10:11
Печать  
steban писал(а) 11. Июля 2008 :: 09:36:
ВК позволяет выполнять в среде 1С код, написанный на языке Lua.

Вот молодец, сделал-таки Улыбка
Пощупаем.

ЗЫ А исходниками поделишься? Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #12 - 11. Июля 2008 :: 10:15
Печать  
artbear писал(а) 11. Июля 2008 :: 10:11:
А исходниками поделишься? Улыбка

Пока не буду.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #13 - 11. Июля 2008 :: 10:20
Печать  
Я вот еще не могу придумать задачу, чтобы сравнить производительность интерпретаторов Lua и 1с. Все как-то вырождается в сравнение скорости выполнения математических или строковых операций Улыбка.
Есть какие-нибудь классические тесты для интерпретаторов?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #14 - 11. Июля 2008 :: 10:26
Печать  
to steban
Раз тема в курилке, подьезжай в выходные в "Масяню".
Сегодня вечером туда заеду.
Изопьем. Обсудим интерфейсы.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #15 - 11. Июля 2008 :: 11:14
Печать  
Ну пора бы уже привыкнуть: у steban'a всё в курилке: начиная с парсера запроса, кончая Сервером для 1С 7.7  Смех
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #16 - 11. Июля 2008 :: 12:29
Печать  
Насколько сложно будет прикрутить это к опенконфу?
например есть редактор текстов SciTe, для него немало скриптов сделано на Lua, соответственно можно будет подцепить какую-либо часть этих скриптов в опенконфу, ну или немного переработать для опенконфа
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #17 - 11. Июля 2008 :: 12:56
Печать  
Phoenix писал(а) 11. Июля 2008 :: 12:29:
Насколько сложно будет прикрутить это к опенконфу?
Икс его знает...
Могу выдать исходники Орефкову. Он сможет компетентнее ответить.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #18 - 11. Июля 2008 :: 13:18
Печать  
было бы изумительно Улыбка
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #19 - 11. Июля 2008 :: 15:07
Печать  
steban писал(а) 11. Июля 2008 :: 10:20:
Я вот еще не могу придумать задачу, чтобы сравнить производительность интерпретаторов Lua и 1с. Все как-то вырождается в сравнение скорости выполнения математических или строковых операций Улыбка

Простейший
Код
Выбрать все
т=_GetPerformanceCounter();
С="";
Для Сч=1 По 20000 Цикл
	С=С+Сч+",
	|";
КонецЦикла;
Сообщить(_GetPerformanceCounter()-т);
 


1С выполняет ~17секунд.

Код:
Цитата:
tt=os.clock()
s=""
for i=1,20000 do
s=s..i..",\r\n"
end
print(os.clock()-tt)

выполняется ~1.6 секунды

ИМХО, это характеризует скорость выполнения операций со строками в Lua.
« Последняя редакция: 11. Июля 2008 :: 16:18 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #20 - 11. Июля 2008 :: 16:07
Печать  
VBS:
Цитата:
s=""
   
for i=1 to 20000
       
s=s+cstr(i)+","+VBCRLF
   next

Время выполнения ~3.3 секунды

JS:
Цитата:
s='';
for(
i=0;i<20000;i++)
   
s+=i+",\r\n";

Время выполнения ~0.85 секунды

Чудес не бывает Улыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #21 - 11. Июля 2008 :: 16:21
Печать  
Если в JS-коде заменить Цитата:
s+=i+",\r\n";
на Цитата:
s=s+i+",\r\n";
время выполнения увеличивается до 1.6 секунды.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #22 - 11. Июля 2008 :: 16:43
Печать  
steban писал(а) 11. Июля 2008 :: 16:07:
VBS:
Цитата:
s=""
   
for i=1 to 20000
       
s=s+cstr(i)+","+VBCRLF
   next

Время выполнения ~3.3 секунды

Здесь на одно сложение больше, чем в тестах для других языков. Попробуй
Код
Выбрать все
cl = "," + VBCRLF
s = ""
for i = 1 to 20000
    s = s + cstr(i) + cl
next 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #23 - 11. Июля 2008 :: 17:32
Печать  
Степ.
А ведь это дело можно сделать многопоточным (несколько скриптов lua одновременно).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #24 - 11. Июля 2008 :: 18:22
Печать  
berezdetsky писал(а) 11. Июля 2008 :: 16:43:
Здесь на одно сложение больше, чем в тестах для других языков.

Машина, на которой запускались первые измерения, мне сейчас недоступна.
После приведения всех программ к одному виду (и на другой машине) результаты такие:
1С - 4 с
VBS - 1.6 с
JS - 1.6 с
Lua - 1.2 с

Но для js остается возможность оптимизации с использованием оператора +=.
Для других языков гайки затягивать уже некуда.

особенно удивительна разница во времени выполнения кода 1С на разных машинах.
1-я была 32-х разрядная, 2я - 64
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #25 - 11. Июля 2008 :: 18:28
Печать  
kms писал(а) 11. Июля 2008 :: 17:32:
А ведь это дело можно сделать многопоточным (несколько скриптов lua одновременно).

Можно.
До плотного изучения этого вопроса я еще не добрался.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #26 - 11. Июля 2008 :: 18:29
Печать  
[quote author=steban link=1215769064/15#24 date=1215800578]
Для других языков гайки затягивать уже некуда.[/quote]
Так уж и некуда?
[code]
     т=_GetPerformanceCounter();
     _стр="";
     _вр ="";
     Для Сч=1 По 20000 Цикл
           _вр =Строка(Сч)+",
           |";
           _стр =_стр +_вр;
     КонецЦикла;
     Сообщить(_GetPerformanceCounter()-т);
[/code]
Есть ишо порох в пороховницах у 1С ;)
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #27 - 11. Июля 2008 :: 18:33
Печать  
[quote author=kms link=1215769064/15#26 date=1215800954][quote author=steban link=1215769064/15#24 date=1215800578]
Для других языков гайки затягивать уже некуда.[/quote]
Так уж и некуда?
[code][/code][/quote]
Да :)
стало 2с
[quote author=kms link=1215769064/15#26 date=1215800954]Есть ишо порох в пороховницах у 1С ;)[/quote]
и какие из этого выводы?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #28 - 11. Июля 2008 :: 19:03
Печать  
[quote author=steban link=1215769064/15#27 date=1215801231]
и какие из этого выводы?[/quote]
Да пока трудно сказать.
Вообще, Степ, нужна какая-то приличная презенташка для популяризации идеи "lua в 1С".
Скрипты - это хорошо, но надо бы рассмотреть в прикладном к 1С смысле.

А по реализации - диагностику ошибок надо развивать
[code]
attempt to call a string value
[/code]
Маловато будет.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #29 - 11. Июля 2008 :: 19:10
Печать  
[quote author=kms link=1215769064/15#28 date=1215802987]Вообще, Степ, нужна какая-то приличная презенташка для популяризации идеи "lua в 1С".
Скрипты - это хорошо, но надо бы рассмотреть в прикладном к 1С смысле.[/quote]
Я еще сам не понял, какую пользу из этого можно извлекать, а ты - популяризация :)

[quote author=kms link=1215769064/15#28 date=1215802987]А по реализации - диагностику ошибок надо развивать[/quote]
да это фигня. сделаем.
Надо сначала другие вопросы решить.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #30 - 11. Июля 2008 :: 19:37
Печать  
tt=os.clock() 
t={}
for i=1,20000 do
 
t[i]=i
end
s=table.concat(t,",\r\n")
print(os.clock()-tt)

Время выполнения = 47 мс.

Вывод банален - для каждой задачи следует выбирать наиболее подходящий для ее решения инструмент.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #31 - 11. Июля 2008 :: 20:10
Печать  
Увеличил количество итераций до 1 миллиона.
1С - ждал 10 минут. дождаться не смог. прервал.
JS,VBS - многократно нажимал "Continue" в диалоговом окне MSScriptControl о зависшем скрипте. прервал.
Lua - 3.2 сек

Вывод тот-же.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #32 - 11. Июля 2008 :: 20:44
Печать  
JS можно оптимизировать по такому-же принципу.
Цитата:
t=new Array();
for(
i=0;i<1000000;i++)
 
t[i]=i;
s=t.join(",\r\n");
время выполнения = 4с
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #33 - 11. Июля 2008 :: 21:11
Печать  
[quote author=steban link=1215769064/30#30 date=1215805050]Вывод банален - для каждой задачи следует выбирать наиболее подходящий для ее решения инструмент.[/quote]
Вывод - что ты решил [i]разные[/i] задачи.
Но как счастливый человек этого не заметил.

Степ, прости мой сарказм. ;)
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #34 - 11. Июля 2008 :: 21:30
Печать  
[quote author=kms link=1215769064/30#33 date=1215810685]Вывод - что ты решил [i]разные[/i] задачи.
Но как счастливый человек этого не заметил.[/quote]Они стали разными из-за существующих в некоторых языках (1С и VBS) ограничений.

[quote author=kms link=1215769064/30#33 date=1215810685]Степ, прости мой сарказм. ;)[/quote]
Ой ё.
А это был сарказм? :)
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #35 - 11. Июля 2008 :: 22:45
Печать  
Не знаю :) Возможно это было просто ой ё :)
--
Я вот пытаюсь понять применимость Lua к нашей реальности.

Предположим, я хочу использовать Lua для написания быстрых вспомогательных скриптов.
Ну, допустим, я сортирую массив.
При этом мне нужен некий функтор для сравнения - его я хочу написать на Lua (в надежде, что он будет работать быстрее, чем функтор на 1С).

Далее, массив у меня написан не на 1С, а на С++.
Т.е. из С++ я вызываю некий диспетчер скриптов передавая ему два CValue, он выполняет заданный скрипт и возвращает, допустим, число на выходе.

Будет ли такая схема реализуема с помощью v7lua?
Конечно, возможность использования контекстов из Lua также весьма привлекательна.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #36 - 13. Июля 2008 :: 18:25
Печать  
добавлена работа с типами 1С (вызов методов, получение и установка свойств объектов 1С из скрипта).
Присвоен номер версии 1.0.1.0

Качать в первом посте.
« Последняя редакция: 14. Июля 2008 :: 10:27 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #37 - 14. Июля 2008 :: 08:01
Печать  
[quote author=kms link=1215769064/30#35 date=1215816315]Предположим, я хочу использовать Lua для написания быстрых вспомогательных скриптов.
Ну, допустим, я сортирую массив.
При этом мне нужен некий функтор для сравнения - его я хочу написать на Lua (в надежде, что он будет работать быстрее, чем функтор на 1С).

Далее, массив у меня написан не на 1С, а на С++.
Т.е. из С++ я вызываю некий диспетчер скриптов передавая ему два CValue, он выполняет заданный скрипт и возвращает, допустим, число на выходе.

Будет ли такая схема реализуема с помощью v7lua?[/quote]
А может проще этот самый массив (или другой контейнер с нужными свойствами) описать на Lua и обложить необходимыми методами, чтобы вызывать из 1с?

[quote author=kms link=1215769064/30#35 date=1215816315]Конечно, возможность использования контекстов из Lua также весьма привлекательна.[/quote]
Уже реализовано.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #38 - 14. Июля 2008 :: 08:03
Печать  
[quote author=kms link=1215769064/30#35 date=1215816315]Т.е. из С++ я вызываю некий диспетчер скриптов передавая ему два CValue, он выполняет заданный скрипт и возвращает, допустим, число на выходе.[/quote]
А связка Контекст + НазваниеМетода в качестве такого делегата не подойдет?
Тогда можно будет описывать такие делегаты в виде КОП или Lua-класса или просто функцией в текущем модуле.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #39 - 14. Июля 2008 :: 08:09
Печать  
[quote author=steban link=1215769064/30#37 date=1216022493]
А может проще этот самый массив (или другой контейнер с нужными свойствами) описать на Lua и обложить необходимыми методами, чтобы вызывать из 1с?
[/quote]
Дык ИТ - она уже есть, к примеру.

[quote]
Уже реализовано.[/quote]
Знаю, это я типа поддержал тебя, ты же раньше писал "думаю, надо ли оно".

ОК.
Упростим задачу

[code]
function vector()
  return {
  load = function(v,it)
    ncols=it.ColumnCount()
    for i=1,ncols do
    v[i]=it.GetValue('',i)
    end
  end ,
  get=function(v,i)
    return v[i]
  end
}
[/code]
Правильно я понимаю, что теперь можно создавать объекты луа, которые будут предоставлять 1С свои методы и свойства?
Я могу уже с помощью v7lua писать простые "классы"?

Если да, то дай, плз, пример кода, как это сделать.
А то из вектора пока не особо понятно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #40 - 14. Июля 2008 :: 08:10
Печать  
[quote author=steban link=1215769064/30#38 date=1216022629][quote author=kms link=1215769064/30#35 date=1215816315]Т.е. из С++ я вызываю некий диспетчер скриптов передавая ему два CValue, он выполняет заданный скрипт и возвращает, допустим, число на выходе.[/quote]
А связка Контекст + НазваниеМетода в качестве такого делегата не подойдет?
Тогда можно будет описывать такие делегаты в виде КОП или Lua-класса или просто функцией в текущем модуле.[/quote]
Вот-вот, я к этому пока и свел в предыдущем посте.
Надо затестировать - может это то, что нужно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #41 - 14. Июля 2008 :: 08:17
Печать  
[quote author=kms link=1215769064/30#39 date=1216022980]Правильно я понимаю, что теперь можно создавать объекты луа, которые будут предоставлять 1С свои методы и свойства?
Я могу уже с помощью v7lua писать простые "классы"?[/quote]
Да.
Сейчас набросаю пример.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #42 - 14. Июля 2008 :: 09:58
Печать  
[quote author=steban link=1215769064/30#41 date=1216023469]Сейчас набросаю пример.[/quote][code]Перем Луа;

Процедура Сформировать()
     Стек=Луа.stack();
     Н=СоздатьОбъект("Справочник.Номенклатура");
     Н.ВыбратьЭлементы();
     Пока Н.ПолучитьЭлемент()=1 Цикл
           Стек.push(Стек,Н.Наименование);
     КонецЦикла;
     Пока Стек.onbottom(Стек)<>1 Цикл
           А=Стек.pop(Стек);
           Сообщить(А      );
     КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()
     ЗагрузитьВнешнююКомпоненту("v7lua.dll");
     Луа=СоздатьОбъект("LuaRef");
     Луа.dostring("
     |function stack() --это по-сути конструктор
     |      return {      --класс представляем в виде таблицы
     |      top = 0,      --член класса
     |      push = function(s,v) --значение типа ""функция"" в таблице = метод класса
     |            s.top=s.top+1
     |            s[s.top]=v
     |      end,
     |      pop = function(s)
     |            top=math.max(s.top,0)
     |            s.top=top-1
     |            return s[top]
     |      end,
     |      onbottom = function(s)
     |            if s.top==0 then return 1
     |            else return 0 end
     |      end
     |      }
     |end
     |");
     Луа=Луа._G; //Нужно чтобы перечиталась таблица глобальных объектов
КонецПроцедуры[/code]
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #43 - 14. Июля 2008 :: 10:28
Печать  
steban писал(а) 13. Июля 2008 :: 18:25:
добавлена работа с типами 1С (вызов методов, получение и установка свойств объектов 1С из скрипта)

Обнаружил в этой части парочку багов.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #44 - 14. Июля 2008 :: 18:05
Печать  
Спасибо за пример.
Передача себя в виде параметра неизбежна?
--
Попробовал сделать функтор на Lua - получилось быстрее, чем ВМ, раза в полтора.
Я надеялся, что будет больше.
--
Lua надо научить выбрасывать и ловить исключения.
А вот функторы, которые не имеют спецификации throw() меня напротив, напрягают.
Впрочем, они работают, хотя архитектура, построенная на CallAsFunction(), плохая.
С другой стороны, она универсальна, да и другой все равно нет.
--
Какую-то странную проблему поймал.
При определенных обстоятельствах v7lua падает в тесте.
Не знаю, в чем причина.
В обработке есть строка, которую если закомментарить - падать перестанет.
Надеюсь, удастся разобраться.
Если что, код icpp для этого теста (исходник сборки) залит в CVS.
  

icpp_lua.rar ( 432 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #45 - 14. Июля 2008 :: 18:29
Печать  
steban писал(а) 14. Июля 2008 :: 10:28:
steban писал(а) 13. Июля 2008 :: 18:25:
добавлена работа с типами 1С (вызов методов, получение и установка свойств объектов 1С из скрипта)

Обнаружил в этой части парочку багов.

Как осуществить доступ к контексту?
Код
Выбрать все
	|	nextref = function(ref)
	|		ref.ПолучитьЭлемент();
	|		print(ref.Наименование);
	|		return ref.ТекущийЭлемент();
	|	end,
 


что-то не катит пока.

Я правильно, вообще, саму идею понимаю?
Если правильно, то это замечательно, но также необходима и возможность создавать новые объекты внутри скрипта.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #46 - 14. Июля 2008 :: 18:48
Печать  
kms писал(а) 14. Июля 2008 :: 18:05:
Спасибо за пример.
Передача себя в виде параметра неизбежна?

ну это вроде как this или self Улыбка
В Lua можно использовать сокращенный синтаксис:
table:method(param) = table.method(table, param)
В 1С приходится использовать полный синтаксис.

kms писал(а) 14. Июля 2008 :: 18:05:
Какую-то странную проблему поймал.
При определенных обстоятельствах v7lua падает в тесте.
Не знаю, в чем причина.
В обработке есть строка, которую если закомментарить - падать перестанет.
Надеюсь, удастся разобраться.
Если что, код icpp для этого теста (исходник сборки) залит в CVS.

Предлагаю тестирование временно свернуть.
Я там такие чудеса обнаружил....
Буду разбираться.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #47 - 14. Июля 2008 :: 18:52
Печать  
Как эт свернуть? Мы ж только начали? Очень довольный
На самом деле, тема оказалась очень интересна, я буду ждать продолжения.

Вдогонку.
Вот так удалось что-то получить:
Код
Выбрать все
	|	nextref = function(ref)
	|		ref.GetItem();
	|		print(ref.Description);
	|		return ref.CurrentItem();
	|	end
 


Но возвращаемое значение (или преобразование) лажает.
Плюс конечно, хотелось бы русские букфы в скриптах, сам понимаешь, по английски "x@№" красиво не напишешь Улыбка

Удачи.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #48 - 14. Июля 2008 :: 18:54
Печать  
kms писал(а) 14. Июля 2008 :: 18:29:
Как осуществить доступ к контексту?
Код
Выбрать все
	|	nextref = function(ref)
	|		ref.ПолучитьЭлемент();
	|		print(ref.Наименование);
	|		return ref.ТекущийЭлемент();
	|	end,
 


что-то не катит пока.

В Lua пока нет возможности использовать кириллические идентификаторы (думаю чуток пропатчить лексер на эту тему).
Поэтому для вызова методов придется опять использовать полный синтаксис:
Код
Выбрать все
	|	nextref = function(ref)
	|		ref['ПолучитьЭлемент']();
	|		print(ref.['Наименование']);
	|		return ref['ТекущийЭлемент']();
	|	end,
 


В 1.0.1.0 такой код прокатит только для контекстов. И не прокатит для CValue у которых IsExactValue()=1.
В моей сборке такой код сейчас работает, но там есть другие проблемы...
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #49 - 14. Июля 2008 :: 19:01
Печать  
kms писал(а) 14. Июля 2008 :: 18:29:
также необходима и возможность создавать новые объекты внутри скрипта.

Приведу в стабильное состояние, а потом подумаем на эту тему.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #50 - 14. Июля 2008 :: 19:02
Печать  
kms писал(а) 14. Июля 2008 :: 18:52:
Но возвращаемое значение (или преобразование) лажает.

Эт я уже решил.
В следующей версии не будет.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #51 - 15. Июля 2008 :: 20:23
Печать  
Выложил версию 1.0.1.1.
В этой версии в основном багфиксы.
ВК заметно похудела и избавилась от зависимости от runtime vc80.

По сравнению с предыдущей версией, утеряна возможность работы с групповыми контекстами.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #52 - 16. Июля 2008 :: 06:47
Печать  
Версия 1.0.1.2:
  • разрешено использование русских идентификаторов
  • исправлен вылет при вызове функций Lua из других ВК (теперь при попытке таких вызовов выполняется вызов без параметров)
  • реализовано чтение свойств и вызов методов групповых контекстов (для других объектов 1с должно работать все: чтение/установка свойств и вызов методов). Установку свойств для групповых контекстов можно сделать через вызов метода-setter'а. Тем более, что вызов метода 1С из Lua намного эффективнее работы со свойствами.

« Последняя редакция: 16. Июля 2008 :: 07:59 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #53 - 16. Июля 2008 :: 06:57
Печать  
kms писал(а) 14. Июля 2008 :: 18:05:
Какую-то странную проблему поймал.
При определенных обстоятельствах v7lua падает в тесте.
Не знаю, в чем причина.
В обработке есть строка, которую если закомментарить - падать перестанет.
Надеюсь, удастся разобраться.

Разобраться удалось.
В Lua любые функции - функции с неопределенным количеством параметров.
Для определения количества фактических параметров я применил метод, аналогичный примененному в CMyContextBase.
1С перед вызовом CallAsProc/CallAsFunc делает вызов IsOleContext.
При этом в ebx лежит число фактических параметров.
icpp сразу вызывает CallAsFunc.
имхо, такая-же засада будет при вызове из icpp методов КОП с неопределенным количеством параметров.

2 kms: удастся это поправить со стороны icpp? т.е. вставить вызов IsOleContext и добиться чтобы оно скомпилировалось так, чтобы в ebx лежало количество параметров.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #54 - 16. Июля 2008 :: 07:38
Печать  
steban писал(а) 16. Июля 2008 :: 06:57:
имхо, такая-же засада будет при вызове из icpp методов КОП с неопределенным количеством параметров.

Так и есть. Я об этом писал когда-то. Вот...
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #55 - 16. Июля 2008 :: 08:19
Печать  
steban писал(а) 16. Июля 2008 :: 06:57:
kms писал(а) 14. Июля 2008 :: 18:05:
Какую-то странную проблему поймал.
При определенных обстоятельствах v7lua падает в тесте.
Не знаю, в чем причина.
В обработке есть строка, которую если закомментарить - падать перестанет.
Надеюсь, удастся разобраться.

Разобраться удалось.
В Lua любые функции - функции с неопределенным количеством параметров.
Для определения количества фактических параметров я применил метод, аналогичный примененному в CMyContextBase.
1С перед вызовом CallAsProc/CallAsFunc делает вызов IsOleContext.
При этом в ebx лежит число фактических параметров.
icpp сразу вызывает CallAsFunc.
имхо, такая-же засада будет при вызове из icpp методов КОП с неопределенным количеством параметров.

2 kms: удастся это поправить со стороны icpp? т.е. вставить вызов IsOleContext и добиться чтобы оно скомпилировалось так, чтобы в ebx лежало количество параметров.

А можно подробнее о том, как связаны icpp и твоя ВК ?
Или в примере kms все есть?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #56 - 16. Июля 2008 :: 08:23
Печать  
steban писал(а) 16. Июля 2008 :: 06:57:
2 kms: удастся это поправить со стороны icpp? т.е. вставить вызов IsOleContext и добиться чтобы оно скомпилировалось так, чтобы в ebx лежало количество параметров.

То-то я смотрю, у тебя по 20 параметров куда ни глянь.
--
Достаточно один раз вызвать для данного номера метода, если после это число параметров не меняется?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #57 - 16. Июля 2008 :: 08:24
Печать  
artbear писал(а) 16. Июля 2008 :: 08:19:
А можно подробнее о том, как связаны icpp и твоя ВК ?
Или в примере kms все есть?

Есть - см. использование "ЗаполнитьКолонкуПоАлгоритму" для Lua.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #58 - 16. Июля 2008 :: 08:32
Печать  
kms писал(а) 16. Июля 2008 :: 08:23:
Достаточно один раз вызвать для данного номера метода, если после это число параметров не меняется?

Для CComponentClass достаточно.
Для LuaRef недостаточно.
Я обнуляю значение, полученное в IsOleContext после каждого вызова.
Если мне кто-то докажет, что ненаступление на грабли гарантировано, я это обнуление уберу.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #59 - 16. Июля 2008 :: 08:35
Печать  
steban писал(а) 16. Июля 2008 :: 08:32:
kms писал(а) 16. Июля 2008 :: 08:23:
Достаточно один раз вызвать для данного номера метода, если после это число параметров не меняется?

Для CComponentClass достаточно.
Для LuaRef недостаточно.
Я обнуляю значение, полученное в IsOleContext после каждого вызова.
Если мне кто-то докажет, что ненаступление на грабли гарантировано, я это обнуление уберу.

А почему в моем примере достаточно раскомментарить всего одну строчку с первым вызовом из 1С?
Если бы ты обнулял, было бы не так.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #60 - 16. Июля 2008 :: 08:40
Печать  
berezdetsky писал(а) 16. Июля 2008 :: 07:38:
steban писал(а) 16. Июля 2008 :: 06:57:
имхо, такая-же засада будет при вызове из icpp методов КОП с неопределенным количеством параметров.

Так и есть. Я об этом писал когда-то. Вот...

Надо какое-то решение придумать.
Ведь не дело это.

Но решения у меня пока нет.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #61 - 16. Июля 2008 :: 08:44
Печать  
kms писал(а) 16. Июля 2008 :: 08:35:
А почему в моем примере достаточно раскомментарить всего одну строчку с первым вызовом из 1С?
Если бы ты обнулял, было бы не так.

Попробуй скачать ВК заново.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #62 - 16. Июля 2008 :: 08:52
Печать  
steban писал(а) 16. Июля 2008 :: 08:44:
kms писал(а) 16. Июля 2008 :: 08:35:
А почему в моем примере достаточно раскомментарить всего одну строчку с первым вызовом из 1С?
Если бы ты обнулял, было бы не так.

Попробуй скачать ВК заново.

Я пробовал утром на 1.0.1.2.
Да ладно, если ты говоришь надо каждый раз - сделаем каждый раз.
Как говорится "хуже уже не будет".
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #63 - 16. Июля 2008 :: 08:55
Печать  
Ну а такой вопрос: после вызова IsOleContext / EBX==1
Я могу ожидать, что CLuaRef::GetNParams вернет 1?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #64 - 16. Июля 2008 :: 09:00
Печать  
kms писал(а) 16. Июля 2008 :: 08:55:
Ну а такой вопрос: после вызова IsOleContext / EBX==1
Я могу ожидать, что CLuaRef::GetNParams вернет 1?

Нет.
В Lua нет возможности получить какую-либо метаинформацию о функциях.
Возвращать ранее полученное количество параметров, имхо, нет смысла.
был не прав. каюсь.

А зачем тебе такое поведение?
« Последняя редакция: 17. Июля 2008 :: 20:11 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #65 - 16. Июля 2008 :: 09:16
Печать  
Ну, потому что если метод заявляет, что он принимает 20 параметров, я эти 20 параметров должен предоставить.
А зачем мне это, если у меня 1 параметр.

Да, я могу проверить рантайм класс и для CLuaRef сделать особое поведение.
Я также могу не обращать внимание на GetNParams() и передавать 1 параметр.

Последнее отпадает, а если для CLuaRef по-любому требуется особая обработка, то можно вообще отказаться от IsOleContext/CallAsFunc в сторону другого интерфейса.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #66 - 16. Июля 2008 :: 09:31
Печать  
kms писал(а) 16. Июля 2008 :: 08:55:
Ну а такой вопрос: после вызова IsOleContext / EBX==1
Я могу ожидать, что CLuaRef::GetNParams вернет 1?

ОК.
В следующей версии будет так.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #67 - 16. Июля 2008 :: 15:06
Печать  
kms писал(а) 16. Июля 2008 :: 09:16:
если для CLuaRef по-любому требуется особая обработка, то можно вообще отказаться от IsOleContext/CallAsFunc в сторону другого интерфейса.

А может передавать количество параметров в вызове GetPropName или GetMethodName, номер метода=количество параметров и язык=2?
Такое решение подойдет и Ивану с его ВК на VB.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #68 - 16. Июля 2008 :: 16:26
Печать  
steban писал(а) 16. Июля 2008 :: 15:06:
kms писал(а) 16. Июля 2008 :: 09:16:
если для CLuaRef по-любому требуется особая обработка, то можно вообще отказаться от IsOleContext/CallAsFunc в сторону другого интерфейса.

А может передавать количество параметров в вызове GetPropName или GetMethodName, номер метода=количество параметров и язык=2?
Такое решение подойдет и Ивану с его ВК на VB.

Ну, в принципе, да.
А все контексты нормально переживут GetMethodName для языка ==2?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #69 - 17. Июля 2008 :: 05:49
Печать  
kms писал(а) 16. Июля 2008 :: 16:26:
А все контексты нормально переживут GetMethodName для языка ==2?

КОПы переживут, LuaRef тоже.
емнип, больше никто неопределенное количество параметров не поддерживает
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #70 - 17. Июля 2008 :: 05:57
Печать  
steban писал(а) 17. Июля 2008 :: 05:49:
больше никто неопределенное количество параметров не поддерживает

Блин. а ведь это не важно. Печаль
Такое соглашение должны поддерживать любые объекты вызов которых возможен из 1с++ или других ВК.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #71 - 17. Июля 2008 :: 09:39
Печать  
steban писал(а) 17. Июля 2008 :: 05:57:
steban писал(а) 17. Июля 2008 :: 05:49:
больше никто неопределенное количество параметров не поддерживает

Блин. а ведь это не важно. Печаль
Такое соглашение должны поддерживать любые объекты вызов которых возможен из 1с++ или других ВК.

Да.
Я поэтому для начала задал строгое условие "все".
Можно ослабить до "все нам известные".
Если, конечно, не посетит какая-либо более предпочтительная идея.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #72 - 17. Июля 2008 :: 10:58
Печать  
steban писал(а) 15. Июля 2008 :: 20:23:
По сравнению с предыдущей версией, утеряна возможность работы с групповыми контекстами.

Это был глюк TurboBL.
Все работает.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #73 - 17. Июля 2008 :: 11:01
Печать  
kms писал(а) 16. Июля 2008 :: 16:26:
А все контексты нормально переживут GetMethodName для языка ==2?

В том-то и дело, что не все.
Большинство классов 1С++ скорее всего будут вызывать AV или еще что-нибудь интересное, что происходит при выходе за пределы буфера.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #74 - 17. Июля 2008 :: 11:31
Печать  
steban писал(а) 17. Июля 2008 :: 11:01:
kms писал(а) 16. Июля 2008 :: 16:26:
А все контексты нормально переживут GetMethodName для языка ==2?

В том-то и дело, что не все.
Большинство классов 1С++ скорее всего будут вызывать AV или еще что-нибудь интересное, что происходит при выходе за пределы буфера.

Ну, за icpp я меньше всего переживаю, если там возможен ABR, можно поправить.
А вот за контексты 1С - не возьмусь отвечать, ну и компоненты других авторов - под вопросом.

Цитата:
Это был глюк TurboBL.

А можно чуть подробнее.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #75 - 17. Июля 2008 :: 11:42
Печать  
kms писал(а) 17. Июля 2008 :: 11:31:
Цитата:
Это был глюк TurboBL.

А можно чуть подробнее.

http://www.1cpp.ru/bugs/show_bug.cgi?id=3988
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #76 - 17. Июля 2008 :: 12:06
Печать  
Это была очередная реинкарнация старого-старого глюка Улыбка
Вроде как в очередной раз поправлена Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #77 - 17. Июля 2008 :: 13:56
Печать  
Версия 1.0.1.3:
  • исправлено поведение ф-и print (выводился только последний аргумент)
  • добавлена ф-я create1sobject - аналог ф-и СоздатьОбъект встроенного языка 1с.
  • изменено сообщение вызывающему коду количества параметров ф-й:
    теперь при вызове GetNParams возвращается количество параметров, полученное ранее в вызове IsOleContext из регистра ebx или 0
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #78 - 17. Июля 2008 :: 15:22
Печать  
steban писал(а) 17. Июля 2008 :: 13:56:
Версия 1.0.1.3:

Использовал предоставленные возможности в http://www.1cpp.ru/bugs/show_bug.cgi?id=3813
Все ок, проблем нет.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: v7lua.dll - ВК для интеграции 1С и Lua
Ответ #79 - 17. Июля 2008 :: 17:13
Печать  
steban писал(а) 17. Июля 2008 :: 13:56:
  • добавлена ф-я create1sobject - аналог ф-и СоздатьОбъект встроенного языка 1с.

  • А как правильно использовать?
    Код
    Выбрать все
    	|	Test = function()
    	|		val = Create1sObject(""Справочник.Номенклатура"");
    	|		return val;
    	|	end,
     
    
    


    Код
    Выбрать все
    [string "..."]:11: attempt to call global 'Create1sObject' (a nil value)
     
    
    
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #80 - 17. Июля 2008 :: 17:23
    Печать  
    А, регистр.
    "create1sobject" - работает.

    Ну, выходит, до полной идиллии не хватает совсем немного -
    конструкций типа try/catch и возможности выброса исключений в вызывающий контекст.
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #81 - 17. Июля 2008 :: 19:59
    Печать  
    kms писал(а) 17. Июля 2008 :: 17:23:
    Ну, выходит, до полной идиллии не хватает совсем немного -
    конструкций типа try/catch и возможности выброса исключений в вызывающий контекст.

    try/catch в Lua не будет никогда.
    А вот прервать выполнение по ошибке - это запросто:
    Код
    Выбрать все
    error('фигня вышла') 
    
    
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #82 - 17. Июля 2008 :: 20:07
    Печать  
    kms писал(а) 17. Июля 2008 :: 15:22:
    Использовал предоставленные возможности в http://www.1cpp.ru/bugs/show_bug.cgi?id=3813
    Все ок, проблем нет.

    Цитата:
    Код
    Выбрать все
    void CallIsOleContext(CBLContext* pCont, int nParams)
    {
    	__asm
    	{
    		push ebx;
    		mov ebx, nParams;
    	}
    	pCont->IsOleContext();
    	__asm
    	{
    		pop ebx;
    	}
    }
     
    
    

    Очень довольный
    я сделал точно такие-же правки в ProxyDataProvider
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    artbear
    1c++ developer
    1c++ moderator
    Отсутствует


    Эх, дайте что-нибудь новенькое
    да полезное потести

    Сообщений: 6303
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #83 - 18. Июля 2008 :: 03:13
    Печать  
    steban писал(а) 17. Июля 2008 :: 20:07:
    Очень довольный
    я сделал точно такие-же правки в ProxyDataProvider

    А где ты их сделал?
    Этот провайдер мы же включили в состав 1С++ Улыбка
      

    OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
    Наверх
    GTalkSkype/VoIPICQ  
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #84 - 18. Июля 2008 :: 05:57
    Печать  
    artbear писал(а) 18. Июля 2008 :: 03:13:
    А где ты их сделал?
    в своей сборке. нигде не публиковал.
    artbear писал(а) 18. Июля 2008 :: 03:13:
    Этот провайдер мы же включили в состав 1С++ Улыбка

    я помню Улыбка
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #85 - 18. Июля 2008 :: 07:01
    Печать  
    steban писал(а) 17. Июля 2008 :: 19:59:
    kms писал(а) 17. Июля 2008 :: 17:23:
    Ну, выходит, до полной идиллии не хватает совсем немного -
    конструкций типа try/catch и возможности выброса исключений в вызывающий контекст.

    try/catch в Lua не будет никогда.

    вместо try/catch можно использовать pcall. Только блок try придется оформлять в виде функции. Но это не проблема, т.к. в Lua можно объявлять анонимные функции Улыбка
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #86 - 18. Июля 2008 :: 19:58
    Печать  
    Включил в ВК библиотеку LPeg (Parsing Expression Grammars For Lua)
    Во вложении - демо-конфа, показывающая возможности LPeg, а именно быстрый лексический анализ.
      

    SyntaxHighlightDemo.rar ( 84 KB | Загрузки )

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #87 - 18. Июля 2008 :: 19:59
    Печать  
    Вот как это выглядит:
      

    LPegSyntaxHighlightScreen.GIF ( 9 KB | Загрузки )
    LPegSyntaxHighlightScreen.GIF

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #88 - 18. Июля 2008 :: 20:04
    Печать  
    Файл Lexer.lua был взят отсюда и чуток подредактирован.
    lua.lua взят отсюда и включен без изменений.
    Эти файлы - часть проекта Scite-st (это форк проекта Scite).
    Список лексеров, доступных в SCite-st, можно посмотреть тут
    Цитата:
    actionscript ada antlr apdl applescript asp awk batch boo container cpp csharp css d diff django eiffel erlang errorlist forth fortran gap gettext gnuplot groovy haskell html idl ini io java javascript latex lisp lua makefile mysql objective_c pascal php pike postscript props python ragel rebol rhtml ruby scheme shellscript smalltalk tcl template vala verilog vhdl visualbasic xml


    Весь раскрашивающий код виден на предыдущем скрине.
    Для работы требуется RICHTEXT.RichtextCtrl.1

    Можно взять любой из доступных в Scite-st лексеров (например xml.lua), положить его в каталог скриптов, и изменив одну строчку кода:
    Код
    Выбрать все
    InitLexer('lua') 
    
    
    получить синтаксическую подсветку для другого языка.
    « Последняя редакция: 18. Июля 2008 :: 21:17 - steban »  

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #89 - 18. Июля 2008 :: 21:42
    Печать  
    В данной реализации самая неприятная фигня - это RichTextBox, у которого невозможно отключить перерисовку на время раскраски, у которого нет скроллбаров и который во время раскраски скроллит текст в окне к месту, которое изменяется. Печаль
    Время выполнения лексического анализа для маленьких файлов даже не удается измерить (т.е. меньше 1 мс).
    LPeg весьма быстр. При том, что и довольно прост в использовании.

    Где бы найти нормальный контрол для этих целей?
    Многое от него не нужно: он должен уметь редактировать текст, раскрашивать разные фрагменты текста и отключать перерисовку на время обновления.
    Еще желательно бы, чтобы он умел сообщать номер первой и последней строки, видимой на экране.

    Я бы даже попробовал написать Lpeg-лексер для 1С и SQL
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    Arta
    1c++ power user
    Отсутствует



    Сообщений: 2537
    Местоположение: Нижний Новгород
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #90 - 18. Июля 2008 :: 21:50
    Печать  
      
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #91 - 21. Июля 2008 :: 06:24
    Печать  
    Arta писал(а) 18. Июля 2008 :: 21:50:

    Можно попробовать...
    Для этого надо научить v7lua нормально работать с COM/OLE-объектами минуя 1с.
    Может включить в компоненту библиотеку LuaCOM?
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #92 - 21. Июля 2008 :: 06:27
    Печать  
    Я, наверное, должен использовать лицензию MIT
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #93 - 21. Июля 2008 :: 07:08
    Печать  
    steban писал(а) 21. Июля 2008 :: 06:27:
    Я, наверное, должен использовать лицензию MIT

    Вообще-то, Степ, если ты используешь какие-либо исходники 1cpp/icpp (в том числе и заголовки классов), ты попал на GPL.
    Как, впрочем, и все остальные разработки данного типа.

    С другой стороны, зачем тебе именно MIT?
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #94 - 21. Июля 2008 :: 07:17
    Печать  
    kms писал(а) 21. Июля 2008 :: 07:08:
    если ты используешь какие-либо исходники 1cpp/icpp (в том числе и заголовки классов), ты попал на GPL.
    Как, впрочем, и все остальные разработки данного типа.

    С другой стороны, зачем тебе именно MIT?

    Икс его знает. Я этих тонкостей не понимаю.
    Почитал лицензию на Lua...
    Вроде бы они не ограничивают способ распространения софта, использующего Lua.
    А раз так, то будет GPL.
    что-то эта маленькая примочка начала разрастаться на глазах. пойду-ка я на гугль-код или сф-нет
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #95 - 21. Июля 2008 :: 07:19
    Печать  
    steban писал(а) 21. Июля 2008 :: 07:17:
    что-то эта маленькая примочка начала разрастаться на глазах. пойду-ка я на гугль-код или сф-нет

    По выбору между google и sf cкажу только одно: svn rulezz Улыбка
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #96 - 21. Июля 2008 :: 09:09
    Печать  
    Бинарники luacom, скачанные с LuaForge, с компонентой v7lua не работают.
    Во вложении библиотека LuaCOM, собранная под 6-й runtime и работающая с v7lua.
    Код
    Выбрать все
    Луа=СоздатьОбъект("LuaRef");
    Каталог=СтрЗаменить(КаталогИБ()+"Lua\","\","\\");
    Луа.dostring("
    |package.path='"+Каталог+"?.lua;'
    |package.cpath='"+Каталог+"?.dll;'
    |luacom=require('luacom')
    |local w = luacom.CreateObject('Word.Application')
    |w.Visible=true
    |");
     
    
    
      

    luacom.rar ( 106 KB | Загрузки )

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #97 - 23. Июля 2008 :: 07:50
    Печать  
    steban писал(а) 21. Июля 2008 :: 09:09:
    Во вложении библиотека LuaCOM, собранная под 6-й runtime и работающая с v7lua.

    Работать-то оно работает, только строки считает строками в кодировке UTF-8.
    Сейчас пересоберу и выложу.
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #98 - 24. Июля 2008 :: 08:51
    Печать  
    Версия 1.0.2.0:
    • minor bugfixes
    • в компоненту включены библиотеки LPeg и LuaCOM
    • COM-объекты теперь передаются из 1с в Lua через LuaCOM, минуя CValue, CBLContext и т.п.


    Проект переехал на GoogleCode: http://code.google.com/p/v7lua/
    Опубликованы исходники под лицензией GPL.
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #99 - 24. Июля 2008 :: 09:28
    Печать  
    Arta писал(а) 18. Июля 2008 :: 21:50:

    Попробовал.
    Только не в виде ActiveX, а в виде "родного" 1с-ного контрола.
    Результатом остался удовлетворен. Все работает довольно быстро. Даже учитывая тот факт, что раскраска производится для всего текста целиком и "при каждом чихе".

    Прикладываю демо-конфу. В каталоге базы должна лежать 1с++ 2.5 или старше.
    SciLexer.dll от metaeditor должен лежать в каталоге программы.

    Теперь можно попробовать вложенные подсветки.
    Например подсветка SQL внутри кода 1с. Улыбка
    Изменено:
    удалил вложение
    « Последняя редакция: 03. Августа 2008 :: 13:14 - steban »  

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    CaBaT
    God Member
    *****
    Отсутствует


    I Love YaBB 2!

    Сообщений: 718
    Местоположение: Санкт-Петербург
    Зарегистрирован: 26. Октября 2007
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #100 - 24. Июля 2008 :: 09:40
    Печать  
    косяк какой-то:
    Код
    Выбрать все
    sci=Ф.СоздатьЭлементУправления("Scintilla","фКонтрол");
    {Отчет.новый1.Форма.Модуль(36)}: Неудачная попытка создания ЭУ 'Scintilla_'. 
    
    


    1cpp.dll версия 3.0.1.10
      
    Наверх
     
    IP записан
     
    Pelmen
    Full Member
    ***
    Отсутствует



    Сообщений: 242
    Зарегистрирован: 01. Июня 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #101 - 24. Июля 2008 :: 09:41
    Печать  
    CaBaT писал(а) 24. Июля 2008 :: 09:40:
    косяк какой-то:
    Код
    Выбрать все
    sci=Ф.СоздатьЭлементУправления("Scintilla","фКонтрол");
    {Отчет.новый1.Форма.Модуль(36)}: Неудачная попытка создания ЭУ 'Scintilla_'. 
    
    


    1cpp.dll версия 3.0.1.10

    опередил Нерешительный
      
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #102 - 24. Июля 2008 :: 09:43
    Печать  
    SciLexer.dll от metaeditor должен лежать в каталоге программы.
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #103 - 24. Июля 2008 :: 10:28
    Печать  
    Ну и как? заработало?

    нда...
    что-то в этой ветке у меня монолог получается Улыбка

    А я между тем, нарыл еще одну забавную штуку: http://ru.wikipedia.org/wiki/Tiny_C_Compiler Улыбка:)
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    Pelmen
    Full Member
    ***
    Отсутствует



    Сообщений: 242
    Зарегистрирован: 01. Июня 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #104 - 24. Июля 2008 :: 10:49
    Печать  
    у меня заработало
    но я просто посмотреть что это и как работает
      
    Наверх
     
    IP записан
     
    Arta
    1c++ power user
    Отсутствует



    Сообщений: 2537
    Местоположение: Нижний Новгород
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #105 - 24. Июля 2008 :: 11:41
    Печать  
    steban писал(а) 24. Июля 2008 :: 10:28:
    Ну и как? заработало?


    Степ, ты думаешь кто-то сомневался что заработает Улыбка  Взлетело конечно.
      
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #106 - 24. Июля 2008 :: 15:34
    Печать  
    steban писал(а) 24. Июля 2008 :: 09:28:
    Прикладываю демо-конфу. В каталоге базы должна лежать 1с++ 2.5 или старше.
    SciLexer.dll от metaeditor должен лежать в каталоге программы.
    И в догонку приложу лексер для подсветки SQLite-диалекта SQL.
    Положить файл в каталог Lua каталога программы и изменить в коде обработки InitLexer('lua') на InitLexer('sqlite')
      

    sqlite_lua.rar ( 1 KB | Загрузки )

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    Nick
    God Member
    *****
    Отсутствует



    Сообщений: 1599
    Местоположение: г.Новокузнецк
    Зарегистрирован: 21. Февраля 2007
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #107 - 25. Июля 2008 :: 01:45
    Печать  
    Теперь бы это к консоли запросов прикрутить  Улыбка
      
    Наверх
    ICQ  
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #108 - 25. Июля 2008 :: 11:44
    Печать  
    Nick писал(а) 25. Июля 2008 :: 01:45:
    Теперь бы это к консоли запросов прикрутить  Улыбка

    займешься? Подмигивание
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    steban
    1c++ developer
    Отсутствует


    #define sizeof(x) rand()

    Сообщений: 787
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #109 - 03. Августа 2008 :: 13:15
    Печать  
    steban писал(а) 24. Июля 2008 :: 09:28:
    Arta писал(а) 18. Июля 2008 :: 21:50:

    Попробовал.
    Только не в виде ActiveX, а в виде "родного" 1с-ного контрола.
    Результатом остался удовлетворен.

    Оптимизированную версию выложил вот тут
      

    int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
    Наверх
     
    IP записан
     
    nikolka
    Junior Member
    **
    Отсутствует


    I Love YaBB 2!

    Сообщений: 83
    Зарегистрирован: 15. Января 2007
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #110 - 19. Октября 2010 :: 10:08
    Печать  
    steban писал(а) 11. Июля 2008 :: 18:22:
    berezdetsky писал(а) 11. Июля 2008 :: 16:43:
    Здесь на одно сложение больше, чем в тестах для других языков.

    Машина, на которой запускались первые измерения, мне сейчас недоступна.
    После приведения всех программ к одному виду (и на другой машине) результаты такие:
    1С - 4 с
    VBS - 1.6 с
    JS - 1.6 с
    Lua - 1.2 с

    Но для js остается возможность оптимизации с использованием оператора +=.
    Для других языков гайки затягивать уже некуда.

    особенно удивительна разница во времени выполнения кода 1С на разных машинах.
    1-я была 32-х разрядная, 2я - 64

    В дополнении провел немного тестов
    (два теста один на суммирование строк другой на суммирование чисел):
    на их проведение помимо данной темы меня натолкнул пост
    http://habrahabr.ru/blogs/javascript/105199/
    (Сравнение производительности Javascript-движков с родным Linux приложением.)
    Свои замеры проводились в Windows(на одной и той же машине).
    Каждый замер проводился 3 раза
    в качестве результата бралось среднее трех измерений.
    1С строки тест:
    т=_GetPerformanceCounter();
    _стр="";
    _вр ="";
    Для Сч=1 По 100000 Цикл
         _вр =Строка(Сч)+",
         |";
         _стр =_стр +_вр;
    КонецЦикла;
    Сообщить(_GetPerformanceCounter()-т);


    1С числа
    т=_GetPerformanceCounter();
    _стр=0;
    Для Сч=1 По 100000 Цикл      
         _стр =_стр +Сч;
    КонецЦикла;
    Сообщить(_GetPerformanceCounter()-т);

    на моей машине результаты такие

    1С7.70.025
    строки
    144295 мс
    //2мин 24сек
    числа
    192.3 мс

    1С:Предприятие 8.1 (8.1.9.57)
    строки
    125522 мс
    //2мин 5сек
    числа
    1670 мс

    JS строки

    var now = new Date().getTime() ;
    s='';
    for(i=0;i<100000;i++)
       s+=i+",\r\n";
    var now2 = new Date().getTime();
    now2=now2-now;

    alert("time="+now2);


    JS числа
    function displaymessage()
    {

    var now = new Date().getTime() ;
    s=0;
    for(i=0;i<100000;i++)
       s+=i;
    var now2 = new Date().getTime();
    now2=now2-now;

    alert("time="+now2);

    -------------------
    JS IE 6.0.3790.3959
    строки
    127793 мс
    //2мин 8сек
    числа
    78 мс


    JS Opera 10.63
    строки
    42.6 мс
    числа
    3.5 мс

    JS Google Chrome 6.0.472.63
    строки
    31 мс
    числа
    3 мс

    JS FireFox 4.0.b6
    строки
    22 мс
    числа
    0.8 мс (что бы добиться  хорошей точности для случая
    увеличил размер в 10 раз и поделил время на 10)
    ------------------
    Выводы по данным  тестам такие
    1С81 быстрее работает со строками на 15%
    но  с числами работает медленнее в 8.7 раза.

    JS IE 6  13% быстрее со строками
    и 2.5 раза быстрее с числами.

    JS Opera 10.63
    3387 раз быстрее со строками
    и  55 раза быстрее с числами.

    JS Google Chrome 6.0.472.63
    4655 раз быстрее со строками
    и  64  раза быстрее с числами.

    JS FireFox 4.0.b6
    6559 раз быстрее со строками
    и 240  раза быстрее с числами.

    Получается что работа со строками в современных интерпритаторах
    улучилась на 3,5 порядка а с числами где то на  2 порядка.
    Так что все срочно учить JS и переписывать все под него.  Подмигивание

    Данные результаты показались мне интересными потому
    и выкладываю их здесь.
    « Последняя редакция: 19. Октября 2010 :: 16:37 - nikolka »  
    Наверх
     
    IP записан
     
    Z1
    God Member
    *****
    Отсутствует


    I Love YaBB 2!

    Сообщений: 2906
    Местоположение: Москва
    Зарегистрирован: 26. Мая 2006
    Пол: Мужской
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #111 - 19. Октября 2010 :: 12:40
    Печать  
    а если js запустить из windows ?
      
    Наверх
     
    IP записан
     
    nikolka
    Junior Member
    **
    Отсутствует


    I Love YaBB 2!

    Сообщений: 83
    Зарегистрирован: 15. Января 2007
    Re: v7lua.dll - ВК для интеграции 1С и Lua
    Ответ #112 - 19. Октября 2010 :: 16:48
    Печать  
    Z1 писал(а) 19. Октября 2010 :: 12:40:
    а если js запустить из windows ?

    Windows Script Host js
    работа со строками
    149400
    с числами
    78
    Я думал что результат должен был совпасть
    с JS IE 6.0.3790.3959
    но он почему то совпал лишь частично.
    Мне кажется что различие хотя и существенное но оно не принципиальное и не меняет общей картины.

    Все вышеприведенные тесты запускались так же под
    Windows  только некоторые запускались в браузерах.
      
    Наверх
     
    IP записан
     
    Переключение на Главную Страницу Страницы: [1] 
    ОтправитьПечать