├── .gitattributes
├── .gitignore
├── change-log.txt
├── demo
├── .gitignore
├── 1C
│ └── 1Cv8.1CD
├── demo_dev.cpp
├── dllmain.cpp
├── esb_app_config.h
├── esb_demo.sln
├── esb_demo.vcxproj
└── esb_demo.vcxproj.filters
├── emitter
└── Platform
│ ├── v8.3.09
│ ├── dilib830000000.dat32
│ └── elib.dat32
│ └── v8.3.22
│ ├── dilib832300000.dat32
│ └── elib.dat32
├── esb-license.txt
├── esb_studio
├── EsbStudio.vsix_
├── EsbStudio
│ ├── EsbProjectTemplateWizardImplementation.cs
│ ├── EsbProjectTemplateWizardPackage.cs
│ ├── EsbStudio.csproj
│ ├── EsbStudio.sln
│ ├── ProjectTemplateFiles
│ │ ├── 1s_files
│ │ │ ├── CommonModules
│ │ │ │ ├── EsbCommon.xml
│ │ │ │ ├── EsbCommon
│ │ │ │ │ └── Ext
│ │ │ │ │ │ └── Module.bsl
│ │ │ │ ├── EsbComponent.xml
│ │ │ │ ├── EsbComponent
│ │ │ │ │ └── Ext
│ │ │ │ │ │ └── Module.bsl
│ │ │ │ ├── EsbManager.xml
│ │ │ │ └── EsbManager
│ │ │ │ │ └── Ext
│ │ │ │ │ └── Module.bsl
│ │ │ ├── Configuration.xml
│ │ │ ├── Ext
│ │ │ │ └── OrdinaryApplicationModule.bsl
│ │ │ └── Languages
│ │ │ │ └── Русский.xml
│ │ ├── EsbProjectTemplate.vstemplate
│ │ ├── _1s_create.cmd
│ │ ├── _1s_run.cmd
│ │ ├── _esb_1s_property_page_schema.xml
│ │ ├── _esb_props_ui.xml
│ │ ├── directory.build.props
│ │ ├── directory.build.targets
│ │ ├── dllmain.cpp
│ │ ├── esb.h
│ │ ├── esb_app_config.h
│ │ ├── esb_proj_template.jpg
│ │ ├── esb_studio_readme.txt
│ │ ├── esb_template.vcxproj
│ │ ├── esb_template.vcxproj.filters
│ │ └── esbmain.cpp
│ ├── ProjectTemplateMaker
│ │ ├── App.config
│ │ ├── FrmMaker.Designer.cs
│ │ ├── FrmMaker.cs
│ │ ├── FrmMaker.resx
│ │ ├── Program.cs
│ │ ├── ProjectTemplateMaker.csproj
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ └── proj_template_copy.sln
│ ├── ProjectTemplateVCProject
│ │ ├── 1s_files
│ │ │ ├── CommonModules
│ │ │ │ ├── EsbCommon.xml
│ │ │ │ ├── EsbCommon
│ │ │ │ │ └── Ext
│ │ │ │ │ │ └── Module.bsl
│ │ │ │ ├── EsbComponent.xml
│ │ │ │ ├── EsbComponent
│ │ │ │ │ └── Ext
│ │ │ │ │ │ └── Module.bsl
│ │ │ │ ├── EsbManager.xml
│ │ │ │ └── EsbManager
│ │ │ │ │ └── Ext
│ │ │ │ │ └── Module.bsl
│ │ │ ├── Configuration.xml
│ │ │ ├── Ext
│ │ │ │ └── OrdinaryApplicationModule.bsl
│ │ │ └── Languages
│ │ │ │ └── Русский.xml
│ │ ├── _1s_create.cmd
│ │ ├── _1s_run.cmd
│ │ ├── _esb_1s_property_page_schema.xml
│ │ ├── _esb_props_ui.xml
│ │ ├── directory.build.props
│ │ ├── directory.build.targets
│ │ ├── dllmain.cpp
│ │ ├── esb.h
│ │ ├── esb_app_config.h
│ │ ├── esb_proj_template.jpg
│ │ ├── esb_studio_readme.txt
│ │ ├── esb_template.sln
│ │ ├── esb_template.vcxproj
│ │ ├── esb_template.vcxproj.filters
│ │ ├── esbmain.cpp
│ │ ├── vstemplate._vstemplate
│ │ └── vstemplate._vstemplate_lst
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── WizardForm.cs
│ ├── WizardForm.designer.cs
│ ├── WizardForm.resx
│ ├── WizardForm
│ │ ├── App.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── esb_proj_template_dialog.csproj
│ │ ├── esb_proj_template_dialog.sln
│ │ └── packages.config
│ ├── app.cs
│ ├── esb_studio_key.snk
│ ├── esb_studio_outfile.key
│ ├── esb_studio_snk.snk
│ ├── esb_studio_snk.txt
│ ├── esb_studio_snk_outfile.key
│ └── source.extension.vsixmanifest
├── EslLanguage.vsix_
└── EslLanguage
│ ├── EslGrammar
│ ├── EslContextHelpers.cs
│ ├── EslContext_Esb.cs
│ ├── EslContext_Global.cs
│ ├── EslDeclarations.cs
│ ├── EslEngine.cs
│ ├── EslEngineUI.cs
│ ├── EslGrammar.cs
│ ├── EslHashSet.cs
│ ├── EslLanguageService.cs
│ ├── EslParse.cs
│ ├── EslParseOn.cs
│ ├── EslParseResult.cs
│ ├── EslParseSink.cs
│ ├── EslSource.cs
│ ├── EslTokenizer.cs
│ └── EslTypeSystem.cs
│ ├── EslLanguage.csproj
│ ├── EslLanguage.sln
│ ├── EslLanguagePackage.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── _test
│ └── EslApplicationModule.esl
│ └── source.extension.vsixmanifest
├── include
└── esb
│ ├── 1c
│ ├── 1c_api.h
│ ├── 1c_api_native.h
│ ├── 1c_api_providers.h
│ ├── 1c_data.h
│ ├── 1c_file.h
│ ├── v8309
│ │ ├── es1_all.def.h
│ │ ├── es1_api.h
│ │ ├── es1_api_providers.def
│ │ ├── es1_api_providers.def.h
│ │ ├── es1_api_providers.h
│ │ ├── es1_base.def
│ │ ├── es1_base.def.h
│ │ ├── es1_data.def
│ │ ├── es1_data.def.h
│ │ ├── es1_data.h
│ │ ├── es1_file.def
│ │ ├── es1_file.def.h
│ │ ├── es1_file.h
│ │ ├── es1_main.def
│ │ ├── es1_main.def.h
│ │ ├── es1_main.h
│ │ ├── esdisp.h
│ │ ├── esdisp_all.h
│ │ ├── esdisp_api.h
│ │ ├── esdisp_base.h
│ │ ├── esdisp_data.h
│ │ ├── esdisp_file.h
│ │ └── esdisp_main.h
│ └── v8323
│ │ ├── es1_all.def.h
│ │ ├── es1_api.h
│ │ ├── es1_api_providers.def
│ │ ├── es1_api_providers.def.h
│ │ ├── es1_api_providers.h
│ │ ├── es1_base.def
│ │ ├── es1_base.def.h
│ │ ├── es1_data.def
│ │ ├── es1_data.def.h
│ │ ├── es1_data.h
│ │ ├── es1_file.def
│ │ ├── es1_file.def.h
│ │ ├── es1_file.h
│ │ ├── es1_main.def
│ │ ├── es1_main.def.h
│ │ ├── es1_main.h
│ │ ├── esdisp.h
│ │ ├── esdisp_all.h
│ │ ├── esdisp_api.h
│ │ ├── esdisp_base.h
│ │ ├── esdisp_data.h
│ │ ├── esdisp_file.h
│ │ └── esdisp_main.h
│ ├── afx
│ ├── afx_base.h
│ ├── afx_meta_fields.h
│ ├── afx_pp.h
│ ├── afx_serialize.h
│ ├── afx_tuple.h
│ ├── afx_ustring.h
│ └── afx_util.h
│ ├── es1addin.h
│ ├── es1addin_v8300
│ ├── AddInDefBase.h
│ ├── ComponentBase.h
│ ├── IMemoryManager.h
│ ├── MANIFEST.xsd
│ ├── NPAPILib.h
│ ├── addin.idl
│ ├── com.h
│ └── types.h
│ ├── es1addin_v8311
│ ├── AddInDefBase.h
│ ├── ComponentBase.h
│ ├── IAndroidComponentHelper.h
│ ├── IMemoryManager.h
│ ├── MANIFEST.xsd
│ ├── addin.idl
│ ├── addinlib.h
│ ├── com.h
│ ├── mobile.h
│ └── types.h
│ ├── esb.h
│ ├── esb_base.h
│ ├── esb_base_helpers.h
│ ├── esb_config.h
│ ├── esb_config_base.h
│ ├── esb_core.h
│ ├── esb_core_interface.h
│ ├── esb_errors.h
│ ├── esb_ext.h
│ ├── esb_meta.h
│ ├── esb_pragmas.h
│ ├── esb_util.h
│ ├── esb_winmin.h
│ ├── esb_winmincom.h
│ ├── esbldr.h
│ └── esbldr_component_cpp.h
├── lib
├── clean_all.cmd
├── v8309Debug
│ ├── w32
│ │ └── esbhlp.lib
│ └── w64
│ │ └── esbhlp.lib
├── v8309Release
│ ├── w32
│ │ └── esbhlp.lib
│ └── w64
│ │ └── esbhlp.lib
├── v8323Debug
│ ├── w32
│ │ └── esbhlp.lib
│ └── w64
│ │ └── esbhlp.lib
└── v8323Release
│ ├── w32
│ └── esbhlp.lib
│ └── w64
│ └── esbhlp.lib
└── readme.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/change-log.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/change-log.txt
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | *test*.txt
2 | esb_app_config.h
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/demo/1C/1Cv8.1CD:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/demo/1C/1Cv8.1CD
--------------------------------------------------------------------------------
/demo/demo_dev.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/demo/demo_dev.cpp
--------------------------------------------------------------------------------
/demo/esb_app_config.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef ESB_APP_CONFIG_H_
3 | #define ESB_APP_CONFIG_H_
4 |
5 | // Данный файл описывает конфигурацию Вашего ЕСБ-приложения. Он должен быть включен до включения esb.h
6 | // (или, если этот файл доступен для включения из esb_config.h подключит его сам. см. esb_config.h)
7 |
8 |
9 | // Версия платформы (и есб соответственно) (допустимые значения 8300, 8311, 8320, 8323)
10 | // Вы можете указать ее здесь принудительно иначе esb_app.h настроит последнюю доступную (8323).
11 | // (для esb_demo указывается в свойствах проекта)
12 | #ifndef ESB_VER
13 | # define ESB_VER 8309
14 | #endif
15 |
16 |
17 |
18 | // Контролирует принудительное конструирование есб-строки String из с++ строки
19 | // Необходимо помнить, что любое создание есб-строки - это создание строки в пуле памяти 1С и по возможности избегать лишней нагрузки на память
20 | #define ESB_USE_EXPLICIT_STRING 1
21 |
22 | // То же самое для есб-числа. Любое есб-число это нетривиальный объект 1С, который также конструируется платформой.
23 | // Если не контролировать его создание, то очень легко даже не желая того перегрузить пул памяти 1С, т.к. в с++ числа используются очень часто, много
24 | // и обычно в с++ Вы не задумываетесь когда пишете 2+2.
25 | #define ESB_USE_EXPLICIT_NUMERIC 0
26 |
27 | // Экспериментальная функция разрешения диспатч имен в идентификаторы методов из с++ строки, а не 1С строки (т.е. без лишних аллокаций)
28 | // (при странном и неадекватном поведении можно отключить)
29 | #define ESB_USE_OBJECT_DISPATCH_FIND_STRVIEW_HACK 1
30 |
31 | // Экспериментальный прямой доступ к содержимому BinaryDataBuffer минуя диспатч интерфейс. Только для для v8300. (см.esb_es_file.h::BinaryDataBuffer)
32 | // Точно работает в 8.3.9.1818 х86, 8.3.10.2772 х64, 8.3.11.2831 х86
33 | // Точно не работает в 8.3.23.1688
34 | // Видимо изменения были где-то между 8.3.11.2831 и 8.3.23.1688, но когда точно - неизвестно. Нужно экспериментировать и проверять.
35 | #define ESB_USE_BYTEBUFFER_DIRECT_HACK_v8300 0
36 |
37 | // Для демонстрации возможности есб-по-русски.
38 | #define ESB_USE_RUSSIAN 1
39 |
40 | // По умолчанию конфигурация есб не подключает АПИ платформы. При желании нужно указать это. Также можно подключать АПИ отдельно по каждому провайдеру.
41 | #define ESB_USE_API_ALL 1
42 |
43 | // для использования ЕСБ как SCOM модуля или подключайте компоненту из bin директории 1С (Вы должны иметь права на доступ к этой директории!),
44 | // или используйте закгрузку при помощи ms-detours (это удобно для отладочных сборок, но категорически не рекомендуется для релиза)
45 | // (вам нужно скачать его из https://github.com/microsoft/Detours, скомпилировать для Вашего компьютера и прописать в ESB_USE_DETOUR_PATH ваш путь к библиотеке)
46 | // использование ЕСБ не как SCOM модуль, а как объект компоненты также возможно, но нужно внимательно следить чтобы все объекты созданные и запомненные
47 | // в глобальных переменных 1С были освобождены до освобождения самого объекта ЕСБ и сама переменная хранящая объект ЕСБ была очищена в
48 | // Процедуре ПриЗавершенииРаботыСистемы().
49 | #define ESB_USE_DETOUR 1
50 | #define ESB_USE_DETOUR_PATH ../../../$cpp/ms-detours/detours
51 |
52 | #endif //ESB_APP_CONFIG_H_
--------------------------------------------------------------------------------
/demo/esb_demo.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32407.337
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esb_demo", "esb_demo.vcxproj", "{F4504887-A8AB-48BA-AB37-1B7761E80AD3}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | v8309Debug|x64 = v8309Debug|x64
11 | v8309Debug|x86 = v8309Debug|x86
12 | v8309Release|x64 = v8309Release|x64
13 | v8309Release|x86 = v8309Release|x86
14 | v8311Debug|x64 = v8311Debug|x64
15 | v8311Debug|x86 = v8311Debug|x86
16 | v8311Release|x64 = v8311Release|x64
17 | v8311Release|x86 = v8311Release|x86
18 | v8320Debug|x64 = v8320Debug|x64
19 | v8320Debug|x86 = v8320Debug|x86
20 | v8320Release|x64 = v8320Release|x64
21 | v8320Release|x86 = v8320Release|x86
22 | v8323Debug|x64 = v8323Debug|x64
23 | v8323Debug|x86 = v8323Debug|x86
24 | v8323Release|x64 = v8323Release|x64
25 | v8323Release|x86 = v8323Release|x86
26 | EndGlobalSection
27 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
28 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Debug|x64.ActiveCfg = v8309Debug|x64
29 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Debug|x64.Build.0 = v8309Debug|x64
30 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Debug|x86.ActiveCfg = v8309Debug|Win32
31 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Debug|x86.Build.0 = v8309Debug|Win32
32 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Release|x64.ActiveCfg = v8309Release|x64
33 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Release|x64.Build.0 = v8309Release|x64
34 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Release|x86.ActiveCfg = v8309Release|Win32
35 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8309Release|x86.Build.0 = v8309Release|Win32
36 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Debug|x64.ActiveCfg = v8311Debug|x64
37 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Debug|x64.Build.0 = v8311Debug|x64
38 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Debug|x86.ActiveCfg = v8311Debug|Win32
39 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Debug|x86.Build.0 = v8311Debug|Win32
40 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Release|x64.ActiveCfg = v8311Release|x64
41 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Release|x64.Build.0 = v8311Release|x64
42 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Release|x86.ActiveCfg = v8311Release|Win32
43 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8311Release|x86.Build.0 = v8311Release|Win32
44 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Debug|x64.ActiveCfg = v8320Debug|x64
45 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Debug|x64.Build.0 = v8320Debug|x64
46 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Debug|x86.ActiveCfg = v8320Debug|Win32
47 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Debug|x86.Build.0 = v8320Debug|Win32
48 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Release|x64.ActiveCfg = v8320Release|x64
49 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Release|x64.Build.0 = v8320Release|x64
50 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Release|x86.ActiveCfg = v8320Release|Win32
51 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8320Release|x86.Build.0 = v8320Release|Win32
52 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Debug|x64.ActiveCfg = v8323Debug|x64
53 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Debug|x64.Build.0 = v8323Debug|x64
54 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Debug|x86.ActiveCfg = v8323Debug|Win32
55 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Debug|x86.Build.0 = v8323Debug|Win32
56 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Release|x64.ActiveCfg = v8323Release|x64
57 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Release|x64.Build.0 = v8323Release|x64
58 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Release|x86.ActiveCfg = v8323Release|Win32
59 | {F4504887-A8AB-48BA-AB37-1B7761E80AD3}.v8323Release|x86.Build.0 = v8323Release|Win32
60 | EndGlobalSection
61 | GlobalSection(SolutionProperties) = preSolution
62 | HideSolutionNode = FALSE
63 | EndGlobalSection
64 | GlobalSection(ExtensibilityGlobals) = postSolution
65 | SolutionGuid = {F133B475-76F0-4C52-B800-35E66FDC167E}
66 | EndGlobalSection
67 | EndGlobal
68 |
--------------------------------------------------------------------------------
/demo/esb_demo.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {35bbdc9b-fa28-4df5-9dfc-e7a14af09561}
18 |
19 |
20 | {af2f12ac-5b3d-4eb7-a328-210eada28f47}
21 |
22 |
23 | {a43a181c-f39c-46d3-ba03-9241c83a57b4}
24 |
25 |
26 |
27 |
28 | Исходные файлы
29 |
30 |
31 | Исходные файлы
32 |
33 |
34 |
35 |
36 | Файлы заголовков
37 |
38 |
39 | Файлы заголовков\1C-v8309
40 |
41 |
42 | Файлы заголовков\1C-v8309
43 |
44 |
45 | Файлы заголовков\1C-v8309
46 |
47 |
48 | Файлы заголовков\1C-v8309
49 |
50 |
51 | Файлы заголовков\1C-v8323
52 |
53 |
54 | Файлы заголовков\1C-v8323
55 |
56 |
57 | Файлы заголовков\1C-v8323
58 |
59 |
60 | Файлы заголовков\1C-v8323
61 |
62 |
63 | Файлы заголовков\esb
64 |
65 |
66 | Файлы заголовков\esb
67 |
68 |
69 | Файлы заголовков\esb
70 |
71 |
72 | Файлы заголовков\esb
73 |
74 |
75 | Файлы заголовков\esb
76 |
77 |
78 | Файлы заголовков\esb
79 |
80 |
81 | Файлы заголовков\esb
82 |
83 |
84 |
--------------------------------------------------------------------------------
/emitter/Platform/v8.3.09/dilib830000000.dat32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/emitter/Platform/v8.3.09/dilib830000000.dat32
--------------------------------------------------------------------------------
/emitter/Platform/v8.3.09/elib.dat32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/emitter/Platform/v8.3.09/elib.dat32
--------------------------------------------------------------------------------
/emitter/Platform/v8.3.22/dilib832300000.dat32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/emitter/Platform/v8.3.22/dilib832300000.dat32
--------------------------------------------------------------------------------
/emitter/Platform/v8.3.22/elib.dat32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/emitter/Platform/v8.3.22/elib.dat32
--------------------------------------------------------------------------------
/esb-license.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb-license.txt
--------------------------------------------------------------------------------
/esb_studio/EsbStudio.vsix_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio.vsix_
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/EsbProjectTemplateWizardPackage.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.Shell;
2 | using System;
3 | using System.Runtime.InteropServices;
4 | using System.Threading;
5 | using Task = System.Threading.Tasks.Task;
6 |
7 | //** Как пошаговое руководство использовал это. Все этапы в одном месте
8 | //** Use wizards with project templates
9 | //https://learn.microsoft.com/en-us/visualstudio/extensibility/how-to-use-wizards-with-project-templates?view=vs-2022
10 |
11 |
12 | //https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.asyncpackage?view=visualstudiosdk-2022
13 | // Хотя МС настаивает, что сейчас нужно делать ТОЛЬКО Асинх
14 | // но в документации для просто Package информации больше. Можно и что-то в своей ветке реестра создавать..
15 | //https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.package?view=visualstudiosdk-2022
16 |
17 | //Расширение Visual Studio не загружается в экспериментальном экземпляре
18 | //https://stackoverflow.com/questions/26961669/visual-studio-extension-does-not-load-in-experimental-instance
19 | //* Хрен пойми что написано, но вся инфа о "эксперементальной студии" в
20 | //* c:\Users\ИМЯ\AppData\Local\Microsoft\VisualStudio\16.0_87a5a19cExp
21 | //* где 16.0_87a5a19 собственно студия, а Exp суффикс указанный на вкладке ОТЛАДКА /rootsuffix Exp
22 | //* вроде говорят что эту папку можно даже полностью удалять - она пересоздастся - хз..
23 | //* но полностью очищать подпапку Extensions и удалять всякое ProjectTemplatesCache_{00000000-0000-0000-0000-000000000000}
24 | //* ПОМОГАЕТ
25 | //
26 | // Также можно открыть c:\Users\ИМЯ\AppData\Local\Microsoft\VisualStudio\16.0_87a5a19cExp\privateregistry.bin
27 | // в редакторе реестра (подключить ветвь и отключить не забыть) и что-то пытаться настраивать... хз - там 12 мегабайт всякого разного...
28 | //
29 |
30 |
31 |
32 | namespace EsbStudio
33 | {
34 | ///
35 | /// This is the class that implements the package exposed by this assembly.
36 | ///
37 | ///
38 | ///
39 | /// The minimum requirement for a class to be considered a valid package for Visual Studio
40 | /// is to implement the IVsPackage interface and register itself with the shell.
41 | /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
42 | /// to do it: it derives from the Package class that provides the implementation of the
43 | /// IVsPackage interface and uses the registration attributes defined in the framework to
44 | /// register itself and its components with the shell. These attributes tell the pkgdef creation
45 | /// utility what data to put into .pkgdef file.
46 | ///
47 | ///
48 | /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file.
49 | ///
50 | ///
51 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
52 | [Guid(EsbProjectTemplateWizardPackage.PackageGuidString)]
53 | public sealed class EsbProjectTemplateWizardPackage : AsyncPackage
54 | {
55 | ///
56 | /// EsbProjectTemplateWizardPackage GUID string.
57 | ///
58 | public const string PackageGuidString = "905087df-0172-4e78-96ff-249209ba9374";
59 |
60 | #region Package Members
61 |
62 | ///
63 | /// Initialization of the package; this method is called right after the package is sited, so this is the place
64 | /// where you can put all the initialization code that rely on services provided by VisualStudio.
65 | ///
66 | /// A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.
67 | /// A provider for progress updates.
68 | /// A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.
69 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
70 | {
71 | // When initialized asynchronously, the current thread may be a background thread at this point.
72 | // Do any initialization that requires the UI thread after switching to the UI thread.
73 | await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
74 |
75 | //VS.Events.SolutionEvents.OnAfterOpenProject += OnAfterOpenProject;
76 | }
77 |
78 | #endregion
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/EsbStudio.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32901.82
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EsbStudio", "EsbStudio.csproj", "{AE000EE0-4AC9-4582-A506-F177064FF9AC}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectTemplateMaker", "ProjectTemplateMaker\ProjectTemplateMaker.csproj", "{23E017EA-3582-41B0-BDA7-BED1854B66C7}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {AE000EE0-4AC9-4582-A506-F177064FF9AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {AE000EE0-4AC9-4582-A506-F177064FF9AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {AE000EE0-4AC9-4582-A506-F177064FF9AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {AE000EE0-4AC9-4582-A506-F177064FF9AC}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {E74D6553-D882-415C-8202-4AB19631069B}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/CommonModules/EsbCommon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbCommon
6 |
7 |
8 | ru
9 | ЕсбОбщий
10 |
11 |
12 |
13 | true
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/CommonModules/EsbComponent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbComponent
6 |
7 |
8 | ru
9 | ЕсбКомпонент
10 |
11 |
12 |
13 | false
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/CommonModules/EsbComponent/Ext/Module.bsl:
--------------------------------------------------------------------------------
1 | //EsbComponent
2 | //
3 |
4 | Функция ИмяФайлаКомпоненты() Экспорт
5 | Возврат "$safeprojectname$.dll";
6 | КонецФункции
7 | //
8 | Функция Загрузить(путь_к_файлу_компоненты_) Экспорт
9 | файл_компоненты = ПутьДостроить(путь_к_файлу_компоненты_, ИмяФайлаКомпоненты());
10 | возврат EsbManager.ЗагрузитьЕсбКомпоненту(файл_компоненты, __EsbComponent__, __EsbComponentObject__);
11 | КонецФункции
12 | //
13 | Процедура Выгрузить() Экспорт
14 | EsbManager.ВыгрузитьЕсбКомпоненту(__EsbComponent__, __EsbComponentObject__);
15 | КонецПроцедуры
16 | //
17 | Функция ЭтотКомпонент() экспорт
18 | возврат __EsbComponentObject__;
19 | КонецФункции
20 | ///////////////////////////////////////////////////////////////////////////////////////
21 |
22 | //
23 | Функция СтартТест() Экспорт
24 | сообщить("*----------------------------------------------------------------------");
25 | привет = ЭтотКомпонент().GetHellow();
26 | ЭтотКомпонент().СкажиПривет( привет );
27 | сообщить("*----------------------------------------------------------------------");
28 | ответ = Вопрос(привет + Символы.ПС + Символы.ПС + "Завершить тест???", РежимДиалогаВопрос.ОКОтмена);
29 | Если Ответ = КодВозвратаДиалога.ОК Тогда
30 | ЗавершитьРаботуСистемы(Ложь)
31 | КонецЕсли;
32 | возврат Истина;
33 | КонецФункции
34 |
35 |
36 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/CommonModules/EsbManager.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbManager
6 |
7 |
8 | ru
9 | ЕсбМенеджер
10 |
11 |
12 |
13 | false
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/CommonModules/EsbManager/Ext/Module.bsl:
--------------------------------------------------------------------------------
1 | //EsbManager
2 | //
3 |
4 | Функция ЗагрузитьЕсбКомпоненту(файл_компоненты_, out_EsbComponent__, out_EsbComponentObject__) Экспорт
5 | //
6 | Если НЕ ПодключитьВнешнююКомпонентуЕсб(файл_компоненты_) Тогда
7 | возврат Ложь;
8 | КонецЕсли;
9 |
10 | out_EsbComponent__ = Новый("AddIn.Esb.EsbComponent");
11 | если out_EsbComponent__ = Неопределено тогда
12 | сообщить("НЕ удалось создать компонент AddIn.Esb.EsbComponent!!!");
13 | возврат Ложь;
14 | иначе
15 | сообщить("компонент создан AddIn.Esb.EsbComponent");
16 | КонецЕсли;
17 |
18 | // Теперь собственно ЕСБ. Регистрация есб-объекта компоненты и создание его экземпляра
19 | сообщить("*----------------------------------------------------------------------");
20 | сообщить("* регистрация объекта EsbComponent");
21 | //
22 | Если out_EsbComponent__.RegisterAsSCOM() Тогда
23 | сообщить("Есб-Компонента успешно зарегистрирован как SCOM модуль.");
24 | ИначеЕсли out_EsbComponent__.Register() Тогда
25 | сообщить("Регистрация Есб-Компоненты как SCOM модуля недоступна или неуспешна.");
26 | сообщить("Объект Есб-Компоненты успешно зарегистрирован принудительно.");
27 | сообщить("(требуется корректная очистка в Процедуре ПриЗавершенииРаботыСистемы)");
28 | Иначе
29 | сообщить("Объект Есб-Компоненты не удалось зарегистрировать. Продолжение невозможно.");
30 | возврат Ложь;
31 | КонецЕсли;
32 |
33 | out_EsbComponentObject__ = Новый(Типа("EsbObject"));
34 | сообщить("EsbComponentObject объект успешно создан.");
35 |
36 | возврат Истина;
37 | КонецФункции
38 |
39 | //
40 | Процедура ВыгрузитьЕсбКомпоненту(in_out_EsbComponent_, in_out_EsbComponentObject_) Экспорт
41 | //
42 | Если in_out_EsbComponentObject_ <> Неопределено Тогда
43 | in_out_EsbComponentObject_ = Неопределено;
44 | Если in_out_EsbComponent_ <> Неопределено Тогда
45 | in_out_EsbComponent_.UnRegister();
46 | КонецЕсли;
47 | КонецЕсли;
48 | in_out_EsbComponent_ = Неопределено;
49 | КонецПроцедуры
50 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/Ext/OrdinaryApplicationModule.bsl:
--------------------------------------------------------------------------------
1 | // Обычное приложение
2 | // Режим использования синхронных вызовов расширений платформы и внешних компонент: ИСПОЛЬЗОВАТЬ
3 | // Режим совместимости - НЕ ИСПОЛЬЗОВАТЬ
4 |
5 |
6 | // Нам нужны экспортируемые переменные для работы с компонентой и ее есб-объектом
7 | Перем __EsbComponent__ экспорт;
8 | Перем __EsbComponentObject__ экспорт;
9 | //
10 |
11 |
12 | Процедура ПриНачалеРаботыСистемы()
13 | // Если проврка совместимости не нужна - просто замени 1 на 0
14 | Если 1 И НЕ ЕсбСовместимаяПлатформа() Тогда
15 | возврат;
16 | КонецЕсли;
17 |
18 | // Используется только для авто-запуска из конфигуратора, когда ПараметрЗапуска отсутствует
19 | __ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Истина;
20 | //__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Ложь; // просто "зеремь"/"отремь" чтобы получить нужный режим
21 |
22 | параметры_запуска = ПараметрЗапуска;
23 | путь_к_компоненте = "";
24 | Если параметры_запуска <> "" Тогда
25 | сообщить("ПараметрЗапуска: '" + параметры_запуска + "'");
26 | Если СтрНачинаетсяС(параметры_запуска, "--esbrun=") Тогда
27 | путь_к_компоненте = ПутьДостроить( ПутьНаУровеньВыше(ПутьККонфигурации()), ПутьБезПоследнегоРазделителя(Сред(параметры_запуска, 10)) );
28 | иначе
29 | Предупреждение("Неожидаемый ПараметрЗапуска:" + Символы.ПС +
30 | параметры_запуска + Символы.ПС + Символы.ПС +
31 | "Ожидается '--esbrun=<путь_к_есб_компоненте>'. Продолжение работы невозможно");
32 | ЗавершитьРаботуСистемы(ложь);
33 | КонецЕсли;
34 | иначе
35 | сообщить("ПараметрЗапуска отсутствует. Загрузка Есб-Компонента для отладки по-умолчанию.");
36 | путь_к_компоненте = ЕсбПутьДляОтладки(__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__);
37 | КонецЕсли;
38 |
39 |
40 | Если EsbComponent.Загрузить(путь_к_компоненте) тогда
41 | EsbComponent.СтартТест();
42 | КонецЕсли;
43 | КонецПроцедуры
44 |
45 |
46 | Процедура ПриЗавершенииРаботыСистемы ()
47 | //!!! ОЧЕНЬ ВАЖНО, ЕСЛИ ЗАГРУЖАЕМСЯ НЕ КАК SCOM-Модуль !!!
48 | EsbComponent.Выгрузить();
49 | КонецПроцедуры
50 |
51 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/1s_files/Languages/Русский.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Русский
6 |
7 |
8 | ru
9 | Русский
10 |
11 |
12 |
13 | ru
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/EsbProjectTemplate.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EsbStudio C++ component for 1C(tm)
5 | Шаблон C++ Есб-Компоненты для 1С
6 | esb_proj_template.jpg
7 | VC
8 | cpp
9 | 1C Enterprise
10 | windows
11 | desktop
12 | 1000
13 | 41d73f2d-df50-468a-85a0-90461f994a40
14 |
16 | true
17 | EsbComponent
18 | true
19 |
20 |
21 |
22 |
23 |
24 |
25 | directory.build.props
26 | directory.build.targets
27 | dllmain.cpp
28 | esb.h
29 | esbmain.cpp
30 | esb_app_config.h
31 | esb_studio_readme.txt
32 | esb_template.vcxproj
33 | esb_template.vcxproj.filters
34 | _esb_1s_property_page_schema.xml
35 | _esb_props_ui.xml
36 |
37 |
38 |
39 | Configuration.xml
40 |
41 | EsbCommon.xml
42 | EsbComponent.xml
43 | EsbManager.xml
44 |
45 |
46 | Module.bsl
47 |
48 |
49 |
50 |
51 | Module.bsl
52 |
53 |
54 |
55 |
56 | Module.bsl
57 |
58 |
59 |
60 |
61 | OrdinaryApplicationModule.bsl
62 |
63 |
64 | Русский.xml
65 |
66 |
67 |
68 |
69 |
70 | EsbStudio, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=5af9f167dd3f4af2
71 | EsbStudio.EsbProjectTemplateWizardImplementation
72 |
73 |
80 | \1s;_1s_create.cmd;_esb_1s_property_page_schema.xml;_1s_run.cmd;directory.build.props;directory.build.targets;_esb_props_ui.xml;esb_studio_readme.txt;\1s_files;1s_files\Configuration.xml;\1s_files\Languages;1s_files\Languages\Русский.xml;\1s_files\CommonModules;1s_files\CommonModules\EsbCommon.xml;1s_files\CommonModules\EsbComponent.xml;1s_files\CommonModules\EsbManager.xml
81 |
82 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/_1s_create.cmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateFiles/_1s_create.cmd
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/_1s_run.cmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateFiles/_1s_run.cmd
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/_esb_1s_property_page_schema.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/_esb_props_ui.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
23 |
24 |
29 |
30 |
31 |
32 |
33 |
34 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
51 |
56 |
57 |
62 |
63 |
64 |
65 |
66 |
67 |
72 |
73 |
74 |
75 |
78 |
81 |
84 |
87 |
88 |
89 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // Для ЕСБ не требуется точка входа DllMain
2 | // Если это нужно Вашему проекту раскомментируйте этот блок и сделайте то что Вам нужно
3 | //
4 | #if 0
5 | #define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
6 | #define NOMINMAX
7 | // Файлы заголовков Windows
8 | #include
9 |
10 | // dllmain.cpp : Определяет точку входа для приложения DLL.
11 | BOOL APIENTRY DllMain( HMODULE hModule,
12 | DWORD ul_reason_for_call,
13 | LPVOID lpReserved
14 | )
15 | {
16 | switch (ul_reason_for_call)
17 | {
18 | case DLL_PROCESS_ATTACH:
19 | case DLL_THREAD_ATTACH:
20 | case DLL_THREAD_DETACH:
21 | case DLL_PROCESS_DETACH:
22 | break;
23 | }
24 | return TRUE;
25 | }
26 | #endif
27 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esb.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | // Перед включением заголовка ЕСБ в любой .cpp файл Вашего проекта необходимо включить
3 | // заголовок с Вашей конфигурацией для ЕСБ.
4 | #include "esb_app_config.h"
5 | #include "esb/esb.h"
6 |
7 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esb_app_config.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef ESB_APP_CONFIG_H_
3 | #define ESB_APP_CONFIG_H_
4 |
5 | // Данный файл описывает конфигурацию Вашего ЕСБ-приложения. Он должен быть включен до включения esb.h
6 | // (или, если этот файл доступен для включения из esb_config.h подключит его сам. см. esb_config.h)
7 |
8 |
9 | // Версия платформы (и есб соответственно) (допустимые значения 8300, 8311, 8320, 8323)
10 | // Вы можете указать ее здесь принудительно иначе esb_app.h настроит последнюю доступную (8323).
11 | // (для esb_demo указывается в свойствах проекта)
12 | #ifndef ESB_VER
13 | //# define ESB_VER 8309
14 | # error Esb version must be defined!
15 | #endif
16 |
17 |
18 | // Контролирует принудительное конструирование есб-строки String из с++ строки
19 | // Необходимо помнить, что любое создание есб-строки - это создание строки в пуле памяти 1С и по возможности избегать лишней нагрузки на память
20 | #ifndef ESB_USE_EXPLICIT_STRING
21 | # define ESB_USE_EXPLICIT_STRING 1
22 | #endif // !1
23 |
24 |
25 | // То же самое для есб-числа. Любое есб-число это нетривиальный объект 1С, который также конструируется платформой.
26 | // Если не контролировать его создание, то очень легко даже не желая того перегрузить пул памяти 1С, т.к. в с++ числа используются очень часто, много
27 | // и обычно в с++ Вы не задумываетесь когда пишете 2+2.
28 | #ifndef ESB_USE_EXPLICIT_NUMERIC
29 | # define ESB_USE_EXPLICIT_NUMERIC 0
30 | #endif // !1
31 |
32 |
33 | // Экспериментальная функция разрешения диспатч имен в идентификаторы методов из с++ строки, а не 1С строки (т.е. без лишних аллокаций)
34 | // (при странном и неадекватном поведении можно отключить)
35 | #ifndef ESB_USE_OBJECT_DISPATCH_FIND_STRVIEW_HACK
36 | # define ESB_USE_OBJECT_DISPATCH_FIND_STRVIEW_HACK 1
37 | #endif // !1
38 |
39 |
40 | // Экспериментальный прямой доступ к содержимому BinaryDataBuffer минуя диспатч интерфейс. Только для для v8300. (см.esb_es_file.h::BinaryDataBuffer)
41 | // Точно работает в 8.3.9.1818 х86, 8.3.10.2772 х64, 8.3.11.2831 х86
42 | // Точно не работает в 8.3.23.1688
43 | // Видимо изменения были где-то между 8.3.11.2831 и 8.3.23.1688, но когда точно - неизвестно. Нужно экспериментировать и проверять.
44 | #ifndef ESB_USE_BYTEBUFFER_DIRECT_HACK_v8300
45 | # define ESB_USE_BYTEBUFFER_DIRECT_HACK_v8300 0
46 | #endif // !1
47 |
48 |
49 | // Для демонстрации возможности есб-по-русски.
50 | #ifndef ESB_USE_RUSSIAN
51 | # define ESB_USE_RUSSIAN 1
52 | #endif // !1
53 |
54 |
55 | // По умолчанию конфигурация есб не подключает АПИ платформы. При желании нужно указать это. Также можно подключать АПИ отдельно по каждому провайдеру.
56 | #ifndef ESB_USE_API_ALL
57 | # define ESB_USE_API_ALL 1
58 | #endif // !1
59 |
60 |
61 | // для использования ЕСБ как SCOM модуля или подключайте компоненту из bin директории 1С (Вы должны иметь права на доступ к этой директории!),
62 | // или используйте закгрузку при помощи ms-detours (это удобно для отладочных сборок, но категорически не рекомендуется для релиза)
63 | // (вам нужно скачать его из https://github.com/microsoft/Detours, скомпилировать для Вашего компьютера и прописать в ESB_USE_DETOUR_PATH ваш путь к библиотеке)
64 | // использование ЕСБ не как SCOM модуль, а как объект компоненты также возможно, но нужно внимательно следить чтобы все объекты созданные и запомненные
65 | // в глобальных переменных 1С были освобождены до освобождения самого объекта ЕСБ и сама переменная хранящая объект ЕСБ была очищена в
66 | // Процедуре ПриЗавершенииРаботыСистемы().
67 | #ifndef ESB_USE_DETOUR
68 | # define ESB_USE_DETOUR 0
69 | # define ESB_USE_DETOUR_PATH ../../../$cpp/ms-detours/detours
70 | #endif // !1
71 |
72 |
73 | #endif //ESB_APP_CONFIG_H_
74 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esb_proj_template.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateFiles/esb_proj_template.jpg
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esb_studio_readme.txt:
--------------------------------------------------------------------------------
1 | ВАЖНО
2 | - Имя файла 1с-модуля должно быть АНГЛИЙСКИМ !!!
3 | !!! Иначе студия в .vcxproj и в .vcxproj.filters КАКУЮ-ТО ЕРЕСЬ пишет !!!
4 | !!! Нужно в M$ кляузу писать !!!
5 | Это именно про файл (напиример) EsbComponent.xml,
6 | его папку EsbComponent, и его запись в Configuration.xml EsbComponent
7 | А в самом файле можно написать ЕсбКомпонент и в 1С он будет по-русски
8 | Т.е. чтобы запись о файле в .vcxproj и в .vcxproj.filters была
9 |
10 |
11 | 1С Файлы\Общие модули\EsbComponent
12 |
13 |
14 | ПС. Хотя хз... раза три отработало, когда файл-по-английски, а имя-модуля-по-русски, а потом перестало...
15 | Что там в потрохах 1С творится - загадка великая..
16 | Все по-английски надежнее!
17 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esb_template.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
14 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
15 |
16 |
17 | {10e734ec-dc6d-41c5-8cc8-705c17653273}
18 |
19 |
20 | {c5ca8243-d55f-462d-bd2e-2d5ce7a240c9}
21 | bsl
22 |
23 |
24 | {22c6dd35-6592-4611-8bfa-794fd141f15b}
25 | bsl
26 |
27 |
28 | bsl
29 |
30 |
31 | bsl
32 |
33 |
34 |
35 |
36 | Файлы заголовков
37 |
38 |
39 | Файлы заголовков
40 |
41 |
42 |
43 |
44 | Исходные файлы
45 |
46 |
47 | Исходные файлы
48 |
49 |
50 |
51 |
52 | 1С Файлы\Общие модули
53 |
54 |
55 | 1С Файлы\Общие модули\EsbCommon
56 |
57 |
58 | 1С Файлы\Общие модули\EsbManager
59 |
60 |
61 | 1С Файлы\Общие модули\EsbComponent
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateFiles/esbmain.cpp:
--------------------------------------------------------------------------------
1 | // Подключаем базовый код ЕСБ
2 | #include "esb.h"
3 |
4 | // По умолчанию ЕСБ не подключает заголовки для создания классов и их дескрипторов
5 | // т.к. это не необходимо в каждом модуле Вашего проекта.
6 | // Но в модуле где декларируется собственно EsbComponentObject это нужно
7 | #include "esb/esb_ext.h"
8 |
9 | // Просто для удобства. Не всегда и не везде это нужно и безопасно.
10 | // В своих модулях пользуйтесь аккуратно.
11 | using namespace esb;
12 |
13 |
14 |
15 | //////////////////////////////
16 | // Функциональность компоненты
17 |
18 | String GetHellow() {
19 | return String(ESB_T("Привет мир 1C из мира C++ !!!"));
20 | }
21 |
22 | ///
23 | /// Выводит сообщение в окно сообщений
24 | ///
25 | ///
26 | void СкажиПривет(Строка сообщение_) {
27 | Сообщить(сообщение_);
28 | }
29 | //////////////////////////////
30 |
31 |
32 |
33 | // Теперь собственно интерфейс объекта, как его будет видеть 1С:
34 | // Имена (ен, ру) как его создавать через Новый, методы и свойства которые будут вызываться из кода 1С
35 | // Для объекта НЕОБХОДИМО создать новый уникальный идентификатор!
36 | // Если несколько есб компонент будут пытаться регистрироваться в 1С с одинаковыми идентификаторами и(или) именами
37 | // БУДЕТ ПЛОХО
38 | // Меню -> Средства -> СоздатьGUID -> ФорматРеестра (или иной строковый формат): {DEDE496C-E755-4598-BBB4-685C5247CFEC}
39 | // Копировать, вставить в кавычки {46EFE873-8489-4C02-8FC5-F95FFB941C70}
40 | //TODO ("EsbObject", "ЕсбОбъект") нужно переопределить как ("$esb_object_en$", "$esb_object_ru$"), и "Объект есб компоненты" тоже
41 | // но для этого нужно возиться с переименованиями 1С-папок, файлов и внутри тоже..
42 | ESB_ADDIN_INTERFACE("$guid2$", ("EsbObject", "ЕсбОбъект"), "Объект есб компоненты")
43 | ESB_META_INTERFACE_METH(
44 | ESB_META_INTERFACE_FREE_METH(GetHellow, "ДайПривет"),
45 | ESB_META_INTERFACE_FREE_METH(СкажиПривет, "SayHellow")
46 | );
47 | ESB_ADDIN_INTERFACE_DONE();
48 |
49 |
50 | // Здесь собственно создание примитивной 1С-компоненты с тремя методами Register, RegisterAsSCOM, Unregister
51 | // которые нужно вызвать из 1С для регистрации в среде 1С Вашего <ЕсбОбъект>
52 | // и последующего его создания как основного интерфейса есб-компоненты: __EsbComponentObject__ = Новый(Типа("EsbObject"));
53 | // у которого мы и будем вызывать __EsbComponentObject__.ДайПривет()
54 | // Имя компоненты всегда EsbComponent, т.к. в 1С оно не используется
55 | // (esbldr_component_cpp.h должен быть включен в проект только один раз!, это не заголовок, а кусочек .cpp)
56 | #include "esb/esbldr_component_cpp.h"
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/FrmMaker.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace EsbStudio
3 | {
4 | partial class Form1
5 | {
6 | ///
7 | /// Обязательная переменная конструктора.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Освободить все используемые ресурсы.
13 | ///
14 | /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Код, автоматически созданный конструктором форм Windows
25 |
26 | ///
27 | /// Требуемый метод для поддержки конструктора — не изменяйте
28 | /// содержимое этого метода с помощью редактора кода.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.bnMake = new System.Windows.Forms.Button();
33 | this.bnZip = new System.Windows.Forms.Button();
34 | this.bnMakeAndZip = new System.Windows.Forms.Button();
35 | this.SuspendLayout();
36 | //
37 | // bnMake
38 | //
39 | this.bnMake.Location = new System.Drawing.Point(218, 28);
40 | this.bnMake.Name = "bnMake";
41 | this.bnMake.Size = new System.Drawing.Size(115, 61);
42 | this.bnMake.TabIndex = 0;
43 | this.bnMake.Text = "Make";
44 | this.bnMake.UseVisualStyleBackColor = true;
45 | this.bnMake.Click += new System.EventHandler(this.bnMake_Click);
46 | //
47 | // bnZip
48 | //
49 | this.bnZip.Location = new System.Drawing.Point(339, 28);
50 | this.bnZip.Name = "bnZip";
51 | this.bnZip.Size = new System.Drawing.Size(110, 61);
52 | this.bnZip.TabIndex = 1;
53 | this.bnZip.Text = "Zip";
54 | this.bnZip.UseVisualStyleBackColor = true;
55 | this.bnZip.Click += new System.EventHandler(this.bnZip_Click);
56 | //
57 | // bnMakeAndZip
58 | //
59 | this.bnMakeAndZip.Location = new System.Drawing.Point(218, 95);
60 | this.bnMakeAndZip.Name = "bnMakeAndZip";
61 | this.bnMakeAndZip.Size = new System.Drawing.Size(231, 61);
62 | this.bnMakeAndZip.TabIndex = 2;
63 | this.bnMakeAndZip.Text = "MakeAndZip";
64 | this.bnMakeAndZip.UseVisualStyleBackColor = true;
65 | this.bnMakeAndZip.Click += new System.EventHandler(this.bnMakeAndZip_Click);
66 | //
67 | // Form1
68 | //
69 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
70 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
71 | this.ClientSize = new System.Drawing.Size(737, 198);
72 | this.Controls.Add(this.bnMakeAndZip);
73 | this.Controls.Add(this.bnZip);
74 | this.Controls.Add(this.bnMake);
75 | this.Name = "Form1";
76 | this.Text = "Form1";
77 | this.ResumeLayout(false);
78 |
79 | }
80 |
81 | #endregion
82 |
83 | private System.Windows.Forms.Button bnMake;
84 | private System.Windows.Forms.Button bnZip;
85 | private System.Windows.Forms.Button bnMakeAndZip;
86 | }
87 | }
88 |
89 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace EsbStudio
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Главная точка входа для приложения.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form1());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/ProjectTemplateMaker.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}
8 | WinExe
9 | proj_template_copy
10 | proj_template_copy
11 | v4.7.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | Form
52 |
53 |
54 | FrmMaker.cs
55 |
56 |
57 |
58 |
59 | FrmMaker.cs
60 |
61 |
62 | ResXFileCodeGenerator
63 | Resources.Designer.cs
64 | Designer
65 |
66 |
67 | True
68 | Resources.resx
69 |
70 |
71 | SettingsSingleFileGenerator
72 | Settings.Designer.cs
73 |
74 |
75 | True
76 | Settings.settings
77 | True
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | {ae000ee0-4ac9-4582-a506-f177064ff9ac}
86 | EsbStudio
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Общие сведения об этой сборке предоставляются следующим набором
6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений,
7 | // связанных со сборкой.
8 | [assembly: AssemblyTitle("proj_template_copy")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("proj_template_copy")]
13 | [assembly: AssemblyCopyright("Copyright © 2024")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через
19 | // COM, следует установить атрибут ComVisible в TRUE для этого типа.
20 | [assembly: ComVisible(false)]
21 |
22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
23 | [assembly: Guid("23e017ea-3582-41b0-bda7-bed1854b66c7")]
24 |
25 | // Сведения о версии сборки состоят из указанных ниже четырех значений:
26 | //
27 | // Основной номер версии
28 | // Дополнительный номер версии
29 | // Номер сборки
30 | // Редакция
31 | //
32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию
33 | // используя "*", как показано ниже:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Этот код создан программным средством.
4 | // Версия среды выполнения: 4.0.30319.42000
5 | //
6 | // Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
7 | // код создан повторно.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 |
12 | namespace EsbStudio.Properties
13 | {
14 | ///
15 | /// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
16 | ///
17 | // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
18 | // класс с помощью таких средств, как ResGen или Visual Studio.
19 | // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
20 | // с параметром /str или заново постройте свой VS-проект.
21 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
22 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
23 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
24 | internal class Resources
25 | {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources()
33 | {
34 | }
35 |
36 | ///
37 | /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
38 | ///
39 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
40 | internal static global::System.Resources.ResourceManager ResourceManager
41 | {
42 | get
43 | {
44 | if ((resourceMan == null))
45 | {
46 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("proj_template_copy.Properties.Resources", typeof(Resources).Assembly);
47 | resourceMan = temp;
48 | }
49 | return resourceMan;
50 | }
51 | }
52 |
53 | ///
54 | /// Переопределяет свойство CurrentUICulture текущего потока для всех
55 | /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
56 | ///
57 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
58 | internal static global::System.Globalization.CultureInfo Culture
59 | {
60 | get
61 | {
62 | return resourceCulture;
63 | }
64 | set
65 | {
66 | resourceCulture = value;
67 | }
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 |
12 | namespace EsbStudio.Properties
13 | {
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
17 | {
18 |
19 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
20 |
21 | public static Settings Default
22 | {
23 | get
24 | {
25 | return defaultInstance;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateMaker/proj_template_copy.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32901.82
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "proj_template_copy", "proj_template_copy.csproj", "{23E017EA-3582-41B0-BDA7-BED1854B66C7}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {23E017EA-3582-41B0-BDA7-BED1854B66C7}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {264B7330-A352-4EF3-88D1-4E3D6DC3C84B}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/CommonModules/EsbCommon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbCommon
6 |
7 |
8 | ru
9 | ЕсбОбщий
10 |
11 |
12 |
13 | true
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/CommonModules/EsbComponent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbComponent
6 |
7 |
8 | ru
9 | ЕсбКомпонент
10 |
11 |
12 |
13 | false
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/CommonModules/EsbComponent/Ext/Module.bsl:
--------------------------------------------------------------------------------
1 | //EsbComponent
2 | //
3 |
4 | Функция ИмяФайлаКомпоненты() Экспорт
5 | //vsix-template--: Возврат "esb_template.dll";
6 | //vsix-template++: Возврат "$safeprojectname$.dll";
7 | Возврат "esb_template.dll";
8 | КонецФункции
9 | //
10 | Функция Загрузить(путь_к_файлу_компоненты_) Экспорт
11 | файл_компоненты = ПутьДостроить(путь_к_файлу_компоненты_, ИмяФайлаКомпоненты());
12 | возврат EsbManager.ЗагрузитьЕсбКомпоненту(файл_компоненты, __EsbComponent__, __EsbComponentObject__);
13 | КонецФункции
14 | //
15 | Процедура Выгрузить() Экспорт
16 | EsbManager.ВыгрузитьЕсбКомпоненту(__EsbComponent__, __EsbComponentObject__);
17 | КонецПроцедуры
18 | //
19 | Функция ЭтотКомпонент() экспорт
20 | возврат __EsbComponentObject__;
21 | КонецФункции
22 | ///////////////////////////////////////////////////////////////////////////////////////
23 |
24 | //
25 | Функция СтартТест() Экспорт
26 | сообщить("*----------------------------------------------------------------------");
27 | привет = ЭтотКомпонент().GetHellow();
28 | ЭтотКомпонент().СкажиПривет( привет );
29 | сообщить("*----------------------------------------------------------------------");
30 | ответ = Вопрос(привет + Символы.ПС + Символы.ПС + "Завершить тест???", РежимДиалогаВопрос.ОКОтмена);
31 | Если Ответ = КодВозвратаДиалога.ОК Тогда
32 | ЗавершитьРаботуСистемы(Ложь)
33 | КонецЕсли;
34 | возврат Истина;
35 | КонецФункции
36 |
37 |
38 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/CommonModules/EsbManager.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbManager
6 |
7 |
8 | ru
9 | ЕсбМенеджер
10 |
11 |
12 |
13 | false
14 | false
15 | false
16 | false
17 | true
18 | false
19 | false
20 | DontUse
21 |
22 |
23 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/CommonModules/EsbManager/Ext/Module.bsl:
--------------------------------------------------------------------------------
1 | //EsbManager
2 | //
3 |
4 | Функция ЗагрузитьЕсбКомпоненту(файл_компоненты_, out_EsbComponent__, out_EsbComponentObject__) Экспорт
5 | //
6 | Если НЕ ПодключитьВнешнююКомпонентуЕсб(файл_компоненты_) Тогда
7 | возврат Ложь;
8 | КонецЕсли;
9 |
10 | out_EsbComponent__ = Новый("AddIn.Esb.EsbComponent");
11 | если out_EsbComponent__ = Неопределено тогда
12 | сообщить("НЕ удалось создать компонент AddIn.Esb.EsbComponent!!!");
13 | возврат Ложь;
14 | иначе
15 | сообщить("компонент создан AddIn.Esb.EsbComponent");
16 | КонецЕсли;
17 |
18 | // Теперь собственно ЕСБ. Регистрация есб-объекта компоненты и создание его экземпляра
19 | сообщить("*----------------------------------------------------------------------");
20 | сообщить("* регистрация объекта EsbComponent");
21 | //
22 | Если out_EsbComponent__.RegisterAsSCOM() Тогда
23 | сообщить("Есб-Компонента успешно зарегистрирован как SCOM модуль.");
24 | ИначеЕсли out_EsbComponent__.Register() Тогда
25 | сообщить("Регистрация Есб-Компоненты как SCOM модуля недоступна или неуспешна.");
26 | сообщить("Объект Есб-Компоненты успешно зарегистрирован принудительно.");
27 | сообщить("(требуется корректная очистка в Процедуре ПриЗавершенииРаботыСистемы)");
28 | Иначе
29 | сообщить("Объект Есб-Компоненты не удалось зарегистрировать. Продолжение невозможно.");
30 | возврат Ложь;
31 | КонецЕсли;
32 |
33 | out_EsbComponentObject__ = Новый(Типа("EsbObject"));
34 | сообщить("EsbComponentObject объект успешно создан.");
35 |
36 | возврат Истина;
37 | КонецФункции
38 |
39 | //
40 | Процедура ВыгрузитьЕсбКомпоненту(in_out_EsbComponent_, in_out_EsbComponentObject_) Экспорт
41 | //
42 | Если in_out_EsbComponentObject_ <> Неопределено Тогда
43 | in_out_EsbComponentObject_ = Неопределено;
44 | Если in_out_EsbComponent_ <> Неопределено Тогда
45 | in_out_EsbComponent_.UnRegister();
46 | КонецЕсли;
47 | КонецЕсли;
48 | in_out_EsbComponent_ = Неопределено;
49 | КонецПроцедуры
50 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/Ext/OrdinaryApplicationModule.bsl:
--------------------------------------------------------------------------------
1 | // Обычное приложение
2 | // Режим использования синхронных вызовов расширений платформы и внешних компонент: ИСПОЛЬЗОВАТЬ
3 | // Режим совместимости - НЕ ИСПОЛЬЗОВАТЬ
4 |
5 |
6 | // Нам нужны экспортируемые переменные для работы с компонентой и ее есб-объектом
7 | Перем __EsbComponent__ экспорт;
8 | Перем __EsbComponentObject__ экспорт;
9 | //
10 |
11 |
12 | Процедура ПриНачалеРаботыСистемы()
13 | // Если проврка совместимости не нужна - просто замени 1 на 0
14 | Если 1 И НЕ ЕсбСовместимаяПлатформа() Тогда
15 | возврат;
16 | КонецЕсли;
17 |
18 | // Используется только для авто-запуска из конфигуратора, когда ПараметрЗапуска отсутствует
19 | __ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Истина;
20 | //__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Ложь; // просто "зеремь"/"отремь" чтобы получить нужный режим
21 |
22 | параметры_запуска = ПараметрЗапуска;
23 | путь_к_компоненте = "";
24 | Если параметры_запуска <> "" Тогда
25 | сообщить("ПараметрЗапуска: '" + параметры_запуска + "'");
26 | Если СтрНачинаетсяС(параметры_запуска, "--esbrun=") Тогда
27 | путь_к_компоненте = ПутьДостроить( ПутьНаУровеньВыше(ПутьККонфигурации()), ПутьБезПоследнегоРазделителя(Сред(параметры_запуска, 10)) );
28 | иначе
29 | Предупреждение("Неожидаемый ПараметрЗапуска:" + Символы.ПС +
30 | параметры_запуска + Символы.ПС + Символы.ПС +
31 | "Ожидается '--esbrun=<путь_к_есб_компоненте>'. Продолжение работы невозможно");
32 | ЗавершитьРаботуСистемы(ложь);
33 | КонецЕсли;
34 | иначе
35 | сообщить("ПараметрЗапуска отсутствует. Загрузка Есб-Компонента для отладки по-умолчанию.");
36 | путь_к_компоненте = ЕсбПутьДляОтладки(__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__);
37 | КонецЕсли;
38 |
39 |
40 | Если EsbComponent.Загрузить(путь_к_компоненте) тогда
41 | EsbComponent.СтартТест();
42 | КонецЕсли;
43 | КонецПроцедуры
44 |
45 |
46 | Процедура ПриЗавершенииРаботыСистемы ()
47 | //!!! ОЧЕНЬ ВАЖНО, ЕСЛИ ЗАГРУЖАЕМСЯ НЕ КАК SCOM-Модуль !!!
48 | EsbComponent.Выгрузить();
49 | КонецПроцедуры
50 |
51 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/1s_files/Languages/Русский.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Русский
6 |
7 |
8 | ru
9 | Русский
10 |
11 |
12 |
13 | ru
14 |
15 |
16 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/_1s_create.cmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateVCProject/_1s_create.cmd
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/_1s_run.cmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateVCProject/_1s_run.cmd
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/_esb_1s_property_page_schema.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/_esb_props_ui.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
23 |
24 |
29 |
30 |
31 |
32 |
33 |
34 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
51 |
56 |
57 |
62 |
63 |
64 |
65 |
66 |
67 |
72 |
73 |
74 |
75 |
78 |
81 |
84 |
87 |
88 |
89 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // Для ЕСБ не требуется точка входа DllMain
2 | // Если это нужно Вашему проекту раскомментируйте этот блок и сделайте то что Вам нужно
3 | //
4 | #if 0
5 | #define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
6 | #define NOMINMAX
7 | // Файлы заголовков Windows
8 | #include
9 |
10 | // dllmain.cpp : Определяет точку входа для приложения DLL.
11 | BOOL APIENTRY DllMain( HMODULE hModule,
12 | DWORD ul_reason_for_call,
13 | LPVOID lpReserved
14 | )
15 | {
16 | switch (ul_reason_for_call)
17 | {
18 | case DLL_PROCESS_ATTACH:
19 | case DLL_THREAD_ATTACH:
20 | case DLL_THREAD_DETACH:
21 | case DLL_PROCESS_DETACH:
22 | break;
23 | }
24 | return TRUE;
25 | }
26 | #endif
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | // Перед включением заголовка ЕСБ в любой .cpp файл Вашего проекта необходимо включить
3 | // заголовок с Вашей конфигурацией для ЕСБ.
4 | #include "esb_app_config.h"
5 | #include "esb/esb.h"
6 |
7 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_app_config.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef ESB_APP_CONFIG_H_
3 | #define ESB_APP_CONFIG_H_
4 |
5 | // Данный файл описывает конфигурацию Вашего ЕСБ-приложения. Он должен быть включен до включения esb.h
6 | // (или, если этот файл доступен для включения из esb_config.h подключит его сам. см. esb_config.h)
7 |
8 |
9 | // Версия платформы (и есб соответственно) (допустимые значения 8300, 8311, 8320, 8323)
10 | // Вы можете указать ее здесь принудительно иначе esb_app.h настроит последнюю доступную (8323).
11 | // (для esb_demo указывается в свойствах проекта)
12 | #ifndef ESB_VER
13 | //# define ESB_VER 8309
14 | # error Esb version must be defined!
15 | #endif
16 |
17 |
18 | // Контролирует принудительное конструирование есб-строки String из с++ строки
19 | // Необходимо помнить, что любое создание есб-строки - это создание строки в пуле памяти 1С и по возможности избегать лишней нагрузки на память
20 | #ifndef ESB_USE_EXPLICIT_STRING
21 | # define ESB_USE_EXPLICIT_STRING 1
22 | #endif // !1
23 |
24 |
25 | // То же самое для есб-числа. Любое есб-число это нетривиальный объект 1С, который также конструируется платформой.
26 | // Если не контролировать его создание, то очень легко даже не желая того перегрузить пул памяти 1С, т.к. в с++ числа используются очень часто, много
27 | // и обычно в с++ Вы не задумываетесь когда пишете 2+2.
28 | #ifndef ESB_USE_EXPLICIT_NUMERIC
29 | # define ESB_USE_EXPLICIT_NUMERIC 0
30 | #endif // !1
31 |
32 |
33 | // Экспериментальная функция разрешения диспатч имен в идентификаторы методов из с++ строки, а не 1С строки (т.е. без лишних аллокаций)
34 | // (при странном и неадекватном поведении можно отключить)
35 | #ifndef ESB_USE_OBJECT_DISPATCH_FIND_STRVIEW_HACK
36 | # define ESB_USE_OBJECT_DISPATCH_FIND_STRVIEW_HACK 1
37 | #endif // !1
38 |
39 |
40 | // Экспериментальный прямой доступ к содержимому BinaryDataBuffer минуя диспатч интерфейс. Только для для v8300. (см.esb_es_file.h::BinaryDataBuffer)
41 | // Точно работает в 8.3.9.1818 х86, 8.3.10.2772 х64, 8.3.11.2831 х86
42 | // Точно не работает в 8.3.23.1688
43 | // Видимо изменения были где-то между 8.3.11.2831 и 8.3.23.1688, но когда точно - неизвестно. Нужно экспериментировать и проверять.
44 | #ifndef ESB_USE_BYTEBUFFER_DIRECT_HACK_v8300
45 | # define ESB_USE_BYTEBUFFER_DIRECT_HACK_v8300 0
46 | #endif // !1
47 |
48 |
49 | // Для демонстрации возможности есб-по-русски.
50 | #ifndef ESB_USE_RUSSIAN
51 | # define ESB_USE_RUSSIAN 1
52 | #endif // !1
53 |
54 |
55 | // По умолчанию конфигурация есб не подключает АПИ платформы. При желании нужно указать это. Также можно подключать АПИ отдельно по каждому провайдеру.
56 | #ifndef ESB_USE_API_ALL
57 | # define ESB_USE_API_ALL 1
58 | #endif // !1
59 |
60 |
61 | // для использования ЕСБ как SCOM модуля или подключайте компоненту из bin директории 1С (Вы должны иметь права на доступ к этой директории!),
62 | // или используйте закгрузку при помощи ms-detours (это удобно для отладочных сборок, но категорически не рекомендуется для релиза)
63 | // (вам нужно скачать его из https://github.com/microsoft/Detours, скомпилировать для Вашего компьютера и прописать в ESB_USE_DETOUR_PATH ваш путь к библиотеке)
64 | // использование ЕСБ не как SCOM модуль, а как объект компоненты также возможно, но нужно внимательно следить чтобы все объекты созданные и запомненные
65 | // в глобальных переменных 1С были освобождены до освобождения самого объекта ЕСБ и сама переменная хранящая объект ЕСБ была очищена в
66 | // Процедуре ПриЗавершенииРаботыСистемы().
67 | #ifndef ESB_USE_DETOUR
68 | # define ESB_USE_DETOUR 0
69 | # define ESB_USE_DETOUR_PATH ../../../$cpp/ms-detours/detours
70 | #endif // !1
71 |
72 |
73 | #endif //ESB_APP_CONFIG_H_
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_proj_template.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_proj_template.jpg
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_studio_readme.txt:
--------------------------------------------------------------------------------
1 | ВАЖНО
2 | - Имя файла 1с-модуля должно быть АНГЛИЙСКИМ !!!
3 | !!! Иначе студия в .vcxproj и в .vcxproj.filters КАКУЮ-ТО ЕРЕСЬ пишет !!!
4 | !!! Нужно в M$ кляузу писать !!!
5 | Это именно про файл (напиример) EsbComponent.xml,
6 | его папку EsbComponent, и его запись в Configuration.xml EsbComponent
7 | А в самом файле можно написать ЕсбКомпонент и в 1С он будет по-русски
8 | Т.е. чтобы запись о файле в .vcxproj и в .vcxproj.filters была
9 |
10 |
11 | 1С Файлы\Общие модули\EsbComponent
12 |
13 |
14 | ПС. Хотя хз... раза три отработало, когда файл-по-английски, а имя-модуля-по-русски, а потом перестало...
15 | Что там в потрохах 1С творится - загадка великая..
16 | Все по-английски надежнее!
17 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_template.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32901.82
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esb_template", "esb_template.vcxproj", "{7A53D8A1-62CC-474E-A946-AD22D972B7E1}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | v8309Debug|x64 = v8309Debug|x64
11 | v8309Debug|x86 = v8309Debug|x86
12 | v8309Release|x64 = v8309Release|x64
13 | v8309Release|x86 = v8309Release|x86
14 | v8323Debug|x64 = v8323Debug|x64
15 | v8323Debug|x86 = v8323Debug|x86
16 | v8323Release|x64 = v8323Release|x64
17 | v8323Release|x86 = v8323Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Debug|x64.ActiveCfg = v8309Debug|x64
21 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Debug|x64.Build.0 = v8309Debug|x64
22 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Debug|x86.ActiveCfg = v8309Debug|Win32
23 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Debug|x86.Build.0 = v8309Debug|Win32
24 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Release|x64.ActiveCfg = v8309Release|x64
25 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Release|x64.Build.0 = v8309Release|x64
26 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Release|x86.ActiveCfg = v8309Release|Win32
27 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8309Release|x86.Build.0 = v8309Release|Win32
28 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Debug|x64.ActiveCfg = v8323Debug|x64
29 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Debug|x64.Build.0 = v8323Debug|x64
30 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Debug|x86.ActiveCfg = v8323Debug|Win32
31 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Debug|x86.Build.0 = v8323Debug|Win32
32 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Release|x64.ActiveCfg = v8323Release|x64
33 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Release|x64.Build.0 = v8323Release|x64
34 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Release|x86.ActiveCfg = v8323Release|Win32
35 | {7A53D8A1-62CC-474E-A946-AD22D972B7E1}.v8323Release|x86.Build.0 = v8323Release|Win32
36 | EndGlobalSection
37 | GlobalSection(SolutionProperties) = preSolution
38 | HideSolutionNode = FALSE
39 | EndGlobalSection
40 | GlobalSection(ExtensibilityGlobals) = postSolution
41 | SolutionGuid = {4FDD3DFF-AB35-4B13-9F2F-F83CDE1879E8}
42 | EndGlobalSection
43 | EndGlobal
44 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esb_template.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
14 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
15 |
16 |
17 | {10e734ec-dc6d-41c5-8cc8-705c17653273}
18 |
19 |
20 | {c5ca8243-d55f-462d-bd2e-2d5ce7a240c9}
21 | bsl
22 |
23 |
24 | {22c6dd35-6592-4611-8bfa-794fd141f15b}
25 | bsl
26 |
27 |
28 | bsl
29 |
30 |
31 | bsl
32 |
33 |
34 |
35 |
36 | Файлы заголовков
37 |
38 |
39 | Файлы заголовков
40 |
41 |
42 |
43 |
44 | Исходные файлы
45 |
46 |
47 | Исходные файлы
48 |
49 |
50 |
51 |
52 | 1С Файлы\Общие модули
53 |
54 |
55 | 1С Файлы\Общие модули\EsbCommon
56 |
57 |
58 | 1С Файлы\Общие модули\EsbManager
59 |
60 |
61 | 1С Файлы\Общие модули\EsbComponent
62 |
63 |
64 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/esbmain.cpp:
--------------------------------------------------------------------------------
1 | // Подключаем базовый код ЕСБ
2 | #include "esb.h"
3 |
4 | // По умолчанию ЕСБ не подключает заголовки для создания классов и их дескрипторов
5 | // т.к. это не необходимо в каждом модуле Вашего проекта.
6 | // Но в модуле где декларируется собственно EsbComponentObject это нужно
7 | #include "esb/esb_ext.h"
8 |
9 | // Просто для удобства. Не всегда и не везде это нужно и безопасно.
10 | // В своих модулях пользуйтесь аккуратно.
11 | using namespace esb;
12 |
13 |
14 |
15 | //////////////////////////////
16 | // Функциональность компоненты
17 |
18 | String GetHellow() {
19 | return String(ESB_T("Привет мир 1C из мира C++ !!!"));
20 | }
21 |
22 | ///
23 | /// Выводит сообщение в окно сообщений
24 | ///
25 | ///
26 | void СкажиПривет(Строка сообщение_) {
27 | Сообщить(сообщение_);
28 | }
29 | //////////////////////////////
30 |
31 |
32 |
33 | // Теперь собственно интерфейс объекта, как его будет видеть 1С:
34 | // Имена (ен, ру) как его создавать через Новый, методы и свойства которые будут вызываться из кода 1С
35 | // Для объекта НЕОБХОДИМО создать новый уникальный идентификатор!
36 | // Если несколько есб компонент будут пытаться регистрироваться в 1С с одинаковыми идентификаторами и(или) именами
37 | // БУДЕТ ПЛОХО
38 | // Меню -> Средства -> СоздатьGUID -> ФорматРеестра (или иной строковый формат): {DEDE496C-E755-4598-BBB4-685C5247CFEC}
39 | // Копировать, вставить в кавычки {46EFE873-8489-4C02-8FC5-F95FFB941C70}
40 | // ПС. Мастер EsbStudio гуид создает новый, можно не менять.
41 | //TODO ("EsbObject", "ЕсбОбъект") нужно переопределить как ("$esb_object_en$", "$esb_object_ru$"), и "Объект есб компоненты" тоже
42 | // но для этого нужно возиться с переименованиями 1С-папок, файлов и внутри тоже..
43 | //vsix-template--: ESB_ADDIN_INTERFACE("46EFE873-8489-4C02-8FC5-F95FFB941C70", ("EsbObject", "ЕсбОбъект"), "Объект есб компоненты")
44 | //vsix-template++: ESB_ADDIN_INTERFACE("$guid2$", ("EsbObject", "ЕсбОбъект"), "Объект есб компоненты")
45 | ESB_ADDIN_INTERFACE("46EFE873-8489-4C02-8FC5-F95FFB941C70", ("EsbObject", "ЕсбОбъект"), "Объект есб компоненты")
46 | ESB_META_INTERFACE_METH(
47 | ESB_META_INTERFACE_FREE_METH(GetHellow, "ДайПривет"),
48 | ESB_META_INTERFACE_FREE_METH(СкажиПривет, "SayHellow")
49 | );
50 | ESB_ADDIN_INTERFACE_DONE();
51 |
52 |
53 | // Здесь собственно создание примитивной 1С-компоненты с тремя методами Register, RegisterAsSCOM, Unregister
54 | // которые нужно вызвать из 1С для регистрации в среде 1С Вашего <ЕсбОбъект>
55 | // и последующего его создания как основного интерфейса есб-компоненты: __EsbComponentObject__ = Новый(Типа("EsbObject"));
56 | // у которого мы и будем вызывать __EsbComponentObject__.ДайПривет()
57 | // Имя компоненты всегда EsbComponent, т.к. в 1С оно не используется
58 | // (esbldr_component_cpp.h должен быть включен в проект только один раз!, это не заголовок, а кусочек .cpp)
59 | #include "esb/esbldr_component_cpp.h"
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/vstemplate._vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EsbStudio C++ component for 1C(tm)
5 | Шаблон C++ Есб-Компоненты для 1С
6 | esb_proj_template.jpg
7 | VC
8 | cpp
9 | 1C Enterprise
10 | windows
11 | desktop
12 | 1000
13 | 41d73f2d-df50-468a-85a0-90461f994a40
14 |
16 | true
17 | EsbComponent
18 | true
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | EsbStudio, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=5af9f167dd3f4af2
29 | EsbStudio.EsbProjectTemplateWizardImplementation
30 |
31 |
38 | \1s;_1s_create.cmd;_esb_1s_property_page_schema.xml;_1s_run.cmd;directory.build.props;directory.build.targets;_esb_props_ui.xml;esb_studio_readme.txt;\1s_files;1s_files\Configuration.xml;\1s_files\Languages;1s_files\Languages\Русский.xml;\1s_files\CommonModules;1s_files\CommonModules\EsbCommon.xml;1s_files\CommonModules\EsbComponent.xml;1s_files\CommonModules\EsbManager.xml
39 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/ProjectTemplateVCProject/vstemplate._vstemplate_lst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/ProjectTemplateVCProject/vstemplate._vstemplate_lst
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("EsbStudio")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EsbStudio")]
13 | [assembly: AssemblyCopyright("")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace EsbVsixDlg
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Главная точка входа для приложения.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new EsbStudio.WizardForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Общие сведения об этой сборке предоставляются следующим набором
6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений,
7 | // связанных со сборкой.
8 | [assembly: AssemblyTitle("EsbVsixDlg")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EsbVsixDlg")]
13 | [assembly: AssemblyCopyright("Copyright © 2024")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через
19 | // COM, следует установить атрибут ComVisible в TRUE для этого типа.
20 | [assembly: ComVisible(false)]
21 |
22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
23 | [assembly: Guid("af9db9b5-ba38-4db3-8f65-0570057e1c28")]
24 |
25 | // Сведения о версии сборки состоят из указанных ниже четырех значений:
26 | //
27 | // Основной номер версии
28 | // Дополнительный номер версии
29 | // Номер сборки
30 | // Редакция
31 | //
32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию
33 | // используя "*", как показано ниже:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Этот код создан программным средством.
4 | // Версия среды выполнения: 4.0.30319.42000
5 | //
6 | // Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
7 | // код создан повторно.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 |
12 | namespace EsbVsixDlg.Properties
13 | {
14 | ///
15 | /// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
16 | ///
17 | // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
18 | // класс с помощью таких средств, как ResGen или Visual Studio.
19 | // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
20 | // с параметром /str или заново постройте свой VS-проект.
21 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
22 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
23 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
24 | internal class Resources
25 | {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources()
33 | {
34 | }
35 |
36 | ///
37 | /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
38 | ///
39 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
40 | internal static global::System.Resources.ResourceManager ResourceManager
41 | {
42 | get
43 | {
44 | if ((resourceMan == null))
45 | {
46 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EsbVsixDlg.Properties.Resources", typeof(Resources).Assembly);
47 | resourceMan = temp;
48 | }
49 | return resourceMan;
50 | }
51 | }
52 |
53 | ///
54 | /// Переопределяет свойство CurrentUICulture текущего потока для всех
55 | /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
56 | ///
57 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
58 | internal static global::System.Globalization.CultureInfo Culture
59 | {
60 | get
61 | {
62 | return resourceCulture;
63 | }
64 | set
65 | {
66 | resourceCulture = value;
67 | }
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 |
12 | namespace EsbVsixDlg.Properties
13 | {
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
17 | {
18 |
19 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
20 |
21 | public static Settings Default
22 | {
23 | get
24 | {
25 | return defaultInstance;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/esb_proj_template_dialog.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32901.82
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "esb_proj_template_dialog", "esb_proj_template_dialog.csproj", "{AF9DB9B5-BA38-4DB3-8F65-0570057E1C28}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {AF9DB9B5-BA38-4DB3-8F65-0570057E1C28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {AF9DB9B5-BA38-4DB3-8F65-0570057E1C28}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {AF9DB9B5-BA38-4DB3-8F65-0570057E1C28}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {AF9DB9B5-BA38-4DB3-8F65-0570057E1C28}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {D69081FB-8234-49B8-AAA8-7E7EBF60BCB4}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/WizardForm/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/app.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Diagnostics;
7 |
8 | namespace EsbStudio
9 | {
10 | public class app
11 | {
12 | public const int V8_VER_MIN_ = 9;
13 | public const int V8_VER_MAX_ = 23;
14 |
15 | public static string config_ver_v8(int i_ver_) {
16 | Debug.Assert(i_ver_ >= app.V8_VER_MIN_ && i_ver_ <= app.V8_VER_MAX_);
17 | return "v83" + ((i_ver_ < 10) ? "0" + i_ver_.ToString() : i_ver_.ToString());
18 | }
19 | public static string config_ver_param(string s_ver_v8_) { return $"$ESB_CONFIG_{s_ver_v8_}$"; }
20 | public static string config_ver_param(int i_ver_) { return config_ver_param(config_ver_v8(i_ver_)); }
21 | public static string config_run_param(string v8VerTag_) { return $"$ESB_CONFIG_RUN_{v8VerTag_}$"; }
22 | public static string config_run_param(int i_ver_) { return config_run_param(config_ver_v8(i_ver_)); }
23 | public static string config_cfg_param(string v8VerTag_) { return $"$ESB_CONFIG_CFG_{v8VerTag_}$"; }
24 | public static string config_cfg_param(int i_ver_) { return config_cfg_param(config_ver_v8(i_ver_)); }
25 | public static string config_sht_param(string v8VerTag_) { return $"$ESB_CONFIG_SHT_{v8VerTag_}$"; }
26 | public static string config_sht_param(int i_ver_) { return config_sht_param(config_ver_v8(i_ver_)); }
27 |
28 |
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/esb_studio_key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/esb_studio_key.snk
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/esb_studio_outfile.key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/esb_studio_outfile.key
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/esb_studio_snk.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/esb_studio_snk.snk
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/esb_studio_snk.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/esb_studio_snk.txt
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/esb_studio_snk_outfile.key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EsbStudio/esb_studio_snk_outfile.key
--------------------------------------------------------------------------------
/esb_studio/EsbStudio/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbStudio
6 | EsbStudio - C++ esb-component project template for 1C(tm)
7 |
8 | https://github.com/int-unsigned/esb
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage.vsix_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/esb_studio/EslLanguage.vsix_
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/EslGrammar/EslGrammar.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | #if DEBUG
7 | using System.Diagnostics;
8 | #endif
9 |
10 |
11 |
12 | namespace EsbStudio
13 | {
14 | internal static class Util
15 | {
16 | public static readonly Microsoft.VisualStudio.TextManager.Interop.TextSpan SpanEmpty_;
17 | }
18 |
19 |
20 | internal static class Errors
21 | {
22 | public static ArgumentException ArgumentException(object obj_, string arg_name_, object arg_value_, [System.Runtime.CompilerServices.CallerMemberName] string memb_name_ = "") {
23 | return new ArgumentException($"{obj_.ToString()}::{memb_name_}: Invalid {arg_name_} := {arg_value_}.");
24 | }
25 | }
26 | }
27 |
28 | namespace EsbStudio.Esl
29 | {
30 | internal class BslKeywords
31 | {
32 | public static string[] KeywordsArrayEn_ = new string[]
33 | {
34 | "AND",
35 | "BREAK",
36 | "CONTINUE",
37 | "DO",
38 | "EACH",
39 | "ELSE",
40 | "ELSIF",
41 | "ENDDO",
42 | "ENDFUNCTION",
43 | "ENDIF",
44 | "ENDPROCEDURE",
45 | "ENDTRY",
46 | "EXCEPT",
47 | "EXPORT",
48 | "FALSE",
49 | "FOR",
50 | "FUNCTION",
51 | "IF",
52 | "IN",
53 | "NOT",
54 | "NULL",
55 | "OR",
56 | "PROCEDURE",
57 | "RAISE",
58 | "RETURN",
59 | "THEN",
60 | "TO",
61 | "TRUE",
62 | "TRY",
63 | "UNDEFINED",
64 | "USE",
65 | "WHILE",
66 | "VAR"
67 | };
68 | //
69 | public static HashSet KeywordsSetEn_ = new HashSet(KeywordsArrayEn_, StringComparer.OrdinalIgnoreCase);
70 | //
71 | public static bool is_keyword_char_1st_en(char ch_) {
72 | switch (ch_)
73 | {
74 | case 'A': case 'a':
75 | case 'B': case 'b':
76 | case 'C': case 'c':
77 | case 'D': case 'd':
78 | case 'E': case 'e':
79 | case 'F': case 'f':
80 | case 'I': case 'i':
81 | case 'N': case 'n':
82 | case 'O': case 'o':
83 | case 'P': case 'p':
84 | case 'R': case 'r':
85 | case 'T': case 't':
86 | case 'U': case 'u':
87 | case 'W': case 'w':
88 | case 'V': case 'v':
89 | return true;
90 | default:
91 | return false;
92 | }
93 | }
94 |
95 | public static string[] KeywordsArrayRu_ = new string[]
96 | {
97 | "NULL", //NULL он и в русском NULL
98 | "ВОЗВРАТ",
99 | "ВЫЗВАТЬИСКЛЮЧЕНИЕ",
100 | "ДЛЯ",
101 | "ЕСЛИ",
102 | "И",
103 | "ИЗ",
104 | "ИЛИ",
105 | "ИНАЧЕ",
106 | "ИНАЧЕЕСЛИ",
107 | "ИСКЛЮЧЕНИЕ",
108 | "ИСПОЛЬЗОВАТЬ",
109 | "ИСТИНА",
110 | "КАЖДОГО",
111 | "КОНЕЦЕСЛИ",
112 | "КОНЕЦПОПЫТКИ",
113 | "КОНЕЦПРОЦЕДУРЫ",
114 | "КОНЕЦФУНКЦИИ",
115 | "КОНЕЦЦИКЛА",
116 | "ЛОЖЬ",
117 | "НЕ",
118 | "НЕОПРЕДЕЛЕНО",
119 | "ПЕРЕМ",
120 | "ПО",
121 | "ПОКА",
122 | "ПОПЫТКА",
123 | "ПРЕРВАТЬ",
124 | "ПРОДОЛЖИТЬ",
125 | "ПРОЦЕДУРА",
126 | "ТОГДА",
127 | "ФУНКЦИЯ",
128 | "ЦИКЛ",
129 | "ЭКСПОРТ",
130 | };
131 | //
132 | public static HashSet KeywordsSetRu_ = new HashSet(KeywordsArrayRu_, StringComparer.OrdinalIgnoreCase);
133 |
134 | public static bool is_keyword_char_1st_ru(char ch_) {
135 | switch (ch_) {
136 | case 'N': case 'n':
137 | case 'В': case 'в':
138 | case 'Д': case 'д':
139 | case 'Е': case 'е':
140 | case 'И': case 'и':
141 | case 'К': case 'к':
142 | case 'Л': case 'л':
143 | case 'Н': case 'н':
144 | case 'П': case 'п':
145 | case 'Т': case 'т':
146 | case 'Ф': case 'ф':
147 | case 'Ц': case 'ц':
148 | case 'Э': case 'э':
149 | return true;
150 | default:
151 | return false;
152 | }
153 | }
154 |
155 | public static bool get_keyword_ru(string source_line_, char ch_1st_, int index_1st_, int len_, ref string keyword_) {
156 | if (is_keyword_char_1st_ru(ch_1st_))
157 | {
158 | string s_token = source_line_.Substring(index_1st_, len_);
159 | bool b_try_keyword = KeywordsSetRu_.TryGetValue(s_token, out keyword_);
160 | return b_try_keyword;
161 | }
162 |
163 | return false;
164 | }
165 |
166 | public static bool is_keyword_ru(string source_line_, char ch_1st_, int index_1st_, int len_) {
167 | if (is_keyword_char_1st_ru(ch_1st_))
168 | {
169 | string s_name = source_line_.Substring(index_1st_, len_);
170 | return KeywordsSetRu_.Contains(s_name);
171 | }
172 | return false;
173 | }
174 | public static bool is_keyword_en(string source_line_, char ch_1st_, int index_1st_, int len_) {
175 | if (is_keyword_char_1st_en(ch_1st_))
176 | {
177 | string s_name = source_line_.Substring(index_1st_, len_);
178 | return KeywordsSetEn_.Contains(s_name);
179 | }
180 | return false;
181 | }
182 | public static bool is_keyword(string source_line_, char ch_1st_, int index_1st_, int len_) {
183 | return (is_keyword_ru(source_line_, ch_1st_, index_1st_, len_) || is_keyword_en(source_line_, ch_1st_, index_1st_, len_));
184 | }
185 | } // class BslKeywords
186 |
187 | } // namespace EsbStudio.Esl
188 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/EslGrammar/EslParseResult.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | //
7 | using Microsoft.VisualStudio.Package;
8 | #if DEBUG || DEBUG_IN_RELEASE
9 | using System.Diagnostics;
10 | #endif
11 |
12 |
13 | namespace EsbStudio.Esl
14 | {
15 | internal static class EslParseResult
16 | {
17 | internal static readonly Methods NoMethods_ = new EslMethDeclareMethods_0();
18 | internal static readonly Declarations NoDeclarations_ = new EslMethDeclarations_0();
19 | //
20 | //TODO Нужно какое-то логирование и (оч-бы неплохо) показать юзеру как-то. хотя бы на первых порах в целях отработки алгоритмов
21 | // пока просто возвращаем No... как будто бы ничего не произошло
22 | internal static Methods ErrorParseMethods(Exception ex_, [System.Runtime.CompilerServices.CallerMemberName] string invoker_ = "") {
23 | Debug.Assert(false);
24 | return NoMethods_;
25 | }
26 | internal static Declarations ErrorParseDeclarations(Exception ex_, [System.Runtime.CompilerServices.CallerMemberName] string invoker_ = "") {
27 | Debug.Assert(false);
28 | return NoDeclarations_;
29 | }
30 | internal static EslDecl ErrorParseDecl(Exception ex_, [System.Runtime.CompilerServices.CallerMemberName] string invoker_ = "") {
31 | Debug.Assert(false);
32 | return null;
33 | }
34 | internal static string ErrorParseString(Exception ex_, [System.Runtime.CompilerServices.CallerMemberName] string invoker_ = "") {
35 | Debug.Assert(false);
36 | return null;
37 | }
38 |
39 | }
40 |
41 | internal class EslMethDeclareMethods_0 : Methods
42 | {
43 | public override int GetCount() { return 0; }
44 | public override string GetDescription(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
45 | public override string GetName(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
46 | public override int GetParameterCount(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
47 | public override void GetParameterInfo(int meth_index_, int para_index_, out string out_name_, out string out_display_, out string out_description_)
48 | { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
49 | public override string GetType(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
50 | }
51 | internal class EslMethDeclarations_0 : Declarations
52 | {
53 | public override int GetCount() { return 0; }
54 | public override string GetDescription(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
55 | public override string GetDisplayText(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
56 | public override int GetGlyph(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
57 | public override string GetName(int meth_index_) { throw Errors.ArgumentException(this, nameof(meth_index_), meth_index_); }
58 | }
59 | internal class EslParserResultForScope_Null : AuthoringScope
60 | {
61 | static Declarations m_declarations = new EslMethDeclarations_0();
62 | static Methods m_methods = new EslMethDeclareMethods_0();
63 | public override string GetDataTipText(int line, int col, out Microsoft.VisualStudio.TextManager.Interop.TextSpan out_text_span_tip_show_)
64 | {
65 | out_text_span_tip_show_ = Util.SpanEmpty_;
66 | return null;
67 | }
68 | public override Declarations GetDeclarations(Microsoft.VisualStudio.TextManager.Interop.IVsTextView view, int line, int col, TokenInfo info, ParseReason reason)
69 | {
70 | return m_declarations;
71 | }
72 | public override Methods GetMethods(int line, int col, string name)
73 | {
74 | return m_methods;
75 | }
76 | public override string Goto(Microsoft.VisualStudio.VSConstants.VSStd97CmdID cmd, Microsoft.VisualStudio.TextManager.Interop.IVsTextView textView,
77 | int line, int col, out Microsoft.VisualStudio.TextManager.Interop.TextSpan out_text_uri_target_)
78 | {
79 | out_text_uri_target_ = Util.SpanEmpty_;
80 | return null;
81 | }
82 | }
83 |
84 |
85 |
86 | } // namespace EsbStudio.Esl
87 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/EslLanguage.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16.0
5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
6 |
7 |
8 |
9 | Debug
10 | AnyCPU
11 | 2.0
12 | {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
13 | {4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}
14 | Library
15 | Properties
16 | EsbStudio
17 | EslLanguage
18 | v4.7.2
19 | true
20 | true
21 | true
22 | false
23 | false
24 | true
25 | true
26 | Program
27 | $(DevEnvDir)devenv.exe
28 | /rootsuffix Exp
29 |
30 |
31 | true
32 | full
33 | false
34 | bin\Debug\
35 | TRACE;DEBUG;ESB_STUDIO_SYNC_MODE
36 | prompt
37 | 4
38 |
39 |
40 | pdbonly
41 | true
42 | bin\Release\
43 | TRACE;ESB_STUDIO_SYNC_MODE;DEBUG_IN_RELEASE
44 | prompt
45 | 4
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Designer
69 |
70 |
71 |
72 |
73 | True
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
91 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/EslLanguage.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32901.82
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EslLanguage", "EslLanguage.csproj", "{4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {4CAEF150-6A75-4C40-8B81-DEA9C734B4D3}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {1C17415D-3105-4CDB-B68C-CB6E4BCFA996}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("EslLanguage")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EslLanguage")]
13 | [assembly: AssemblyCopyright("")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/_test/EslApplicationModule.esl:
--------------------------------------------------------------------------------
1 | // Обычное приложение
2 | // Режим использования синхронных вызовов расширений платформы и внешних компонент: ИСПОЛЬЗОВАТЬ
3 | // Режим совместимости - НЕ ИСПОЛЬЗОВАТЬ
4 |
5 |
6 | // Нам нужны экспортируемые переменные для работы с компонентой и ее есб-объектом
7 | Перем __EsbComponent__ экспорт;
8 | Перем __EsbComponentObject__ экспорт;
9 | //
10 |
11 | ЭтотКомпонент().
12 | Процедура ПриНачалеРаботыСистемы()
13 | // Если проврка совместимости не нужна - просто замени 1 на 0
14 | Если 1 И НЕ ЕсбСовместимаяПлатформа() Тогда
15 | возврат;
16 | КонецЕсли;
17 |
18 | // Используется только для авто-запуска из конфигуратора, когда ПараметрЗапуска отсутствует
19 | __ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Истина;
20 | //__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__ = Ложь; // просто "зеремь"/"отремь" чтобы получить нужный режим
21 |
22 | параметры_запуска = ПараметрЗапуска;
23 | путь_к_компоненте = "";
24 | Если параметры_запуска <> "" Тогда
25 | сообщить("ПараметрЗапуска: '" + параметры_запуска + "'");
26 | Если СтрНачинаетсяС(параметры_запуска, "--esbrun=") Тогда
27 | путь_к_компоненте = ПутьДостроить( ПутьНаУровеньВыше(ПутьККонфигурации()), ПутьБезПоследнегоРазделителя(Сред(параметры_запуска, 10)) );
28 | иначе
29 | Предупреждение("Неожидаемый ПараметрЗапуска:" + Символы.ПС +
30 | параметры_запуска + Символы.ПС + Символы.ПС +
31 | "Ожидается '--esbrun=<путь_к_есб_компоненте>'. Продолжение работы невозможно");
32 | ЗавершитьРаботуСистемы(ложь);
33 | КонецЕсли;
34 | иначе
35 | сообщить("ПараметрЗапуска отсутствует. Загрузка Есб-Компонента для отладки по-умолчанию.");
36 | путь_к_компоненте = ЕсбПутьДляОтладки(__ИСПОЛЬЗОВАТЬ_ДЕБАГ_ДЛЛ__);
37 | КонецЕсли;
38 |
39 | Если EsbComponent.Загрузить(путь_к_компоненте) тогда
40 | EsbComponent.СтартТест();
41 | КонецЕсли;
42 | КонецПроцедуры
43 |
44 |
45 | Процедура ПриЗавершенииРаботыСистемы ()
46 | //!!! ОЧЕНЬ ВАЖНО, ЕСЛИ ЗАГРУЖАЕМСЯ НЕ КАК SCOM-Модуль !!!
47 | EsbComponent.Выгрузить();
48 | КонецПроцедуры
49 |
50 |
--------------------------------------------------------------------------------
/esb_studio/EslLanguage/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EsbStudio.EslLanguageService
6 | EsbStudio Language Service for 1C-Enterprise-like language (Bsl, Esl)
7 |
8 | https://github.com/int-unsigned/esb
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/include/esb/1c/1c_api.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/1c_api.h
--------------------------------------------------------------------------------
/include/esb/1c/1c_api_providers.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 |
10 |
11 | #pragma once
12 | #ifndef ESB_1С_MODULE_API_PROVIDERS_H_
13 | #define ESB_1С_MODULE_API_PROVIDERS_H_
14 |
15 | #include "esb/esb_config.h"
16 | #include ESB_INCLUDE_1C_MODULE(es1_api_providers.h)
17 |
18 | #endif //ESB_1С_MODULE_API_PROVIDERS_H_
19 |
--------------------------------------------------------------------------------
/include/esb/1c/1c_data.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 |
10 |
11 | #pragma once
12 | #ifndef ESB_1С_MODULE_DATA_H_
13 | #define ESB_1С_MODULE_DATA_H_
14 |
15 | #include "esb/esb_config.h"
16 | #include ESB_INCLUDE_1C_MODULE(es1_data.h)
17 |
18 | #endif //ESB_1С_MODULE_DATA_H_
19 |
--------------------------------------------------------------------------------
/include/esb/1c/1c_file.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 |
10 |
11 | #pragma once
12 | #ifndef ESB_1С_MODULE_FILE_H_
13 | #define ESB_1С_MODULE_FILE_H_
14 |
15 | #include "esb/esb_config.h"
16 | #include ESB_INCLUDE_1C_MODULE(es1_file.h)
17 |
18 | #endif //ESB_1С_MODULE_FILE_H_
19 |
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_all.def.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_all.def.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_api.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_api.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_api_providers.def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_api_providers.def
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_api_providers.def.h:
--------------------------------------------------------------------------------
1 | #ifndef ESBLIB_API_PROVIDER
2 | #error Need define ESBLIB_API_PROVIDER(TAG_, ...) !!!
3 | #endif
4 |
5 | //
6 | #include "es1_api_providers.def"
7 | //
8 |
9 | #undef ESBLIB_API_PROVIDER
10 |
11 |
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_api_providers.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_api_providers.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_base.def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_base.def
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_base.def.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_base.def.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_data.def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_data.def
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_data.def.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_data.def.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_file.def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_file.def
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_file.def.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_file.def.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_main.def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_main.def
--------------------------------------------------------------------------------
/include/esb/1c/v8309/es1_main.def.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/es1_main.def.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/esdisp.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 | #pragma once
10 | #ifndef ESB_ESDISP_H_
11 | #define ESB_ESDISP_H_
12 |
13 |
14 | #include "esb/esb_config_base.h"
15 |
16 | namespace esb
17 | {
18 | // RoundMode "заремлен" в es1_base.def т.к. его реализация везде ручками (модельная). поэтому декларировать его надо explicity
19 | class RoundMode;
20 |
21 | namespace _internal
22 | {
23 | namespace _dispinfo
24 | {
25 | namespace _v8309
26 | {
27 | template
28 | struct MethIdsFor;
29 | template
30 | struct PropIdsFor;
31 | template
32 | struct EnumIdsFor;// {//static constexpr dispix_t _ids_enum_count = 0; };
33 |
34 | template
35 | inline constexpr bool is_typeinfo_singleton = true;
36 | }
37 |
38 | template
39 | using MethIdsFor = _internal::_dispinfo::_v8309::MethIdsFor;
40 | template
41 | using PropIdsFor = _internal::_dispinfo::_v8309::PropIdsFor;
42 | template
43 | using EnumIdsFor = _internal::_dispinfo::_v8309::EnumIdsFor;
44 |
45 | template
46 | inline constexpr bool is_typeinfo_singleton = _internal::_dispinfo::_v8309::is_typeinfo_singleton;
47 | } //_dispinfo
48 | }// _internal
49 | }// esb
50 | #endif //ESB_ESDISP_H_
51 |
--------------------------------------------------------------------------------
/include/esb/1c/v8309/esdisp_all.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 | #pragma once
10 | #ifndef ESB_ESDISP_ALL_H_
11 | #define ESB_ESDISP_ALL_H_
12 |
13 | /*
14 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 | !! AutoGenerated Dispinfo File !!
16 | !! DO NOT EDIT !!
17 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18 | */
19 | // platform ver v8.3.9.1818
20 | #include "esdisp.h"
21 |
22 |
23 | #include "esdisp_base.h"
24 | #include "esdisp_main.h"
25 | #include "esdisp_data.h"
26 | #include "esdisp_file.h"
27 | #include "esdisp_api.h"
28 |
29 | #endif //ESB_ESDISP_ALL_H_
30 |
--------------------------------------------------------------------------------
/include/esb/1c/v8309/esdisp_api.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/int-unsigned/esb/1c7b4c0dc24dd97ceab08b65fc13914349920c06/include/esb/1c/v8309/esdisp_api.h
--------------------------------------------------------------------------------
/include/esb/1c/v8309/esdisp_base.h:
--------------------------------------------------------------------------------
1 | /*
2 | "ESB" is designed to create external native components for the 1C(tm) program.
3 | Copyright © 2023 IntUnsigned (v8classes@gmail.com)
4 | "ESB" is free software under LGPLv2.1 license with essential restriction about binary part (view esb-license.txt)
5 | "ESB" IS DISTRIBUTED "AS-IS" WITHOUT ANY, EVEN THE IMPLIED, WARRANTY. IN NO EVENT SHALL THE AUTHORS OR THE COPYRIGHT OWNER BE LIABLE FOR ANY CLAIM,
6 | DAMAGES OR OTHER LIABILITY ARISING OUT OF THE USE OF THIS SOFTWARE.
7 | THE AUTHOR DOES NOT GIVE ANY GUARANTEES AND DOES NOT BEAR ANY RESPONSIBILITY REGARDING THE USE OF 1C(tm) COMPONENTS PRODUCED USING THE ESB LIBRARY IN THE 1C(tm) ENVIRONMENT.
8 | */
9 | #pragma once
10 | #ifndef ESB_ESDISP_BASE_H_
11 | #define ESB_ESDISP_BASE_H_
12 |
13 | /*
14 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 | !! AutoGenerated Dispinfo File !!
16 | !! DO NOT EDIT !!
17 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18 | */
19 | // platform ver v8.3.9.1818
20 | #include "esdisp.h"
21 |
22 | namespace esb
23 | {
24 | #define ESBLIB_TYPE(CLASS_EN_, ...) class CLASS_EN_;
25 | #define ESBLIB_ENUM(CLASS_EN_, ...) ESBLIB_TYPE(CLASS_EN_)
26 | #include "es1_base.def.h"
27 |
28 | namespace _internal
29 | {
30 | namespace _dispinfo
31 | {
32 | namespace _v8309
33 | {
34 | template<>
35 | struct EnumIdsFor {
36 | enum _ids_enum : dispix_t { Round15as10, Round15as20 };
37 | //protected:
38 | static constexpr dispix_t _ids_enum_count = 2;
39 | };
40 |
41 | template<>
42 | struct MethIdsFor {
43 | // No Disp Methods.
44 | };
45 | template<>
46 | struct PropIdsFor {
47 | enum _ids_enum : dispix_t {Description, ModuleName, LineNumber, SourceLine, Cause};
48 | protected:
49 | static constexpr dispix_t _ids_enum_count = 5;
50 | };
51 | template<>
52 | struct MethIdsFor {
53 | enum _ids_enum : dispix_t {Count, UBound, Insert, Add, Delete, Clear, Get, Set, Find};
54 | protected:
55 | static constexpr dispix_t _ids_enum_count = 9;
56 | };
57 | template<>
58 | struct PropIdsFor {
59 | // No Disp Properties.
60 | };
61 | template<>
62 | struct MethIdsFor {
63 | enum _ids_enum : dispix_t {Count, UBound, Get, Find};
64 | protected:
65 | static constexpr dispix_t _ids_enum_count = 4;
66 | };
67 | template<>
68 | struct PropIdsFor {
69 | // No Disp Properties.
70 | };
71 | template<>
72 | struct MethIdsFor {
73 | // No Disp Methods.
74 | };
75 | template<>
76 | struct PropIdsFor {
77 | enum _ids_enum : dispix_t {Key, Value};
78 | protected:
79 | static constexpr dispix_t _ids_enum_count = 2;
80 | };
81 | template<>
82 | struct MethIdsFor {
83 | enum _ids_enum : dispix_t {Count, Insert, Delete, Clear, Property};
84 | protected:
85 | static constexpr dispix_t _ids_enum_count = 5;
86 | };
87 | template<>
88 | struct PropIdsFor {
89 | // No Disp Properties.
90 | };
91 | template<>
92 | struct MethIdsFor {
93 | enum _ids_enum : dispix_t {Count, Property};
94 | protected:
95 | static constexpr dispix_t _ids_enum_count = 2;
96 | };
97 | template<>
98 | struct PropIdsFor {
99 | // No Disp Properties.
100 | };
101 | template<>
102 | struct MethIdsFor