|
Как начать писать код на с++ для 1С | ☑ | ||
---|---|---|---|---|
0
int32i
28.04.24
✎
16:39
|
Собственно пошагово здесь
https://docs.google.com/presentation/d/1xSXL30CXUt8QkC9bbMQfE4_t7STox0drUEVsrCbjWTA |
|||
1
Волшебник
28.04.24
✎
16:56
|
Ура, мы вывели "Привет, мир" в окошко 1С, при этом не использовали Сообщить().
А зачем? |
|||
2
int32i
28.04.24
✎
17:24
|
"Мы" использовали Сообщить(..) из с++
Зачем? Это вопрос к Вам, Господа. "Я ножик наточил" |
|||
3
BaZZiL
28.04.24
✎
17:32
|
(1) Чтобы получить удовольствие.
|
|||
4
NorthWind
28.04.24
✎
17:39
|
не, ну сделал человек подробную доку на неочевидную для начинающих хрень - написание ВК... Респект, пусть будет. Дело нужное.
|
|||
5
int32i
28.04.24
✎
18:19
|
(4) Спасибо за добрые слова, Добрый Человек
Конечно у меня там пока "1С-underground" - использование публичных, но недокументированных возможностей 1С. Но в перспективе я расширюсь и до поддержки классических ВК. Из на данный момент интересного для "классиков" - это расширение Visual Studio для редактирования кода 1С в полностью типизированном формате. Со всеми Интеллисенс возможностями. Конечная цель это плюс еще EsbStudio.Swig и подключение с++ библиотек в два щелчка мышки и полная безшовная интеграция 1С и с/с++. Питоновцы могут - а чем мы хуже? |
|||
6
Garykom
28.04.24
✎
19:20
|
(0) Хорошо но мало
С++ это давно пройденный этап Вот сделать чтобы можно было ВК для 1С 8 ваять на Golang и Rust!!! |
|||
7
novichok79
28.04.24
✎
20:00
|
> Из на данный момент интересного для "классиков" - это расширение Visual Studio для редактирования кода 1С в полностью типизированном формате. Со всеми Интеллисенс возможностями.
это типа чтобы использовать VS Code, когда база сохранена как файлы? а как же ваяние форм и запуск 1Сины в отладчике? |
|||
8
Хранимая Процедура
28.04.24
✎
20:38
|
(0) а может быть проще сменить стек на Java/JavaScript
|
|||
9
int32i
28.04.24
✎
20:59
|
(6)
/// С++ это давно пройденный этап /// Падстолом... ржу в корчах. |
|||
10
int32i
28.04.24
✎
21:03
|
(7) Нет. Это не VS-Code, а полноценная Visual Stodio.
Бальшая разница. Проблемы с отладкой есть две. а) Запуск 1С-отладки, что придется еще сделать б) Отладчик машинного кода Студии, чтобы "маленький 1С-овец" не уписялся. Бум решать. |
|||
11
Garykom
28.04.24
✎
21:27
|
(10) Ты один это пилишь?
В одиночку будет сложно EDT переплюнуть |
|||
12
NorthWind
28.04.24
✎
21:29
|
(9) ну шо поделать, нестильно, немодно и немолодежно, хотя дофига чего написано и работает. Это вечная багофича ИТ - обязательно кто-нибудь найдет фатальный недостаток :)
|
|||
13
Garykom
28.04.24
✎
21:33
|
Почти нет 1Сников готовых и согласных писать на С++ "дополнения к 1С"
Это слишком тяжко В отличие от Go/Rust, которые намного проще и удобней Я пробовал ВК для 1С на Go писать, но уперся в эмуляцию С++ классов, которая требуется для 1С ВК Максимум что сделал это промежуточная ВК на С++, которая грузит dll на Go через LoadLibrary Ну и прокидывание в обе стороны вызовов Кто хорошо знает C++ для интеграции 1С через ВК с Golang |
|||
14
Garykom
28.04.24
✎
21:35
|
(12) Да С++ хорош
Но у него фатальный недостаток - слишком сложно, требуется долгое обучение И ничего нет из коробки, а куча разных сторонних либ и "фреймворков" - это такие кто в лес кто по дрова что прикручивать их в проект мука |
|||
15
NorthWind
28.04.24
✎
21:36
|
(13) мне почему-то думается, что проблема не в языке, а в том, что это уже достаточно близко к системному программированию. Можно легко нарваться на access violation, который непонятно как исправлять, и на прочие непонятные вещи. Поэтому классическим 1Сникам это и тяжко. Классическое "сложно блядь!" от стримерши Карины.
|
|||
16
Garykom
28.04.24
✎
21:38
|
(15) Не только
Количество разных типов данных Из коробки нет работы со строками, только с массивами символов, причем хрен знает скольки видов (фикс, zero-terminated и т.д.) Не говоря уже о банальных кодировках )) |
|||
17
lEvGl
28.04.24
✎
21:41
|
(13) не зря это разного поля проги. у ++ к процессам отношение посредственное достаточно, у 1сников к системному взаимодействию также
(14) под шарп был вариант, делал, работало |
|||
18
Garykom
28.04.24
✎
21:39
|
(15) да С и С++ слишком близки к "низкоуровневому программированию" на asm
|
|||
19
Кирпич
28.04.24
✎
21:43
|
(13) В Go можно вставлять код на с++ и не надо ничего эмулировать
|
|||
20
NorthWind
28.04.24
✎
21:44
|
(18) ну если 1С сделает обертки под тот же Golang и выложит их на ИТС для желающих - еще не факт, что это будет лучше работать.
|
|||
21
lEvGl
28.04.24
✎
21:52
|
(20) надо чтобы 1с сделала встренный COM порт для начала
|
|||
22
Garykom
28.04.24
✎
22:24
|
(19) Код на С++ нельзя вставлять в Go, только на чистом C
|
|||
23
Garykom
28.04.24
✎
22:25
|
(20) Не сделает и не выложит
Потому что "Классическое от стримерши Карины" |
|||
24
Одинист
28.04.24
✎
23:10
|
(13) > Почти нет 1Сников готовых и согласных писать на С++ "дополнения к 1С"
1С++? |
|||
25
lEvGl
28.04.24
✎
23:12
|
топик о том как автоматизировать автоматизацию на 1с
|
|||
26
Garykom
28.04.24
✎
23:29
|
(24) 1. 1С++ это другое, оно именно для 1Сников было сделано, чтобы на ЯП 1С кодить с классами
2. Его уже забыли ЗЫ "С++ - это С с классами"© ЗЗЫ Для совсем кто в танке 1С++ - это 1С с классами |
|||
27
crasler
29.04.24
✎
08:46
|
(22) Что мешает посмотреть как строится таблица методов объекта в MSVC и создать такую же структуру в Golang?
class IComponentBase size(12): +--- 0 | +--- (base class IInitDoneBase) 0 | | {vfptr} | +--- 4 | +--- (base class ILanguageExtenderBase) 4 | | {vfptr} | +--- 8 | +--- (base class LocaleBase) 8 | | {vfptr} | +--- +--- IComponentBase::$vftable@IInitDoneBase@: | &IComponentBase_meta | 0 0 | &IComponentBase::{dtor} 1 | &IInitDoneBase::Init 2 | &IInitDoneBase::setMemManager 3 | &IInitDoneBase::GetInfo 4 | &IInitDoneBase::Done IComponentBase::$vftable@ILanguageExtenderBase@: | -4 0 | &thunk: this-=4; goto IComponentBase::{dtor} 1 | &ILanguageExtenderBase::RegisterExtensionAs 2 | &ILanguageExtenderBase::GetNProps 3 | &ILanguageExtenderBase::FindProp 4 | &ILanguageExtenderBase::GetPropName 5 | &ILanguageExtenderBase::GetPropVal 6 | &ILanguageExtenderBase::SetPropVal 7 | &ILanguageExtenderBase::IsPropReadable 8 | &ILanguageExtenderBase::IsPropWritable 9 | &ILanguageExtenderBase::GetNMethods 10 | &ILanguageExtenderBase::FindMethod 11 | &ILanguageExtenderBase::GetMethodName 12 | &ILanguageExtenderBase::GetNParams 13 | &ILanguageExtenderBase::GetParamDefValue 14 | &ILanguageExtenderBase::HasRetVal 15 | &ILanguageExtenderBase::CallAsProc 16 | &ILanguageExtenderBase::CallAsFunc IComponentBase::$vftable@LocaleBase@: | -8 0 | &thunk: this-=8; goto IComponentBase::{dtor} 1 | &LocaleBase::SetLocale IComponentBase::{dtor} this adjustor: 0 IComponentBase::__delDtor this adjustor: 0 IComponentBase::__vecDelDtor this adjustor: 0 |
|||
28
int32i
29.04.24
✎
16:18
|
И чего всех в этот "Go" тянет. Как медом намазано, право слово..
Есть великолепный простой скриптовый язык 1С. Есть великолепный сложный низкоуровневый язык с++. Вместе - великолепная синергия. А эти все промежуточные не-до-пере-языки как Go, Rust, C#, Java .. десятки их.. - ни то, ни се. Ну как диван кровать - и сидеть неудобно, и спать - спина болит. Непонимаю |
|||
29
Garykom
29.04.24
✎
17:27
|
(28) Покажи на C++ (и на 1С) пример подключения к MSSQL/PostgreSQL или другой СУБД и выполнения запросов?
Вот пример на Go: https://github.com/Garykom/psql/blob/main/main.go Обязательно кроссплатформенно и без внешних зависимых прокладок |
|||
30
Фрикаделъ
29.04.24
✎
18:24
|
(29) Какой безобразный код. Еще и табы вместо пробелов, жесть.
|
|||
31
Фрикаделъ
29.04.24
✎
18:32
|
Открою тебе секрет, подключение к СУБД и выполнение запросов не зависит от ЯП, и сводится обычно к следующему:
import biblioteka connection = biblioteka.connect('root:[email protected]:3060') result = connection.query('select * from table') |
|||
32
Garykom
29.04.24
✎
19:47
|
(31) Покажи библиотеку написанную на чистом ЯП 1С для подключения к sqlite и firebird
|
|||
33
Фрикаделъ
29.04.24
✎
19:58
|
(32) А такие разве есть? Я не встречал. Сам ищи.
|
|||
34
Garykom
29.04.24
✎
20:02
|
(33) Т.е. ты на
Про Открою тебе секрет, подключение к СУБД и выполнение запросов не зависит от ЯП, и сводится обычно к следующему: |
|||
35
int32i
29.04.24
✎
20:13
|
(29) Это смешно.
20$ У меня ремонтник был Толик, так мы его прозвали Толик-20$. Для него все было 20$ - "Толик, стену снести, -20$", "Толик, стену построить, -20$", ну и т.д. Вы привели в примерах "MSSQL/PostgreSQL или другой СУБД..", добавлю SQLLite, InterBase и т.п., которые все написаны на c/c++ и скомпилировать и подключить мне на с++ их несравненно проще, чем Вам на Go. Более серьезный вопрос - Зачем? Это действительно проблема, т.к. 1С так "вытоптала" свой рынок, что никому непонятно "Зачем?" к бухгалтерии подключать SQLLite или Visualization Toolkit (VTK). |
|||
36
lEvGl
29.04.24
✎
20:20
|
(32) какой там еще sqlite? не устану повторять: пока 1с не сделает встроенный СОМ порт, ни о чем разговаривать больше смысла нет
|
|||
37
Фрикаделъ
29.04.24
✎
20:20
|
(34) И что ты в этом не понял?
|
|||
38
int32i
29.04.24
✎
20:26
|
(36) Да не сделает 1С никогда "встроенный COM-порт", т.к. для зарабатывания денег 1С важно работать в браузере и на сервере.
Ни в браузере ни на сервере КОМ-портов НЕТ! Я (и Вы с моей помощью) можем сделать КОМ-порт. Это будет некоторое ограниченное, но пригодное для нас решение. |
|||
39
lEvGl
29.04.24
✎
20:43
|
(38) а что, браузер не сможет ком порт? жалко
в целом, расширение 1с за счет сторонних сред это гуд, безусловно, здесь был Serginiol, динамический шарп делал, с классами, которые из 1с можно создавать передавая строки. А вы на коммерческой основе? Или не за деньги не за флаг, просто очень интересно? (35) у нас Олег - 2 бакса). Чел месяц ходил всех долбил "смотри, у меня есть купюра 2 бакса" и что то показывал, там и правда была зеленая бумажка, с цифрой 2. Но месяц долбить, это слишком, так и привязалось за ним.. |
|||
40
Garykom
29.04.24
✎
20:41
|
(35) > SQLLite, InterBase
"sqlite" - с одной L "interbase" - уже давно практически не используется, но до сих пор юзают его форк "firebird" это как mysql/mariadb |
|||
41
Garykom
29.04.24
✎
20:43
|
(36) rs-232 очень редкая штука, особенно в нынешние времена
в учетных системах практически не нужна когда нужна - есть разные прокладки через ВК БПО например |
|||
42
Garykom
29.04.24
✎
20:44
|
(41)+ вот сделать чтобы ВК для 1С можно было легко и удобно писать, причем на разных ЯП - очень надо!
|
|||
43
lEvGl
29.04.24
✎
20:59
|
(41) необходимость этого интерфейса от среды обитания зависит. Бухам конечно не нужно, но например офисный логист уже может иметь небольшую необходимость, т к взвешивает посылки при отправке или получении. Да и бухи бывают с разными вмененными обязанностями. Любое место, где используется разного рода оборудование, рано или поздно приходится автоматизировать. это как бы семечки, притянутые за уши, офисники то есть. Но не только же офисники в 1с работают.
БПО да - набор библиотек, написанных на ++/шарп. Косяк в том, что протоколы обмена у девайсов разные, стандарты есть, но не все производители их придерживаются, а значит идем в студию и пишем, т к в 1с порта то нет! ну кстати, это еще удачный случай, когда есть описание протокола, бывает хуже пс. про записьтекста //com1/тратата только не надо) |
|||
44
int32i
29.04.24
✎
21:08
|
(42) Ну да...
Напишу прямо. Если бы Вы вникли в архитектуру моего ЕСБ, Вы бы увидели, что оно фактически разбито на две части: 1) Практически с-стайл "бакенд" работающий с платформой и обеспечивающий совмемтимости 2) С++ "фронтенд" реализующий функциональность. Так вот. "Фронт-енд" может быть написан практически на любом языке. Хоть на Питоне. Ну и естественно на Go в том числе. Я, во первых как уже писал, не понимаю смысла в реализации на чем либо кроме с++. Во вторых я побаиваюсь "растаскивания" ЕСБ на кучу маленьких "есб-ушечек" и "есб-ёночек". Каждая из которых будет поглюкивать и весь проект обосрет. Это отражено в том числе и в лицензии ЕСБ. НО! Не первый раз сталкиваясь в дискуссии с адептами Go, С# и т.п. я начал задумываться о правильности своего первоначального решения. Очевидно, что расширения для 1С лучше всего писать в с++, но с другой стороны есть не малое количество людей (вроде Вас), которые с++ побаиваются, а в Go умеют. Короче. Вы готовы развивать "esb-go"? Рассчитывать vtbl Вам при этом уже не надо. Я в своем esbhlp.lib это уже сделал у буду делать. Также у меня есть типизированное dispatch-АПИ платформы (ну.. с точностью до огрехов) и вообще готов оказывать всяческую поддержку. Но Go-часть придется писать самому. Я его тупо не знаю и знать не хочу. |
|||
45
Фрикаделъ
29.04.24
✎
22:03
|
(39) Браузер, очевидно, может COM порт. Еще со времен IE.
|
|||
46
int32i
29.04.24
✎
22:08
|
(45) КОМ-порт в представлении браузера и физический КОМ-порт, предатсавляемый kernel это очень две большие разницы.
Я понял жаждущего КОМ-порта именно в смысле его реализации максимально приближенной к железу. |
|||
47
Garykom
29.04.24
✎
23:08
|
(44) 1. У тебя закрытое проприетарное решение на основе готовых esbhlp.lib
2. Эти твои esbhlp.lib должны быть отдельно скомпилированы под каждую конкретную версию платформы 1С, под 8.3.XX.XXXX, отдельно под x86, отдельно x86-64, причем только под Windows Под Linux нет, под ARM нет. Так что не вижу смысла, мертворожденный проект |
|||
48
Фрикаделъ
30.04.24
✎
03:08
|
(46) Ты имеешь в виду прямой доступ к КОМ-порту как в DOS? Зачем? Через драйвер отлично все работает.
|
|||
49
Кирпич
30.04.24
✎
06:43
|
(22) "Код на С++ нельзя вставлять в Go, только на чистом C"
Если я сказал, что можно С++, значит можно. |
|||
50
Кирпич
30.04.24
✎
06:56
|
+(49) Правда ВК делать на go я не пробовал и не собираюсь. Ты вот уже лет 5 трындишь тут про ВК на Go, но так и не сподобился. И никто не сподобился. Значит это никому не нужно. Для ВК есть C++ и FreePascal.
|
|||
51
NorthWind
30.04.24
✎
09:13
|
(45) вернее сказать, только IE и может (через ActiveX).
Но вся беда в том, что от IE уже отказались даже его "родители", в современных виндах приходится изгаляться, чтобы его хоть как-то запустить. Офф: народ, а скажите, только у меня такая беда что иногда кнопка "Отправить" здесь становится напрочь неактивна, и чтобы отправить пост, надо копировать его, перезагружать страницу и только потом отправлять? |
|||
52
NorthWind
30.04.24
✎
09:22
|
(39) > у нас Олег - 2 бакса). Чел месяц ходил всех долбил "смотри, у меня есть купюра 2 бакса"
Попадаются, хотя и нечасто. Сложнее металлический доллар найти. |
|||
53
int32i
30.04.24
✎
11:40
|
(47)
1) Решение максимально открытое в рамках действующего законодательства РФ. esbhlp.lib - это написанная мной бинарная прослойка между открытым кодом с++ и платформой 1С обеспечивающая работу с 1С от v8.3.6.1848 до v8.3.23.1688 без изменения кода (раннее и позже просто не пробовал). Несмотря на эволюцию платформы. Она использует публичное, но недокументированное АПИ платформы. Опубличить код этой прослойки (esbhlp.lib) я не имею права по закону. Посадют... Но я могу "выполнить работы по сопряжению программно-аппаратного комплекса законного приобретателя программного продукта" в полном соответствии со пунктом 3 статьи 1280 ГК РФ N 230-ФЗ в ред. 05.12.2022 с изм. и доп., от 29.05.2023. Т.е. при заключении договора с "законным приобретателем продукта" я могу и готов передать ему исходные коды esbhlp.lib. И пусть дальше уже у него голова болит что с ними делать. ПС. Сумма договора хоть 1коп., но не меньше транзакционных издержек автора. |
|||
54
int32i
30.04.24
✎
11:57
|
(47) 2)
Эти мои esbhlp.lib действительно должны быть перекомпилированы, но далеко как не под каждую конкретную версию платформы. Нестабильность ABI платформы это большей частью миф. От v8.3.6.1848 до v8.3.23.1688 всего (емнип) пять версий. Причем что одна из них исключительно минорное изменение. Чего, конечно, не скажешь о диспатч-АПИ. Но оно открыто. Версии х64 получаются можно сказать автоматически, т.к. и разработчики платформы и я стараемся строго и щепетильно придерживаться стандарта с++. Линух и Макоси действительно пока нет, т.к. проект в процессе развития и лучше сосредоточиться на чем-то одном и сделать его хорошо прежде чем расширяться. ПС. Также есть исключительно утилитарная проблема - у меня просто нет столько тестовых стендов под все это многообразие. А Макось я вообще только на картинках видел. |
|||
55
Asmody
30.04.24
✎
12:02
|
И тут объявился. Учти, мы тут не в телеге, тут "болото с крокодилами"™, могут и в панамку напихать.
Коллеги, у пациента серьёзный сиплюсплюс головного мозга, отягощенный отрицательной предилекцией к одинесникам. Больше всего это похоже на затянувшийся хилый троллинг. |
|||
56
int32i
30.04.24
✎
12:11
|
(55) Да, я знаю. Меня тут в прошлый раз забанили, конечно как мне кажется не по моей вине.
ПС. Меньше всего мне хочется превращать дискуссию в троллинг. Будут вопросы по существу - отвечу. ПС. Я вообще ветку на задворках форума сделал чтобы серьезных людей от серьезных вопросов не отвлекать. |
|||
57
Asmody
30.04.24
✎
12:12
|
(56) по существу уже много раз задавали вопрос:
нахера оно надо? на него ты ответить не можешь, ну кроме как "я сделаль" без внятного целеполагания и ништяков ты слона не продашь! |
|||
58
Djelf
30.04.24
✎
12:53
|
Закрытые библиотеки уже проходили, вот например RexV8 https://infostart.ru/1c/tools/183084/
Уже давным давно не работает. Т.е. получается так: ты что-то пишешь на основе подобной компоненты, а автор, бац! и забросил ее, платформа 1С обновилась и ничего уже не работает. Все труды в помойку. А еще веселее понатыкать таких библиотек, обвязать кучей кода, а потом уволится и пусть у них потом голова болит, что с этим делать. На 8ке такое нафиг-нафиг, другое дело мертвая 7.7, которая уже не меняется и почти всегда работает на стероидах... |
|||
59
int32i
30.04.24
✎
13:17
|
(58) Я знаком со всеми (многими) разработками Г-на Орефкова и стараюсь учитывать его опыт.
У нас немного разный подход. RexV8 - это готовая и закрытая компонента. Esb - это открытый фреймворк для написания подобных компонент. К слову при желании Вы хоть сейчас можете сами написать аналог RexV8 и он будет работать. Как Вы будете распоряжаться производным от Esb продуктом - Ваше дело. Единственное требование чтобы было указано, что он изготовлен на основе Esb. |
|||
60
bolder
30.04.24
✎
13:36
|
(0) Дает ошибку.
https://ibb.co/BrvwxVw |
|||
61
Djelf
30.04.24
✎
14:26
|
(59) Да нет, подход тут одинаковый. В обоих случаях используется обращение к "открытому АПИ", ну может быть Орефков и в закрытую часть где-то залез.
У Вас прокси, да это неплохо, список проверенных платформ впечетляет. Но Вы же не можете дать гарантии что в какой-то новой верии платформы часть функций не отвалятся. Вот об это я и предупредил. А аналог RexV8 на основе https://github.com/kkos/oniguruma у меня и так уже есть, причем он кросс-платформеный и обрабатывает огромное количество диалектов regexp. Все таки займитесь и Linux`ом, адаптация и компиляция закрытого кода может оказаться совсем нетривиальным занятием. Учтите что из-за GLIBC собирать надо на достаточно старом Linux, рецепт для v8sqlite тут v8sqlite в клиент-серверной базе#62 P.S. Не принципиально что рецепт был для v8sqlite. |
|||
62
int32i
30.04.24
✎
14:12
|
(60) Боже мой!
Первенец! Дай я тебя расцелую, дорогой! Какого-то ляда у Вас показывается EsbStudio Version=1.0.0.0 когда она должна быть 1.1.00008.00. Какие-то заморочки Вашей Visual Studio. "У меня работает." (с) Мне нужно какое-то время на разборки и обновление репозитария. Или если Вы умеете, то можете пересобрать из исходников видимо поменяв версию в файле\esb_studio\EsbStudio\ProjectTemplateVCProject\vstemplate._vstemplate. Нет.. лучше пока не надо.. Лучше удалите расширения и подождите. Здесь людей видимо лучше не раздражать. подпишитесь на мою телегу. ПС. Не нужно всем показывать скриншот полного экрана. |
|||
63
Фрикаделъ
30.04.24
✎
16:40
|
(51) Что за бред ты пишешь. Какой современный браузер не умеет работать с КОМ-портом? Я поражаюсь, насколько люди не знают возможностей обычного браузера. В нем же есть все что нужно, и СУБД, и доступ к видеокарте, и к диску, и к разным датчикам, игровым манипуляторам. Это целый комбайн, который легко и просто дает возможность программисту использовать различные ништяки, не заморачиваясь на всякие подключаемые дополнения и библиотеки. Я даже не знаю, что сейчас нельзя делать на браузере. Наверное, любое обычное приложение можно переписать на браузерное. Ту же 1С, или кассовое ПО или игры типа Counter Strike.
|
|||
64
Фрикаделъ
30.04.24
✎
16:47
|
Напиши в консоли браузера это: navigator.serial
Проверь, умеет твой или нет. |
|||
65
int32i
30.04.24
✎
18:09
|
(60)
Чертовщина какая-то С версиями все нормально. Версия EsbStudio.dll и должна быть Version=1.0.0.0. Это версия .vsix 1.1.00008.00. Я еще раз все прогнал и на своей и на чистой тестовой машине. Все Ок. Я даже не могу воспроизвести Ваше сообщение об ошибке (в разных сценариях). Самое обидное что это где-то не у меня ошибка, т.к. мой код даже не запустился. Огромная просьба - не пропадайте со связи. Расскажите, плз, подробно как и что вы делали и что получается. С меня бутылка коньяка с пересылкой. ПС. Чудеса.. Тут рассказывают что разработчики куда-то пропадают, а реально приходится разработчику за пользователем гоняться. |
|||
66
bolder
30.04.24
✎
20:11
|
(65) Удалил расширение и снова поставил. Запустилось.Возможно ошибка вызвана наличием VS2022, а расширение ставится на VS2019.
UPD. Не , запустился обычный проект, не на основе шаблона EsbStudio.Та же ошибка. |
|||
67
int32i
30.04.24
✎
20:50
|
(66) Долбаная Студия со своим громадьем Пакетов, Расширений и Архитектур.
Говорила мне Мама - не лезь в С#, весь обляпаешься... Пока ума не приложу что делать. Куда-то ей в настройки лезть надо, а она там себе 8Мб ветки реестра монтирует. Трактор.. Завтра смотреть буду. Спасибо за фидбак. ПС. Все же лучше перенести общение куда-то в приват. "Здесь крокодилы" |
|||
68
Волшебник
30.04.24
✎
21:13
|
(67) боитесь крокодилов? Зачем же вы полезли в это болото программирования?
|
|||
69
Ёпрст
30.04.24
✎
21:21
|
(67) пузырёк всё же отошлите человеку.
|
|||
70
Asmody
30.04.24
✎
21:25
|
(68) куда бы на главную прилепить?
![]() |
|||
71
int32i
01.05.24
✎
17:57
|
(66) Итак.
Мои расширения написаны в технологии MPF, а для Студии-22 предпочитаемой технологией является MEF. (она вообще-то "переходная", а значит глюкавая) ПС. разницу и мотивацию решения опишу позже в доке на расширения. По всей видимости, при дабл-клике на .vsix, запускается "старший" VSIXInstaller.exe из 22-й студии, который пытается грязным пальцем инсталлировать расширение в 19-ю Студию. Поэтому: 1) Деинсталлировать все расширения полностью из менеджера расширений Студии (Меню Расширения-УправлениеРасширениями-Вкладка Установленные-EsbStudio-Удалить, EslLanguageService-Удалить) Процедуру выполнить и в 19-Студии и в 22-й если они и туда прописались, хотя не должны. Поскольку инсталлировались они криво, то и удалиться могут криво, поэтому проверить в папках c:\Users\User\AppData\Local\Microsoft\VisualStudio\16.0_5be58e6d (что то типа этого, где 16.0 версия студии, а что-то типа 5be58e6d - это ее Instance-Id, всякие цифро-буквы могут быть) что в подпапке \Extensions\ в подпапках вида bbwj5t5u.wrh rdfyfxab.bxl нет должно быть никакого упоминания о esb 2) Расширения я выложил на ихний маркет плейс, поэтому, запустив именно Студию-19 (для простоты на начальном экране справа внизу выбираем ПродолжитьБезКода) идем в Меню Расширения-УправлениеРасширениями, в строке поиска справа указываем ESB (или 1C-Enterprise) и когда он их находит тыкаем Скачать для обоих. Закрываем Студию. Она их должна поставить и все должно быть Ок. "У меня работает. (с)" Но не исключен вариант, что при закрытии Студии-19, она все равно вызовет VSIXInstaller.exe из 22-й студии по-умолчанию. И тогда опять не получится. Тогда нужно повторить пункт 1). Перезакачать Esb с гитхаба (расширения там немного обновлены) Там же в папке esb_studio эти расширения, но их но немного переименованы в виде EsbStudio.vsix_ чтобы их больше дабл-кликом не ставили. Скопировать их куда-нибудь отдельно или на месте просто _ в конце удалить и пытаться установить из командной строки. Инсталляция расширения, делаем .cmd файл и вставляем в него: -> "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VSIXInstaller.exe" /appIdInstallPath:"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" /appIdName:"Visual Studio" /skuName:"Community" /skuVersion:"16.11.34407.143" /instanceIds:"5be58e6d" "c:\esb\esb_studio\EsbStudio.vsix" Пути, возможно придется подправить. /skuVersion:"16.11.34407.143" - это версия файла devenv.exe, смотреть в проводнике-свойства /instanceIds:"5be58e6d" - это те букво-цифры, которые смотрели когда ходили в c:\Users\User\AppData\Local\Microsoft\VisualStudio\16.0_5be58e6d Таим-же образом или поменяв .cmd или сделав новый установить "c:\esb\esb_studio\EslLanguage.vsix" (поменяв последний параметр) Запустить и пробовать. АМИНЬ! |
|||
72
int32i
01.05.24
✎
18:00
|
ПС, если понадобится ДЕ-Инсталляция расширения руцями:
-> "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VSIXInstaller.exe" /appIdInstallPath:"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" /appIdName:"Visual Studio" /skuName:"Community" /skuVersion:"16.11.34407.143" /instanceIds:"5be58e6d" /uninstall:"EsbStudio.3ae929f3-3ccd-4dc3-98ec-75a26a9323ac" где "EsbStudio.3ae929f3-3ccd-4dc3-98ec-75a26a9323ac" прописано где-то в c:\Users\User\AppData\Local\Microsoft\VisualStudio\ 16.0_5be58e6d\rdfyfxab.bxl\extension.vsixmanifest |
|||
73
bolder
01.05.24
✎
22:26
|
(71) Это была ключевая информация.Обновил VS 2019 до 16.11.35
от 09 апреля 2024 и все взлетело. Удаляется и ставится как описано, я ставил из маркетплейса последний раз. В VS2022 не ставится. |
|||
74
int32i
02.05.24
✎
13:20
|
(73) Неимоверно рад, что у Вас все получилось!
Буду сейчас обновлять документацию. Спасибо. Если это возможно, держите меня в курсе всех возникающих проблем и непоняток. ПС. Относительно презента Первенцу, я не шутил. Бросьте свои координаты куда-нибудь в личку. Или на почту, например. Еще раз - Удачи! |
|||
75
Адинэснег
02.05.24
✎
13:22
|
новый бложек
|
|||
76
ДедМорроз
02.05.24
✎
15:52
|
К браузерам пишут расширения и внешние компоненты,которые позволяют даже с криптографией на ключах работать,принципиально отличия от последовательного порта нету.
|
|||
77
Garykom
02.05.24
✎
16:25
|
(76) Видели бы как эти плагины/расширения фактически работают приплевались бы
Там или сервис в фоне запускается на компе снаружи песочницы браузера, а код js из песочницы обращается к сервису на localhost Или нечто вроде но суть та же нечто внешнее запускается снаружи браузера, и обменивается с расширением внутри браузера |
|||
78
Фрикаделъ
02.05.24
✎
16:42
|
(76) Точно. И функции криптографии уже есть в браузере, без всяких расширений. Вот например, встроенный объект: window.crypto
Я на нем делал шифрование и авторизацию для статичного веб-приложения без бекенда. Прикол, да? Бекенда нет, а без пароля не пускает! |
|||
79
ДедМорроз
02.05.24
✎
20:29
|
(77) Расширение - это код на javascript,который,в принципе,реализуется в песочнице,но к странице имеет полный доступ,причем,сама страница об этом не знает.
PlugIn - это библиотека для браузера,обычно,написанная на Си++,что позволяет ей делать все,что угодно,так как для библиотек,к сожалению,песочниц нету. Поэтому,любой PlugIn имеет полный доступ к данным пользователя. Можно,конечно,схитрить и запустить браузер от имени другого пользователя,который не имеет прав на компьютере,но многие вещи интерфейса,при этом,перестанут работать или будут требовать доработки. Опять же,службу делают для того,чтобы иметь возможность выполнять действия на уровне администратора или операционной системы - для случаев доступа к ключам на сменных носителях - достаточно полезное действие,позволяющее управлять носителями и делать переподключение,если вдруг что-то подвисло. |
|||
80
DrZombi
03.05.24
✎
08:53
|
(74) Спасибо... И... Это для Форточек, а как быть с пингвинами?
...Как сделать так, что бы компонента была во внутри конфигурации, и грузилась не через файлик? :) |
|||
81
DrZombi
03.05.24
✎
08:56
|
(78) Не все решается браузером... Если сравнивать, то это как с прямыми запросами для 1С 7.7... Если использовать ADO, то у вас шифер съедет от транскрипции представлений реквизитов 1С...
И люди для удобства использовали 1С++, это простой интерфейс представления метаданных для организации прямых запросов :) |
|||
82
unenu
03.05.24
✎
11:14
|
Корпорации уже мигрируют в Rust
https://tproger.ru/articles/google-priznal-s---ustarevwim-i-nazval-yazyk-budushhego-emu-na-zamenu |
|||
83
Волшебник
03.05.24
✎
11:20
|
(82) С++ устарел? А тут вот конференцию замутили
https://habr.com/ru/companies/jugru/articles/810645/ |
|||
84
Garykom
03.05.24
✎
11:32
|
(83) Он стал слишком сложным и запутанным
Такое у всех с долгой историей на протяжении которой они активно развиваются В итоге они вынужденно разваливаются (как империи), их побеждают более молодые (варвары) |
|||
85
Garykom
03.05.24
✎
11:35
|
(84)+ Примерно в той же точке истории сейчас находится Java
Вот C#/.Net сделали ход конем и возможно выживут дольше но уже в иной форме Python сейчас подходит к этой точке, пока еще поднимается на плато но скоро начнется стагнация |
|||
86
Волшебник
03.05.24
✎
11:35
|
(84) там нет ООП
|
|||
87
Garykom
03.05.24
✎
11:38
|
(86) И там и там есть "классы" ))
|
|||
88
Garikk
03.05.24
✎
11:40
|
(29) ой как показателен трабл с возвратом ошибок из ф-ций
ты логируешь err но при этом не падаешь, а пытаешься чтото дальше делать хотя это бессмысленно также есть получение err в db.Queryx но он не обрабатывается...и на row.next тупо рухнет в рантайме p.s. я определенно не люблю голанг |
|||
89
Волшебник
03.05.24
✎
11:41
|
(87) Там нет классов, только структуры. И вообще нет наследования.
|
|||
90
Garykom
03.05.24
✎
11:47
|
(88) согласен насчет костыльности своего кода, накиданного за пару часов
покажите пример на другом ЯП и сколько времени он займет? он так же будет почти идеально кроссплатформенным? компилироваться на одной платформе под все другие? |
|||
91
Garykom
03.05.24
✎
11:48
|
(89) наследование есть везде
и в империях и у варваров, просто иногда оно скрытое или через одно место |
|||
92
Волшебник
03.05.24
✎
11:48
|
(91) Нет ООП, это приговор.
|
|||
93
Garykom
03.05.24
✎
11:50
|
(92) закрытость (инкапсуляция) это всегда приговор, если нет полиморфизма между классами
|
|||
94
Garikk
03.05.24
✎
11:59
|
(90) да у меня придирка не к коду, а к голангу где надо кучу обвязок для err сочинять, языки с исключениями будут сразу падать если их не обрабатываешь
а вообще ты зря про идеальную кроссплатформенность говоришь, а при этом у тебя юзается pgx например причем с гитхаба ты уверен что он для ВСЕХ платформ скомпилируется и будет работать? Я помнится был в яве когдато так уверен что типа код одинаковый и везде работает, пока не наткнулся на bluetooth либу и не расковырял её, а там биндинг к системным вызовам ОС и причем вполне определенным, а для arm прям в исходниках здоровенный бинарник собранный автором на сях pgsql конечно опенсорсный и общедоступный, но совсем не факт что на какойнить 64битной спарковой солярке он поднимется без проблем, потомучто мейнтейнеры не тестировали скорее всего |
|||
95
sikuda
03.05.24
✎
11:59
|
(70) Хана крокодилу в картинке!
|
|||
96
Garykom
03.05.24
✎
12:04
|
(94) согласен про идеальную я зря
но разумная кроссплатформенность хотя бы, для популярных архитектур и ОС |
|||
97
Garykom
03.05.24
✎
12:06
|
(94) >придирка не к коду, а к голангу где надо кучу обвязок для err сочинять, языки с исключениями будут сразу падать если их не обрабатываешь
ну это не баг а фича такая голанга как и фича с их массивами-срезами |
|||
98
Фрикаделъ
03.05.24
✎
16:02
|
(81) Что, например, не решается браузером? Запросы и так прямые, как в 1С++. Я пока недостатков не нашел. Все нужды покрывает.
|
|||
99
Волшебник
03.05.24
✎
16:03
|
(98) Вы в какую базу делаете запросы из браузера?
|
|||
100
Фрикаделъ
03.05.24
✎
16:05
|
(88) Голанг и правда отстой, но в том примере проблема больше не в голанге, а в низком качестве кода.
|
|||
101
Фрикаделъ
03.05.24
✎
16:10
|
(99) Странный вопрос, конечно. Лично я подключаюсь в свою базу, которую сам создал.
|
|||
102
Garykom
03.05.24
✎
16:10
|
(100) Ну покажи высокое качество кода, того же назначения
|
|||
103
Волшебник
03.05.24
✎
16:13
|
(101) Зачем Вам своя личная база? Нужно подключаться к рабочей базе, где работают пользователи.
|
|||
104
Djelf
03.05.24
✎
16:14
|
(100) Сделай форк и приведи пример качественного кода, иначе не очень верится.
Но то что сборка из такого кода работает без сбоев много лет, это уже подтверждение достаточно качественного кода, для подобного применения. |
|||
105
Фрикаделъ
03.05.24
✎
16:21
|
(103) Если нужно сделать многопользовательский инструмент по работе, то делаю уже клиент-серверный вариант, с БД на сервере, и с бекендом. Подключение будет, соответственно, к той БД.
|
|||
106
Волшебник
03.05.24
✎
16:23
|
(105) Ну тогда Ваш браузер будет нервно делать то, что скажет ему сервер. Вот и приплыли. А то браузер, Counter Strike...
|
|||
107
Фрикаделъ
03.05.24
✎
16:23
|
(102) Я уже показывал к чему обычно сводится выполнение запроса.
|
|||
108
Фрикаделъ
03.05.24
✎
16:24
|
(106) Клиент говорит серверу что делать, сервер выполняет команду клиента. Так это обычно работает.
|
|||
109
Волшебник
03.05.24
✎
16:25
|
(108) Ага, как же...
|
|||
110
Фрикаделъ
03.05.24
✎
16:26
|
(104) На голанге не буду делать, он вызывает неприязнь.
|
|||
111
Волшебник
03.05.24
✎
16:28
|
Сервер обычно занимается своими важными делами, внутренними размышлениями над базой и всякими вопросами вселенной и прочего, а клиенты мешают ему спокойно думать, пребывая в трансценденции. Клиенты закидывают сервер запросами, которые он быстро выполняет и возвращается в свой обычный процесс "Бездействие системы" 99%
|
|||
112
Фрикаделъ
03.05.24
✎
16:30
|
(109) Это основы. Не знаю как проще объяснить. Даже по названию понятно: Сервер - человек или вещь, который оказывает услугу. Как официант в ресторане. Что ему клиент скажет, то он и приносит, сервирует, так сказать.
|
|||
113
Волшебник
03.05.24
✎
16:31
|
(112) Наивное буквальное понимание без проникновения в суть вопроса.
|
|||
114
Djelf
03.05.24
✎
16:33
|
(110) А зачем тогда о своей "классовой ненависти" в каждом сообщении спамить?
Никто же не заставляет делать именно на голанге. |
|||
115
Фрикаделъ
03.05.24
✎
16:33
|
Основная функция сервера - считать данные из БД, и передать их клиенту. Либо получить данные от клиента, и записать их в БД. Но иногда сервер выполняет дополнительные функции, например, отправляет запросы другому серверу.
|
|||
116
Asmody
03.05.24
✎
16:34
|
У Depeche Mode есть песенка такая "Мастер и сервант".
Про мебельщика, наверно... |
|||
117
Фрикаделъ
03.05.24
✎
16:38
|
(114) Не на голанге я уже выше скидывал пример. Что еще нужно?
|
|||
118
Волшебник
03.05.24
✎
16:40
|
(115) Глупость несусветная! Сервер обычно занимается майнингом или просто вычисляет что-то, например, число π или е.
На данный момент вычислено 62,8 триллиона знаков числа Пи. И это даже до половины не добрались |
|||
119
Djelf
03.05.24
✎
16:44
|
(115) Ну и что тут странного? 5 лет назад написал на голанг прокси сервер, примерно как у Garykom`а, с доступом и к MSSSQL и Oracle.
Отлаживал на винде, потом запустил на линухе, вообще без проблем заработало. 5 лет работает и не падает. Это я виноват или голанг? Код, да, вначале непривычный и кажется непривычным и уродливым. Пишите свой компилятор, под свои прихоти... |
|||
120
Фрикаделъ
03.05.24
✎
16:43
|
(118) Ну что за бред. Майнингом обычно занимается клиентская машина, когда пользователь шляется по сомнительным сайтам с отключенным антивирусом. Там хотя бы игровая видеокарта есть.
|
|||
121
Волшебник
03.05.24
✎
16:45
|
(120) Я же говорю не про майнинг криптовалют. Опять Вас понесло куда-то не в ту степь. Я говорю про майнинг ИСТИНЫ!
|
|||
122
Фрикаделъ
03.05.24
✎
16:45
|
(119) Когда пишут подобные простые вещи на других ЯП, никого не удивляет что они работают без проблем. Почему ты так гордишься отсутствием падений на голанге? Это считается редкостью?
|
|||
123
Djelf
03.05.24
✎
16:47
|
(121) Это как? Я тоже хочу такую дурь майнить! Где рецепт?
|
|||
124
Фрикаделъ
03.05.24
✎
16:47
|
(121) Так и я не написал ни слова про крипту. Может быть это вирус, который ищет секрет вечного счастья для человечества.
|
|||
125
Волшебник
03.05.24
✎
16:48
|
(123) Сначала Вы должны доказать, что достойны. Таков путь.
|
|||
126
Djelf
03.05.24
✎
16:49
|
(122) Я не горжусь, это просто так вот и работает.
|
|||
127
Фрикаделъ
03.05.24
✎
16:51
|
(123) Можно присоединиться к какому-нибудь публичному проекту расчета чего-нибудь полезного. Думаю, их должно быть много, нужно только поискать.
|
|||
128
Фрикаделъ
03.05.24
✎
16:55
|
Филосовский вопрос, только что придумал:
Считается, что в числе Пи присутствует любая последовательность цифр любой длины. Означает ли это, что в каком-то месте начнется последовательность всех предыдущих цифр от начала и до этого места? Вопрос не такой простой, как кажется. Подумайте еще раз, прежде чем отвечать. |
|||
129
Волшебник
03.05.24
✎
16:57
|
(128) Мы не думаем над вопросами, которые автор называет "Филосовский". Очевидно, что автор глупый и даже в школе не учился. Может это вообще бот какой-нибудь
|
|||
130
Garykom
03.05.24
✎
17:04
|
(126) Угу, вот 1С тоже не падает (обычно) как ни странно при ошибке
Просто сообщает пользователю об этом или в журнал |
|||
131
Фрикаделъ
03.05.24
✎
17:13
|
(129) Вы можете не думать. Кому интересно размять мозг, тот подумает.
|
|||
132
Asmody
03.05.24
✎
17:36
|
(128) Это не философский вопрос. Иррациональность числа π была математически доказана ещё в 18 веке.
|
|||
133
Фрикаделъ
03.05.24
✎
17:47
|
(132) Я же предупреждал что надо подумать прежде чем отвечать. Все не так просто как кажется.
|
|||
134
Garykom
03.05.24
✎
17:51
|
(133) Тебе уже ответили
"любая последовательность цифр любой длины" != "последовательность всех предыдущих цифр от начала и до этого места" второе означает рациональность, а пи - иррациональное |
|||
135
int32i
03.05.24
✎
18:03
|
(80) Думаю что до "Пингвинов" очередь обязательно дойдет, но потом..
Я в начале пытался идти по всему фронту, но быстро потух. Сложно, а я один. Тем более, что "Road-Map" технологии вырисовывается в процессе и в этом процессе много извилистых тропинок в конечном итоге отбрасываемых. Мне самому "Пингвина" хочется, тем более что народ там более живой и компетентный. НО! Пока Esb.Swig. После СВИГа Esb приобретет законченный вид (библиотека, IDE, подключаемые либы) и можно будет ходить по спирали расширяясь и углубляясь. ПС. То что касается компоненты "внутри конфигурации", то вроде это средствами самой 1С решается. Куда-то там она запаковывается, в temp распаковывается, подключается... Не? А.. Ну хотя да.. Рекомендованный способ положить есб-компоненту в 1С/bin и подключать как SCOM-модуль. Тогда проблем с выгрузкой гарантировано нет. А при загрузке из какого-то "темп" нужно внимательно следить за объектами создаваемыми в компоненте. Не так сложно в 1С загрузиться, как сложно красиво выгрузиться. Есть на примете способ с FreeLibraryAndExitThread. Пробовать надо... Я так не люблю все что где есть "Thread"... Никогда точно не знаешь что все корректно сделано. Да и честно говоря "политически корректно" грузить из 1С/bin - сам своими руками положил - значит знаешь что делаешь. |
|||
136
Garykom
03.05.24
✎
18:07
|
(135) лучше объясни зачем?
зачем нужна эта твоя ESB? какие у нее преимущества (про недостатки уже понятно) относительно классических ВК? |
|||
137
Фрикаделъ
03.05.24
✎
18:15
|
(134) Садись, два. Думать надо прежде чем отвечать.
|
|||
138
Garykom
03.05.24
✎
18:16
|
(137) Понятно, физику ты прогулял в школе
Оказывается математику тоже |
|||
139
int32i
03.05.24
✎
18:19
|
(136) Расширение круга задач решаемых приложениями на базе платформы 1С.
1. Классические ВК очень существенно ограничены по типам данных передаваемых туда-сюда. Соответственно одно из достоинств с/с++ как великолепной числодробилки для 1С недоступно - данных тупо нет. Есб позволяет практически без ограничений обмениваться с компонентой любыми данным используемыми в языке 1С. 2. Классические ВК не могут привнести что-то в платформу. Есб позволяет разрабатывать новые объекты и регистрировать их в платформе. Далее см. пункт 1) Есб не в состоянии привнести что-то в бухгалтерию. В ней 1С уже все сказала. Есб - это инструмент будущего. |
|||
140
Фрикаделъ
03.05.24
✎
18:19
|
(138) Кто бы говорил.
|
|||
141
Garykom
03.05.24
✎
18:25
|
(139) 1. Ты забываешь про преобразование из типов данных 1С в типы внутри ВК
Это все равно придется делать или писать свои методы (что сложно) внутри ВК или твоей ESB для работы с типами данных 1С напрямую А это тот же лисапед только сбоку 2. Зачем? В смысле ладно ок добавили в платформу свои объекты и полноценное ООП. А оно не кроссплатформенное, и привязано к версии платформы 1С и твоей ESB. Любая типовая конфа постоянно обновляется (требует обновление платформы 1С) - все доработки на своих "новых объектах" идут лесом-полем. |
|||
142
Garykom
03.05.24
✎
18:28
|
(141)+ для понимания
https://habr.com/ru/articles/216381/ так что лисапед в платформе 1С есть штатная и достаточно быстрая сериализация в json и обратно намного проще это использовать для обмена данными с ВК а json де факто стандарт и легко перевести на http-сервисы |
|||
143
int32i
03.05.24
✎
18:58
|
(141) Ваш п. 1) "Методы для типов данных"
Полностью реализовано. С точностью до огрехов. Даже говорить не о чем, т.к. Вы код не не смотрели. По п.2) "Переносимость" Пока нет, но поскольку и я и разработчики Платформы стараются скрупулезно придерживаться стандарта с++, то Переносимость это просто вопрос времени. По п.2.1) "Обновление типовой конфы" Меня совершенно не интересует "типовая конфа для бух-100500". Есб предназначено для скажем "УправленияПрокатнымСтаном на Новолипецком НЛМК", ну и т.п. ПС. Относительно "быстрой сериализации JSON", спасибо - я посмеялся. |
|||
144
Garykom
03.05.24
✎
19:01
|
(143) >Полностью реализовано. С точностью до огрехов.
Ты спионерил исходный код из команды разработки платформы 1С ? |
|||
145
int32i
03.05.24
✎
19:11
|
(144) Максимально используются родные публичные методы типов данных, которые "торчат" из core83.dll.
К слову, как реализован скажем Numeric, я даже не знаю. Я знаю что есть публичный operator+() для сложения и его использую. Там где такое невозможно все переписано с исправлением ошибок и недочетов, где они были замечены. ПС. Все "переписанное" в публичной части. Можете провести аудит кода. Только спасибо скажу. |
|||
146
Garykom
03.05.24
✎
19:25
|
(145) Эмм.
С чего вызов методов (ВК) из core83.dll лучше или быстрей чем делать тоже самое на ЯП 1С? Я подразумевал вот есть массив 1С, там допустим строки Есть vector<string> C++ И вот сортировка массива 1С допустим медленная а на C++ быстрая Хотим воспользоваться C++ но сначала надо преобразовать одно (тип данных 1С) в другое (тип данных C++) И? Чем ESB поможет? |
|||
147
Garykom
03.05.24
✎
19:27
|
(146)+ Пример с массив чисто условный
На практике важней работа с ТЗ, быстро конвертировать данные из ТЗ 1С в нечто на С++, там как то обработать и обратно в ТЗ 1С |
|||
148
Garykom
03.05.24
✎
19:28
|
(147)+ Упрощаем задачу, считаем что в ТЗ 1С только простые типы, например полученные запросом
|
|||
149
int32i
03.05.24
✎
19:44
|
(148)
/// Есб. О результатах тестирования быстродействия. https://docs.google.com/document/d/1elL7J8KbqKLaciR9iZ_9AZpFdWPSr0_QpWigUtEPEcQ /// Сортировку массива по-всякому я делал в самом начале для очерчивания круга применимости технологии. ///На практике важней работа с ТЗ.. Так передай в компоненту ТЗ. Не надо ничего конвертировать. ПС. Архитектура Есб это отдельная интересная тема. К слову я вроде как должен был ее докладывать на с++ секции Питерского ITGM завтра, но не срослось - "У тебя проект интересный, но..., возможно потом". Но доклад в общих чертах подготовлен и есть мысль его все же сделать в уютном Питерском подвальчике для IT-шников недалеко от Московского вокзала. |
|||
150
Garykom
03.05.24
✎
20:24
|
(149) Я ему про Фому он про Ерёму...
Ну передал ты ТЗ в ВК дальше то что? Методами C++ без вызовов методов 1С как с ней работать? А если вызывать методы 1С - нафуй она нужна эта ESB ВК, когда можно сразу кодом 1С в самой 1С с ТЗ работать? |
|||
151
Asmody
модератор
03.05.24
✎
20:52
|
(133)
иди этим ребятам объясняй в чём они неправы wiki:Доказательство_иррациональности_π а потом купи гуся |
|||
152
int32i
03.05.24
✎
21:39
|
(150) Уважаемый!
Для Вас ясно написано: /// Ну и самый последний (или первый) результат -«Массив std_sort(как вектор)», где мы перебрасываем 1С-Значение в с++ вектор и его используем для сортировки, быстрее чем 1С в 9455.7 раза. Даже затрудняюсь как-то комментировать. /// Я начал разрабатывать Есб продолжая свой проект компилятора 1С (на инфостарте анонс от хз.. затертого года). Я учел и много нюансов. Я действительно пришел к выводу (который в там в бумаге есть), что тупо откомпилировать 1С код не есть целесообразно. 1С-код всегда останется 1С-кодом как его не компилируй. Определенный плюс есть, но не качественный на фоне проблем бинарной совместимости. НО! К 1С-данным можно применять серьезные промышленные алгоритмы с++ и при этом выигрыш уже становится ну оочень ощутимым и это игнорировать нельзя. |
|||
153
Garykom
03.05.24
✎
21:43
|
(152) Перебрасываешь? Длинные строки (или специфические 1С типы)? В UTF8?
|
|||
154
int32i
03.05.24
✎
22:00
|
(153) Там сортируется массив типа Число.
Но это не суть важно. Все "типы данных" 1С - это Com (точнее SCom) объекты. "Переброс" массива данных 1С в с++ вектор фактически означает копирование указателя и вызов .AddRef(), т.е. практически ничего не стоит. Но со своим родным std::vector c++ умеет работать так, что и не снилось. ПС. Строки у 1С до v8.10 включительно wchar_t, после char16_t. В общем можно считать UTF16, точнее UCS2. Их конкретно я не тестировал - не вижу смысла - результат будет похожим. ППС. UTF8 органически не перевариваю - это не контейнер с произвольным доступом из элементов "символ". Это хрен пойми что пакованное. Я с тем же успехом могу LZW-строку придумать. |
|||
155
int32i
03.05.24
✎
22:03
|
ПППС. Для строк ситуация будет еще хуже, т.к. платформа для каждого сравнения строк отдельно получает экземпляр ICU-Конвертера, а он прикрыт мьютексом. Соответственно сколько сравнений - столько захватов мьютекса.
У меня ICU-Конвертер для Есб кэшируется - она однопоточная. |
|||
156
Garykom
03.05.24
✎
22:08
|
(154) >UTF8 органически не перевариваю
Переменное кодирование, ничего сложного Я к чему про него, потому что очень часто сейчас именно UTF8 применяется Например некая внешняя СУБД или сервис, и придется туды-сюды Вот делаешь например ВК - http-сервер, чтобы можно было внешние подключения ловить на клиенте 1С или без публикации на веб-сервере А там опс и UTF8 Или запросы к внешней СУБД через ВК или еще что |
|||
157
int32i
03.05.24
✎
22:34
|
(156) Ну а у меня, как тут выразились "сиплюсплюс головного мозга".
Вы не представляете сколько гимора UTF8 дает лексеру, парсеру, прочей обработке строк.. Я строки обрабатываю, а не "отфутболиваю" как в Вебе принято. К слову все .Net и сервисы языков Visual Studio постороены на UTF16 и только на UTF16. "Автомобиль может быть любого цвета, пока он черный." (С) Генри Форд. |
|||
158
palsergeich
04.05.24
✎
02:46
|
Инструмент то может быть хороший, а какую задачу им можно решить?
В голову приходит только задачи класса расчет себестоимости, прогноз продаж|ассортимента, раскрой, ну и что то типо задача рюкзака. Что получит бизнес: библиотеку, которую в случае чего надо поддерживать самому или не обновляться. Как владелец легаси с исторической компонентой (куда как более примитивной и совсем другой задачей), и исходниками от нее, но полным отсутствием человека с с++ головного мозга, я испытал кучу попаболи когда пришлось от нее отказываться так как на старших версиях винды она не работает, а терминалы обновить надо. Пока не будет конкретной прикладной задачи с помощью которой можнобудет решить какой то насущный бизнес вопрос, цена решения которого другими способами будет выше и можно будет рискнуть - дальше пет проекта перспективы туманные, если честно |
|||
159
Кирпич
04.05.24
✎
07:42
|
(158) Да не нужно это никому. Единственная польза - автор начнет что то понимать в с++ и может потом на работу устроится. А практического применения нет никакого.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |