Вход | Регистрация
    1  2  3   

Транслятор кода 1С в JavaScript

Транслятор кода 1С в JavaScript
Я
   Garykom
 
22.08.16 - 06:29
1. Нафик не нужно30% (3)
2. Нужно, знаю зачем30% (3)
3. Нужно, зачем не знаю20% (2)
4. Другое20% (2)
Всего мнений: 10

Транслятор "кода 1С" в JavaScript куда можно применить?

Без написания "глобального убийцы" а просто некий аналог http://oscript.io/ только для броузера/nodejs?

Искал парсер для вытаскивания данных из текста (загрузка данных из файлов excel) и нашел РВ-грамматики.

Они РВ-грамматиками кто занимался? весьма интересные и позволяют довольно просто создавать трансляторы/интерпретаторы из одного в другое.

Можно сделать автоматическую трансляцию кода на языке 1С в код javascript, который будет выполняться в брfузере или в nodejs.

Но кто то может предложить практическое применение этого?
 
 
   quest
 
1 - 22.08.16 - 06:49
1. Смысл какой?
2. peg - для больших объемов не очень хорошо подходит
   Garykom
 
2 - 22.08.16 - 06:53
(1)
1. Дык вот и ищу смысл, для скриптов в системе еще понятно - замена bat/vbs а тут хз.

2. Как раз Packrat парсеры самые шустрые и трансляцияю можно не на лету, а заранее в процессе "компиляции".
На выходе обычный JS код который вставлять куда угодно.
   Garykom
 
3 - 22.08.16 - 06:56
(2)+ Гм сенкс на мыслю, можно же сделать транслятор в js, которые нативно с windows умеют выполняться или даже в vbs.

Суть в простоте написания на языке 1С, а на выходе готовый скрипт для которого интерпретатор в ОСь встроен.
   Garykom
 
4 - 22.08.16 - 06:57
(3)+ Нечто вроде https://ru.wikipedia.org/wiki/Haxe получится, но как базовый "язык 1С".
   DDwe
 
5 - 22.08.16 - 06:57
(3) А, зачем?
   Garykom
 
6 - 22.08.16 - 06:58
(5) Для тех кто кроме 1С ничего не смог выучить ))
   quest
 
7 - 22.08.16 - 06:58
Вот скажи - какой смысл писать на 1С если можно писать на js?

Я пониманю разработчиков clojureScript - более мощный и выразительный язык транилируют в js. А тут в чем выгода?
   Garykom
 
8 - 22.08.16 - 06:59
(7) Зачем писать тексты на английском или французом или китайском и т.д., когда русский есть?
   DDwe
 
9 - 22.08.16 - 07:01
(8) Потому, что если сразу писать на js ты точно напишешь лучше  и аккуратнее.
   Garykom
 
10 - 22.08.16 - 07:01
(7) Да есть же GWT и Vaadin на его основе, понятно что это уже системы-фреймворки.

Ну как пример скрипты для выполнения внутри "Поле HTML дока" можно на 1С делать напрямую.
   Garykom
 
11 - 22.08.16 - 07:02
(9) С этим не спорю, но время на изучение?
   VladZ
 
12 - 22.08.16 - 07:02
(0) Не вижу смысла
   quest
 
13 - 22.08.16 - 07:03
Почему трансляция в js? Почему не на С++? Не на java? не в ассемблер в конце концов? Чем тебе так близок js? Что его выделяет из других языков? Ну кроме того что ты его хорошо знаешь?
   Garykom
 
14 - 22.08.16 - 07:06
(13) Прикинь я js самым последним начал изучать плотно и не так уж его и знаю, в смысле опыта всего чуть больше года.
В отличие от других языков программирования которых много знаю.

Пофиг во что транслировать и из чего, суть что в js проще он гибкий достаточно.
   Garykom
 
15 - 22.08.16 - 07:07
(12) Да пока тоже не вижу $, а без этого влом ))
   birkoFFFF
 
16 - 22.08.16 - 07:07
(14) Т.е. ты хочешь транслироваться, но сам не знаешь зачем? Однако...
Это называется "Когда коту заняться нечем..." )
   Garykom
 
17 - 22.08.16 - 07:13
(16) АГА ;)
Ну как бы продолжаю изучать js/nodejs и вот...
   Web00001
 
18 - 22.08.16 - 07:17
   spock
 
19 - 22.08.16 - 07:19
Это задача академического характера без возможности практического применения.

4. Другое
   Garykom
 
20 - 22.08.16 - 07:46
(18) Мне жаль Вас если не понимаете разницу между "моделью троллейбуса" и на котором можно ездить.

Вопрос то нужен ли такой "троллейбус" или все на такси катаются...
   Garykom
 
21 - 22.08.16 - 07:52
Можно например совместить с http://www.oknosoft.ru/metadata/ и получить работающие обработчики &НаКлиенте.
Но это уже такая задачка для команды с бюджетом или многолетний хобби-проект.
   Asmody
 
22 - 22.08.16 - 08:14
(0) Все уже придумано до нас. В платформе уже есть транслятор в javascript.
   Garykom
 
23 - 22.08.16 - 08:26
(22) В курсе что есть для веб-клиента, поэтому и спрашиваю куда можно применить.

Можно например сделать транслятор (полноценный) из 1С 7.7 в 1С 8.Х и даже из ОФ в УФ для конфы, так что потом она вполне будет работать.
   slavik013
 
24 - 22.08.16 - 08:35
Мне бы такой транслятор, чтобы я в ERP 2.1 нажал кнопачку, и у меня появилось бы ERP на Jave
   Garykom
 
25 - 22.08.16 - 08:37
(24) Боюсь стоко денег нету...
   Web00001
 
26 - 22.08.16 - 09:48
(20)Не надо меня жалеть. Лучше помогите деньгами.
В (20) подтверждение того, что картинка находится на своем месте )
   Gary417
 
27 - 22.08.16 - 09:56
я вот не понимаю чегото но транслятор, а откуда там возьмутся справочники, регистры, документы?
во что их транслировать то?
   Кирпич
 
28 - 22.08.16 - 10:00
(27) это не важно. важен процесс переливания из пустого в порожнее.
   Garykom
 
29 - 22.08.16 - 10:01
(27) Какие еще "справочники, регистры. документы" ? Речь про синтаксис языка (служебные слова, конструкции типа циклов, условий, функций и т.д.) и частично функции/процедуры встроенные.

Написал же что аналог 1script(onescript)
   Gary417
 
30 - 22.08.16 - 10:02
(29) а какие там особенные конструкции языка? циклы какието осбенные?
 
 Рекламное место пустует
   Garykom
 
31 - 22.08.16 - 10:02
(28) я нормальный пока еще и не долбанулся "убийцу 1С" в одну голову писать, причем без оплаты
   Gary417
 
32 - 22.08.16 - 10:03
типа конвертер "Для каждого и из массив цикл конеецикла" в for (int a:b){} - это прям прорыв?
   Garykom
 
33 - 22.08.16 - 10:05
(30) да в js нету ТЗ, СЗ и прочего много с циклами по ним

(32) Да конвертер причем для вложенных и правильно
   Gary417
 
34 - 22.08.16 - 10:07
(33) и собственно зачем делать очередной костыль которым никто пользоватся не будет?

это получится как VB.net вроде и VB но фактически C# с идиотским синтаксисом
   Garykom
 
35 - 22.08.16 - 10:09
(34) А уй его знает, поэтому и тему создал что может кто придумает зачем оно...
   Gary417
 
36 - 22.08.16 - 10:11
просто может быть оно и пошло, но специфика 1С такова что если и будет кто такой штукой пользоваться то на выходе получится вёрстка html в ворде

т.к. если в скрипте на пару строк используется ТЗ то придётся таскать с собой реализацию этой ТЗ в дополнении ко всем этим jquery  и т.п. ...хотя обычный программинг на js зачастую так и выглядит..но тут ещё будет один уровень абстракции
   unpete
 
37 - 22.08.16 - 16:04
(33),(27) > да в js нету ТЗ, СЗ, справочники, регистры, документы
В metadata.js есть ТЗ, СЗ, справочники, регистры, документы
Написать транслятор или интерпретатор не проблема. "одной головы" для этой задачи вполне достаточно
Не понятно, зачем имея js, отказываться от его мощи и ограничивать себя убогим синтаксисом 1С?
   Torquader
 
38 - 22.08.16 - 16:06
У javascript есть серьёзные проблемы при работе с COM-объектами из-за заложенной в него сборки мусора, так что результаты работы сценария javascript со сторонними объектами бывают иногда очень удивительно непредсказуемы, так как collectGarbage в каждой строке не вставишь.
   unpete
 
39 - 22.08.16 - 16:07
(21) Что именно планируете скрещивать?
Metadata.js умеет работать автономно, в том числе - совсем без сервера.
Сэкономить на переписывании клиентского и серверного 1С-ного кода вряд ли получится. У нас асинхронная модель событий, а в 1С принято писать линейный блокирующий код
   unpete
 
40 - 22.08.16 - 16:09
(38) В js нет проблемы в работе с COM, т.к. ни один уважающий себя программист js не использует проприетарные windows объекты и технологии
   Torquader
 
41 - 22.08.16 - 16:11
(40) Просто, вопрос в том, где тогда, кроме браузера, это javascript использовать - на Linux много других более мощных языков программирования, а в Windows-среде без COM никуда.
   Garykom
 
42 - 22.08.16 - 16:12
(37) >Не понятно, зачем имея js, отказываться от его мощи и ограничивать себя убогим синтаксисом 1С?
Чтобы не переписывать каждый раз типовые.
Ибо важна на платформа а решения на платформе.

(39) Только клиентский код или все при файловой однопользовательской, есть пример проекта где подобное удалось достичь некоторыми ухищрениями.

Просто пример привел что можно попробовать  выполнить подобное скрещивание чтобы авто или полуавто транслировать конфы на 1С на другой движок, при минимальном участии программистов.
   Garykom
 
43 - 22.08.16 - 16:15
Интерес действительно скорее академический пока, вот если найдется  практическое применение достаточно легко реализуемое.

"Скрещивание" не является подобным простым решением, там и с метаданными и с формами возни по самое.
   Torquader
 
44 - 22.08.16 - 16:17
Оосбенно "забавно" будет с трансляцией вызовов "выполнить", где код собирается по алгоритму.
   hitodom
 
45 - 22.08.16 - 16:18
(3) есть же onescript зачем какой-то транслятор?
   hitodom
 
46 - 22.08.16 - 16:19
или ты хочешь типовые транслировать?
а интерфейс как?
   Garykom
 
47 - 22.08.16 - 16:19
(46) а интерфейс как бы ужо ))
   Garykom
 
48 - 22.08.16 - 16:20
(44) не то слово забавно
   Serginio1
 
49 - 22.08.16 - 16:21
Немного не в тему, про движении JavaScript
https://habrahabr.ru/post/308154/

Интерес скорее для конвертации 1С на любой язык (Java, C#).
Кстати полно конверторов в JavaScript, а вот обратно нет.
   hitodom
 
50 - 22.08.16 - 16:21
(47) расскажи, как ты из ноды делаешь интерфейс 1с?
   Torquader
 
51 - 22.08.16 - 16:22
(49) Просто, во всех нормальных языках есть указатели на функции, а в 1С - нету.
   Garykom
 
52 - 22.08.16 - 16:22
(50) Не я делаю а unpete
   Gary417
 
53 - 22.08.16 - 16:23
(51) все нормальные языки это си?
   Torquader
 
54 - 22.08.16 - 16:25
(53) JavaScript, например, имеет и функции и замыкания параметров - этого в 1С нет, и много чего, сделанное на JavaScript сделать на 1С просто нельзя.
   Garykom
 
55 - 22.08.16 - 16:26
(54) Не "на 1С просто нельзя", а "на 1С нельзя просто"
   Gary417
 
56 - 22.08.16 - 16:26
хорошо, с другой стороны, что такого можно сделать на js чего нельзя сделать на 1С прямвообщеникак.

причём сделать - не программерскую конструкцию, а реальную вещь?
(55) Да!
   Torquader
 
57 - 22.08.16 - 16:26
Си, кстати, (не путать с Си++) ещё тот язык - всё простое на нём требует больших усилий (например, даже строки сложить не так уж и просто).
   Garykom
 
58 - 22.08.16 - 16:27
(55)+ В смысле сделать то можно но будет такой изврат на языке 1С да еще и с тормозами
   Serginio1
 
59 - 22.08.16 - 16:27
(49) В других языках есто не просто ссылки на функции, а замыкания.
(59) Но транслировать код из 1С в JavaScript при этом можно.
   Legj
 
60 - 22.08.16 - 16:27
Сам думал о написании такого транслятора.
Он нужен как первый кирпичик в цепочке построения гипотетической платформы-"убийцы 1с":
1. Транслятор 1с -> js (один энтузиаст).
2. 1С-подобные библиотеки для node.js (команда энтузиастов).
3. Конфигурации (всем миром).
4. ПРОФИТ!!!

В мире js трансляторы "промышленного" уровня делают на Jison.

Если даже сделать только первый этап, то уже можно использовать для "скриптоты", как onescript.

(45) OneScript не годится тем, что он не на JS :)
Потому-что интерфейс делать все равно на JS.

Интерфейс - это самый-самый сложный вопрос, с большим многообразием вариантов решения.

Объекты типа ТЗ, или прикладные объекты (СправочникОбъект и т.п.) наклепать на NodeJS - делать нечего. Монстра СКД можно не делать вовсе - использовать имеющие в мире JS инструменты для тех же задач.
   Gary417
 
61 - 22.08.16 - 16:28
<3. Конфигурации (всем миром). >

смешно, да
   Garykom
 
62 - 22.08.16 - 16:29
(60) Давайте пропустим первые 3 пункта и сразу перейдем к п.4 ?

Так то придумал вполне годное, можно делать свои визуальные контролы на языке 1С внутри Поле HTML
   Torquader
 
63 - 22.08.16 - 16:29
(60) Я тоже об этом думал, но потом понял, что javascript имеет множество ограничений, особенно по части многопоточности и что-то писать на javascript не есть хорошо.
В результате, пишется библиотека на Си для возможности многопоточного выполнения кода.
   Юрий Лазаренко
 
64 - 22.08.16 - 16:31
(0) Мы так html-интерфейсы для 1С делаем. Иногда даже продаем их.

2. Нужно, знаю зачем
   Garykom
 
65 - 22.08.16 - 16:32
(64) Эээ? Можно поподробнее?
   Юрий Лазаренко
 
66 - 22.08.16 - 17:07
(65) Элементы html-поля создаются программно в 1С, их поведение (перетаскивание, изменение размера, клик) тоже задается программно. Далее тоже в 1С идет обработка событий, произошедших с элементами и модификация соответствующих данных в БД. Делали так календари, расселение в гостиницах, канбан. Ну и еще по мелочи.
 
 Рекламное место пустует
   Garykom
 
67 - 22.08.16 - 17:14
(66) Понял написали свои процедуры/функции на 1С для создания неких "контролов" на html/css/js.
Метадата.js примерно тоже самое но там интерфейс по формам из 1С строится авто.
   quest
 
68 - 22.08.16 - 17:31
Ветка - реклама Metadata.js?
   Garykom
 
69 - 22.08.16 - 17:33
(68) Случайно получилось, скорее реклама "альтернатив"  и "расширений" 1С.
   Юрий Лазаренко
 
70 - 22.08.16 - 17:50
(67) Не, метадата - это другое, причем настолько другое - что прямо вообще никак не похоже. Там альтернативный интерфейс, аналогичный типовому, причем облегченный. У нас на типовой интерфейс не похоже вообще, вес значительно выше, но и возможностей больше. Например, можно обрабатывать события наведения мыши на объект, перетаскивания элемента или изменения его размера, наложения одного на другой.
   Юрий Лазаренко
 
71 - 22.08.16 - 17:51
+(70) Мы даже никак не конкуренты друг другу, сфера применения отличается.
   Garykom
 
72 - 22.08.16 - 18:07
(70) (71) Да понятно что другое, но суть то одна ))
И там и там html контролы и обмен данными с базой 1С, разница в мелких деталях сферы применения.

Кстати у вас больше на ОФ похоже, а метадата на УФ.
   unpete
 
73 - 22.08.16 - 18:21
(72) > обмен данными с базой 1С
Это на любителя. Можно интегрироваться с 1С, можно с Не1С SAP, MSDynamycs и т.д.
В метадате свой, самостоятельный движок данных, а тот факт, что она еще и формочки рисует - просто побочный эффект.
   Garykom
 
74 - 22.08.16 - 18:25
(73) Свой движок и побочный эффект в виде формочек это хорошо.
Но откуда прикладные решения возьмутся в виде типовых и прочих "конфигураций"?
   Garykom
 
75 - 22.08.16 - 18:32
(74)+ Почему и не хочу никуда замахиваться, просто какую то вкусную и многим (у кого конфы 1С) полезную плюшку/фишку запилить.

Ну вот пресловутые "сообщения с сервера на клиенты" к примеру можно сделать.
   unpete
 
76 - 22.08.16 - 18:34
(74) Платформа возникла для решения реальных задач, которые в лоб не решались ни средствами 1С, ни языками общего назначения.
Делал для себя, но инструменты для программиста получились довольно красивые.
Если они понравятся еще кому то, будут и типовые и прочие "конфигурации".
Если сообщества не возникнет - не беда. У меня достаточно задач на много человеколет. Буду развлекаться самостоятельно.
   unpete
 
77 - 22.08.16 - 18:37
(75) > сообщения с сервера на клиенты
У нас это решено в более общем виде.
1. Клиенты могут быть оффлайн - в этом случае, сообщение отправляем оперативно, но обработано оно будет после восстановления связи
2. Серверов может быть несколько и они тоже могут быть оффлайн
3. Инициатором сообщения может быть любой узел - не важно, клиент или сервер
4. Получателем сообщения может быть любой клиент или сервер
   Jija Grenkov
 
78 - 22.08.16 - 18:50
По серьезному транислировать 1с код в js будет очень сложно, по крайней мере прийдется расширить синтаксис 1с до стостояние "JS переведенный на русский язык".
Написать, что-то готовое и подстроится под типовые обмены с сайтом или другие интерфейсы, что бы можно было интегрироваться без изменения кода 1с -- было бы значительно круче.

Меня иногда посещают мысли оставить 1с сообществу, что то. Так как моя работа часто бывает связана с высроконагруженными системами, думал сделать ВК для работы с распределенным кэшем (Redis к примеру). Но понял, что для красивой реализации прийдется писать на C и передумал.
   hitodom
 
79 - 22.08.16 - 18:56
(78) 1c меньше чем js, поэтому вполне можно
   Garykom
 
80 - 22.08.16 - 18:56
(78) Гм спасибо за мыслю очередную, как среда/платформа для начального обучения языку 1С вполне, вполне...

Ваяем некий сайт на котором можно писать на коде 1С в онлайне, выполнять тестовые задания (на языке 1С пишем) и оно ошибки правильно показывает и код выполняет.

Причем платформа 1С не используется совсем, просто поначалу будет ограниченный функционал.
   Garykom
 
81 - 22.08.16 - 18:57
(80)+ И постепенно это довести до почти полного "эмулятора" платформы 1С в онлайн.
   Garykom
 
82 - 22.08.16 - 19:06
(80)+ Обеспечить возможность участия в конкурсах типа http://russianaicup.ru/ на "языке программирования 1С" )))
   Юрий Лазаренко
 
83 - 22.08.16 - 19:09
(72) Не, от ОФ там нет ничего. Сама концепция декларативного описания УФ один в один совпадает с концепцией разметки гипертекста. У нас точно так же объекты кладутся на поле html либо сами по себе, либо в иерархии. А шаблоны объектов тоже описываются аналогично дереву элементов управляемых форм.
   Garykom
 
84 - 22.08.16 - 19:11
(83) Просто когда описывали
"Элементы html-поля создаются программно в 1С, их поведение (перетаскивание, изменение размера, клик) тоже задается программно."
подумалось что позиционирование абсолютное (с привязками ибо перетаскивание), а не относительное "контролов" на страничке.
   Юрий Лазаренко
 
85 - 22.08.16 - 19:14
(84) Позиционирование может быть каким угодно, и абсолютным, и относительным. При относительном элементы располагаются друг за другом, при абсолютном - где им скажешь.
Вот пример шаблона карточки задачи - копия УФ: http://s8.hostingkartinok.com/uploads/images/2016/08/5589ad3e168b360cc3bf76190d1dbf5b.png
   Garykom
 
86 - 22.08.16 - 19:18
(85) Я знал! Что в виде конструктора реализовано а не только кодом "программно" нужно создавать/описывать "контролы".
   Garykom
 
87 - 22.08.16 - 19:19
(86)+ В смысле все "убийцы 1С" почему то начинают с написания "Конфигуратора" на гуи.
   Юрий Лазаренко
 
88 - 22.08.16 - 19:23
(85) Ну так а зачем прямо все кодом создавать? Визуально оно на порядки быстрее и удобнее. А уже накидать на поле html шаблонов, заполненных данными, можно и нужно программно.
Вот пример кода:
http://s8.hostingkartinok.com/uploads/images/2016/08/d235052fd6a6c7599c42595b11d06628.png
А вот результат его выполнения:
http://s8.hostingkartinok.com/uploads/images/2016/08/bc6d3d3292591b1ac5e5f18e091fb00e.png
   Юрий Лазаренко
 
89 - 22.08.16 - 19:35
Но это пример простой, тут никаких стилей нет. Если необходимо нормальное оформление, то без стилей никак, вот тогда нужен визуальный конструктор. Вот такой интерфейс расселения по гостиницам когда-то сделали:
http://s8.hostingkartinok.com/uploads/images/2016/08/8fa37687f10db1a304acb54599e518e2.png
Тянешь нужную группу людей на нужную гостиницу - а дальше оно само все делает.
   Jija Grenkov
 
90 - 22.08.16 - 19:38
(82) подозреваю, что -- это будет медвежья услуга. Пусть на пайтоне пишут, куда больше будет шансов на победу ). Пайтон для такого дела хорошо подходит
   Garykom
 
91 - 22.08.16 - 19:43
(89) Да отличная штука, про такой вариант (написание своих контролов) и думал. Причем даже обработчики на 1С пишем а они переносятся на js и выполняются "внутри" странички.
   unpete
 
92 - 22.08.16 - 19:58
(91) > Причем даже обработчики на 1С
Эффективность сильно пострадает.
Без полиморфных классов, без прокси, без промисов, без переопределяемых свойств, без sql и map/reduce на клиенте.
Чем это будет отличаться от стандартной 1С-ной платформы?
   Garykom
 
93 - 22.08.16 - 20:01
(92) А зачем все это? Зачем учить карате и кунфу чтобы поймать кинутый кошелек?
   unpete
 
94 - 22.08.16 - 20:06
(93) Затем, что вы - инженер. Это налагает на вас определенную ответственность и обязывает использовать оптимальные инструменты.
Затем, чтобы экономить время и деньги заказчиков и предоставлять клиентам высококлассный сервис, которого они не просят, но заслуживают
   Garykom
 
95 - 22.08.16 - 20:19
(94) боюсь не совсем поняли это больше для пользования "клиентами" чем для себя ибо и сразу на js могу
сам буду юзать только если с этим быстрее и лучше
   orefkov
 
96 - 22.08.16 - 20:35
Хм, вот и лето проходит, чувствуется приближении осени...

1. Нафик не нужно
   Adept
 
97 - 22.08.16 - 20:43
Нужен, при таких объемах типовых, язык без статической типизации уже не тянет, конечно в джаваскрипт тоже ее нет, но есть же typescript
было бы здорово, но не реально конечно.

2. Нужно, знаю зачем
   MishaD
 
98 - 22.08.16 - 20:47
Товарищи эксперты по js. Объясните в чем крутизна всяких node.js. Слегка почитал, пишут что получаются громоздкие и тормознутые приложения даже для простейших вещей. Если windows - там С# есть. Кроссплатформенно - тот же C# или JAVA или Phyton. И работает шустрее, и места меньше кушает.
   Adept
 
99 - 22.08.16 - 20:49
(98) Про особую тормознутость, перебор конечно. Один язык клиента и сервера. :) пока не русский правда :)
   Torquader
 
100 - 22.08.16 - 21:08
(99) Вот только в том и дело, что как бы "один язык", просто язык действительно только для браузера годится.
  1  2  3   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.