├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ ├── config.yml
│ └── feature_request.yml
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── build.yml
│ ├── ci-build.yml
│ ├── fork-pull.yml
│ └── release.yml
├── .gitignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── NOTICE.md
├── README.md
├── bom
├── .project
├── .settings
│ └── org.eclipse.core.resources.prefs
├── pom.xml
└── set_version.sh
├── bundles
├── com.e1c.ssl.bsl.ui
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ ├── org.eclipse.core.resources.prefs
│ │ └── org.eclipse.jdt.core.prefs
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── build.properties
│ ├── plugin.properties
│ ├── plugin.xml
│ ├── pom.xml
│ └── src
│ │ └── com
│ │ └── e1c
│ │ └── ssl
│ │ └── bsl
│ │ ├── internal
│ │ └── ui
│ │ │ ├── BslStringLiteralProposalImageProviderForMdObject.java
│ │ │ ├── ExternalDependenciesModule.java
│ │ │ ├── UiExecutableExtensionFactory.java
│ │ │ └── UiPlugin.java
│ │ └── ui
│ │ ├── AbstractStringLiteralProposalProviderCommonFunction.java
│ │ ├── StringLiteralProposalObjectPropertiesDetails.java
│ │ ├── StringLiteralProposalProviderCommonFunctionObjectAttributeValue.java
│ │ ├── StringLiteralProposalProviderCommonModuleManager.java
│ │ └── StringLiteralProposalProviderSubsystemExist.java
├── com.e1c.ssl.bsl
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ ├── org.eclipse.core.resources.prefs
│ │ └── org.eclipse.jdt.core.prefs
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── build.properties
│ ├── plugin-ssl-support.launch
│ ├── plugin.properties
│ ├── plugin.xml
│ ├── pom.xml
│ └── src
│ │ └── com
│ │ └── e1c
│ │ └── ssl
│ │ └── bsl
│ │ ├── AbstractCommonModuleCommonFunctionTypesComputer.java
│ │ ├── AbstractCommonModuleObjectAttributeValueTypesComputer.java
│ │ ├── CommonFunctionArraysDifferenceTypesComputer.java
│ │ ├── CommonFunctionCheckDocumentsPostingTypesComputer.java
│ │ ├── CommonFunctionCollapseArrayTypesComputer.java
│ │ ├── CommonFunctionCommonModuleManagerTypesComputer.java
│ │ ├── CommonFunctionCopyRecursiveTypesComputer.java
│ │ ├── CommonFunctionFixedDataTypesComputer.java
│ │ ├── CommonFunctionObjectAttributeValueTypesComputer.java
│ │ ├── CommonFunctionObjectAttributesValuesTypesComputer.java
│ │ ├── CommonFunctionObjectManagerByFullNameTypesComputer.java
│ │ ├── CommonFunctionObjectManagerByRefTypesComputer.java
│ │ ├── CommonFunctionObjectPropertiesDetailsComputer.java
│ │ ├── CommonFunctionObjectsAttributeValueTypesComputer.java
│ │ ├── CommonFunctionObjectsAttributesValuesTypesComputer.java
│ │ ├── CommonFunctionUnloadColumnTypesComputer.java
│ │ ├── CommonFunctionValueInArrayTypesComputer.java
│ │ ├── CommonFunctionValueTableRowToStructure.java
│ │ ├── CommonFunctionValueTableToArrayTypesComputer.java
│ │ ├── ExpressionValueComputer.java
│ │ ├── TypesComputerHelper.java
│ │ └── internal
│ │ ├── BslPlugin.java
│ │ ├── ExecutableExtensionFactory.java
│ │ └── ExternalDependenciesModule.java
├── com.e1c.ssl.ui
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ ├── org.eclipse.core.resources.prefs
│ │ └── org.eclipse.jdt.core.prefs
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── about.ini
│ ├── build.properties
│ ├── logo.png
│ ├── plugin.properties
│ ├── pom.xml
│ └── src
│ │ └── com
│ │ └── e1c
│ │ └── ssl
│ │ └── ui
│ │ └── Activator.java
└── pom.xml
├── checkstyle.xml
├── docs
├── .classpath
├── .gitignore
├── .project
├── .settings
│ └── org.eclipse.core.resources.prefs
├── META-INF
│ └── MANIFEST.MF
├── README.md
├── build.properties
├── common-check-documents-posting.md
├── common-client-common-module.md
├── common-client-server-arrays-difference.md
├── common-client-server-collapse-array.md
├── common-client-server-value-in-array.md
├── common-client-subsystem-exist.md
├── common-common-module.md
├── common-copy-recursive.md
├── common-object-attribute-value.md
├── common-object-attributes-values.md
├── common-object-manager-by-full-name.md
├── common-object-manager-by-ref.md
├── common-object-properties-details.md
├── common-objects-attribute-value.md
├── common-objects-attributes-values.md
├── common-subsystem-exist.md
├── common-unload-column.md
├── common-value-fixed-data.md
├── common-value-table-row-to-structure.md
├── common-value-table-to-array.md
├── html
│ ├── css
│ │ └── prism.css
│ ├── footer.html
│ ├── header.html
│ └── js
│ │ └── prism.js
├── pict
│ ├── common-module.gif
│ ├── subsystem-exist.gif
│ ├── type-common-module.gif
│ ├── type-object-attibutes-values.gif
│ └── type-object-attribute-value.gif
├── plugin.properties
├── plugin.xml
├── pom.xml
├── src
│ └── .gitkeep
└── toc.xml
├── features
├── com.e1c.ssl.feature
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.core.resources.prefs
│ ├── SourceTemplateFeature
│ │ ├── build.properties
│ │ └── feature.properties
│ ├── build.properties
│ ├── feature.properties
│ ├── feature.xml
│ ├── feature_ru.properties
│ └── pom.xml
├── com.e1c.ssl.sdk.feature
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.core.resources.prefs
│ ├── build.properties
│ ├── feature.properties
│ ├── feature.xml
│ └── pom.xml
└── pom.xml
├── java.header
├── pom.xml
├── repositories
├── com.e1c.ssl.repository.sdk
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.core.resources.prefs
│ ├── category.xml
│ └── pom.xml
├── com.e1c.ssl.repository
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.core.resources.prefs
│ ├── category.xml
│ └── pom.xml
└── pom.xml
├── targets
├── .project
├── .settings
│ └── org.eclipse.core.resources.prefs
├── default
│ ├── default.target
│ └── pom.xml
└── pom.xml
└── tests
├── com.e1c.ssl.bsl.itests
├── .classpath
├── .project
├── .settings
│ ├── org.eclipse.core.resources.prefs
│ └── org.eclipse.jdt.core.prefs
├── META-INF
│ └── MANIFEST.MF
├── build.properties
├── plugin.properties
├── pom.xml
├── resources
│ └── common-functions
│ │ ├── arrays-difference.bsl
│ │ ├── check-documents-posting.bsl
│ │ ├── collapse-array.bsl
│ │ ├── common-module-client.bsl
│ │ ├── common-module-fixed-array.bsl
│ │ ├── common-module-fixed-data.bsl
│ │ ├── common-module-fixed-map.bsl
│ │ ├── common-module-object-manager.bsl
│ │ ├── common-module-table-row-to-structure.bsl
│ │ ├── common-module-table-to-array.bsl
│ │ ├── common-module-unload-column.bsl
│ │ ├── common-module.bsl
│ │ ├── copy-recursive.bsl
│ │ ├── manager-by-full-name-ref.bsl
│ │ ├── manager-by-full-name.bsl
│ │ ├── manager-by-ref-dynamic.bsl
│ │ ├── manager-by-ref.bsl
│ │ ├── object-attribute-value-dynamic.bsl
│ │ ├── object-attribute-value.bsl
│ │ ├── object-attributes-values-array-ctor-subproperty.bsl
│ │ ├── object-attributes-values-array-ctor.bsl
│ │ ├── object-attributes-values-array.bsl
│ │ ├── object-attributes-values-compute-strings.bsl
│ │ ├── object-attributes-values-dynamic.bsl
│ │ ├── object-attributes-values-string-var.bsl
│ │ ├── object-attributes-values-structure-ctor.bsl
│ │ ├── object-attributes-values-structure-subproperty.bsl
│ │ ├── object-attributes-values-structure.bsl
│ │ ├── object-attributes-values.bsl
│ │ ├── object-property-details.bsl
│ │ ├── objects-attribute-value-dynamic.bsl
│ │ ├── objects-attribute-value.bsl
│ │ ├── objects-attributes-values-dynamic.bsl
│ │ ├── objects-attributes-values-string-var.bsl
│ │ ├── objects-attributes-values.bsl
│ │ ├── subsystem-exist.bsl
│ │ └── value-in-array.bsl
├── src
│ └── com
│ │ └── e1c
│ │ └── ssl
│ │ ├── bsl
│ │ └── itests
│ │ │ ├── BslCommonFunctionsTest.java
│ │ │ └── BslCopyRecursiveTest.java
│ │ └── internal
│ │ └── bsl
│ │ └── itests
│ │ └── BslIdeTestCaseBase.java
└── workspace
│ └── CommonFunctions
│ ├── .project
│ ├── .settings
│ └── org.eclipse.core.resources.prefs
│ ├── DT-INF
│ └── PROJECT.PMF
│ └── src
│ ├── Catalogs
│ ├── Поставщики
│ │ └── Поставщики.mdo
│ └── Товары
│ │ ├── ManagerModule.bsl
│ │ └── Товары.mdo
│ ├── CommonModules
│ ├── ОбщегоНазначения
│ │ ├── Module.bsl
│ │ └── ОбщегоНазначения.mdo
│ ├── ОбщегоНазначенияКлиент
│ │ ├── Module.bsl
│ │ └── ОбщегоНазначенияКлиент.mdo
│ ├── ОбщегоНазначенияКлиентСервер
│ │ ├── Module.bsl
│ │ └── ОбщегоНазначенияКлиентСервер.mdo
│ ├── ТестовыйМодуль
│ │ ├── Module.bsl
│ │ └── ТестовыйМодуль.mdo
│ └── УсловныйМодуль
│ │ ├── Module.bsl
│ │ └── УсловныйМодуль.mdo
│ ├── Configuration
│ ├── CommandInterface.cmi
│ ├── Configuration.mdo
│ ├── HomePageWorkArea.hpwa
│ └── MainSectionCommandInterface.cmi
│ ├── Documents
│ └── Документ
│ │ └── Документ.mdo
│ ├── InformationRegisters
│ └── ШтрихКоды
│ │ ├── ManagerModule.bsl
│ │ └── ШтрихКоды.mdo
│ └── Subsystems
│ ├── Подсистема1
│ ├── CommandInterface.cmi
│ └── Подсистема1.mdo
│ └── Стандартные
│ ├── CommandInterface.cmi
│ ├── Subsystems
│ ├── Подсистема2
│ │ ├── CommandInterface.cmi
│ │ └── Подсистема2.mdo
│ └── Файлы
│ │ ├── CommandInterface.cmi
│ │ └── Файлы.mdo
│ └── Стандартные.mdo
└── pom.xml
/.github/ISSUE_TEMPLATE/bug_report.yml:
--------------------------------------------------------------------------------
1 | name: Сообщение об ошибке
2 | description: Сообщите об ошибке, чтобы помочь нам улучшить проект
3 | labels: ["bug"]
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | Благодарим Вас, за то что сообщаете об ошибке!
9 | - type: textarea
10 | id: bug-description
11 | attributes:
12 | label: Описание ошибки
13 | description: Четкое и краткое описание того, в чем заключается ошибка?
14 | placeholder: Расскажите нам что вы видите?
15 | value: "Ошибка в том что..."
16 | validations:
17 | required: true
18 | - type: textarea
19 | id: bug-reproduce
20 | attributes:
21 | label: Как воспроизвести
22 | description: Шаги для воспроизведения ошибки (здесь так же можно вставлять скриншоты - это очень помогает понять)
23 | placeholder: Что необходимо выполнить по шагам для воспроизведения ошибки?
24 | value: |
25 | 1. Перейдите в `...`
26 | 2. Кликните по `....`
27 | 3. Прокрутите вниз до `....`
28 | 4. Смотрите ошибку в `....`
29 |
30 | validations:
31 | required: true
32 | - type: textarea
33 | id: screenshoots
34 | attributes:
35 | label: Скриншоты
36 | description: |
37 | Если возможно, приложите скриншоты проблемы.
38 |
39 | Совет: не старайтесь обрезать все лишнее (по вашему мнению) на скриншоте, лучше более полный скриншот со стрелочками на проблемное место.
40 | placeholder: Здесь можно вставить скриншот проблемы...
41 | validations:
42 | required: false
43 | - type: textarea
44 | id: expectation
45 | attributes:
46 | label: Ожидаемое поведение
47 | description: Четкое и краткое описание того, что вы ожидали бы в правильном поведении?
48 | placeholder: Какое, по вашему мнению, правильное поведение?
49 | validations:
50 | required: true
51 | - type: textarea
52 | id: ws-logs
53 | attributes:
54 | label: Лог рабочей области
55 | description: Обязательно, приложите все файлы логов из рабочей области /path/to/workspace/.metadata/*.log и файл trace.log
56 | placeholder: Вставьте файлы лог
57 | validations:
58 | required: true
59 | - type: markdown
60 | attributes:
61 | value: |
62 | [Инструкция по сбору журнала ошибок (лог ошибок)](https://its.1c.ru/db/edtdoc#content:153:hdoc:_top:лог)
63 |
64 | Если файл лога не получается прикрепить, это касается файла `.log`, то переименуйте его в `log.txt` и прикрепите
65 |
66 | - type: input
67 | id: plugin-version
68 | attributes:
69 | label: Версия 1С:SSL-support
70 | description: "Скопируйте и вставте версию плагина из меню: Help -> About 1C:Enterprise Development Tools -> кликните на иконку плагина"
71 | placeholder: например, 0.5.0.141
72 | validations:
73 | required: true
74 | - type: input
75 | id: edt-version
76 | attributes:
77 | label: Версия 1С:EDT
78 | description: "Скопируйте и вставте версию 1C:EDT из меню: Help -> About 1C:Enterprise Development Tools"
79 | placeholder: например, Ruby 2021.2.8.3
80 | validations:
81 | required: false
82 | - type: dropdown
83 | id: os
84 | attributes:
85 | label: Операционная система
86 | description: Укажите, на каких операционных системах ошибка воспроизводится у вас?
87 | multiple: true
88 | options:
89 | - Windows
90 | - macOS
91 | - Linux
92 | validations:
93 | required: false
94 |
95 | - type: textarea
96 | id: additional
97 | attributes:
98 | label: Дополнительная информация
99 | description: |
100 | - Добавьте здесь любую дополнительную информацию о проблеме
101 | - Пример кода на котором воспроизводится ошибка,
102 | - Версию типовой конфигурации 1С + объект в котором воспроизводится проблема
103 | - Ссылки на публичные проекты 1С в котором воспроизводится проблема
104 | - Версия вашей OS если это важно?
105 | - Версия платформы 1С [например] `8.3.18.1563`
106 | placeholder: Что-нибудь еще важное и полезное по этой ошибке?
107 | validations:
108 | required: false
109 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Группа поддержки в Telegram
4 | url: https://t.me/e1c_edt_plugindev
5 | about: Спросите любой вопрос по разработке плагинов для 1C:EDT
6 | - name: Правила участия в проекте 1C:SSL-support
7 | url: https://github.com/1C-Company/ssl-support/blob/master/CONTRIBUTING.md
8 | about: Перед первым размещением тикета рекомендуем ознакомиться с правилами участия
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.yml:
--------------------------------------------------------------------------------
1 | name: Предложение функциональности
2 | description: Предложите вашу идею для проекта поддержки стандартов
3 | title: "Моя идея..."
4 | labels: ["enhancement"]
5 | body:
6 | - type: markdown
7 | attributes:
8 | value: |
9 | Благодарим вас за идею! Не забудьте поставить свой (:+1:) лайк, чтобы другие тоже присоединись!
10 | - type: textarea
11 | id: problem
12 | attributes:
13 | label: Описание проблемы
14 | description: Ясно и четко опишите в чем проблема, затруднения, что вам мешает?
15 | placeholder: Расскажите нам о проблеме/неудобстве!
16 | value: "Есть такая проблема..."
17 | validations:
18 | required: true
19 | - type: textarea
20 | id: solution
21 | attributes:
22 | label: Описание решения проблемы
23 | description: Ясно и четко опишите желаемое решение проблемы.
24 | placeholder: Какое вы представляете себе решиение данной проблемы?
25 | value: "Предлагаю сделать так..."
26 | validations:
27 | required: true
28 | - type: textarea
29 | id: additional
30 | attributes:
31 | label: Дополнительная информация
32 | description: Любой дополнительный контекст, ссылки, скриншоты очень помогают...
33 | placeholder: Что-нибудь еще важное и полезное по этой теме?
34 | validations:
35 | required: false
36 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Что сделано
2 |
3 |
4 |
5 | - Опишите изменения функциональности
6 | - Реализованные проверки кода и метаданных
7 |
8 |
9 |
10 | ## Чек-лист
11 |
12 |
16 |
17 | Общее:
18 | - [ ] ветка PR обновлена из `master` и нет конфликтов
19 | - [ ] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
20 | - [ ] Измененные Вами исходники отформатированы в соответствии с конвенцией
21 | - [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
22 | - [ ] Добавлена запись в [ИСТОРИЮ ИЗМЕНЕНИЯ](CHANGELOG.md), включаемая в пользовательскую документацию плагина
23 |
24 | Если применимо:
25 | - [ ] Пользовательская документация на доп.инструменты написана (на русском)
26 | - [ ] Описание проверок - на двух языках
27 |
28 | ## Закрываемые задачи
29 |
30 |
34 |
35 | Closes #??
36 |
37 |
42 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Reusable build with analyze
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | analyze:
7 | default: false
8 | required: false
9 | type: boolean
10 | secrets:
11 | sonar_token:
12 | required: true
13 |
14 | jobs:
15 | build:
16 | name: Build
17 | runs-on: ubuntu-latest
18 | env:
19 | PR_NUMBER: "${{ github.event_name == 'pull_request_target' && format(' -Dsonar.pullrequest.key={0}', github.event.pull_request.number) || '' }}"
20 | PR_REF: "${{ github.event_name == 'pull_request_target' && format('refs/pull/{0}/merge', github.event.pull_request.number) || '' }}"
21 |
22 | steps:
23 | - uses: actions/checkout@v2
24 | if: inputs.analyze
25 | with:
26 | fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
27 | ref: ${{ env.PR_REF }}
28 | - uses: actions/checkout@v2
29 | if: ${{ !inputs.analyze }}
30 |
31 | - name: Set up Maven 3.9.6
32 | uses: s4u/setup-maven-action@v1.12.0
33 | with:
34 | java-version: 17
35 | java-package: jdk+fx
36 |
37 | - name: Free disk space
38 | run: |
39 | sudo swapoff -a
40 | sudo rm -f /swapfile
41 | sudo apt clean
42 | docker rmi $(docker image ls -aq)
43 | df -h
44 |
45 | - name: Cache maven repo
46 | uses: actions/cache@v2
47 | if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
48 | with:
49 | path: ~/.m2/repository
50 | key: ${{ runner.os }}-maven-latest-${{ hashFiles('**/pom.xml') }}-${{ hashFiles('targets/default/default.target') }}
51 | restore-keys: |
52 | ${{ runner.os }}-maven-latest-
53 |
54 | - name: Cache SonarCloud packages
55 | uses: actions/cache@v2
56 | if: inputs.analyze
57 | with:
58 | path: ~/.sonar/cache
59 | key: ${{ runner.os }}-sonar
60 | restore-keys: ${{ runner.os }}-sonar
61 |
62 | - name: Build with Maven
63 | env:
64 | # Do not start Sonar-scanning for forks without label, and pass fork PR number directly
65 | SONAR_PARAM: "${{ inputs.analyze && format('{0}{1}', 'org.sonarsource.scanner.maven:sonar-maven-plugin:sonar', env.PR_NUMBER) || '' }}"
66 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
67 | SONAR_TOKEN: ${{ secrets.sonar_token }}
68 | working-directory: ./
69 | run: |
70 | Xvfb :5 -screen 0 1280x1024x8 -fbdir /tmp &
71 | export DISPLAY=:5
72 | echo "Sonar param: \"${SONAR_PARAM}\""
73 | mvn clean verify ${SONAR_PARAM} -PSDK,find-bugs -Dtycho.localArtifacts=ignore -Dtycho.p2.httptransport.type=JavaUrl -X -B -V 1C
74 |
75 | - name: Publish Test Report
76 | uses: scacap/action-surefire-report@v1
77 | if: inputs.analyze
78 | with:
79 | github_token: ${{ secrets.GITHUB_TOKEN }}
80 |
81 | - name: Upload repo
82 | uses: actions/upload-artifact@v4
83 | with:
84 | name: ssl-support-repository
85 | path: repositories/com.e1c.ssl.repository/target/repository/
86 |
87 | - name: Upload SDK repo
88 | uses: actions/upload-artifact@v4
89 | with:
90 | name: ssl-support-repository-sdk
91 | path: repositories/com.e1c.ssl.repository.sdk/target/repository/
92 |
93 | - name: Upload JaCoCo exec data
94 | uses: actions/upload-artifact@v4
95 | if: always()
96 | with:
97 | name: jacoco
98 | path: |
99 | ./**/target/jacoco.exec
100 | ./**/target/site/jacoco*/
101 |
102 | - name: Upload test logs on failure
103 | uses: actions/upload-artifact@v4
104 | if: failure()
105 | with:
106 | name: logs
107 | path: ./**/.log
108 |
109 | - name: Upload WS logs on failure
110 | uses: actions/upload-artifact@v4
111 | if: always()
112 | with:
113 | name: ws-logs
114 | path: ./**/target/work/data/.metadata/.log
115 |
116 |
--------------------------------------------------------------------------------
/.github/workflows/ci-build.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | - release/*
8 | pull_request:
9 | branches:
10 | - '*'
11 |
12 | jobs:
13 | build:
14 | name: Build
15 | # This build will run on master,release/* push, local PR and PR from forks without label Analyze
16 | if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name || !contains(github.event.pull_request.labels.*.name, 'Analyze')
17 | uses: 1C-company/ssl-support/.github/workflows/build.yml@master
18 | with:
19 | analyze: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name }}
20 | secrets:
21 | sonar_token: ${{ secrets.SONAR_TOKEN }}
22 |
--------------------------------------------------------------------------------
/.github/workflows/fork-pull.yml:
--------------------------------------------------------------------------------
1 | name: CI Analyze in forks
2 |
3 | on:
4 | # This event allows to use Sonar analyzing PR from forks by adding label
5 | pull_request_target:
6 | types: [opened, synchronize, reopened, labeled]
7 |
8 | jobs:
9 | build:
10 | # This build with analyze will run only on forks PR with label "Analyze"
11 | if: github.event.pull_request.head.repo.full_name != github.event.repository.full_name && contains(github.event.pull_request.labels.*.name, 'Analyze')
12 | uses: 1C-company/v8-code-style/.github/workflows/build.yml@master
13 | with:
14 | analyze: true
15 | secrets:
16 | sonar_token: ${{ secrets.SONAR_TOKEN }}
17 |
18 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Build and upload Release Asset
2 |
3 | on:
4 | push:
5 | tags:
6 | - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
7 |
8 | jobs:
9 | build:
10 |
11 | runs-on: ubuntu-latest
12 |
13 | steps:
14 | - uses: actions/checkout@v2
15 |
16 | - name: Set up JDK 11
17 | uses: actions/setup-java@v1
18 | with:
19 | java-version: 11
20 | java-package: jdk+fx
21 |
22 | - name: Cache maven repo
23 | uses: actions/cache@v1
24 | if: github.event_name == 'push'
25 | with:
26 | path: ~/.m2/repository
27 | key: ${{ runner.os }}-maven-base-${{ hashFiles('**/pom.xml') }}-${{ hashFiles('targets/base/base.target') }}
28 | restore-keys: |
29 | ${{ runner.os }}-maven-base-
30 |
31 | - name: Build with Maven
32 | working-directory: ./
33 | run: |
34 | Xvfb :5 -screen 0 1280x1024x8 -fbdir /tmp &
35 | export DISPLAY=:5
36 | mvn clean verify -PSDK,find-bugs -Dtycho.localArtifacts=ignore -B -V
37 |
38 | - name: Publish Test Report
39 | uses: scacap/action-surefire-report@v1
40 | if: always()
41 | with:
42 | github_token: ${{ secrets.GITHUB_TOKEN }}
43 |
44 | - name: Upload repo
45 | uses: actions/upload-artifact@v4
46 | with:
47 | name: repo
48 | path: repositories/com.e1c.ssl.repository/target/repository/
49 |
50 | - name: Upload SDK repo
51 | uses: actions/upload-artifact@v4
52 | with:
53 | name: sdk-repo
54 | path: repositories/com.e1c.ssl.repository.sdk/target/repository/
55 |
56 | - name: Upload JaCoCo exec data
57 | uses: actions/upload-artifact@v4
58 | if: always()
59 | with:
60 | name: jacoco
61 | path: |
62 | ./**/target/jacoco.exec
63 | ./**/target/site/jacoco*/
64 |
65 | - name: Upload test logs on failure
66 | uses: actions/upload-artifact@v4
67 | if: failure()
68 | with:
69 | name: logs
70 | path: ./**/.log
71 |
72 | - name: Create Release
73 | id: create_release
74 | uses: actions/create-release@latest
75 | env:
76 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77 | with:
78 | tag_name: ${{ github.ref }}
79 | release_name: Release ${{ github.ref }}
80 | draft: false
81 | prerelease: true
82 |
83 | - name: Upload Release Asset
84 | uses: actions/upload-release-asset@v1
85 | env:
86 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
87 | with:
88 | upload_url: ${{ steps.create_release.outputs.upload_url }}
89 | asset_path: ./repositories/com.e1c.ssl.repository.sdk/target/com.e1c.ssl.repository.sdk.zip
90 | asset_name: repo.zip
91 | asset_content_type: application/zip
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #Eclipse project files
2 | .metadata/
3 | .metricsapp/
4 | .metricsapp-tests/
5 | .JETEmitters/
6 | #Build targets
7 | bin/
8 | target/
9 | #Report directories
10 | /reports
11 | */reports
12 | #Mac-specific directory that no other operating system needs.
13 | .DS_Store
14 | .m2/
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | 1C:SSL support for 1C:EDT - CHANGELOG - ИСТОРИЯ ИЗМЕНЕНИЙ
2 |
3 | ## 0.8.0
4 |
5 | * Переход на EDT 2022.2
6 |
7 | ## 0.7.0
8 |
9 | * Переход на EDT 2022.1
10 |
11 | ## 0.6.0
12 |
13 | * Переход на EDT 2021.3
14 | * NPE при построении конфигурации #90
15 |
16 | ## 0.5.0
17 |
18 | * Переход на EDT 2021.2
19 | * Поддержка функции ОбщегоНазанчения.ФиксированныеДанные()
20 | * Функция ОбщегоНазначения.СкопироватьРекурсивно() корректно учтиывает второй параметр для фиксированных данных
21 |
22 | ## 0.4.0
23 |
24 | * Переход на EDT 2021.1
25 | * Поддержка функции ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру()
26 | * Поддержка функции ОбщегоНазначения.ТаблицаЗначенийВМассив()
27 | * Поддержка функции ОбщегоНазначения.ОписаниеСвойствОбъекта()
28 | * Поддержка функции ОбщегоНазначения.СкопироватьРекурсивно()
29 | * Документация Markdown в составе плагина
30 | * Поддержка функции ОбщегоНазначенияКлиентСервер.СвернутьМассив()
31 | * Поддержка функции ОбщегоНазначенияКлиентСервер.РазностьМассивов()
32 | * Поддержка функции ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве()
33 | * Поддержка функции ОбщегоНазначения.ВыгрузитьКолонку()
34 | * Поддержка функции ОбщегоНазначения.ПроверитьПроведенностьДокументов()
35 |
36 | ## 0.3.0
37 |
38 | * Переход на EDT 2020.6
39 |
40 | ## 0.2.0
41 |
42 | * Контент-ассист для параметров функций модуля `ОбщегоНазначения` `ЗначениеРеквизитаОбъекта` и `ЗначениеРеквизитаОбъектов` - в строковых литералах падсказываются имена реквизитов
43 | * Поддержка вычисления контента строковых литералов в переменных, значений элементов массива, значений ключей структур
44 | * Переход на EDT 2020.5
45 |
46 | ## 0.1.1
47 |
48 | Выпуск бета-версии для 1C:EDT 2020.4 без изменения функциональности
49 |
50 | ## 0.1.0
51 |
52 | Выпуск бета-версии для 1C:EDT 2020.3
53 |
--------------------------------------------------------------------------------
/NOTICE.md:
--------------------------------------------------------------------------------
1 | # Notices for ssl-support
2 |
3 | This content is produced and maintained by the 1C-Soft LLC.
4 |
5 | ## Copyright
6 |
7 | All content is the property of the respective authors or their employers.
8 | For more information regarding authorship of content, please consult the
9 | listed source code repository logs.
10 |
11 | ## Declared Project Licenses
12 |
13 | This program and the accompanying materials are made available under
14 | the terms of the Eclipse Public License 2.0 which is available at
15 | https://www.eclipse.org/legal/epl-2.0/
16 | SPDX-License-Identifier: EPL-2.0
17 |
18 | ## Source Code
19 |
20 | The source code repository is available at https://github.com/1C-Company/ssl-support
21 |
22 | ## Third-party Content
23 |
24 | Eclipse platform
25 |
26 | * License: EPL-1, EPL-2.0
27 |
28 | Google Guice / Inject Core API 3.0
29 |
30 | * License: Apache-2.0
31 |
32 | Google Guava 27.1
33 |
34 | * License: Apache-2.0
35 |
36 | JUnit 4
37 |
38 | * License: Eclipse Public License - v 1.0
39 |
--------------------------------------------------------------------------------
/bom/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | bom
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/bom/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/bom/set_version.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #*******************************************************************************
3 | # Copyright (C) 2020 1C-Soft LLC and others.
4 | #
5 | # This program and the accompanying materials are made
6 | # available under the terms of the Eclipse Public License 2.0
7 | # which is available at https://www.eclipse.org/legal/epl-2.0/
8 | #
9 | # SPDX-License-Identifier: EPL-2.0
10 | #
11 | # Contributors:
12 | # 1C-Soft LLC - initial API and implementation
13 | #*******************************************************************************
14 |
15 | current_version='0.6.0'
16 | new_version='0.7.0'
17 | next_version='0.8.0'
18 |
19 | #sed "s/\0.1.0-SNAPSHOT\<\/version\>/\0.1.1-SNAPSHOT\<\/version\>/g" pom.xml
20 | find . -name 'pom.xml' -exec sed -i '' "s/${current_version}-SNAPSHOT/${new_version}-SNAPSHOT/g" {} +
21 | find . -name 'pom-rcptt.xml' -exec sed -i '' "s/\${current_version}-SNAPSHOT\<\/version\>/\${new_version}-SNAPSHOT\<\/version\>/g" {} +
22 |
23 | #sed "s/Bundle-Version: 0.2.0.qualifier/Bundle-Version: 0.3.0.qualifier/g" ./com.e1c.ssl/META-INF/MANIFEST.MF
24 | find . -name 'MANIFEST.MF' -exec sed -i '' "s/Bundle-Version: ${current_version}.qualifier/Bundle-Version: ${new_version}.qualifier/g" {} +
25 |
26 | #sed "s/\(com\._1c\.ssl[\.a-z0-9].*;version=\"\)\([\.0-9]*\)\"/\10.3.0\"/g" ./com.e1c.ssl.bsl/META-INF/MANIFEST.MF
27 | find . -name 'MANIFEST.MF' -exec sed -i '' "s/\(com\.e1c\.ssl[\.a-z0-9]*;version=\"\)\([\.0-9]*\)\"/\1${new_version}\"/g" {} +
28 |
29 | #sed "s/\(com\._1c\.ssl[\.a-z.]*;version=\"\[\)\([\.,0-9]*)\"\)/\1zzzzz0.3.0zzzzz,yyyy0.4.0yyyy)\"/g" ./com.e1c.ssl.bsl/META-INF/MANIFEST.MF
30 | find . -name 'MANIFEST.MF' -exec sed -i '' "s/\(com\.e1c\.ssl[\.a-z0-9]*;version=\"\[\)\([\.,0-9]*)\"\)/\1${new_version},${next_version})\"/g" {} +
31 | find . -name 'MANIFEST.MF' -exec sed -i '' "s/\(com\.e1c\.ssl[\.a-z0-9]*;bundle-version=\"\[\)\([\.,0-9]*)\"\)/\1${new_version},${next_version})\"/g" {} +
32 |
33 | #sed "s/0.2.0.qualifier/zzzz0.3.0.qualifierzzzz/g" ./repository/category.xml
34 | find . -name 'category.xml' -exec sed -i '' "s/${current_version}.qualifier/${new_version}.qualifier/g" {} +
35 |
36 | #sed "s/version=\"0.2.0.qualifier\"/version=\"0.3.0.qualifier\"/g" ./com.e1c.ssl.v8.dt.feature/feature.xml
37 | find . -name 'feature.xml' -exec sed -i '' "s/version=\"${current_version}.qualifier\"/version=\"${new_version}.qualifier\"/g" {} +
38 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.e1c.ssl.bsl.ui
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.pde.ManifestBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.pde.SchemaBuilder
20 |
21 |
22 |
23 |
24 |
25 | org.eclipse.pde.PluginNature
26 | org.eclipse.jdt.core.javanature
27 |
28 |
29 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=117
4 | org.eclipse.jdt.core.compiler.compliance=17
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 | org.eclipse.jdt.core.compiler.source=17
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Bundle-ManifestVersion: 2
3 | Bundle-Name: %pluginName
4 | Bundle-SymbolicName: com.e1c.ssl.bsl.ui;singleton:=true
5 | Bundle-Version: 0.7.0.qualifier
6 | Bundle-Activator: com.e1c.ssl.bsl.internal.ui.UiPlugin
7 | Bundle-Vendor: %providerName
8 | Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
9 | org.eclipse.core.runtime;bundle-version="[3.15.0,4.0.0)",
10 | org.eclipse.xtext;bundle-version="[2.18.0,3.0.0)",
11 | org.eclipse.xtext.ui;bundle-version="[2.18.0,3.0.0)",
12 | com.google.inject;bundle-version="[7.0.0,8.0.0)"
13 | Bundle-RequiredExecutionEnvironment: JavaSE-17
14 | Automatic-Module-Name: com.e1c.ssl.bsl.ui
15 | Bundle-ActivationPolicy: lazy
16 | Bundle-Localization: plugin
17 | Import-Package: com._1c.g5.modeling.xtext.scoping;version="[4.1.0,5.0.0)",
18 | com._1c.g5.v8.dt.bsl.documentation.comment;version="[6.0.0,7.0.0)",
19 | com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)",
20 | com._1c.g5.v8.dt.bsl.resource;version="[15.0.0,16.0.0)",
21 | com._1c.g5.v8.dt.bsl.ui.contentassist.stringliteral;version="[6.0.0,7.0.0)",
22 | com._1c.g5.v8.dt.bsl.validation.stringliterals;version="[5.0.0,6.0.0)",
23 | com._1c.g5.v8.dt.lcore.naming;version="[1.0.0,2.0.0)",
24 | com._1c.g5.v8.dt.lcore.util;version="[2.0.0,3.0.0)",
25 | com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
26 | com._1c.g5.v8.dt.mcore.util;version="[3.10.0,4.0.0)",
27 | com._1c.g5.v8.dt.md.resource;version="[13.0.0,14.0.0)",
28 | com._1c.g5.v8.dt.md.ui.shared;version="[2.1.0,3.0.0)",
29 | com._1c.g5.v8.dt.metadata.mdclass;version="[10.0.0,11.0.0)",
30 | com._1c.g5.v8.dt.platform;version="[7.0.0,8.0.0)",
31 | com._1c.g5.wiring;version="[2.0.0,3.0.0)",
32 | com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
33 | com.e1c.ssl.bsl;version="[0.7.0,0.8.0)"
34 | Export-Package: com.e1c.ssl.bsl.ui;version="0.7.0"
35 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/build.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | source.. = src/
14 | output.. = bin/
15 | bin.includes = META-INF/,\
16 | .,\
17 | plugin.xml,\
18 | plugin.properties
19 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/plugin.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | pluginName = 1C:SSL module UI support for 1C:EDT
14 | providerName = 1C-Soft LLC
15 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
19 |
21 |
22 |
24 |
25 |
27 |
28 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
17 | 4.0.0
18 |
19 | com.e1c.ssl
20 | bundles
21 | 0.7.0-SNAPSHOT
22 |
23 | com.e1c.ssl.bsl.ui
24 | 0.7.0-SNAPSHOT
25 | eclipse-plugin
26 |
27 |
28 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/src/com/e1c/ssl/bsl/internal/ui/BslStringLiteralProposalImageProviderForMdObject.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl.internal.ui;
14 |
15 | import org.eclipse.emf.ecore.EClass;
16 | import org.eclipse.swt.graphics.Image;
17 |
18 | import com._1c.g5.v8.dt.bsl.ui.contentassist.stringliteral.IStringLiteralProposalProvider.IBslStringLiteralProposalImageProvider;
19 | import com._1c.g5.v8.dt.md.ui.shared.MdUiSharedImages;
20 |
21 | /**
22 | * Image provider for bsl string literal proposal based {@link EClass} of the MD object
23 | *
24 | * @author Dmitriy Marmyshev
25 | *
26 | */
27 | public class BslStringLiteralProposalImageProviderForMdObject
28 | implements IBslStringLiteralProposalImageProvider
29 | {
30 | private final EClass eClass;
31 |
32 | public BslStringLiteralProposalImageProviderForMdObject(EClass eClass)
33 | {
34 | this.eClass = eClass;
35 | }
36 |
37 | @Override
38 | public Image getImage()
39 | {
40 | return MdUiSharedImages.getMdClassImage(this.eClass);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/src/com/e1c/ssl/bsl/internal/ui/ExternalDependenciesModule.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl.internal.ui;
14 |
15 | import org.eclipse.core.runtime.Plugin;
16 | import org.eclipse.xtext.naming.IQualifiedNameProvider;
17 |
18 | import com._1c.g5.wiring.AbstractServiceAwareModule;
19 |
20 | /**
21 | * Guice module with external services bindings.
22 | *
23 | * @author Dmitriy Marmyshev
24 | *
25 | */
26 | class ExternalDependenciesModule
27 | extends AbstractServiceAwareModule
28 | {
29 |
30 | ExternalDependenciesModule(Plugin plugin)
31 | {
32 | super(plugin);
33 | }
34 |
35 | @Override
36 | protected void doConfigure()
37 | {
38 | bind(IQualifiedNameProvider.class).toService();
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl.ui/src/com/e1c/ssl/bsl/internal/ui/UiExecutableExtensionFactory.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl.internal.ui;
14 |
15 | import org.osgi.framework.Bundle;
16 |
17 | import com._1c.g5.wiring.AbstractGuiceAwareExecutableExtensionFactory;
18 | import com.google.inject.Injector;
19 |
20 | /**
21 | * Guice module aware executable extension factory for UI plugin.
22 | *
23 | * @author Dmitriy Marmyshev
24 | *
25 | */
26 | public class UiExecutableExtensionFactory
27 | extends AbstractGuiceAwareExecutableExtensionFactory
28 | {
29 | @Override
30 | protected Bundle getBundle()
31 | {
32 | return UiPlugin.getDefault().getBundle();
33 | }
34 |
35 | @Override
36 | protected Injector getInjector()
37 | {
38 | return UiPlugin.getDefault().getInjector();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.e1c.ssl.bsl
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.pde.ManifestBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.pde.SchemaBuilder
20 |
21 |
22 |
23 |
24 |
25 | org.eclipse.pde.PluginNature
26 | org.eclipse.jdt.core.javanature
27 |
28 |
29 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
4 | org.eclipse.jdt.core.compiler.compliance=17
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 | org.eclipse.jdt.core.compiler.source=17
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Bundle-ManifestVersion: 2
3 | Bundle-Name: %pluginName
4 | Bundle-SymbolicName: com.e1c.ssl.bsl;singleton:=true
5 | Bundle-Version: 0.7.0.qualifier
6 | Bundle-Activator: com.e1c.ssl.bsl.internal.BslPlugin
7 | Bundle-Vendor: %providerName
8 | Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.15.0,4.0.0)",
9 | org.eclipse.emf.common;bundle-version="[2.16.0,3.0.0)",
10 | org.eclipse.emf.ecore;bundle-version="[2.18.0,3.0.0)",
11 | org.eclipse.xtext;bundle-version="[2.18.0,3.0.0)",
12 | org.eclipse.core.resources;bundle-version="[3.13.400,4.0.0)",
13 | org.eclipse.jdt.annotation;bundle-version="[2.2.0,3.0.0)";resolution:=optional
14 | Bundle-RequiredExecutionEnvironment: JavaSE-17
15 | Automatic-Module-Name: com.e1c.ssl.bsl
16 | Bundle-Localization: plugin
17 | Bundle-ActivationPolicy: lazy
18 | Import-Package: com._1c.g5.v8.bm.core;version="[9.0.0,10.0.0)",
19 | com._1c.g5.v8.bm.integration;version="[11.0.0,12.0.0)",
20 | com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)",
21 | com._1c.g5.v8.dt.bsl.model.util;version="[4.0.0,5.0.0)",
22 | com._1c.g5.v8.dt.bsl.resource;version="[15.0.0,16.0.0)",
23 | com._1c.g5.v8.dt.bsl.typesystem;version="[10.0.0,11.0.0)",
24 | com._1c.g5.v8.dt.bsl.typesystem.util;version="[11.0.0,12.0.0)",
25 | com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)",
26 | com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
27 | com._1c.g5.v8.dt.mcore.util;version="[3.0.0,4.0.0)",
28 | com._1c.g5.v8.dt.md.resource;version="[13.0.0,14.0.0)",
29 | com._1c.g5.v8.dt.platform;version="[7.0.0,8.0.0)",
30 | com._1c.g5.v8.dt.platform.version;version="[2.0.0,3.0.0)",
31 | com._1c.g5.wiring;version="[2.0.0,3.0.0)",
32 | com._1c.g5.wiring.binder;version="[1.0.0,2.0.0)"
33 | Export-Package: com.e1c.ssl.bsl;version="0.7.0";
34 | uses:="com._1c.g5.v8.dt.mcore,
35 | com._1c.g5.v8.dt.bsl.typesystem,
36 | com._1c.g5.v8.dt.bsl.resource,
37 | com._1c.g5.v8.dt.bsl.model"
38 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/build.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | source.. = src/
14 | output.. = bin/
15 | bin.includes = META-INF/,\
16 | .,\
17 | plugin.xml,\
18 | plugin.properties
19 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/plugin.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | pluginName = 1C:SSL module support for 1C:EDT
14 | providerName = 1C-Soft LLC
15 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
19 |
23 |
24 |
28 |
29 |
33 |
34 |
38 |
39 |
43 |
44 |
48 |
49 |
53 |
54 |
58 |
59 |
63 |
64 |
68 |
69 |
73 |
74 |
78 |
79 |
83 |
84 |
88 |
89 |
93 |
94 |
98 |
99 |
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
17 | 4.0.0
18 |
19 | com.e1c.ssl
20 | bundles
21 | 0.7.0-SNAPSHOT
22 |
23 | com.e1c.ssl.bsl
24 | 0.7.0-SNAPSHOT
25 | eclipse-plugin
26 |
27 |
28 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/AbstractCommonModuleObjectAttributeValueTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.List;
16 | import java.util.stream.Collectors;
17 |
18 | import org.eclipse.xtext.EcoreUtil2;
19 |
20 | import com._1c.g5.v8.dt.bsl.model.Expression;
21 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
22 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
23 | import com._1c.g5.v8.dt.mcore.Environmental;
24 | import com._1c.g5.v8.dt.mcore.Type;
25 | import com._1c.g5.v8.dt.mcore.TypeItem;
26 | import com._1c.g5.v8.dt.mcore.util.McoreUtil;
27 | import com._1c.g5.v8.dt.platform.IEObjectTypeNames;
28 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
29 |
30 | /**
31 | * Abstract extension computer of invocation types of 1C:SSL API module functions that
32 | * returns actual types for the ref type of link and attribute names.
33 | *
34 | * @author Dmitriy Marmyshev
35 | *
36 | */
37 | public abstract class AbstractCommonModuleObjectAttributeValueTypesComputer
38 | extends AbstractCommonModuleCommonFunctionTypesComputer
39 | {
40 | private final TypesComputer typesComputer;
41 |
42 | private final DynamicFeatureAccessComputer dynamicFeatureAccessComputer;
43 |
44 | protected final IRuntimeVersionSupport versionSupport;
45 |
46 | /**
47 | * Instantiates a new abstract common module object attribute value types computer.
48 | *
49 | * @param typesComputer the types computer, cannot be {@code null}.
50 | * @param versionSupport the version support, cannot be {@code null}.
51 | * @param dynamicFeatureAccessComputer the dynamic feature access computer, cannot be {@code null}.
52 | */
53 | protected AbstractCommonModuleObjectAttributeValueTypesComputer(TypesComputer typesComputer,
54 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer)
55 | {
56 | super(typesComputer);
57 | this.typesComputer = typesComputer;
58 | this.dynamicFeatureAccessComputer = dynamicFeatureAccessComputer;
59 | this.versionSupport = versionSupport;
60 |
61 | }
62 |
63 | /**
64 | * Gets the dynamic feature access computer.
65 | *
66 | * @return the dynamic feature access computer
67 | */
68 | protected DynamicFeatureAccessComputer getDynamicFeatureAccessComputer()
69 | {
70 | return dynamicFeatureAccessComputer;
71 | }
72 |
73 | /**
74 | * Gets the returning ref types from array containing types.
75 | *
76 | * @param expr the expression to compute ref types
77 | * @return the return ref types
78 | */
79 | protected List getReturnArrayRefTypes(Expression expr)
80 | {
81 | Environmental environmental = EcoreUtil2.getContainerOfType(expr, Environmental.class);
82 | List paramTypes = typesComputer.computeTypes(expr, environmental.environments());
83 | //@formatter:off
84 | return paramTypes.stream()
85 | .filter(Type.class::isInstance)
86 | .map(Type.class::cast)
87 | .filter(t -> (IEObjectTypeNames.ARRAY.equals(McoreUtil.getTypeName(t))
88 | || IEObjectTypeNames.FIXED_ARRAY.equals(McoreUtil.getTypeName(t)))
89 | && t.getCollectionElementTypes() != null
90 | && !t.getCollectionElementTypes().allTypes().isEmpty())
91 | .flatMap(t -> t.getCollectionElementTypes().allTypes().stream())
92 | .filter(this::isRefType)
93 | .map(TypeItem.class::cast)
94 | .collect(Collectors.toList());
95 | //@formatter:on
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionArraysDifferenceTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2021, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import org.eclipse.xtext.EcoreUtil2;
19 |
20 | import com._1c.g5.v8.dt.bsl.model.Expression;
21 | import com._1c.g5.v8.dt.bsl.model.Invocation;
22 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
23 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
24 | import com._1c.g5.v8.dt.mcore.Environmental;
25 | import com._1c.g5.v8.dt.mcore.TypeItem;
26 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
27 | import com.google.inject.Inject;
28 |
29 | /**
30 | * Extension computer of invocation types of 1C:SSL API module function {@code CommonClientServer.ArraysDifference()}
31 | * that returns the typed array.
32 | *
33 | * @author Artem Iliukhin
34 | *
35 | */
36 | public class CommonFunctionArraysDifferenceTypesComputer
37 | extends AbstractCommonModuleObjectAttributeValueTypesComputer
38 | {
39 | private final TypesComputer typesComputer;
40 |
41 | @Inject
42 | protected CommonFunctionArraysDifferenceTypesComputer(TypesComputer typesComputer,
43 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer)
44 | {
45 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer);
46 | this.typesComputer = typesComputer;
47 | }
48 |
49 | @Override
50 | public List getTypes(Invocation inv)
51 | {
52 | if (inv.getParams().size() != 2)
53 | return Collections.emptyList();
54 |
55 | if (!isValidClientServerModuleNameInvocation(inv))
56 | return Collections.emptyList();
57 |
58 | Expression expr = inv.getParams().get(0);
59 | if (expr != null)
60 | {
61 | Environmental envs = EcoreUtil2.getContainerOfType(expr, Environmental.class);
62 | return typesComputer.computeTypes(expr, envs.environments());
63 | }
64 |
65 | return Collections.emptyList();
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionCheckDocumentsPostingTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2021, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import org.eclipse.xtext.EcoreUtil2;
19 |
20 | import com._1c.g5.v8.dt.bsl.model.Expression;
21 | import com._1c.g5.v8.dt.bsl.model.Invocation;
22 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
23 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
24 | import com._1c.g5.v8.dt.mcore.Environmental;
25 | import com._1c.g5.v8.dt.mcore.TypeItem;
26 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
27 | import com.google.inject.Inject;
28 |
29 | /**
30 | * Extension computer of invocation types of 1C:SSL API module function {@code Common.CheckDocumentsPosting()} that
31 | * returns the typed array.
32 | *
33 | * @author Artem Iliukhin
34 | *
35 | */
36 | public class CommonFunctionCheckDocumentsPostingTypesComputer
37 | extends AbstractCommonModuleObjectAttributeValueTypesComputer
38 | {
39 | private final TypesComputer typesComputer;
40 |
41 | @Inject
42 | public CommonFunctionCheckDocumentsPostingTypesComputer(TypesComputer typesComputer,
43 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer)
44 | {
45 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer);
46 | this.typesComputer = typesComputer;
47 | }
48 |
49 | @Override
50 | public List getTypes(Invocation inv)
51 | {
52 |
53 | if (inv.getParams().size() != 1)
54 | return Collections.emptyList();
55 |
56 | if (!isValidModuleNameInvocation(inv))
57 | return Collections.emptyList();
58 |
59 | Expression expr = inv.getParams().get(0);
60 | if (expr != null)
61 | {
62 | Environmental envs = EcoreUtil2.getContainerOfType(expr, Environmental.class);
63 | return typesComputer.computeTypes(expr, envs.environments());
64 | }
65 |
66 | return Collections.emptyList();
67 |
68 | }
69 |
70 | }
71 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionCollapseArrayTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2021, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import org.eclipse.xtext.EcoreUtil2;
19 |
20 | import com._1c.g5.v8.dt.bsl.model.Expression;
21 | import com._1c.g5.v8.dt.bsl.model.Invocation;
22 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
23 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
24 | import com._1c.g5.v8.dt.mcore.Environmental;
25 | import com._1c.g5.v8.dt.mcore.TypeItem;
26 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
27 | import com.google.inject.Inject;
28 |
29 | /**
30 | * Extension computer of invocation types of 1C:SSL API module function {@code CommonClientServer.CollapseArray()} that
31 | * returns the typed array.
32 | *
33 | * @author Artem Iliukhin
34 | *
35 | */
36 | public class CommonFunctionCollapseArrayTypesComputer
37 | extends AbstractCommonModuleObjectAttributeValueTypesComputer
38 | {
39 | private final TypesComputer typesComputer;
40 |
41 | @Inject
42 | public CommonFunctionCollapseArrayTypesComputer(TypesComputer typesComputer, IRuntimeVersionSupport versionSupport,
43 | DynamicFeatureAccessComputer dynamicFeatureAccessComputer)
44 | {
45 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer);
46 | this.typesComputer = typesComputer;
47 | }
48 |
49 | @Override
50 | public List getTypes(Invocation inv)
51 | {
52 | if (inv.getParams().size() != 1)
53 | return Collections.emptyList();
54 |
55 | if (!isValidClientServerModuleNameInvocation(inv))
56 | return Collections.emptyList();
57 |
58 | Expression expr = inv.getParams().get(0);
59 | if (expr != null)
60 | {
61 | Environmental envs = EcoreUtil2.getContainerOfType(expr, Environmental.class);
62 | return typesComputer.computeTypes(expr, envs.environments());
63 | }
64 |
65 | return Collections.emptyList();
66 |
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionObjectAttributeValueTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collection;
16 | import java.util.Collections;
17 | import java.util.HashSet;
18 | import java.util.List;
19 | import java.util.Set;
20 |
21 | import org.eclipse.emf.ecore.EObject;
22 | import org.eclipse.xtext.util.Pair;
23 |
24 | import com._1c.g5.v8.dt.bsl.model.Invocation;
25 | import com._1c.g5.v8.dt.bsl.model.StringLiteral;
26 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
27 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
28 | import com._1c.g5.v8.dt.mcore.Property;
29 | import com._1c.g5.v8.dt.mcore.TypeItem;
30 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
31 | import com.google.inject.Inject;
32 |
33 | /**
34 | * Extension computer of invocation types of 1C:SSL API module function {@code Common.ObjectsAttributeValue()} that
35 | * returns actual types for the ref type of link and attribute names.
36 | *
37 | * @author Dmitriy Marmyshev
38 | *
39 | */
40 | public class CommonFunctionObjectAttributeValueTypesComputer
41 | extends AbstractCommonModuleObjectAttributeValueTypesComputer
42 | {
43 | private final ExpressionValueComputer expressionValueComputer;
44 |
45 | @Inject
46 | public CommonFunctionObjectAttributeValueTypesComputer(TypesComputer typesComputer,
47 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer,
48 | ExpressionValueComputer expressionValueComputer)
49 | {
50 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer);
51 | this.expressionValueComputer = expressionValueComputer;
52 | }
53 |
54 | @Override
55 | public List getTypes(Invocation inv)
56 | {
57 | if (inv.getParams().size() < 2)
58 | return Collections.emptyList();
59 |
60 | Pair> paramContent =
61 | expressionValueComputer.getExpressionContent(inv.getParams().get(1));
62 |
63 | if (paramContent == null)
64 | return Collections.emptyList();
65 |
66 | if (isValidModuleNameInvocation(inv))
67 | {
68 | return computeTypes(inv, paramContent.getFirst());
69 | }
70 | return Collections.emptyList();
71 | }
72 |
73 | protected List computeTypes(Invocation inv, String paramContent)
74 | {
75 |
76 | List refTypes = getReturnRefTypes(inv.getParams().get(0));
77 |
78 | if (refTypes.isEmpty())
79 | return Collections.emptyList();
80 |
81 | String content = paramContent.trim().replace(System.lineSeparator(), ""); //$NON-NLS-1$
82 | if (content.isEmpty())
83 | return Collections.emptyList();
84 |
85 | String[] properties = content.split("\\.", -1); //$NON-NLS-1$
86 |
87 | return getTypeByPropertyName(refTypes, properties, inv);
88 | }
89 |
90 | protected List getTypeByPropertyName(Collection refTypes, String[] properties, EObject context)
91 | {
92 | Set result = new HashSet<>();
93 |
94 | if (properties == null || properties.length == 0 || properties[0] == null)
95 | {
96 | return List.copyOf(result);
97 | }
98 | String propertyName = properties[0];
99 |
100 | Collection, TypeItem>> all =
101 | getDynamicFeatureAccessComputer().getAllProperties(refTypes, context.eResource());
102 |
103 | for (Pair, TypeItem> pair : all)
104 | {
105 | for (Property entry : pair.getFirst())
106 | {
107 | if (!entry.getTypes().isEmpty() && (propertyName.equalsIgnoreCase(entry.getNameRu())
108 | || propertyName.equalsIgnoreCase(entry.getName())))
109 | {
110 | result.addAll(entry.getTypes());
111 | }
112 | }
113 | }
114 |
115 | if (properties.length > 1)
116 | {
117 | String[] other = new String[properties.length - 1];
118 | System.arraycopy(properties, 1, other, 0, properties.length - 1);
119 | return getTypeByPropertyName(result, other, context);
120 |
121 | }
122 | else
123 | {
124 | return List.copyOf(result);
125 | }
126 |
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionObjectsAttributeValueTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import com._1c.g5.v8.dt.bsl.model.Invocation;
19 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
20 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
21 | import com._1c.g5.v8.dt.mcore.TypeItem;
22 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
23 | import com.google.inject.Inject;
24 |
25 | /**
26 | * Extension computer of invocation types of 1C:SSL API module function {@code Common.ObjectsAttributeValue()} that
27 | * returns actual types for the ref type of link and attribute names.
28 | *
29 | * @author Dmitriy Marmyshev
30 | *
31 | */
32 | public class CommonFunctionObjectsAttributeValueTypesComputer
33 | extends CommonFunctionObjectAttributeValueTypesComputer
34 | {
35 | private final TypesComputerHelper typesComputerHelper;
36 |
37 | @Inject
38 | public CommonFunctionObjectsAttributeValueTypesComputer(TypesComputer typesComputer,
39 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer,
40 | ExpressionValueComputer expressionValueComputer, TypesComputerHelper typesComputerHelper)
41 | {
42 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer, expressionValueComputer);
43 | this.typesComputerHelper = typesComputerHelper;
44 | }
45 |
46 | @Override
47 | protected List computeTypes(Invocation inv, String paramContent)
48 | {
49 |
50 | List refTypes = getReturnArrayRefTypes(inv.getParams().get(0));
51 |
52 | if (refTypes.isEmpty())
53 | return Collections.emptyList();
54 |
55 | String content = paramContent.trim().replace(System.lineSeparator(), ""); //$NON-NLS-1$
56 | if (content.isEmpty())
57 | return Collections.emptyList();
58 |
59 | String[] properties = content.split("\\.", -1); //$NON-NLS-1$
60 |
61 | List types = getTypeByPropertyName(refTypes, properties, inv);
62 | if (!types.isEmpty())
63 | {
64 | return typesComputerHelper.createCustomMapType(refTypes, types, inv);
65 |
66 | }
67 | return Collections.emptyList();
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionObjectsAttributesValuesTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import com._1c.g5.v8.dt.bsl.model.Expression;
19 | import com._1c.g5.v8.dt.bsl.model.Invocation;
20 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
21 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
22 | import com._1c.g5.v8.dt.mcore.TypeItem;
23 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
24 | import com.google.inject.Inject;
25 |
26 | /**
27 | * Extension computer of invocation types of 1C:SSL API module function {@code Common.ObjectsAttributeValue()} that
28 | * returns actual types for the ref type of link and attribute names.
29 | *
30 | * @author Dmitriy Marmyshev
31 | *
32 | */
33 | public class CommonFunctionObjectsAttributesValuesTypesComputer
34 | extends CommonFunctionObjectAttributesValuesTypesComputer
35 | {
36 |
37 | private final TypesComputerHelper typesComputerHelper;
38 |
39 | @Inject
40 | public CommonFunctionObjectsAttributesValuesTypesComputer(TypesComputer typesComputer,
41 | IRuntimeVersionSupport versionSupport, DynamicFeatureAccessComputer dynamicFeatureAccessComputer,
42 | ExpressionValueComputer expressionValueComputer, TypesComputerHelper typesComputerHelper)
43 | {
44 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer, expressionValueComputer);
45 | this.typesComputerHelper = typesComputerHelper;
46 | }
47 |
48 | @Override
49 | protected List computeTypes(Invocation inv, List refTypes, String paramContent)
50 | {
51 | List types = super.computeTypes(inv, refTypes, paramContent);
52 | if (!types.isEmpty())
53 | {
54 | return typesComputerHelper.createCustomMapType(refTypes, types, inv);
55 |
56 | }
57 | return Collections.emptyList();
58 | }
59 |
60 | @Override
61 | protected List getReturnRefTypes(Expression expr)
62 | {
63 | return getReturnArrayRefTypes(expr);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/CommonFunctionValueInArrayTypesComputer.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2021, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl;
14 |
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | import org.eclipse.xtext.EcoreUtil2;
19 |
20 | import com._1c.g5.v8.dt.bsl.model.Expression;
21 | import com._1c.g5.v8.dt.bsl.model.ExtendedCollectionType;
22 | import com._1c.g5.v8.dt.bsl.model.Invocation;
23 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
24 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
25 | import com._1c.g5.v8.dt.bsl.typesystem.util.TypeSystemUtil;
26 | import com._1c.g5.v8.dt.mcore.Environmental;
27 | import com._1c.g5.v8.dt.mcore.McorePackage;
28 | import com._1c.g5.v8.dt.mcore.TypeItem;
29 | import com._1c.g5.v8.dt.platform.IEObjectProvider;
30 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
31 | import com._1c.g5.v8.dt.platform.version.Version;
32 | import com.google.common.collect.Lists;
33 | import com.google.inject.Inject;
34 |
35 | /**
36 | * Extension computer of invocation types of 1C:SSL API module function {@code CommonClientServer.ValueInArray()} that
37 | * returns the typed array.
38 | *
39 | * @author Artem Iliukhin
40 | *
41 | */
42 | public class CommonFunctionValueInArrayTypesComputer
43 | extends AbstractCommonModuleObjectAttributeValueTypesComputer
44 | {
45 | private final TypesComputer typesComputer;
46 |
47 | @Inject
48 | public CommonFunctionValueInArrayTypesComputer(TypesComputer typesComputer, IRuntimeVersionSupport versionSupport,
49 | DynamicFeatureAccessComputer dynamicFeatureAccessComputer)
50 | {
51 | super(typesComputer, versionSupport, dynamicFeatureAccessComputer);
52 | this.typesComputer = typesComputer;
53 | }
54 |
55 | @Override
56 | public List getTypes(Invocation inv)
57 | {
58 | if (inv.getParams().size() != 1)
59 | return Collections.emptyList();
60 |
61 | if (!isValidClientServerModuleNameInvocation(inv))
62 | return Collections.emptyList();
63 |
64 | Expression expr = inv.getParams().get(0);
65 | if (expr == null)
66 | return Collections.emptyList();
67 |
68 | Environmental envs = EcoreUtil2.getContainerOfType(expr, Environmental.class);
69 |
70 | List types = typesComputer.computeTypes(expr, envs.environments());
71 | if (types.isEmpty())
72 | return Collections.emptyList();
73 |
74 | IEObjectProvider provider = IEObjectProvider.Registry.INSTANCE.get(McorePackage.Literals.TYPE_ITEM,
75 | versionSupport.getRuntimeVersionOrDefault(inv, Version.LATEST));
76 |
77 | ExtendedCollectionType extendedType = TypeSystemUtil.createExtendedArrayType(types, provider, inv);
78 |
79 | return Lists.newArrayList(extendedType);
80 |
81 | }
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/internal/ExecutableExtensionFactory.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl.internal;
14 |
15 | import org.osgi.framework.Bundle;
16 |
17 | import com._1c.g5.wiring.AbstractGuiceAwareExecutableExtensionFactory;
18 | import com.google.inject.Injector;
19 |
20 | /**
21 | * Executable Extension Factory for core plugin.
22 | *
23 | * @author Dmitriy Marmyshev
24 | *
25 | */
26 | public class ExecutableExtensionFactory
27 | extends AbstractGuiceAwareExecutableExtensionFactory
28 | {
29 |
30 | @Override
31 | protected Bundle getBundle()
32 | {
33 | return BslPlugin.getDefault().getBundle();
34 | }
35 |
36 | @Override
37 | protected Injector getInjector()
38 | {
39 | return BslPlugin.getDefault().getInjector();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.bsl/src/com/e1c/ssl/bsl/internal/ExternalDependenciesModule.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.bsl.internal;
14 |
15 | import org.eclipse.core.runtime.Plugin;
16 | import org.eclipse.emf.common.util.URI;
17 | import org.eclipse.xtext.resource.IResourceServiceProvider;
18 | import org.eclipse.xtext.scoping.IScopeProvider;
19 |
20 | import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
21 | import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
22 | import com._1c.g5.v8.dt.bsl.typesystem.ValueTableDynamicContextDefProvider;
23 | import com._1c.g5.v8.dt.core.platform.IBmModelManager;
24 | import com._1c.g5.v8.dt.core.platform.IResourceLookup;
25 | import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
26 | import com._1c.g5.wiring.AbstractServiceAwareModule;
27 |
28 | /**
29 | * Guice module with external services bindings.
30 | *
31 | * @author Dmitriy Marmyshev
32 | *
33 | */
34 | class ExternalDependenciesModule
35 | extends AbstractServiceAwareModule
36 | {
37 |
38 | ExternalDependenciesModule(Plugin plugin)
39 | {
40 | super(plugin);
41 | }
42 |
43 | @Override
44 | protected void doConfigure()
45 | {
46 | // V8 DT
47 | bind(IResourceLookup.class).toService();
48 | bind(IRuntimeVersionSupport.class).toService();
49 | bind(IBmModelManager.class).toService();
50 |
51 | URI uri = URI.createURI("*.bsl"); //$NON-NLS-1$
52 | final IResourceServiceProvider rsp = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri);
53 |
54 | bind(TypesComputer.class).toProvider(() -> rsp.get(TypesComputer.class));
55 | bind(DynamicFeatureAccessComputer.class).toProvider(() -> rsp.get(DynamicFeatureAccessComputer.class));
56 | bind(IScopeProvider.class).toProvider(() -> rsp.get(IScopeProvider.class));
57 | bind(ValueTableDynamicContextDefProvider.class)
58 | .toProvider(() -> rsp.get(ValueTableDynamicContextDefProvider.class));
59 |
60 | }
61 |
62 | }
63 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.e1c.ssl.ui
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.pde.ManifestBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.pde.SchemaBuilder
20 |
21 |
22 |
23 |
24 |
25 | org.eclipse.pde.PluginNature
26 | org.eclipse.jdt.core.javanature
27 |
28 |
29 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
4 | org.eclipse.jdt.core.compiler.compliance=17
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 | org.eclipse.jdt.core.compiler.source=17
8 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Bundle-ManifestVersion: 2
3 | Bundle-Name: %pluginName
4 | Bundle-SymbolicName: com.e1c.ssl.ui;singleton:=true
5 | Bundle-Version: 0.7.0.qualifier
6 | Bundle-Activator: com.e1c.ssl.ui.Activator
7 | Bundle-Vendor: %providerName
8 | Require-Bundle: org.eclipse.ui,
9 | org.eclipse.core.runtime
10 | Bundle-RequiredExecutionEnvironment: JavaSE-17
11 | Automatic-Module-Name: com.e1c.ssl.ui
12 | Bundle-ActivationPolicy: lazy
13 | Export-Package: com.e1c.ssl.ui;version="0.7.0"
14 | Bundle-Localization: plugin
15 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/about.ini:
--------------------------------------------------------------------------------
1 | aboutText=1C:SSL support for 1C:EDT
2 | featureImage=logo.png
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/build.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | source.. = src/
14 | output.. = bin/
15 | bin.includes = META-INF/,\
16 | .,\
17 | plugin.properties,\
18 | about.ini,\
19 | logo.png
20 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1C-Company/ssl-support/bf21b5df1302f75ed88473c6eed3093ff4f74652/bundles/com.e1c.ssl.ui/logo.png
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/plugin.properties:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Copyright (C) 2020, 1C-Soft LLC and others.
3 | #
4 | # This program and the accompanying materials are made
5 | # available under the terms of the Eclipse Public License 2.0
6 | # which is available at https://www.eclipse.org/legal/epl-2.0/
7 | #
8 | # SPDX-License-Identifier: EPL-2.0
9 | #
10 | # Contributors:
11 | # 1C-Soft LLC - initial API and implementation
12 | ###############################################################################
13 | pluginName = 1C:SSL UI support for 1C:EDT
14 | providerName = 1C-Soft LLC
15 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
17 | 4.0.0
18 |
19 | com.e1c.ssl
20 | bundles
21 | 0.7.0-SNAPSHOT
22 |
23 | com.e1c.ssl.ui
24 | 0.7.0-SNAPSHOT
25 | eclipse-plugin
26 |
27 |
28 |
--------------------------------------------------------------------------------
/bundles/com.e1c.ssl.ui/src/com/e1c/ssl/ui/Activator.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Copyright (C) 2020, 1C-Soft LLC and others.
3 | *
4 | * This program and the accompanying materials are made
5 | * available under the terms of the Eclipse Public License 2.0
6 | * which is available at https://www.eclipse.org/legal/epl-2.0/
7 | *
8 | * SPDX-License-Identifier: EPL-2.0
9 | *
10 | * Contributors:
11 | * 1C-Soft LLC - initial API and implementation
12 | *******************************************************************************/
13 | package com.e1c.ssl.ui;
14 |
15 | import org.eclipse.ui.plugin.AbstractUIPlugin;
16 | import org.osgi.framework.BundleContext;
17 |
18 | /**
19 | * The activator class controls the plug-in life cycle
20 | *
21 | * @author Dmitriy Marmyshev
22 | *
23 | */
24 | public class Activator
25 | extends AbstractUIPlugin
26 | {
27 |
28 | // The plug-in ID
29 | public static final String PLUGIN_ID = "com.e1c.ssl.ui"; //$NON-NLS-1$
30 |
31 | // The shared instance
32 | private static Activator plugin;
33 |
34 | /**
35 | * The constructor
36 | */
37 | public Activator()
38 | {
39 | }
40 |
41 | @Override
42 | public void start(BundleContext context) throws Exception
43 | {
44 | super.start(context);
45 | plugin = this;
46 | }
47 |
48 | @Override
49 | public void stop(BundleContext context) throws Exception
50 | {
51 | plugin = null;
52 | super.stop(context);
53 | }
54 |
55 | /**
56 | * Returns the shared instance
57 | *
58 | * @return the shared instance
59 | */
60 | public static Activator getDefault()
61 | {
62 | return plugin;
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/bundles/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
13 | 4.0.0
14 |
15 | com.e1c.ssl
16 | parent
17 | 0.7.0-SNAPSHOT
18 |
19 |
20 | com.e1c.ssl
21 | bundles
22 | pom
23 | Bundles
24 |
25 |
26 | com.e1c.ssl.ui
27 | com.e1c.ssl.bsl
28 | com.e1c.ssl.bsl.ui
29 |
30 |
31 |
32 |
33 |
34 | org.eclipse.tycho
35 | tycho-source-plugin
36 |
37 |
38 | org.apache.maven.plugins
39 | maven-checkstyle-plugin
40 |
41 |
42 | run-checkstyle
43 | validate
44 |
45 | check
46 |
47 |
48 |
49 |
50 |
51 | org.codehaus.mojo
52 | native2ascii-maven-plugin
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/docs/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | toc.md
2 | changelog.md
3 | html/*
--------------------------------------------------------------------------------
/docs/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.e1c.ssl.docs
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.pde.ManifestBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.pde.SchemaBuilder
20 |
21 |
22 |
23 |
24 |
25 | org.eclipse.pde.PluginNature
26 | org.eclipse.jdt.core.javanature
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/docs/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Bundle-ManifestVersion: 2
3 | Bundle-Name: %pluginName
4 | Bundle-SymbolicName: com.e1c.ssl.docs;singleton:=true
5 | Bundle-Version: 0.7.0.qualifier
6 | Bundle-Vendor: %providerName
7 | Automatic-Module-Name: com.e1c.ssl.docs
8 | Bundle-RequiredExecutionEnvironment: JavaSE-17
9 | Bundle-Localization: plugin
10 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # 1C:SSL support for 1C:EDT
2 |
3 | Расширение для 1C:EDT позволяющее разрабатывать конфигурации на основе библиотеки 1С:БСП (Библиотека Стандартных Подсистем, Standard Subsystems Library) с бОльшим комфортом.
4 |
5 | ## Основные возможности
6 |
7 | ### Помощник ввода в строковых литералах
8 |
9 | Поддержка контент-ассиста в строковых литералах, гиперссылки для перехода или по F3:
10 |
11 | * [`ОбщегоНазначения.ПодсистемаСуществует` (`Common.SubsystemExist`)](common-subsystem-exist.md)
12 | * [`ОбщегоНазначения.ОбщийМодуль` (`Common.CommonModule`)](common-common-module.md)
13 | * [`ОбщегоНазначения.ЗначениеРеквизитаОбъекта` (`Common.ObjectAttributeValue`)](common-object-attribute-value.md)
14 | * [`ОбщегоНазначения.ЗначениеРеквизитаОбъектов` (`Common.ObjectsAttributeValue`)](common-objects-attribute-value.md)
15 | * [`ОбщегоНазначенияКлиент.ОбщийМодуль` (`CommonClient.CommonModule`)](common-client-common-module.md)
16 | * [`ОбщегоНазначенияКлиент.ПодсистемаСуществует` (`CommonClient.SubsystemExist`)](common-client-subsystem-exist.md)
17 |
18 |
19 | ### Типизация возвращаемых значений
20 |
21 | Позволяет на лету вычислять функции общего модуля `ОбщегоНазначения` (`Common`), которые возвращают тип в зависимости от переданных параметров.
22 |
23 | * [`ОбщийМодуль` (`CommonModule`)](common-common-module.md)
24 | * [`МенеджерОбъектаПоСсылке` (`ObjectManagerByRef`)](common-object-manager-by-ref.md)
25 | * [`МенеджерОбъектаПоПолномуИмени` (`ObjectManagerByFullName`)](common-object-manager-by-full-name.md)
26 | * [`ЗначениеРеквизитаОбъекта` (`ObjectAttributeValue`)](common-object-attribute-value.md)
27 | * [`ЗначениеРеквизитаОбъектов` (`ObjectsAttributeValue`)](common-objects-attribute-value.md)
28 | * [`ЗначенияРеквизитовОбъекта` (`ObjectAttributesValues`)](common-object-attributes-values.md)
29 | * [`ЗначенияРеквизитовОбъектов` (`ObjectsAttributesValues`)](common-objects-attribute-value.md)
30 | * [`ОписаниеСвойствОбъекта` (`ObjectPropertiesDetails`)](common-object-properties-details.md)
31 | * [`ТаблицаЗначенийВМассив` (`ValueTableToArray`)](common-value-table-to-array.md)
32 | * [`СтрокаТаблицыЗначенийВСтруктуру` (`ValueTableRowToStructure`)](common-value-table-row-to-structure.md)
33 | * [`ФиксированныеДанные` (`FixedData`)](common-value-fixed-data.md)
34 | * [`ВыгрузитьКолонку` (`UnloadColumn`)](common-unload-column.md)
35 | * [`ПроверитьПроведенностьДокументов` (`CheckDocumentsPosting`)](common-check-documents-posting.md)
36 | * [`СкопироватьРекурсивно` (`CopyRecursive`)](common-copy-recursive.md)
37 |
38 | Позволяет на лету вычислять функции общего модуля `ОбщегоНазначенияКлииентСервер` (`CommonClientServer`)
39 |
40 | * [`РазностьМассивов` (`ArraysDifference`)](common-client-server-arrays-difference.md)
41 | * [`ЗначениеВМассиве` (`ValueInArray`)](common-client-server-value-in-array.md)
42 | * [`СвернутьМассив` (`CollapseArray`)](common-client-server-collapse-array.md)
43 |
44 | Позволяет на лету вычислять функции общего модуля `ОбщегоНазначенияКлииент` (`CommonClient`)
45 |
46 | * [`ОбщийМодуль` (`CommonModule`)](common-client-common-module.md)
47 |
--------------------------------------------------------------------------------
/docs/build.properties:
--------------------------------------------------------------------------------
1 | source.. = src/
2 | output.. = bin/
3 | bin.includes = plugin.xml,\
4 | META-INF/,\
5 | .,\
6 | toc.xml,\
7 | plugin.properties,\
8 | html/
9 |
--------------------------------------------------------------------------------
/docs/common-check-documents-posting.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ПроверитьПроведенностьДокументов` (`Common.CheckDocumentsPosting`)
2 |
3 | Описание функции:
4 |
5 | > Проверяет статус проведения переданных документов и возвращает
6 | > те из них, которые не проведены.
7 |
8 |
9 | ## Типизация возвращаемых значений
10 |
11 | Функция возвращает массив из ДокументСсылка - непроведенные документы
12 |
13 | Пример:
14 |
15 | ```bsl
16 | Процедура тест()
17 |
18 | списокДокументов = Новый Массив; // Массив из ДокументСсылка.ТестовыйДокумент -
19 | непроведенныйДокумент = ОбщегоНазначения.ПроверитьПроведенностьДокументов(списокСсылок).Получить(0);
20 |
21 | //непроведенныйДокумент. - только атрибуты документа ТестовыйДокумент
22 |
23 | КонецПроцедуры
24 | ```
25 |
26 |
--------------------------------------------------------------------------------
/docs/common-client-common-module.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначенияКлиент.ОбщийМодуль` (`CommonClient.CommonModule`)
2 |
3 | Описание функции:
4 |
5 | > Функция возвращает ссылку на общий модуль или модуль менеджера по имени.
6 |
7 | ## Помощник ввода в строковых литералах
8 |
9 | - Поддержка помощника ввода в строковом литералае подсказывает имена общих модулей
10 | - Поддержка ввода полного имени модуля менеджера
11 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
12 |
13 |
14 | Пример:
15 |
16 | ```bsl
17 | МодульПолнотекстовыйПоискКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("Полнот");
18 | ```
19 |
20 |
21 | ## Типизация возвращаемых значений
22 |
23 | Функция возвращает конкретный тип модуля, это позволяет вызвать методы модуля, получать типы возвращаемых значений, строить иерархию вызовов с учетом условных вызовов частичного внедрения БСП.
24 |
25 | Пример:
26 |
27 | ```bsl
28 | Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
29 | МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
30 | МодульОбновлениеКонфигурацииКлиент.<Имя метода>();
31 | КонецЕсли;
32 |
33 | Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
34 | МодульПолнотекстовыйПоискКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПолнотекстовыйПоискКлиент");
35 | МодульПолнотекстовыйПоискКлиент.<Имя метода>();
36 | КонецЕсли;
37 | ```
38 |
39 |
40 | ### Вычисление значений параметров
41 |
42 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
43 |
44 | ```bsl
45 | ИмяМодуля = "ПолнотекстовыйПоискКлиент";
46 | МодульПолнотекстовыйПоискКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(ИмяМодуля);
47 | ```
48 |
49 |
--------------------------------------------------------------------------------
/docs/common-client-server-arrays-difference.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначенияКлиентСервер.РазностьМассивов` (`CommonClientServer.ArraysDifference`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает разность массивов. Разностью двух массивов является массив, содержащий
6 | > все элементы первого массива, не существующие во втором массиве.
7 |
8 | ## Типизация возвращаемых значений
9 |
10 | Функция возвращает типизированный массив по типу первого параметра.
11 |
12 | Пример:
13 |
14 | ```bsl
15 | Процедура Тест()
16 |
17 | Товары = Новый Массив; // Массив из СправочникСсылка.Товары -
18 | Поставщики = Новый Массив; // Массив из СправочникСсылка.Поставщики -
19 | ТоварыБезПоставщиков = ОбщегоНазначенияКлиентСервер.РазностьМассивов(Товары, Поставщики);
20 | Товар = ТоварыБезПоставщиков.Получить(0);
21 |
22 | КонецПроцедуры
23 | ```
24 |
25 |
--------------------------------------------------------------------------------
/docs/common-client-server-collapse-array.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначенияКлиентСервер.СвернутьМассив` (`CommonClientServer.CollapseArray`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает копию исходного массива с уникальными значениями.
6 |
7 | ## Типизация возвращаемых значений
8 |
9 | Функция возвращает типизированный массив как входящий тип.
10 |
11 | Пример:
12 |
13 | ```bsl
14 | Процедура Тест()
15 |
16 | Товары = Новый Массив; // Массив из СправочникСсылка.Товары -
17 | УникальныеТовары = ОбщегоНазначенияКлиентСервер.СвернутьМассив(Товары);
18 | УникальныйТовар = УникальныеТовары.Получить(0);
19 |
20 | КонецПроцедуры
21 | ```
22 |
--------------------------------------------------------------------------------
/docs/common-client-server-value-in-array.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве` (`CommonClientServer.ValueInArray`)
2 |
3 | Описание функции:
4 |
5 | > Создает массив и помещает в него переданное значение.
6 |
7 |
8 | ## Типизация возвращаемых значений
9 |
10 | Функция возвращает типизированный массив из одного элемента.
11 |
12 | Пример:
13 |
14 | ```bsl
15 | Процедура тест()
16 |
17 | структура = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Новый Структура("Ключ1", "")).Получить(0);
18 |
19 | КонецПроцедуры
20 | ```
21 |
22 |
--------------------------------------------------------------------------------
/docs/common-client-subsystem-exist.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначенияКлиент.ПодсистемаСуществует` (`CommonClient.SubsystemExist`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает Истина, если функциональная подсистема существует в конфигурации.
6 | > Предназначена для реализации вызова необязательной подсистемы (условного вызова).
7 | > У функциональной подсистемы снят флажок "Включать в командный интерфейс".
8 | > См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем,
9 | > и ОбщегоНазначения.ПодсистемаСуществует для вызова из серверного кода.
10 |
11 | ## Помощник ввода в строковых литералах
12 |
13 | - Поддержка помощника ввода в строковом литералае подсказывает имена подсистем
14 | - Возможность ввода иерархических имен подсистем
15 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
16 |
--------------------------------------------------------------------------------
/docs/common-common-module.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ОбщийМодуль` (`Common.CommonModule`)
2 |
3 | Описание функции:
4 |
5 | > Функция возвращает ссылку на общий модуль или модуль менеджера по имени.
6 |
7 | ## Помощник ввода в строковых литералах
8 |
9 | - Поддержка помощника ввода в строковом литералае подсказывает имена общих модулей
10 | - Поддержка ввода полного имени модуля менеджера
11 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
12 |
13 |
14 | 
15 |
16 |
17 | Пример:
18 |
19 | ```bsl
20 | МодульПолнотекстовыйПоискКлиент = ОбщегоНазначения.ОбщийМодуль("Полнот");
21 | ```
22 |
23 |
24 | ## Типизация возвращаемых значений
25 |
26 | Функция возвращает конкретный тип модуля, это позволяет вызвать методы модуля, получать типы возвращаемых значений, строить иерархию вызовов с учетом условных вызовов частичного внедрения БСП.
27 |
28 |
29 | 
30 |
31 |
32 | Пример:
33 |
34 | ```bsl
35 | Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
36 | МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
37 | МодульОбновлениеКонфигурации.<Имя метода>();
38 | КонецЕсли;
39 |
40 | Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
41 | МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер");
42 | МодульПолнотекстовыйПоискСервер.<Имя метода>();
43 | КонецЕсли;
44 | ```
45 |
46 |
47 | Пример:
48 |
49 | ```bsl
50 | Процедура Тест() экспорт
51 |
52 | Модуль = ОбщегоНазначения.ОбщийМодуль("УсловныйМодуль");
53 | Если Модуль.ТестоваяФункция().Отказ Тогда
54 | Возврат;
55 | КонецЕсли;
56 |
57 | КонецПроцедуры
58 | ```
59 |
60 |
61 | ### Вычисление значений параметров
62 |
63 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
64 |
65 |
66 | Пример 2:
67 |
68 |
69 | ```bsl
70 | ИмяМодуля = "ПолнотекстовыйПоискКлиент";
71 | МодульПолнотекстовыйПоискКлиент = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля);
72 | ```
73 |
74 |
75 | Пример 2:
76 |
77 | ```bsl
78 | Процедура Тест() экспорт
79 |
80 | ИмяМодуля = "УсловныйМодуль";
81 | Модуль = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля);
82 | Если Модуль.ТестоваяФункция().Отказ Тогда
83 | Возврат;
84 | КонецЕсли;
85 |
86 | КонецПроцедуры
87 | ```
88 |
89 |
90 | Пример 3:
91 |
92 | ```bsl
93 | Процедура Тест() экспорт
94 |
95 | КлассОМД = "РегистрСведений";
96 | ИмяОМД = "ШтрихКоды"
97 | ИмяМодуля = КлассОМД + "." + ИмяОМД;
98 |
99 | Модуль = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля);
100 |
101 | Модуль.ШтрихКод(); // Вызываемая фнукция
102 |
103 | КонецПроцедуры
104 | ```
105 |
106 |
--------------------------------------------------------------------------------
/docs/common-copy-recursive.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.СкопироватьРекурсивно` (`Common.CopyRecursive`)
2 |
3 | Описание функции:
4 |
5 | > Функция создает полную копию структуры, соответствия, массива, списка или таблицы значений.
6 |
7 | ## Типизация возвращаемых значений
8 |
9 | Функция возвращает конкретный тип входящего параметра, это позволяет обращаться к полям структур, получать типы возвращаемых значений.
10 |
11 | Пример:
12 |
13 | ```bsl
14 | КопияСтруктуры = ОбщегоНазначения.СкопироватьРекурсивно(МояСтруктура);
15 | КопияСтруктуры.<Имя свойства>();
16 | ```
17 |
--------------------------------------------------------------------------------
/docs/common-object-attribute-value.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ЗначениеРеквизитаОбъекта` (`Common.ObjectAttributeValue`)
2 |
3 | Описание функции:
4 |
5 | > Значение реквизита, прочитанного из информационной базы по ссылке на объект.
6 | >
7 | > Если необходимо зачитать реквизит независимо от прав текущего пользователя,
8 | > то следует использовать предварительный переход в привилегированный режим.
9 |
10 | ## Помощник ввода в строковых литералах
11 |
12 | - Поддержка ввода имени реквизита из указанных ссылочных типов
13 | - Возможность ввода ерархического имени реквизита
14 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
15 |
16 |
17 | Пример:
18 |
19 | ```bsl
20 | // Параметры:
21 | // Ссылка - СправочникСсылка.Товары -
22 | Процедура Тест(Ссылка) экспорт
23 |
24 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Поставщик.Ссылка.Ро");
25 |
26 | КонецПроцедуры
27 |
28 | ```
29 |
30 |
31 | ## Типизация возвращаемых значений
32 |
33 | Функция возвращает конкретный тип по типу реквизита передаваемого в параметрах
34 |
35 | 
36 |
37 |
38 | Пример:
39 |
40 | ```bsl
41 | // Параметры:
42 | // Ссылка - СправочникСсылка.Товары -
43 | Процедура Тест(Ссылка) экспорт
44 |
45 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Поставщик");
46 | УИ = Результат.УникальныйИдентификатор();
47 |
48 | КонецПроцедуры
49 |
50 | ```
51 |
52 |
53 | ### Вычисление значений параметров
54 |
55 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
56 |
57 | ```bsl
58 | // Параметры:
59 | // Ссылка - СправочникСсылка.Товары -
60 | Процедура Тест(Ссылка) экспорт
61 |
62 | ИмяРеквизитаПоставщика = "Поставщик";
63 | Путь = ИмяРеквизитаПоставщика + ".Ссылка.Родитель";
64 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, Путь);
65 |
66 | КонецПроцедуры
67 |
68 | ```
69 |
--------------------------------------------------------------------------------
/docs/common-object-attributes-values.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ЗначенияРеквизитовОбъекта` (`Common.ObjectAttributesValues`)
2 |
3 | Описание функции:
4 |
5 | > Структура, содержащая значения реквизитов, прочитанные из информационной базы по ссылке на объект.
6 | >
7 | > Если необходимо зачитать реквизит независимо от прав текущего пользователя,
8 | > то следует использовать предварительный переход в привилегированный режим.
9 |
10 |
11 | ## Типизация возвращаемых значений
12 |
13 |
14 | Функция возвращает тип со структурой и типизированными свойствами по именам реквизитов
15 |
16 | 
17 |
18 |
19 | Пример:
20 |
21 | ```bsl
22 | // Параметры:
23 | // Ссылка - СправочникСсылка.Товары -
24 | Процедура Тест(Ссылка) экспорт
25 |
26 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Поставщик, Родитель, Ссылка");
27 | Поставщик = Результат.Поставщик;
28 | Родитель = Результат.Родитель;
29 |
30 | КонецПроцедуры
31 | ```
32 |
33 | ### Вычисление значений параметров
34 |
35 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
36 | Поддерживается вычисление значений элементов массивов, значений ключей структуры.
37 |
38 |
39 | Пример:
40 |
41 | ```bsl
42 | // Параметры:
43 | // Ссылка - СправочникСсылка.Товары -
44 | Процедура Тест(Ссылка) экспорт
45 |
46 | ИмяРеквзита = "Поставщик";
47 | ИменаРеквизитов = Новый Массив("Родитель");
48 | ИменаРеквизитов.Добавить(ИмяРеквзита);
49 | ИменаРеквизитов.Добавить();
50 | ИменаРеквизитов.Добавить("Ссылка");
51 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, ИменаРеквизитов);
52 |
53 | КонецПроцедуры
54 | ```
55 |
56 | Пример 2:
57 |
58 | ```bsl
59 | // Параметры:
60 | // Ссылка - СправочникСсылка.Товары -
61 | Процедура Тест(Ссылка) экспорт
62 |
63 | ИмяРеквзита = "Поставщик";
64 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, Новый Массив(ИмяРеквзита, "Родитель", "Ссылка"));
65 |
66 | КонецПроцедуры
67 | ```
68 |
69 | Пример 3:
70 |
71 | ```bsl
72 | // Параметры:
73 | // Ссылка - СправочникСсылка.Товары -
74 | Процедура Тест(Ссылка) экспорт
75 |
76 | ИмяРеквзита = "Поставщик.Код";
77 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, Новый Массив(ИмяРеквзита, "Родитель.Ссылка", "Ссылка"));
78 |
79 | КонецПроцедуры
80 | ```
81 |
82 | Пример 4:
83 |
84 | ```bsl
85 | // Параметры:
86 | // Ссылка - СправочникСсылка.Товары -
87 | Процедура Тест(Ссылка) экспорт
88 |
89 | Реквзиит1 = "Код";
90 |
91 | ИменаРеквизитов = "Поставщик";
92 | ИменаРеквизитов = "Ссылка";
93 | ИменаРеквизитов = ИменаРеквизитов + ", Родитель" + "," + Реквзиит1;
94 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, ИменаРеквизитов + ", Наименование");
95 |
96 | КонецПроцедуры
97 | ```
98 |
99 | Пример 5:
100 |
101 | ```bsl
102 | // Параметры:
103 | // Ссылка - СправочникСсылка.Товары -
104 | Процедура Тест(Ссылка) экспорт
105 |
106 | ИмяРеквзита = "Поставщик";
107 | ИменаРеквизитов = Новый Структура;
108 | ИменаРеквизитов.Вставить(ИмяРеквзита);
109 | ИменаРеквизитов.Вставить("Родитель");
110 | ИменаРеквизитов.Вставить("Ссылка");
111 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, ИменаРеквизитов);
112 |
113 | КонецПроцедуры
114 | ```
115 |
116 |
117 |
--------------------------------------------------------------------------------
/docs/common-object-manager-by-full-name.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени` (`Common.ObjectManagerByFullName`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает менеджер объекта по полному имени объекта метаданных.
6 | > Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
7 |
8 | ## Помощник ввода в строковых литералах
9 |
10 | - Поддержка ввода полного имени модуля менеджера
11 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
12 |
13 |
14 | Пример:
15 |
16 | ```bsl
17 | ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.");
18 | ```
19 |
20 |
21 | ## Типизация возвращаемых значений
22 |
23 | Функция возвращает конкретный тип модуля менеджера по полному имени
24 |
25 | Пример:
26 |
27 | ```bsl
28 | МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.Организации");
29 | ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
30 | ```
31 |
32 |
33 | ### Вычисление значений параметров
34 |
35 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
36 |
37 | ```bsl
38 | КлассОМ = "Справочник";
39 | ПолноеИмя = КлассОМ + ".Организации";
40 | МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
41 | ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
42 | ```
43 |
44 |
--------------------------------------------------------------------------------
/docs/common-object-manager-by-ref.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.МенеджерОбъектаПоСсылке` (`Common.ObjectManagerByRef`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает менеджер объекта по ссылке на объект.
6 | > Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
7 | > См. также ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени.
8 |
9 |
10 |
11 | ## Типизация возвращаемых значений
12 |
13 | Функция возвращает конкретный тип модуля менеджера по ссылочному типу перевого параметра.
14 |
15 | Пример:
16 |
17 | ```bsl
18 | // Параметры:
19 | // Ссылка - СправочникСсылка.Товары -
20 | Процедура Тест(Ссылка) экспорт
21 |
22 | Модуль = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Ссылка);
23 |
24 | КонецПроцедуры
25 | ```
26 |
--------------------------------------------------------------------------------
/docs/common-object-properties-details.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ОписаниеСвойствОбъекта` (`Common.ObjectPropertiesDetails`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает таблицу значений с описанием требуемых свойств всех реквизитов объекта метаданных.
6 | > Получает значения свойств стандартных реквизитов и пользовательских реквизитов (созданных в режиме конфигуратора).
7 |
8 | ## Помощник ввода в строковых литералах
9 |
10 | Поддержка ввода имен свойств, доступных для передаваемого тип объекта метаданных.
11 |
12 |
13 | Пример:
14 |
15 | ```bsl
16 | МДО = Метаданные.Справочники.Товары;
17 | Таблица = ОбщегоНазначения.ОписаниеСвойствОбъекта(МДО, "Имя, );
18 | ```
19 |
20 |
21 | ## Типизация возвращаемых значений
22 |
23 | Функция возвращает таблицу с типизированными колонками на основе типов свойств метаданного.
24 |
25 | Пример:
26 |
27 | ```bsl
28 | Таблица = ОбщегоНазначения.ОписаниеСвойствОбъекта(Метаданные.Справочники.Товары, "Имя, Синоним, Справка");
29 | Для каждого Элемент из Таблица Цикл
30 | Имя = Элемент.Имя;
31 | КонецЦикла;
32 | ```
33 |
34 |
35 | ### Вычисление значений параметров
36 |
37 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
38 |
39 | ```bsl
40 | МДО = Метаданные.Справочники.Товары;
41 | ИменаСвойств = "Имя, МногострочныйРежим, Синоним, Справка";
42 | Таблица = ОбщегоНазначения.ОписаниеСвойствОбъекта(МДО, ИменаСвойств);
43 | ```
44 |
45 |
--------------------------------------------------------------------------------
/docs/common-objects-attribute-value.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ЗначениеРеквизитаОбъектов` (`Common.ObjectsAttributeValue`)
2 |
3 |
4 | Описание функции:
5 |
6 | > Значения реквизита, прочитанного из информационной базы для нескольких объектов.
7 | >
8 | > Если необходимо зачитать реквизит независимо от прав текущего пользователя,
9 | > то следует использовать предварительный переход в привилегированный режим.
10 |
11 | ## Помощник ввода в строковых литералах
12 |
13 | - Поддержка ввода имени реквизита из указанных ссылочных типов в массиве
14 | - Возможность ввода ерархического имени реквизита
15 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
16 |
17 |
18 | Пример:
19 |
20 | ```bsl
21 | // Параметры:
22 | // Ссылки - Массив из СправочникСсылка.Товары -
23 | Процедура Тест(Ссылки) экспорт
24 |
25 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Ссылки, "Поставщик.Ссылка.Ро");
26 |
27 | КонецПроцедуры
28 | ```
29 |
30 |
31 | ## Типизация возвращаемых значений
32 |
33 | Функция возвращает конкретный тип реквизита объекта метаданных на основе ссылочного типа из типизированного массива.
34 |
35 | Пример:
36 |
37 | ```bsl
38 | // Параметры:
39 | // Ссылки - Массив из СправочникСсылка.Товары -
40 | Процедура Тест(Ссылки) экспорт
41 |
42 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Ссылки, "Поставщик.Ссылка.Родитель");
43 | УИ = Результат.УникальныйИдентификатор();
44 |
45 | КонецПроцедуры
46 | ```
47 |
48 |
49 | ### Вычисление значений параметров
50 |
51 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
52 |
53 | ```bsl
54 | // Параметры:
55 | // Ссылки - Массив из СправочникСсылка.Товары -
56 | Процедура Тест(Ссылки) экспорт
57 |
58 | Путь = "Поставщик.Ссылка.Родитель";
59 | Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Ссылки, Путь);
60 |
61 | КонецПроцедуры
62 | ```
63 |
64 |
65 |
--------------------------------------------------------------------------------
/docs/common-objects-attributes-values.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ЗначенияРеквизитовОбъектов` (`Common.ObjectsAttributesValues`)
2 |
3 |
4 | Описание функции:
5 |
6 | > Значения реквизитов, прочитанные из информационной базы для нескольких объектов.
7 | >
8 | > Если необходимо зачитать реквизит независимо от прав текущего пользователя,
9 | > то следует использовать предварительный переход в привилегированный режим.
10 |
11 |
12 | ## Типизация возвращаемых значений
13 |
14 | Функция возвращает конкретный тип реквизита объекта метаданных на основе ссылочного типа из типизированного массива.
15 |
16 | Пример:
17 |
18 | ```bsl
19 | // Параметры:
20 | // Ссылки - Массив из СправочникСсылка.Товары -
21 | Процедура Тест(Ссылки) экспорт
22 |
23 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Ссылки, "Поставщик, Родитель, Ссылка");
24 | Для каждого КлючИЗначение из Результат Цикл
25 | Товар = КлючИЗначение.Ключ; // Типизированный ключ
26 | Поставщик = КлючИЗначение.Значение.Поставщик; // Типизированная структура в значении
27 | КонецЦикла;
28 |
29 | КонецПроцедуры
30 | ```
31 |
32 |
33 | ### Вычисление значений параметров
34 |
35 | Для функций поддерживается вычисление контента строк переданных через локальные переменные, с вычислением бинарных операций (конкатенация строк) в рамках одной процедуры.
36 |
37 | ```bsl
38 | // Параметры:
39 | // Ссылки - Массив из СправочникСсылка.Товары -
40 | Процедура Тест(Ссылки) экспорт
41 |
42 | ИменаРеквизитов = "Поставщик, Родитель, Ссылка";
43 | Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Ссылки, ИменаРеквизитов);
44 |
45 | КонецПроцедуры
46 | ```
47 |
48 |
--------------------------------------------------------------------------------
/docs/common-subsystem-exist.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ПодсистемаСуществует` (`Common.SubsystemExist`)
2 |
3 | Описание функции:
4 |
5 | > Возвращает Истина, если функциональная подсистема существует в конфигурации.
6 | > Предназначена для реализации вызова необязательной подсистемы (условного вызова).
7 | > У функциональной подсистемы снят флажок "Включать в командный интерфейс".
8 | > См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем
9 | > и ОбщегоНазначенияКлиент.ПодсистемаСуществует для вызова из клиентского кода.
10 |
11 | ## Помощник ввода в строковых литералах
12 |
13 | - Поддержка помощника ввода в строковом литералае подсказывает имена подсистем
14 | - Возможность ввода иерархических имен подсистем
15 | - Гиперссылки для перехода при нажатии Ctrl+Click или по F3
16 |
17 |
18 | 
19 |
--------------------------------------------------------------------------------
/docs/common-unload-column.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ВыгрузитьКолонку` (`Common.UnloadColumn`)
2 |
3 | Описание функции:
4 |
5 | > Создает массив и копирует в него значения, содержащиеся в колонке объекта, для
6 | > которого доступен обход посредством оператора Для каждого … Из.
7 |
8 |
9 | ## Типизация возвращаемых значений
10 |
11 | Функция возвращает типизированный массив с типом идентичным колонке таблицы
12 |
13 | Пример:
14 |
15 | ```bsl
16 | Процедура Тест() экспорт
17 |
18 | Результат = Новый ТаблицаЗначений();
19 | Результат.Колонки.Добавить("НомерШага", Новый ОписаниеТипов("Число"));
20 | Результат.Колонки.Добавить("Страница", Новый ОписаниеТипов("Строка"));
21 |
22 | Массив = ОбщегоНазначения.ВыгрузитьКолонку(Результат, "Страница");
23 |
24 | КонецПроцедуры
25 | ```
26 |
27 |
--------------------------------------------------------------------------------
/docs/common-value-fixed-data.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ФиксированныеДанные` (`Common.FixedData`)
2 |
3 | Описание функции:
4 |
5 | > Фиксирует данные типов Структура, Соответствие, Массив с учетом вложенности.
6 |
7 |
8 | ## Типизация возвращаемых значений
9 |
10 | Функция возвращает ФиксированнаяСтруктура, ФиксированноеСоответствие, ФиксированныйМассив - фиксированные данные,
11 | аналогичные переданным в параметре Данные.
12 |
13 | Пример:
14 |
15 | ```bsl
16 | Процедура Тест()
17 |
18 | ФиксированнаяСтруктура = ОбщегоНазначения.ФиксированныеДанные(Новый Структура("Ключ1","Значение1"));
19 |
20 | КонецПроцедуры
21 |
22 | Процедура Tест2()
23 |
24 | Параметры = СведенияОбОбновлении();
25 | ФиксированныйМассив = ОбщегоНазначения.ФиксированныеДанные(Параметры);
26 | // Часть кода для документации
27 | Для каждого Элемент из ФиксированныйМассив Цикл
28 | Если Элемент.ОбновлениеДоступно ИЛИ Элемент.Наименование = "Значение1" Тогда
29 | // Продолжаем...
30 | КонецЕсли
31 | КонецЦикла;
32 |
33 | КонецПроцедуры
34 |
35 | // Сведения об обновлении.
36 | //
37 | // Возвращаемое значение:
38 | // Массив из Структура:
39 | // * Наименование - Строка - описание,
40 | // * ОбновлениеДоступно - Булево - описание.
41 | //
42 | Функция СведенияОбОбновлении()
43 | Массив = Новый Массив();
44 | Массив.Добавить(Новый Структура("Наименование, ОбновлениеДоступно", "Значение1", Истина));
45 | Возврат Массив;
46 | КонецФункции
47 | ```
48 |
49 |
--------------------------------------------------------------------------------
/docs/common-value-table-row-to-structure.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру` (`Common.ValueTableRowToStructure`)
2 |
3 |
4 | Описание функции:
5 |
6 | > Преобразует строку таблицы значений в структуру.
7 | > Свойства структуры и их значения совпадают с колонками переданной строки.
8 |
9 |
10 | ## Типизация возвращаемых значений
11 |
12 | Функция возвращает структуру со свойствами идентичными колонкам таблицы
13 |
14 | Пример:
15 |
16 | ```bsl
17 | Процедура Тест() экспорт
18 |
19 | Результат = Новый ТаблицаЗначений();
20 | Результат.Колонки.Добавить("НомерШага", Новый ОписаниеТипов("Число"));
21 | Результат.Колонки.Добавить("Страница", Новый ОписаниеТипов("Строка"));
22 | НоваяСтрока = Результат.Добавить();
23 |
24 | Структура = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(НоваяСтрока);
25 |
26 | НомерШага = Структура.НомерШага;
27 | Страница = Структура.Страница;
28 |
29 | КонецПроцедуры
30 | ```
31 |
32 |
--------------------------------------------------------------------------------
/docs/common-value-table-to-array.md:
--------------------------------------------------------------------------------
1 | # `ОбщегоНазначения.ТаблицаЗначенийВМассив` (`Common.ValueTableToArray`)
2 |
3 | Описание функции:
4 |
5 | > Преобразует таблицу значений в массив структур.
6 | > Может использоваться для передачи на клиент данных в том случае, если таблица
7 | > значений содержит только такие значения, которые могут
8 | > быть переданы с сервера на клиент.
9 | >
10 | > Полученный массив содержит структуры, каждая из которых повторяет
11 | > структуру колонок таблицы значений.
12 | >
13 | > Не рекомендуется использовать для преобразования таблиц значений
14 | > с большим количеством строк.
15 |
16 |
17 | ## Типизация возвращаемых значений
18 |
19 | Функция возвращает массив из структур с со свойствами идентичными колонкам таблицы
20 |
21 | Пример:
22 |
23 | ```bsl
24 | Процедура Тест() экспорт
25 |
26 | Результат = Новый ТаблицаЗначений();
27 | Результат.Колонки.Добавить("НомерШага", Новый ОписаниеТипов("Число"));
28 | Результат.Колонки.Добавить("Страница", Новый ОписаниеТипов("Строка"));
29 |
30 | Массив = ОбщегоНазначения.ТаблицаЗначенийВМассив(Результат);
31 | Для каждого Элемент из Массив Цикл
32 | НомерШага = Элемент.НомерШага;
33 | Страница = Элемент.Страница;
34 | КонецЦикла;
35 |
36 | КонецПроцедуры
37 | ```
38 |
39 |
--------------------------------------------------------------------------------
/docs/html/css/prism.css:
--------------------------------------------------------------------------------
1 | /* PrismJS 1.23.0
2 | https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+bsl+java+javadoc+javadoclike+json+json5&plugins=show-language+highlight-keywords+toolbar */
3 | /**
4 | * prism.js default theme for JavaScript, CSS and HTML
5 | * Based on dabblet (http://dabblet.com)
6 | * @author Lea Verou
7 | */
8 |
9 | code[class*="language-"],
10 | pre[class*="language-"] {
11 | color: black;
12 | background: none;
13 | text-shadow: 0 1px white;
14 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
15 | font-size: 1em;
16 | text-align: left;
17 | white-space: pre;
18 | word-spacing: normal;
19 | word-break: normal;
20 | word-wrap: normal;
21 | line-height: 1.5;
22 |
23 | -moz-tab-size: 4;
24 | -o-tab-size: 4;
25 | tab-size: 4;
26 |
27 | -webkit-hyphens: none;
28 | -moz-hyphens: none;
29 | -ms-hyphens: none;
30 | hyphens: none;
31 | }
32 |
33 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
34 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
35 | text-shadow: none;
36 | background: #b3d4fc;
37 | }
38 |
39 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
40 | code[class*="language-"]::selection, code[class*="language-"] ::selection {
41 | text-shadow: none;
42 | background: #b3d4fc;
43 | }
44 |
45 | @media print {
46 | code[class*="language-"],
47 | pre[class*="language-"] {
48 | text-shadow: none;
49 | }
50 | }
51 |
52 | /* Code blocks */
53 | pre[class*="language-"] {
54 | padding: 1em;
55 | margin: .5em 0;
56 | overflow: auto;
57 | }
58 |
59 | :not(pre) > code[class*="language-"],
60 | pre[class*="language-"] {
61 | background: #f5f2f0;
62 | }
63 |
64 | /* Inline code */
65 | :not(pre) > code[class*="language-"] {
66 | padding: .1em;
67 | border-radius: .3em;
68 | white-space: normal;
69 | }
70 |
71 | .token.comment,
72 | .token.prolog,
73 | .token.doctype,
74 | .token.cdata {
75 | color: slategray;
76 | }
77 |
78 | .token.punctuation {
79 | color: #999;
80 | }
81 |
82 | .token.namespace {
83 | opacity: .7;
84 | }
85 |
86 | .token.property,
87 | .token.tag,
88 | .token.boolean,
89 | .token.number,
90 | .token.constant,
91 | .token.symbol,
92 | .token.deleted {
93 | color: #905;
94 | }
95 |
96 | .token.selector,
97 | .token.attr-name,
98 | .token.string,
99 | .token.char,
100 | .token.builtin,
101 | .token.inserted {
102 | color: #690;
103 | }
104 |
105 | .token.operator,
106 | .token.entity,
107 | .token.url,
108 | .language-css .token.string,
109 | .style .token.string {
110 | color: #9a6e3a;
111 | /* This background color was intended by the author of this theme. */
112 | background: hsla(0, 0%, 100%, .5);
113 | }
114 |
115 | .token.atrule,
116 | .token.attr-value,
117 | .token.keyword {
118 | color: #07a;
119 | }
120 |
121 | .token.function,
122 | .token.class-name {
123 | color: #DD4A68;
124 | }
125 |
126 | .token.regex,
127 | .token.important,
128 | .token.variable {
129 | color: #e90;
130 | }
131 |
132 | .token.important,
133 | .token.bold {
134 | font-weight: bold;
135 | }
136 | .token.italic {
137 | font-style: italic;
138 | }
139 |
140 | .token.entity {
141 | cursor: help;
142 | }
143 |
144 | div.code-toolbar {
145 | position: relative;
146 | }
147 |
148 | div.code-toolbar > .toolbar {
149 | position: absolute;
150 | top: .3em;
151 | right: .2em;
152 | transition: opacity 0.3s ease-in-out;
153 | opacity: 0;
154 | }
155 |
156 | div.code-toolbar:hover > .toolbar {
157 | opacity: 1;
158 | }
159 |
160 | /* Separate line b/c rules are thrown out if selector is invalid.
161 | IE11 and old Edge versions don't support :focus-within. */
162 | div.code-toolbar:focus-within > .toolbar {
163 | opacity: 1;
164 | }
165 |
166 | div.code-toolbar > .toolbar .toolbar-item {
167 | display: inline-block;
168 | }
169 |
170 | div.code-toolbar > .toolbar a {
171 | cursor: pointer;
172 | }
173 |
174 | div.code-toolbar > .toolbar button {
175 | background: none;
176 | border: 0;
177 | color: inherit;
178 | font: inherit;
179 | line-height: normal;
180 | overflow: visible;
181 | padding: 0;
182 | -webkit-user-select: none; /* for button */
183 | -moz-user-select: none;
184 | -ms-user-select: none;
185 | }
186 |
187 | div.code-toolbar > .toolbar a,
188 | div.code-toolbar > .toolbar button,
189 | div.code-toolbar > .toolbar span {
190 | color: #bbb;
191 | font-size: .8em;
192 | padding: 0 .5em;
193 | background: #f5f2f0;
194 | background: rgba(224, 224, 224, 0.2);
195 | box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
196 | border-radius: .5em;
197 | }
198 |
199 | div.code-toolbar > .toolbar a:hover,
200 | div.code-toolbar > .toolbar a:focus,
201 | div.code-toolbar > .toolbar button:hover,
202 | div.code-toolbar > .toolbar button:focus,
203 | div.code-toolbar > .toolbar span:hover,
204 | div.code-toolbar > .toolbar span:focus {
205 | color: inherit;
206 | text-decoration: none;
207 | }
208 |
209 |
--------------------------------------------------------------------------------
/docs/html/footer.html:
--------------------------------------------------------------------------------
1 |
3 |