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


#0 by Garykom
Транслятор "кода 1С" в JavaScript куда можно применить? Без написания "глобального убийцы" а просто некий аналог только для броузера/nodejs? Искал парсер для вытаскивания данных из текста (загрузка данных из файлов excel) и нашел РВ-грамматики. Они весьма интересные и позволяют довольно просто создавать трансляторы/интерпретаторы из одного в другое. Можно сделать автоматическую трансляцию кода на языке 1С в код javascript, который будет выполняться в брfузере или в nodejs. Но кто то может предложить практическое применение этого?
#0 by Garykom
Транслятор "кода 1С" в JavaScript куда можно применить? Без написания "глобального убийцы" а просто некий аналог только для броузера/nodejs? Искал парсер для вытаскивания данных из текста (загрузка данных из файлов excel) и нашел РВ-грамматики. Они весьма интересные и позволяют довольно просто создавать трансляторы/интерпретаторы из одного в другое. Можно сделать автоматическую трансляцию кода на языке 1С в код javascript, который будет выполняться в брfузере или в nodejs. Но кто то может предложить практическое применение этого?
#0 by Garykom
Транслятор "кода 1С" в JavaScript куда можно применить? Без написания "глобального убийцы" а просто некий аналог только для броузера/nodejs? Искал парсер для вытаскивания данных из текста (загрузка данных из файлов excel) и нашел РВ-грамматики. Они весьма интересные и позволяют довольно просто создавать трансляторы/интерпретаторы из одного в другое. Можно сделать автоматическую трансляцию кода на языке 1С в код javascript, который будет выполняться в брfузере или в nodejs. Но кто то может предложить практическое применение этого?
#1 by quest
1. Смысл какой? 2. peg - для больших объемов не очень хорошо подходит
#2 by Garykom
1. Дык вот и ищу смысл, для скриптов в системе еще понятно - замена bat/vbs а тут хз. 2. Как раз Packrat парсеры самые шустрые и трансляцияю можно не на лету, а заранее в процессе "компиляции". На выходе обычный JS код который вставлять куда угодно.
#3 by Garykom
+ Гм сенкс на мыслю, можно же сделать транслятор в js, которые нативно с windows умеют выполняться или даже в vbs. Суть в простоте написания на языке 1С, а на выходе готовый скрипт для которого интерпретатор в ОСь встроен.
#4 by Garykom
+ Нечто вроде получится, но как базовый "язык 1С".
#5 by DDwe
А, зачем?
#6 by Garykom
Для тех кто кроме 1С ничего не смог выучить ))
#7 by quest
Вот скажи - какой смысл писать на 1С если можно писать на js? Я пониманю разработчиков clojureScript - более мощный и выразительный язык транилируют в js. А тут в чем выгода?
#8 by Garykom
Зачем писать тексты на английском или французом или китайском и т.д., когда русский есть?
#9 by DDwe
Потому, что если сразу писать на js ты точно напишешь лучше  и аккуратнее.
#10 by Garykom
Да есть же GWT и Vaadin на его основе, понятно что это уже системы-фреймворки. Ну как пример скрипты для выполнения внутри "Поле HTML дока" можно на 1С делать напрямую.
#11 by Garykom
С этим не спорю, но время на изучение?
#12 by VladZ
Не вижу смысла
#13 by quest
Почему трансляция в js? Почему не на С++? Не на java? не в ассемблер в конце концов? Чем тебе так близок js? Что его выделяет из других языков? Ну кроме того что ты его хорошо знаешь?
#14 by Garykom
Прикинь я js самым последним начал изучать плотно и не так уж его и знаю, в смысле опыта всего чуть больше года. В отличие от других языков программирования которых много знаю. Пофиг во что транслировать и из чего, суть что в js проще он гибкий достаточно.
#15 by Garykom
Да пока тоже не вижу $, а без этого влом ))
#16 by birkoFFFF
Т.е. ты хочешь транслироваться, но сам не знаешь зачем? Однако... Это называется "Когда коту заняться нечем..." )
#17 by Garykom
АГА ;) Ну как бы продолжаю изучать js/nodejs и вот...
#18 by Web00001
Тут необходим баян
#19 by spock
Это задача академического характера без возможности практического применения.
#20 by Garykom
Мне жаль Вас если не понимаете разницу между "моделью троллейбуса" и на котором можно ездить. Вопрос то нужен ли такой "троллейбус" или все на такси катаются...
#21 by Garykom
Можно например совместить с и получить работающие обработчики &НаКлиенте. Но это уже такая задачка для команды с бюджетом или многолетний хобби-проект.
#22 by Asmody
Все уже придумано до нас. В платформе уже есть транслятор в javascript.
#23 by Garykom
В курсе что есть для веб-клиента, поэтому и спрашиваю куда можно применить. Можно например сделать транслятор (полноценный) из 1С 7.7 в 1С 8.Х и даже из ОФ в УФ для конфы, так что потом она вполне будет работать.
#24 by slavik013
Мне бы такой транслятор, чтобы я в ERP 2.1 нажал кнопачку, и у меня появилось бы ERP на Jave
#25 by Garykom
Боюсь стоко денег нету...
#26 by Web00001
Не надо меня жалеть. Лучше помогите деньгами. В подтверждение того, что картинка находится на своем месте )
#27 by Gary417
я вот не понимаю чегото но транслятор, а откуда там возьмутся справочники, регистры, документы? во что их транслировать то?
#28 by Кирпич
это не важно. важен процесс переливания из пустого в порожнее.
#29 by Garykom
Какие еще "справочники, регистры. документы" ? Речь про синтаксис языка (служебные слова, конструкции типа циклов, условий, функций и т.д.) и частично функции/процедуры встроенные. Написал же что аналог 1script(onescript)
#30 by Gary417
а какие там особенные конструкции языка? циклы какието осбенные?
#31 by Garykom
я нормальный пока еще и не долбанулся "убийцу 1С" в одну голову писать, причем без оплаты
#32 by Gary417
типа конвертер "Для каждого и из массив цикл конеецикла" в for (int a:b){} - это прям прорыв?
#33 by Garykom
да в js нету ТЗ, СЗ и прочего много с циклами по ним Да конвертер причем для вложенных и правильно
#34 by Gary417
и собственно зачем делать очередной костыль которым никто пользоватся не будет? это получится как VB.net вроде и VB но фактически C# с идиотским синтаксисом
#35 by Garykom
А уй его знает, поэтому и тему создал что может кто придумает зачем оно...
#36 by Gary417
просто может быть оно и пошло, но специфика 1С такова что если и будет кто такой штукой пользоваться то на выходе получится вёрстка html в ворде т.к. если в скрипте на пару строк используется ТЗ то придётся таскать с собой реализацию этой ТЗ в дополнении ко всем этим jquery  и т.п. ...хотя обычный программинг на js зачастую так и выглядит..но тут ещё будет один уровень абстракции
#37 by unpete
, > да в js нету ТЗ, СЗ, справочники, регистры, документы В metadata.js есть ТЗ, СЗ, справочники, регистры, документы Написать транслятор или интерпретатор не проблема. "одной головы" для этой задачи вполне достаточно Не понятно, зачем имея js, отказываться от его мощи и ограничивать себя убогим синтаксисом 1С?
#38 by Torquader
У javascript есть серьёзные проблемы при работе с COM-объектами из-за заложенной в него сборки мусора, так что результаты работы сценария javascript со сторонними объектами бывают иногда очень удивительно непредсказуемы, так как collectGarbage в каждой строке не вставишь.
#39 by unpete
Что именно планируете скрещивать? Metadata.js умеет работать автономно, в том числе - совсем без сервера. Сэкономить на переписывании клиентского и серверного 1С-ного кода вряд ли получится. У нас асинхронная модель событий, а в 1С принято писать линейный блокирующий код
#40 by unpete
В js нет проблемы в работе с COM, т.к. ни один уважающий себя программист js не использует проприетарные windows объекты и технологии
#41 by Torquader
Просто, вопрос в том, где тогда, кроме браузера, это javascript использовать - на Linux много других более мощных языков программирования, а в Windows-среде без COM никуда.
#42 by Garykom
>Не понятно, зачем имея js, отказываться от его мощи и ограничивать себя убогим синтаксисом 1С? Чтобы не переписывать каждый раз типовые. Ибо важна на платформа а решения на платформе. Только клиентский код или все при файловой однопользовательской, есть пример проекта где подобное удалось достичь некоторыми ухищрениями. Просто пример привел что можно попробовать  выполнить подобное скрещивание чтобы авто или полуавто транслировать конфы на 1С на другой движок, при минимальном участии программистов.
#43 by Garykom
Интерес действительно скорее академический пока, вот если найдется  практическое применение достаточно легко реализуемое. "Скрещивание" не является подобным простым решением, там и с метаданными и с формами возни по самое.
#44 by Torquader
Оосбенно "забавно" будет с трансляцией вызовов "выполнить", где код собирается по алгоритму.
#45 by hitodom
есть же onescript зачем какой-то транслятор?
#46 by hitodom
или ты хочешь типовые транслировать? а интерфейс как?
#47 by Garykom
а интерфейс как бы ужо ))
#48 by Garykom
не то слово забавно
#49 by Serginio1
Немного не в тему, про движении JavaScript Интерес скорее для конвертации 1С на любой язык (Java, C#). Кстати полно конверторов в JavaScript, а вот обратно нет.
#50 by hitodom
расскажи, как ты из ноды делаешь интерфейс 1с?
#51 by Torquader
Просто, во всех нормальных языках есть указатели на функции, а в 1С - нету.
#52 by Garykom
Не я делаю а
#53 by Gary417
все нормальные языки это си?
#54 by Torquader
JavaScript, например, имеет и функции и замыкания параметров - этого в 1С нет, и много чего, сделанное на JavaScript сделать на 1С просто нельзя.
#55 by Garykom
Не "на 1С просто нельзя", а "на 1С нельзя просто"
#56 by Gary417
хорошо, с другой стороны, что такого можно сделать на js чего нельзя сделать на 1С прямвообщеникак. причём сделать - не программерскую конструкцию, а реальную вещь? Да!
#57 by Torquader
Си, кстати, (не путать с Си++) ещё тот язык - всё простое на нём требует больших усилий (например, даже строки сложить не так уж и просто).
#58 by Garykom
+ В смысле сделать то можно но будет такой изврат на языке 1С да еще и с тормозами
#59 by Serginio1
В других языках есто не просто ссылки на функции, а замыкания. Но транслировать код из 1С в JavaScript при этом можно.
#60 by Legj
Сам думал о написании такого транслятора. Он нужен как первый кирпичик в цепочке построения гипотетической платформы-"убийцы 1с": 1. Транслятор 1с -> js (один энтузиаст). 2. 1С-подобные библиотеки для node.js (команда энтузиастов). 3. Конфигурации (всем миром). 4. ПРОФИТ!!! В мире js трансляторы "промышленного" уровня делают на Jison. Если даже сделать только первый этап, то уже можно использовать для "скриптоты", как onescript. OneScript не годится тем, что он не на JS :) Потому-что интерфейс делать все равно на JS. Интерфейс - это самый-самый сложный вопрос, с большим многообразием вариантов решения. Объекты типа ТЗ, или прикладные объекты (СправочникОбъект и т.п.) наклепать на NodeJS - делать нечего. Монстра СКД можно не делать вовсе - использовать имеющие в мире JS инструменты для тех же задач.
#61 by Gary417
<3. Конфигурации (всем миром). > смешно, да
#62 by Garykom
Давайте пропустим первые 3 пункта и сразу перейдем к п.4 ? Так то придумал вполне годное, можно делать свои визуальные контролы на языке 1С внутри Поле HTML
#63 by Torquader
Я тоже об этом думал, но потом понял, что javascript имеет множество ограничений, особенно по части многопоточности и что-то писать на javascript не есть хорошо. В результате, пишется библиотека на Си для возможности многопоточного выполнения кода.
#64 by Юрий Лазаренко
Мы так html-интерфейсы для 1С делаем. Иногда даже продаем их.
#65 by Garykom
Эээ? Можно поподробнее?
#66 by Юрий Лазаренко
Элементы html-поля создаются программно в 1С, их поведение (перетаскивание, изменение размера, клик) тоже задается программно. Далее тоже в 1С идет обработка событий, произошедших с элементами и модификация соответствующих данных в БД. Делали так календари, расселение в гостиницах, канбан. Ну и еще по мелочи.
#67 by Garykom
Понял написали свои процедуры/функции на 1С для создания неких "контролов" на html/css/js. Метадата.js примерно тоже самое но там интерфейс по формам из 1С строится авто.
#68 by quest
Ветка - реклама Metadata.js?
#69 by Garykom
Случайно получилось, скорее реклама "альтернатив"  и "расширений" 1С.
#70 by Юрий Лазаренко
Не, метадата - это другое, причем настолько другое - что прямо вообще никак не похоже. Там альтернативный интерфейс, аналогичный типовому, причем облегченный. У нас на типовой интерфейс не похоже вообще, вес значительно выше, но и возможностей больше. Например, можно обрабатывать события наведения мыши на объект, перетаскивания элемента или изменения его размера, наложения одного на другой.
#71 by Юрий Лазаренко
+ Мы даже никак не конкуренты друг другу, сфера применения отличается.
#72 by Garykom
Да понятно что другое, но суть то одна )) И там и там html контролы и обмен данными с базой 1С, разница в мелких деталях сферы применения. Кстати у вас больше на ОФ похоже, а метадата на УФ.
#73 by unpete
> обмен данными с базой 1С Это на любителя. Можно интегрироваться с 1С, можно с Не1С SAP, MSDynamycs и т.д. В метадате свой, самостоятельный движок данных, а тот факт, что она еще и формочки рисует - просто побочный эффект.
#74 by Garykom
Свой движок и побочный эффект в виде формочек это хорошо. Но откуда прикладные решения возьмутся в виде типовых и прочих "конфигураций"?
#75 by Garykom
+ Почему и не хочу никуда замахиваться, просто какую то вкусную и многим (у кого конфы 1С) полезную плюшку/фишку запилить. Ну вот пресловутые "сообщения с сервера на клиенты" к примеру можно сделать.
#76 by unpete
Платформа возникла для решения реальных задач, которые в лоб не решались ни средствами 1С, ни языками общего назначения. Делал для себя, но инструменты для программиста получились довольно красивые. Если они понравятся еще кому то, будут и типовые и прочие "конфигурации". Если сообщества не возникнет - не беда. У меня достаточно задач на много человеколет. Буду развлекаться самостоятельно.
#77 by unpete
> сообщения с сервера на клиенты У нас это решено в более общем виде. 1. Клиенты могут быть оффлайн - в этом случае, сообщение отправляем оперативно, но обработано оно будет после восстановления связи 2. Серверов может быть несколько и они тоже могут быть оффлайн 3. Инициатором сообщения может быть любой узел - не важно, клиент или сервер 4. Получателем сообщения может быть любой клиент или сервер
#78 by Jija Grenkov
По серьезному транислировать 1с код в js будет очень сложно, по крайней мере прийдется расширить синтаксис 1с до стостояние "JS переведенный на русский язык". Написать, что-то готовое и подстроится под типовые обмены с сайтом или другие интерфейсы, что бы можно было интегрироваться без изменения кода 1с -- было бы значительно круче. Меня иногда посещают мысли оставить 1с сообществу, что то. Так как моя работа часто бывает связана с высроконагруженными системами, думал сделать ВК для работы с распределенным кэшем (Redis к примеру). Но понял, что для красивой реализации прийдется писать на C и передумал.
#79 by hitodom
1c меньше чем js, поэтому вполне можно
#80 by Garykom
Гм спасибо за мыслю очередную, как среда/платформа для начального обучения языку 1С вполне, вполне... Ваяем некий сайт на котором можно писать на коде 1С в онлайне, выполнять тестовые задания (на языке 1С пишем) и оно ошибки правильно показывает и код выполняет. Причем платформа 1С не используется совсем, просто поначалу будет ограниченный функционал.
#81 by Garykom
+ И постепенно это довести до почти полного "эмулятора" платформы 1С в онлайн.
#82 by Garykom
+ Обеспечить возможность участия в конкурсах типа на "языке программирования 1С" )))
#83 by Юрий Лазаренко
Не, от ОФ там нет ничего. Сама концепция декларативного описания УФ один в один совпадает с концепцией разметки гипертекста. У нас точно так же объекты кладутся на поле html либо сами по себе, либо в иерархии. А шаблоны объектов тоже описываются аналогично дереву элементов управляемых форм.
#84 by Garykom
Просто когда описывали "Элементы html-поля создаются программно в 1С, их поведение (перетаскивание, изменение размера, клик) тоже задается программно." подумалось что позиционирование абсолютное (с привязками ибо перетаскивание), а не относительное "контролов" на страничке.
#85 by Юрий Лазаренко
Позиционирование может быть каким угодно, и абсолютным, и относительным. При относительном элементы располагаются друг за другом, при абсолютном - где им скажешь. Вот пример шаблона карточки задачи - копия УФ:
#86 by Garykom
Я знал! Что в виде конструктора реализовано а не только кодом "программно" нужно создавать/описывать "контролы".
#87 by Garykom
+ В смысле все "убийцы 1С" почему то начинают с написания "Конфигуратора" на гуи.
#88 by Юрий Лазаренко
Ну так а зачем прямо все кодом создавать? Визуально оно на порядки быстрее и удобнее. А уже накидать на поле html шаблонов, заполненных данными, можно и нужно программно. Вот пример кода: А вот результат его выполнения:
#89 by Юрий Лазаренко
Но это пример простой, тут никаких стилей нет. Если необходимо нормальное оформление, то без стилей никак, вот тогда нужен визуальный конструктор. Вот такой интерфейс расселения по гостиницам когда-то сделали: Тянешь нужную группу людей на нужную гостиницу - а дальше оно само все делает.
#90 by Jija Grenkov
подозреваю, что -- это будет медвежья услуга. Пусть на пайтоне пишут, куда больше будет шансов на победу ). Пайтон для такого дела хорошо подходит
#91 by Garykom
Да отличная штука, про такой вариант (написание своих контролов) и думал. Причем даже обработчики на 1С пишем а они переносятся на js и выполняются "внутри" странички.
#92 by unpete
> Причем даже обработчики на 1С Эффективность сильно пострадает. Без полиморфных классов, без прокси, без промисов, без переопределяемых свойств, без sql и map/reduce на клиенте. Чем это будет отличаться от стандартной 1С-ной платформы?
#93 by Garykom
А зачем все это? Зачем учить карате и кунфу чтобы поймать кинутый кошелек?
#94 by unpete
Затем, что вы - инженер. Это налагает на вас определенную ответственность и обязывает использовать оптимальные инструменты. Затем, чтобы экономить время и деньги заказчиков и предоставлять клиентам высококлассный сервис, которого они не просят, но заслуживают
#95 by Garykom
боюсь не совсем поняли это больше для пользования "клиентами" чем для себя ибо и сразу на js могусам буду юзать только если с этим быстрее и лучше
#96 by orefkov
Хм, вот и лето проходит, чувствуется приближении осени...
#97 by Adept
Нужен, при таких объемах типовых, язык без статической типизации уже не тянет, конечно в джаваскрипт тоже ее нет, но есть же typescript было бы здорово, но не реально конечно.
Тэги: Убийцы 1С
Ответить:
Комментарии доступны только авторизированным пользователям