Имя: Пароль:
JOB
Обучение
Как начать писать код на с++ для 1С
,
0 int32i
 
28.04.24
16:39
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
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) Да не нужно это никому. Единственная польза - автор начнет что то понимать в с++ и может потом на работу устроится. А практического применения нет никакого.