Имя: Пароль:
IT
 
Транслятор кода 1С в JavaScript
,
0 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.

Но кто то может предложить практическое применение этого?
134 akaBrr
 
22.08.16
22:19
похоже все забыли про что ветка
135 Jija Grenkov
 
22.08.16
22:22
(98) Нода не такая уж и тормознутая, в задачах где нужна выдача контента, а не проведение расчетов довольно хорошо себя рекомендует, хорошо ложиться под микросервисную архитектуру. Плюс в идеале можно использовать 1 язык для всего (мобильная платформа, сервер и вэб фронтэнд).
C# и кросплатформенность - первый раз слышу, что такое есть не в игрушечных проектах.
(109) Для меня пайтон - это один из самых понятных языков программирования. Можно нечего не читать, просто смореть и все понятно. К стати пайтон пожалуй самый популярный язык в бигдате.
136 qwerty
 
22.08.16
22:23
(135) - и именно по это причине на текущей работе утилитку + демон "прочитать файл и положить в базу и наоборот" я написал на ноде.
137 Jija Grenkov
 
22.08.16
22:52
(136) Круто. На такое наверняка на любом языке примерно с одинаковыми трудозатратами можно сделать.
138 Jija Grenkov
 
22.08.16
22:56
(137) + на лубом предназначенном для таких задач.
139 qwerty
 
22.08.16
22:59
(137) - маладец. А ну быстро приведи мне пример file system watcher для дот-нета, Python и Java.

И, на крайняк, на по ха пе
140 qwerty
 
22.08.16
23:00
(138) - как ты хитро выкрутился, если не сам не знаешь, о чем говоришь
141 trdm
 
22.08.16
23:04
Блин, в-роь-мне-ноги....
Вы че парни??? еще же не весна....
142 Torquader
 
22.08.16
23:11
Кстати, как там в JavaScript с многопоточностью ?
143 qwerty
 
22.08.16
23:21
(142) - молодец. Вы не приняты на должность младшего помощника нашего... веб программиста
144 qwerty
 
22.08.16
23:22
Если это наброс, то очень толстый.

Если это серьезно, то 1Сник != программист - это факт
145 Asmody
 
22.08.16
23:22
(142) По-разному. Как бы и нет, но как бы и есть.
Сейчас доморощенный спец вам объяснит.
146 Asmody
 
22.08.16
23:23
(144) А в чём проблема? Для вас вопрос многопоточности очень сложный?
147 Torquader
 
22.08.16
23:29
Просто, у Web-сервера, по определению, многопоточность, так как он обслуживает несколько запросов одновременно.
Только вот в одном запросе создать поток, чтобы он что-то делал параллельно, не такая уж и тривиальная задача.
К php был класс, который мог запускать потоки с общими данными, но, что-то в javascript я такого не припомню.
148 qwerty
 
22.08.16
23:30
(146) - это тупой вопрос, очень попахивающий набросом.

Для фроненда ответ здесь:

http://stackoverflow.com/a/39961/444079

Для ноды ответ здесь:

https://www.quora.com/What-is-the-best-approach-for-multithreading-in-node-js

TL;DR: Вопрос о "многопоточности" в JavaScript является некорректным, т.к. <а теперь минута на размышление, уважаемые знатоки V8>
149 Asmody
 
22.08.16
23:30
О, у нас нарисовался ещё один .Net-ненавистник.
Надо qwerty с Serginio1 в одну ветку заманить, только сначала поп-корном хорошо бы запастись.
150 qwerty
 
22.08.16
23:31
(149) - я обожаю .NET. Только оно Windows only.
151 Asmody
 
22.08.16
23:33
(148) Ну вот, прям первое попавшееся на гитхабе https://github.com/audreyt/node-webworker-threads

Т.е., типа могут.
Вопрос только - зачем?
152 qwerty
 
22.08.16
23:34
идиоты, у вас при печати проблемы получатся на последней (про)милле.

У вас будет код генерировать PDF (iText), но при отсылке на печать этого PDF в Linux/Ubuntu у вас будут огромнейшие проблемы.
153 qwerty
 
22.08.16
23:37
(151) - ну ты конечно понимаешь как оно работает, да?
154 Torquader
 
22.08.16
23:38
(151) Там просто сказано, что несколько потоков могут обслуживать запросы в порядке очереди.
И не сказано, что из одного потока можно запустить другой и передать туда данные.
Потом, сам по себе JavaScript - однопоточный, да и сборка мусора в многопоточной среде тривиальное не реализуется.
А иногда хочется, чтобы процессы пошли исполняться параллельно и обменивались данными между собой без всяких костылей - видимо - кроме ассемблерного кода это никто "из коробки" не умеет.
155 Asmody
 
22.08.16
23:38
(147) Вообще говоря, в общем случае это не совсем так. Многопоточный сервер - это один из вариантов.
156 Asmody
 
22.08.16
23:39
(153) Куда мне! Я же не программирую профессионально на javascript.
157 Torquader
 
22.08.16
23:40
И вот как бы ответ:
http://stackoverflow.com/questions/18613023/how-to-create-threads-in-nodejs

Типа - все процессы однопоточные, но вы можете запустить их сколько угодно - всё - вопрос закрыт.
158 Asmody
 
22.08.16
23:40
(154) Go умеет "из коробки". Правда, там "потоки" немного свои.
159 Torquader
 
22.08.16
23:41
(155) Это как бы основной вариант. Однопоточный можно рассматривать только для управления всякими недоустройствами через Web-интерфейс.
160 Serginio1
 
22.08.16
23:43
(150) Сразу видно мои ветки не читаешь
1С,Linux,Excel,Word,OpenXML,Net Core
161 Torquader
 
22.08.16
23:46
(158) Я тут пытался на php с приблудами Web-сервер написать, проблема возникла в том, что идентификатор Socket-а между php-потоками не передавался - в итоге - пришлось всю сеть в одном потоке оставить.
162 Jija Grenkov
 
22.08.16
23:49
(139) Dot нет - я не считаю достойным внимания и тем болдее пхп, но уверен, что все под него есть. Могу нагуглить под пайтон и джаву по несколько вариантов. Или вы всерьез считаете, что такие элементарные вещи не реализованы для столь популярнных языков? Да и вообще не понятно, че так забомбило, вы же сами описали задачу которая на 200-300 строк в стиле дата рид дата баинд.
(140) отлично понимаю, что говорю
163 Jija Grenkov
 
22.08.16
23:54
У ноды все ок с многопоточностью. Может конечно потоки "зеленые" но это нынчке норм подход. Принцип поток на коннект проигрывает принципу n-потоков разгребают запросы из очереди.
164 Asmody
 
22.08.16
23:54
(159) Специально полез сейчас на мисту проверить. И nginx, и apache работают по схеме "главный процесс + пачка дочерних процессов", и все они "однопоточные".
165 Serginio1
 
22.08.16
23:57
166 Torquader
 
22.08.16
23:57
(164) Дочерние процессы и есть потоки.
Собственно, в Linux мы вызываем fork для создания копии процесса.
167 Asmody
 
22.08.16
23:58
Вот ответ Сысоева по nginx https://toster.ru/q/11194
168 Jija Grenkov
 
22.08.16
23:59
(164) на сколько я знаю nginx и http apach работают по разному. У апача выделяется поток на запрос, а в запросы разребаются из очереди
169 Torquader
 
22.08.16
23:59
И ещё не забываем, что в современных системах можно выстроить очередь процессов на получение подключения в определённый Socket - очень удобная вещь.
170 Asmody
 
23.08.16
00:00
(166) Скажи, что ты это невсерьез сказал, ну или, там, кошка по клавиатуре пробежала.
171 Jija Grenkov
 
23.08.16
00:02
(168) я это и подразумевал, что "шустрые" http сервера работают по принципу как в nginx (нода тоже по такому принципу работает)
172 Jija Grenkov
 
23.08.16
00:06
К стати в GO, которому последнее время много внимания, тоже потоки "зеленые", то есть уже при выполнении решается как поток в коде будет соответствовать потоку в ОС
173 Torquader
 
23.08.16
00:13
(170) Просто, если делать проекцию памяти между процессами, то получается, что особых отличий потока от процесса нет.
То, что они пишут - общее выделение памяти - у системы память одна, и если кто-то постоянно её берёт и отдаёт - будут тормоза.

А ссылки на то, что в 32-битах на все потоки всего 4 Гб (на самом деле даже 2) - это и так понятно.
174 Asmody
 
23.08.16
00:16
(172) Не, ну а как, если твой код выполняется "в обертке" ВМ?
175 Asmody
 
23.08.16
00:19
Апач тоже "однопоточный"
https://yadi.sk/i/b2EPNd3BuQV2G
176 Jija Grenkov
 
23.08.16
00:19
(174) На пример как в джаве. Где 1 поток в коде соответствует(будет соотвествовать при выполнении) потоку в ОС. Изначально зеленые потоки появились в эрланге, так как просто не хватило бы памяти на содержание "тяжелых" потоков ОС
177 Torquader
 
23.08.16
00:19
(174) Ну как была Windows 3.11 как бы многозадачная, но поток выполнения всех приложений был один.
178 Torquader
 
23.08.16
00:21
(175) Классический Web-сервер не обменивается данными между разными сеансами запросов, поэтому, наличие общей памяти и средств быстрого обмена ему не важно - а зачем ещё нужны потоки в одном адресном пространстве.
Просто, есть задачи, когда нужно эффективно и быстро передавать данные между потоками - если заместо них будут процессы, эффективность теряется.
179 Asmody
 
23.08.16
00:22
(177) Не-не-не! ВМ вполне сама по себе может быть многопоточной.
180 Jija Grenkov
 
23.08.16
00:23
(175) не особо уловил доказательства. Если правильно помню назначение колонок, то мы видимо 1 процесс и много thread
181 Torquader
 
23.08.16
00:25
Просто в статье (167) народ пишет, что выделение памяти при множестве потоков может вызвать сильные тормоза, но, если заставить выделять память только один поток (менеджер памяти), то никаких тормозов и не будет.
Если кто-то не умеет писать многопоточные приложения, то его и многопроцессные не спасут.
182 Asmody
 
23.08.16
00:32
(180) 2я колонка PID, 6я колонка NLWP
пиды разные, количество тредов - 1.

Вот, для сравнения, memcached https://yadi.sk/i/cjYHrsOkuQVVG
183 Jija Grenkov
 
23.08.16
00:33
(181) кто его знает что будет происходить на пиковых нагрузках. Я думаю сейчас самая актуальная причина почему некоторые продукты предпочитают многопроцессность -- это изоляция. Все мы знаем chrome.
И Многопроцессыне приложения становятся ближе уже к многонодовым
184 Torquader
 
23.08.16
00:34
Конечно, статья старая как г. мамонта, http://citforum.ru/programming/unix/threads/
185 Torquader
 
23.08.16
00:37
(183) Программировать проще, да и не стоит забывать, что есть куча библиотек, которые не готовились для многопоточного исполнения.
186 Jija Grenkov
 
23.08.16
00:41
(182) я всегда считал что апач сервер создает много потоков. Но никогда не работал с ним.
(185) если нужна синхронизация, то врядли проще. Так как нужно свои механизмы придумывать.
187 Torquader
 
23.08.16
00:46
(186) Вообще, про новую модель потоков в Linux написано, что они на самом деле процессы, только просто разделяют одно и то же адресное пространство, и что, например, можно сделать так, что они не будут разделять дескрипторы файлов. Там даже такой термин предложен "thread groups".

Также сказано, что отладка многопоточного приложения - это очень серьёзная проблема.
188 Torquader
 
23.08.16
00:52
И ещё с учётом того, что есть две модели pthreads и kthread получается, что проще вообще о ней не думать.
http://stackoverflow.com/questions/27581747/pthread-vs-kthread-in-linux-kernel-v2-6
189 Zamestas
 
23.08.16
00:54
(96) +1 Мысль переписать ТИС под УФ посещать стала все чаще.

Нафик не нужно
190 Torquader
 
23.08.16
01:06
(186) Иногда хочется блок данных (блок байт) без проблем передать от одного исполнителя другому.

P.S. в Windows, например, есть WM_COPYDATA причём из одного процесса в другой, но как раз в Windows почему-то все используют потоки.
В Linux такого копирования нет, то есть объект SharedMemory, через который можно передавать данные между процессами - если она действительно работает, как написано, через общий сегмент памяти, то тогда интерес к потокам резко снижается.
191 Zamestas
 
23.08.16
01:34
(190) Дык в Windows потоки и выполняются.
192 Kupogun
 
23.08.16
09:08
>>Монстра СКД можно не делать вовсе - использовать имеющие в мире JS инструменты для тех же задач.

О каких конкретно инструментах говорит чувак в (60)?
193 polosov
 
23.08.16
09:15
(190) В линуксе есть это
https://ru.wikipedia.org/wiki/Именованный_канал
194 Serginio1
 
23.08.16
09:49
(172) Asp.Net используют задачи. То есть состояние хранится в объекте, а не в потоке. Применяется асинхронное программирование. То есть на await метод завершается и поток передается в пул, а продолжается после завершения вызываемой задачи.
Вместо методы синхронизации заменяются асинхронными методами
https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.threading.aspx

Нужно, зачем не знаю
195 Serginio1
 
23.08.16
10:13
194+ В асинхронном программировании все основано на событии и разбиении метода на участки которые выполняются по сигналу выполнения задачи используя конечный автомат.
Задача повисшая на локе await завершает свою работу в потоке и продолжит работу когда задача на await завершится. За этим следит планировщик.
У тебя будет куча задач висящих на await , но количество используемых потоков будет равно реально работающим.

Работа задач это облегченные fiber. Еще в энумераторах через yield MS пошла на сохранение состояние и продолжение по вызову.
Async await аналогично yield, только MoveNext() возникает по окончании задачи ждущей на await


?https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.threading.asyncautoresetevent.aspx
?https://blogs.msdn.microsoft.com/pfxteam/2012/02/11/building-async-coordination-primitives-part-2-asyncautoresetevent/
?https://github.com/StephenCleary/AsyncEx/wiki/AsyncAutoResetEvent

?https://github.com/StephenCleary/AsyncEx
196 bura_limon
 
23.08.16
10:57
(0)
а)1С уже сделал Мобильную платформу которая собирает apk средствами java
б) 1C:Enterprise Development Tools,где гидриб eclipse+1с

Нафик не нужно
197 qwerty
 
23.08.16
11:02
(196)  - ERR_CONNECTION_REFUSED

http://1c-dn.com/developer_tools/

1С - все?
198 qwerty
 
23.08.16
11:07
Скорая замена Java на 1С отменяется во всем мире?
199 Garykom
 
гуру
23.08.16
11:33
(198) Зачем отменять java?

1С просто наваяет нечто которое будет конфы сделанные в конфигураторе 1С транслировать в java код со своим фреймворком.

И будет дальше продавать конфигуратор и фреймворк под java...
200 Garykom
 
гуру
23.08.16
11:42
(196) Не все так радужно:
1. "собирает apk средствами java"
по факту засовывает в архив с подписью и манифестом либы и xml

2. "гидриб eclipse+1с"
Конфигуратор только на другой платформе, смысла от этого мало, не движок же
201 qwerty
 
23.08.16
11:50
(199) - а зачем они испоганили Eclipse. И к тому же  сайт у них не открывается.
202 qwerty
 
23.08.16
11:51
(199) - зачем?
203 bura_limon
 
23.08.16
11:53
(200) ты хочешь движок 1с на java?
204 Torquader
 
23.08.16
11:54
(193) Именованный канал есть везде - но это не очень быстрое средство общения.
В Windows тоже есть потоки как именованные так и нет - опять же, поток реализован через буфер, если передвать что-то большое, то будет идти передача за несколько раз.
Общая память в этом случае проще, особенно, если сообщение нужно посылать сразу нескольким процессам.
205 Torquader
 
23.08.16
11:55
(203) Зачем писать интерпретатор одной виртуальной машины на другой ? Наверное, чтобы "черепаха стала эмблемой нашей программы" ?
206 mistеr
 
23.08.16
12:00
Все не читал. Про то, что 1С нашла сему применение в веб-клиенте, уже сказали?

Нужно, знаю зачем
207 Кирпич
 
23.08.16
12:41
(204) а вы о чём спорите вообще? Shared Memory  и на винде есть. Винда вообще очень продвинутая операционная система :)
208 Garykom
 
гуру
23.08.16
13:18
(205) Транслятор из кода одной виртуальной в код другой виртуальной, а не интерпретатор.

И фреймворк для кода другой вирутальной для уменьшения объема оттранслированного кода.
209 Garykom
 
гуру
26.08.16
11:54
Ну в честь пятницы может кто придумает полезное применение сабжа?
210 Asmody
 
26.08.16
11:58
(209) Я уж думал, ты написал…
211 Garykom
 
гуру
26.08.16
12:04
(210) Пока мало, времени не было, кроме условий еще циклы добавил только и процедуры/функции и все.

Там только фреймворк с функциями/процедурами 1С базовыми встроенными пару месяцев делать, не меньше.
212 Кирпич
 
26.08.16
12:04
(209) пока применение только одно: создать тему на мисте и пофлудить немножко.
создай ещё тему "Транслятор "кода 1С" в Python куда можно применить?"
213 Garykom
 
гуру
26.08.16
12:07
(212) Питон не люблю, так что это не ко мне. Но если кому надо то могу помочь )).

И кстати обратный транслятор в "язык 1С" из других языков так же можно сделать.
214 Кирпич
 
26.08.16
12:09
(213) сделай транслятор из Си в 1С :)
215 Кирпич
 
26.08.16
12:10
думаю года за три управишься
216 Garykom
 
гуру
26.08.16
12:11
(214) И применять его можно будет только для "базовых алгоритмов" которые только с переменными/массивами без динамической работы с памятью...
217 Garykom
 
гуру
26.08.16
12:11
(215) Ты обо мне слишком хорошего мнения )) Сомневаюсь что в 3 года уложиться можно )))
218 Кирпич
 
26.08.16
12:15
(217) ну  "только для "базовых алгоритмов" которые только с переменными/массивами без динамической работы с памятью" можно и за пару месяцев сделать. просто нафиг не нужно.
219 Garykom
 
гуру
26.08.16
12:19
(218) Не скажи, периодически возникают задачки на реализацию в 1С нечто из https://ru.wikipedia.org/wiki/Список_алгоритмов.

И там на C обычно код легко гуглится, а переводить на 1С ручками это затраты времени.
220 Кирпич
 
26.08.16
12:23
(219) "переводить на 1С ручками это затраты времени"
один хрен надо разбираться в алгоритме. а если разобрался, то написать на 1с уже не сложно.
221 Garykom
 
гуру
26.08.16
12:35
(220) Ну даже затраты в 5-10 минут умноженные на количество кому потребовалось и количество что потребовалось уже вполне покроют мои затраты на разработку подобного.

Да в виде банальнейшей рекламы или доната, ну или ИС же ))
222 Garykom
 
гуру
26.08.16
12:36
(221)+ В смысле экономия времени 5-10 минут на "написать на 1С"
223 Кирпич
 
26.08.16
12:39
(221) да в стране 3 человека, которым раз год понадобится какой нибудь алгоритм из (219) перевести на язык 1С
224 Garykom
 
гуру
26.08.16
12:50
(223) Вот это веская причина подобное не делать. Но есть ли какие то другие причины "делать"?
225 Кирпич
 
26.08.16
12:53
(224) надо - делай, не надо - не делай. по моему всё просто.
226 Garykom
 
гуру
26.08.16
12:54
(225) Думаешь зачем голосовалку прикрутил?
227 Jija Grenkov
 
26.08.16
13:00
Я лично сталкивался с тяжелыми мат расчетами в 1с в слудующих задачах:
1. Построение оптимальных маршрутов развозки товаров. Получилось достичь результатов лучше чем водитель/логист может построить вручную. Для водил - это был шок. Не реализовали временные окна доставки и точный учет пробок и учет дтп. Сделал вывод, что для хорошей реализации нужно вложить очень много времени.
2. Прогнозировоание спроса. Тут совсем немного копал, но расчетов там тоже много.

Так же есть задача управления складом со сложными расчетами. Оптимальная расстановка/перестановка товара и маршруты для больших складов.
228 Кирпич
 
26.08.16
13:01
(226) "Думаешь зачем голосовалку прикрутил?"
пофлудить
229 Garykom
 
гуру
26.08.16
13:26
(227) Тяжелые мат расчеты автотранслировать в js из кода 1С не очень много смысла.
Точнее шустрее то оно будет работать но если переписать с 0 вручную то будет лучше намного.

Скорее интересно сделать автопостроение сложных веб интерфейсов для выполнения в браузерах.

На 1С просто создается форма обработки с кодом и кучей контролов и автоматически из нее делается готовый html/css/js и так что само работает. Затем легко можно подправить оформление и засунуть на сайт готовый.
230 Garykom
 
гуру
26.08.16
13:27
(229)+ Тонкость что форму обработки придется делать без "встроенных источников данных 1С", как будто работаем через некий модуль 1С с некой другой базой.
231 Jija Grenkov
 
26.08.16
14:11
(229) я с чего-то решил, что речь зашла о Си-шном коде. Задачи из (227) явно не для JS.
232 Garykom
 
гуру
26.08.16
14:15
(231) Теоретически пофиг куда транслировать и откуда можно и в код на С/C++ из кода 1С, но качество трансляции будет страдать по поначалу.

Да можно (опять же теоретически) сделать супер-пупер транслятор оптимизирующий который хренокод на 1С будет переписывать сам в хороший код на C но как понимаем это ближе к сказкам/фентези.
233 Jija Grenkov
 
26.08.16
16:22
Я против трансляторов в таком виде. Единственное, где я бы мог применить трансляторы - это добавление фич к языку (в нашем случае 1с). Но в 1с нет нечего что бы это было удобно сделать.