1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2024-11-24 08:32:25 +02:00

Инициализация на основании шаблона скриптов

Специально удалены все оригинальные файлы, но оставлены в истории
This commit is contained in:
Maxmov Valery 2017-09-01 16:06:32 +03:00
parent da398fed9f
commit 46915b32bf
131 changed files with 1020 additions and 107466 deletions

View File

@ -1,35 +0,0 @@
{
"cmd": "oscript",
"name": "Precommit1c full testing",
"args": [ "-encoding=utf-8", "{PROJECT_PATH}/../oscript-library/tests/testrunner.os", "-runall", "{PROJECT_PATH}/tests"],
"sh": false,
"errorMatch": [
"{Модуль (?<file>[^/]+) / Ошибка в строке: (?<line>[0-9]+) / (?<message>.*)"
],
"targets": {
"Run current file": {
"cmd": "oscript",
"args": [ "-encoding=utf-8", "{FILE_ACTIVE}"],
"sh": false,
"errorMatch": [
"{Модуль (?<file>[^/]+) / Ошибка в строке: (?<line>[0-9]+) / (?<message>.*)"
]
},
"Test current test-file": {
"cmd": "oscript",
"args": [ "-encoding=utf-8", "{PROJECT_PATH}/../oscript-library/tests/testrunner.os", "-run", "{FILE_ACTIVE}"],
"sh": false,
"errorMatch": [
"{Модуль (?<file>[^/]+) / Ошибка в строке: (?<line>[0-9]+) / (?<message>.*)"
]
},
"Test select test-name": {
"cmd": "oscript",
"args": [ "-encoding=utf-8", "{PROJECT_PATH}/../oscript-library/tests/testrunner.os", "-run", "{FILE_ACTIVE}", "{SELECTION}"],
"sh": false,
"errorMatch": [
"{Модуль (?<file>[^/]+) / Ошибка в строке: (?<line>[0-9]+) / (?<message>.*)"
]
}
}
}

1
.gitattributes vendored
View File

@ -1 +0,0 @@
.gitmodules merge=ours

64
.gitignore vendored
View File

@ -1,64 +1,2 @@
*.lgp
*.lgf
tests/testSrc/
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
bdd-log.xml
*.ospx

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "v8Reader"]
path = v8Reader
url=git@gitlab.dellin.ru:orais/v8Reader.git

9
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,9 @@
// Place your settings in this file to overwrite default and user settings.
{
"language-1c-bsl.linterEntryPoint": "src/console-entry-point.os",
"editor.rulers": [ 120 ],
"files.associations": {
"*.os-template" : "bsl"
, "packagedef" : "bsl"
}
}

240
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,240 @@
// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team
// ${file}: the current opened file
// ${fileBasename}: the current opened file's basename
// ${fileDirname}: the current opened file's dirname
// ${fileExtname}: the current opened file's extension
// ${cwd}: the current working directory of the spawned process
{
"version": "2.0.0",
"_runner": "terminal",
"windows": {
"command": "cmd",
"args": ["/c", "chcp 65001 ;"]
},
"linux": {
"command": "sh",
"args": ["-c"]
},
"isShellCommand": true,
// "showOutput": "silent",
"_runner": "terminal",
"tasks": [
{
"taskName": "Testing project",
"args": [
"1testrunner",
"-runall",
"${workspaceRoot}/tests"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
// "isBuildCommand": false,
"isTestCommand": false,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
}
},
{
"taskName": "Testing current test-file",
"args": [
"1testrunner",
"-run",
"${file}",
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false,
"isTestCommand": true,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
}
},
{
"taskName": "Exec all features",
"args": [
"1bdd",
"${workspaceRoot}/features",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": true,
"isTestCommand": false,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
}
},
{
"taskName": "Exec feature",
"args": [
"1bdd",
"${file}",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false,
"isTestCommand": true,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": [
{
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
]
}
},
{
"taskName": "Exec feature for current step def",
"args": [
"1bdd",
"${fileDirname}/../${fileBasenameNoExtension}.feature",
"-fail-fast",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false,
"isTestCommand": true,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": [
{
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
]
}
},
{
"taskName": "Generate feature steps",
"args": [
"1bdd",
"gen",
"${file}",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false,
"isTestCommand": false,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
"file": 1,
"location": 2,
"message": 3
}
}
},
{
"taskName": "Opm: package build",
"args": [
"opm",
"build",
"${workspaceRoot}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: compile",
"args": [
"oscript",
"-encoding=utf-8",
"-compile",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: check",
"args": [
"oscript",
"-encoding=utf-8",
"-check",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: make",
"args": [
"oscript",
"-encoding=utf-8",
"-make",
"${file}",
"${fileBasename}.exe"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: run",
"args": [
"oscript",
"-encoding=utf-8",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": true,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "^{Модуль\\s+(.*)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+(.*)}$",
"file": 1,
"location": 2,
"message": 3
}
}
}
]
}

View File

@ -1,24 +0,0 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// © ООО "БиАйЭй-Технолоджиз" (BIA-Technologies LLC). 2014-2017.
// Все права защищены.
//
// Все торговые марки являются собственностью их правообладателей.
//
// Настоящий результат интеллектуальной деятельности является собственностью
// ООО "БиАйЭй-Технолоджиз" (ИНН 7810385714) и не может быть использован
// на законном основании без согласия правообладателя.
//
// Любые действия (бездействие), направленные на использование настоящего
// результата интеллектуальной деятельности, включая (но не ограничиваясь)
// изучение, исследование, испытание его функционирования; воспроизводство
// и преобразование объектного кода в исходный текст (декомпилирование);
// действия, направленные на достижение способности к взаимодействию настоящего
// результата интеллектуальной деятельности с иным программным обеспечением,
// возможны только с предварительного согласия правообладателя.
//
// Нарушение прав ООО "БиАйЭй-Технолоджиз" на данный результат интеллектуальной
// деятельности будет преследоваться и пресекаться правообладателем
// в соответствии с законом.
//
//©///////////////////////////////////////////////////////////////////////////©//

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 Andrei Ovsiankin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,194 +0,0 @@
Apache License
==============
_Version 2.0, January 2004_
_&lt;<http://www.apache.org/licenses/>&gt;_
### Terms and Conditions for use, reproduction, and distribution
#### 1. Definitions
“License” shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
“Licensor” shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
“Legal Entity” shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, “control” means **(i)** the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
outstanding shares, or **(iii)** beneficial ownership of such entity.
“You” (or “Your”) shall mean an individual or Legal Entity exercising
permissions granted by this License.
“Source” form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
“Object” form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
“Work” shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
“Derivative Works” shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
“Contribution” shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
“submitted” means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as “Not a Contribution.”
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
#### 2. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
#### 3. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
#### 4. Redistribution
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
* **(a)** You must give any other recipients of the Work or Derivative Works a copy of
this License; and
* **(b)** You must cause any modified files to carry prominent notices stating that You
changed the files; and
* **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
#### 5. Submission of Contributions
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
#### 6. Trademarks
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
#### 7. Disclaimer of Warranty
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
#### 8. Limitation of Liability
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
#### 9. Accepting Warranty or Additional Liability
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
_END OF TERMS AND CONDITIONS_
### APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets `[]` replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same “printed page” as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

22
NOTICE
View File

@ -1,22 +0,0 @@
Copyright 2016 xDrivenDevelopment
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------------------
This product contains V8Reader, which is licensed under the Apache License,
Version 2.0.
The license can be downloaded from
http://www.apache.org/licenses/LICENSE-2.0.html.
The source code for this software is available from
https://github.com/xDrivenDevelopment/v8reader.

127
README.md
View File

@ -1,125 +1,12 @@
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
# Утилиты для автоматической обработки исходных файлов кинфигурации, внешних отчетов и обработок для платформы 1С:Предприятие при помещении в репозиторий git
[![Join the chat at https://gitter.im/xDrivenDevelopment/precommit1c](https://badges.gitter.im/xDrivenDevelopment/precommit1c.svg)](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам
Данное решение базируется на идеях проекта [precommit1c](https://github.com/xDrivenDevelopment/precommit1c/releases), но является самостоятельным решением компании BIA Technologies.
[![GitHub release](https://img.shields.io/github/release/xDrivenDevelopment/precommit1c.svg)](https://github.com/xDrivenDevelopment/precommit1c/releases)
## Установка
### Что к чему
----
* v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки, расширения и запускающий команды для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников.
* [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os
## Использование
### Установка
## Ссылки
1. Зависимости:
* OneScript http://oscript.io/
* установленная платформа 1С:Предприятие 8
* git
* в случае запуска из под wine необходим msscriptcontrol
* Библиотеки [oscript-library]( https://github.com/EvilBeaver/oscript-library)
2. По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файле pre-commit
3. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit`
#### Установка через zip-архив
1. Скачайте zip-архив precommit1c.zip со страницы [последнего релиза](https://github.com/xDrivenDevelopment/precommit1c/releases/latest).
2. Содержмое архива необходимо разархивировать в каталог .git/hooks/ вашего проекта.
*Примечание:* каталог .git по умолчанию скрыт.
В итоге у вас должна получиться следующая структура каталога:
```
.git\
hooks\
pre-commit
V8Reader
tools
v8files-extractor.os
```
#### Установка через git clone
1. Склонируйте репозиторий `precommit1c` в удобное место.
2. После клонирования репозитория необходимо инициализировать используемые подмодули.
Откройте командую строку и выполните команды:
```cmd
cd путь/к/репозиторию/precommit1c
git submodule update --init --recursive
```
3. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
*Примечание:* каталог .git по умолчанию скрыт.
В итоге у вас должна получиться следующая структура каталога:
```
.git\
hooks\
pre-commit
V8Reader
tools
v8files-extractor.os
```
## Запуск
После установки достаточно для проверки сделать commit для любого файла epf/erf/cfe, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
## Командная строка запуска OneScript
```
oscript v8files-extractor.os ?
Утилита сборки/разборки внешних файлов 1С
Параметры командной строки:
--decompile inputPath outputPath
Разбор файлов на исходники
--help
Показ этого экрана
--git-precommit outputPath [--remove-orig-bin-files]
Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git
--compile inputPath outputPath [--recursive]
Собрать внешний файл/обработку.
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
--install
Установить precommit1c для текущего репозитория git
```
## Ограничения
Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок `git config --local core.quotepath false`
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
### Для корректной работы на 1С версии 8.3.9.2016 и старше
Начиная с версии 8.3.9.2016 1С встроила в платформу механизмы защиты открытия внешних отчетов и обработок. Как обойти данное ограничение написано на ИТС:
> Защита считается отключенной, если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg.
Т.о. в файл C:\Program Files (x86)\1cv8\conf\conf.cfg необходимо добавить строку `DisableUnsafeActionProtection=.*`
Подробнее [на ИТС](http://its.1c.ru/db/v838doc#bookmark:dev:TI000001873)
## Известные проблемы
1. При использовании некоторых версий SourceTree (удобный клиент git) может возникать следующая ошибка:
>`.git/hooks/pre-commit: line 4: oscript: command not found`
Несколько вариантов решения:
+ убедиться, что команда `oscript` доступна
+ для проверки вызвать из командной строки или Win+R `cmd /k oscript`
+ откатиться на предыдущую версию SourceTree
+ рекомендуется
+ указать полный путь к `oscript.exe` в файле `pre-commit` внутри своего репозитария.
+ не рекомендуется, т.к. данную операцию нужно будеть делать для каждого репозитария
## Что внутри
Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*.
Файлы расширений *.cfe распаковываются на исходники штатными средствами 1С.
## Лицензия
Лицензировано на условиях Apache License 2.0. Смотрите файл [LICENSE.md](LICENSE.md) в корневом каталоге репозитория.
- [Шаблон скрипта](https://github.com/oscript-library/oscript-app-template)
- [precommit1c](https://github.com/xDrivenDevelopment/precommit1c/releases)

View File

@ -1,14 +0,0 @@
@echo off
@echo copy current version repo
xcopy .\pre-commit .\..\..\.git\hooks\ /Y /F
mkdir .\..\..\.git\hooks\v8Reader
xcopy .\v8Reader\V8Reader.epf .\..\..\.git\hooks\v8Reader\ /Y /F
xcopy .\v8files-extractor.os .\..\..\.git\hooks\ /Y /F
mkdir .\..\..\.git\hooks\tools
xcopy .\tools\v8unpack.exe .\..\..\.git\hooks\tools\ /Y /F
xcopy .\COPYRIGHT .\..\..\.git\hooks\ /Y /F
cd .\..\..\
git config --local core.quotepath false

View File

@ -1,9 +0,0 @@
pushd .git
md hooks
popd
mklink /D /H ".git/hooks/pre-commit" "%~dp0pre-commit"
mklink /D /H ".git/hooks/v8files-extractor.os" "%~dp0v8files-extractor.os"
mklink /J ".git/hooks/v8Reader" "%~dp0v8Reader"
mklink /J ".git/hooks/tools" "%~dp0tools"
git config --local core.quotepath false

View File

@ -0,0 +1,17 @@
# language: ru
Функционал: Проверка сборки продукта
Как Пользователь
Я хочу автоматически проверять сборку моего продукта
Чтобы гарантировать возможность установку моего продукта у пользователей
Контекст: Отключение отладки в логах
Допустим Я выключаю отладку лога с именем "oscript.lib.commands"
И Я очищаю параметры команды "opm" в контексте
Сценарий: Выполнение команды без параметров
Когда Я добавляю параметр "build ." для команды "opm"
И Я выполняю команду "opm"
Тогда Вывод команды "opm" содержит "Сборка пакета завершена"
И Вывод команды "opm" не содержит "Внешнее исключение"
И Код возврата команды "opm" равен 0

View File

@ -0,0 +1,41 @@
# language: ru
Функциональность: Выполнение команды продукта
Как разработчик
Я хочу иметь возможность выполнять команды продукта
Чтобы выполнять коллективную разработку приложения для OneScript
Контекст:
Допустим Я очищаю параметры команды "oscript" в контексте
И я включаю отладку лога с именем "oscript.app.precommit4onec"
# И я включаю отладку лога с именем "bdd"
Сценарий: Получение версии продукта
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
Тогда Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "1.0"
И Вывод команды "oscript" не содержит "precommit4onec v"
И Код возврата команды "oscript" равен 0
Сценарий: Получение помощи продукта
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
Тогда Вывод команды "oscript" содержит
"""
precommit4onec v1.0
Возможные команды:
help - Выводит справку по командам
version - Выводит версию приложения
"""
И Код возврата команды "oscript" равен 0
Сценарий: Вызов исполняемого файла без параметров
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
Тогда Вывод команды "oscript" содержит
"""
precommit4onec v1.0
Возможные команды:
help - Выводит справку по командам
version - Выводит версию приложения
"""
И Код возврата команды "oscript" равен 5

View File

@ -1,17 +1,15 @@

Описание.Имя("precommit1c")
.Версия("2.1.0")
.ЗависитОт("logos")
.ЗависитОт("cmdline")
.ЗависитОт("tempfiles")
.ЗависитОт("asserts")
.ЗависитОт("v8runner")
.ЗависитОт("strings")
.ИсполняемыйФайл("v8files-extractor.os");
ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "ПараметрыПриложения.os");
ПараметрыСистемы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюПараметров);
ФайлыКаталога = НайтиФайлы(ТекущийСценарий().Каталог, ПолучитьМаскуВсеФайлы());
Для Каждого Файл Из ФайлыКаталога Цикл
Если Лев(Файл.Имя,1) <> "." Тогда
Описание.ВключитьФайл(Файл.Имя);
КонецЕсли;
КонецЦикла;
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПродукта());
Описание.Имя(ИмяПродукта)
.ВерсияСреды("1.0.17")
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
.ЗависитОт("logos", "0.5")
.ЗависитОт("cmdline", "0.4.1")
.ЗависитОт("1bdd", "1.5.2")
.ВключитьФайл("src")
.ВключитьФайл("features")
.ИсполняемыйФайл("src/main.os", ИмяПродукта);

View File

@ -1,4 +0,0 @@
#!/bin/sh
echo "Start hooks before commit for v8unpack erf and epf"
#python.exe .git/hooks/pyv8unpack.py --g --index
oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src

View File

@ -1,79 +0,0 @@
#Использовать logos
Перем Лог;
Перем КаталогСборки;
Процедура Инициализация()
Лог = Логирование.ПолучитьЛог("precommit1c.app.build");
Лог.УстановитьУровень(УровниЛога.Информация);
КаталогСборки = ОбъединитьПути(ТекущийКаталог(), "build");
ОбеспечитьПустойКаталог(КаталогСборки);
КонецПроцедуры
Функция ОбернутьВКавычки(Знач Строка)
Возврат """" + Строка + """";
КонецФункции
Процедура ВыполнитьКоманду(Знач КомандаЗапуска, Знач ТекстОшибки = "", Знач РабочийКаталог = "")
Лог.Информация("Выполняю команду: " + КомандаЗапуска);
Процесс = СоздатьПроцесс("cmd.exe /C " + ОбернутьВКавычки(КомандаЗапуска), РабочийКаталог, Истина, , КодировкаТекста.UTF8);
Процесс.Запустить();
Процесс.ОжидатьЗавершения();
Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные Цикл
СтрокаВывода = Процесс.ПотокВывода.ПрочитатьСтроку();
Сообщить(СтрокаВывода);
КонецЦикла;
Если Процесс.КодВозврата <> 0 Тогда
Лог.Ошибка("Код возврата: " + Процесс.КодВозврата);
ВызватьИсключение ТекстОшибки + Символы.ПС + Процесс.ПотокОшибок.Прочитать();
КонецЕсли;
КонецПроцедуры
Процедура ОбеспечитьПустойКаталог(Знач ПутьККаталогу)
ФайлОбъектКаталога = Новый Файл(ПутьККаталогу);
Если ФайлОбъектКаталога.Существует() Тогда
Лог.Отладка("Очищаем каталог " + ФайлОбъектКаталога.ПолноеИмя);
УдалитьФайлы(ФайлОбъектКаталога.ПолноеИмя, ПолучитьМаскуВсеФайлы());
КонецЕсли;
Лог.Отладка("Создаем новый каталог " + ФайлОбъектКаталога.ПолноеИмя);
СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя);
КонецПроцедуры
Процедура ДобавитьФайлВАрхив(Архив, ПутьКФайлу)
Лог.Информация("Добавляем в архив файл/каталог <" + ПутьКФайлу + ">");
Архив.Добавить("./" + ПутьКФайлу, РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
КонецПроцедуры
Процедура ВыполнитьСкрипт()
Лог.Информация("Инициализация подмодуля v8reader");
ВыполнитьКоманду("git submodule update --init --recursive");
Архив = Новый ЗаписьZipФайла();
Архив.Открыть(ОбъединитьПути(КаталогСборки, "precommit1c.zip"));
ДобавитьФайлВАрхив(Архив, "pre-commit");
ДобавитьФайлВАрхив(Архив, "v8files-extractor.os");
ДобавитьФайлВАрхив(Архив, "ibService");
ДобавитьФайлВАрхив(Архив, "tools");
ДобавитьФайлВАрхив(Архив, "v8Reader");
Архив.Записать();
КонецПроцедуры
Инициализация();
ВыполнитьСкрипт();

49
src/main.os Normal file
View File

@ -0,0 +1,49 @@
///////////////////////////////////////////////////////////////////////////////
//
// CLI-интерфейс для oscript-app
//
//The MIT License (MIT)
//
// Copyright (c) 2016 Andrei Ovsiankin
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// Рекомендованная структура модуля точки входа приложения
//
///////////////////////////////////////////////////////////////////////////////
#Использовать "."
///////////////////////////////////////////////////////////////////////////////
Приложение = МенеджерПриложения.Инициализировать(ПараметрыПриложения);
Попытка
Приложение.ЗавершитьРаботуПриложения(Приложение.ЗапуститьВыполнение());
Исключение
Приложение.ЗавершитьРаботуПриложенияСОшибкой(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

View File

@ -1,919 +0,0 @@
{27,
{16,
{
{1,1,
{"ru","Обработка Test for precommit1 C"}
},8,8},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0},25,0,2,
{0,6,1},
{0,8,1},2,
{0,7,2},
{0,8,2},4,
{0,5,3},
{0,6,3},
{0,7,3},
{0,8,3},0,0,
{4,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,33,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
{2,259,0,1,4,0,0,33,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{8,
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,1,
{3,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0},8,
{1,1,
{"ru","Реквизит1:"}
},0,1,0,0,0,
{0,0,0},0,
{1,0},1,
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},4,0},
{0}
},
{8,8,33,65,52,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,1,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,1,2,57},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,1,1},0,1,
{0,1,3},0,0,0,0,0,2,0,0},
{14,"НадписьРеквизит1",4294967295,0,0,0},
{0}
},
{381ed624-9217-4e63-85db-c4c3cb87daae,2,
{9,
{"Pattern",
{"S",10,1}
},
{
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,0},0,0},29,0,0,1,0,0,0,0,0,0,1,0,0,10,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
{1,0},0,0,0,0,0,0,0,16777215}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
{4,
{"U"},
{"U"},0,"",0,0}
}
},
{0},0,1,0,
{1,0},0},
{8,71,33,392,52,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,2,321},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,2,1},0,1,
{0,2,3},0,0,0,0,1,3,0,0},
{14,"Реквизит1",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,3,
{3,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0},8,
{1,1,
{"ru","Реквизит2:"}
},0,1,0,0,0,
{0,0,0},0,
{1,0},1,
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},4,0},
{0}
},
{8,8,58,65,77,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,3,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,3,2,57},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,3,1},0,1,
{0,3,3},0,0,0,0,2,4,0,0},
{14,"НадписьРеквизит2",4294967295,0,0,0},
{0}
},
{381ed624-9217-4e63-85db-c4c3cb87daae,4,
{9,
{"Pattern",
{"S",10,1}
},
{
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,0},0,0},29,0,0,1,0,0,0,0,0,0,1,0,0,10,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
{1,0},0,0,0,0,0,0,0,16777215}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
{4,
{"U"},
{"U"},0,"",0,0}
}
},
{0},0,1,0,
{1,0},0},
{8,71,58,392,77,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,2,321},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,4,1},0,1,
{0,4,3},0,0,0,0,3,5,0,0},
{14,"Реквизит2",4294967295,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,5,
{2,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0},9,1,1,0,1,1,
{5,18c3c31c-536e-4979-b7bc-c365c318d16d,9,1,0,1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0,
{0,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,8,83,392,107,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,5,0,24},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,5,1},0,0,0,0,0,0,4,6,0,0},
{14,"КоманднаяПанель1",6,0,0,0},
{0}
},
{ea83fe3a-ac3c-4cce-8045-3dddf35b28b1,6,
{5,
{"Pattern",
{"#",88d6deb1-f1f9-412a-b94f-b6a8d3e55f50}
},
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,0},0,0},
{15,117578765,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-14}
},
{3,3,
{-15}
},
{3,3,
{-13}
},2,2,0,0,0,0,0,1,1,
{7,2,0,
{-20},1,100},
{7,2,0,
{-20},1,100},2,0,1,
{3,
{c2cf1953-2796-4fe2-b78c-ff84140b124e,
{1,
{8,
{16,
{1,1,
{"ru","N"}
},
{1,0},
{1,0},28,0,-2,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"НомерСтроки",
{},4,0,
{1,0},
{"Pattern"},0,1,00000000-0000-0000-0000-000000000000},
{-2},
{-1},
{-1}
},0,0}
},
{c2cf1953-2796-4fe2-b78c-ff84140b124e,
{1,
{8,
{16,
{1,1,
{"ru","Реквизит1"}
},
{1,0},
{1,0},1e2,1,0,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"Реквизит1",
{},15,0,
{1,0},
{"Pattern",
{"S",10,1}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDIS1Uj+ROZFip23iXyAhHlCgKwPqVuVl
DDyJkZXEbgu0giSqc76cfe5zu+H1uN0H0mUxqF3b9931ohjslQarIZZFzFgOOA0Z
OV3lYCd2ib12OolTBRvThV+4HAziL80ai8IvEwjvDLsxEHKXtDkLmpumDxKnQchx
CwIBlbhTBxXnqNSXJqXHV5Y5A/lkXonoDztXWLv7dNR47xHqaSweilrfVO6MBqgj
U9UdmhDIGQz2eCKguiUv3Zf+rUzAP3KsyC1BrIiB+AI=},0}
},
{0,8152f9fe-cc1c-47e6-b258-09c19868a200},
{-1},
{-1}
},0,0}
},
{c2cf1953-2796-4fe2-b78c-ff84140b124e,
{1,
{8,
{16,
{1,1,
{"ru","Реквизит2"}
},
{1,0},
{1,0},1e2,2,1,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"Реквизит2",
{},15,0,
{1,0},
{"Pattern",
{"S",10,1}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDIS1Uj+ROZFip23iXyAhHlCgKwPqVuVl
DDyJkZXEbgu0giSqc76cfe5zu+H1uN0H0mUxqF3b9931ohjslQarIZZFzFgOOA0Z
OV3lYCd2ib12OolTBRvThV+4HAziL80ai8IvEwjvDLsxEHKXtDkLmpumDxKnQchx
CwIBlbhTBxXnqNSXJqXHV5Y5A/lkXonoDztXWLv7dNR47xHqaSweilrfVO6MBqgj
U9UdmhDIGQz2eCKguiUv3Zf+rUzAP3KsyC1BrIiB+AI=},0}
},
{0,dfec6dda-f171-4be8-bdb4-814fafbdb96e},
{-1},
{-1}
},0,0}
}
},0,0,0,0}
},
{51d1e122-c0f3-496f-901e-806df8206ba9,
{2,1,
{0,1}
}
},
{0}
},
{8,8,107,392,259,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-33},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,1,
{0,8,0},0,0,0,0,0,5,7,0,0},
{14,"ТабличнаяЧасть1",4294967295,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,7,
{2,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},4,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0},9,2,1,0,1,1,
{5,70fc07c4-5d79-4664-88b0-018a9654fd5b,3,1,0,1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0,
{0,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,0,0,400,25,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,7,0,25},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,7,1},0,0,0,0,0,0,6,1,1,0},
{14,"ДействияФормы",0,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,8,
{2,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0},9,2,0,2,0,1,
{5,68dfdfc4-9a89-4f18-b713-e2786c98dd80,3,1,3,
{6,47de4452-7f01-474d-a9f9-6bb6b2736176,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаВыполнитьНажатие",
{1,"КнопкаВыполнитьНажатие",
{1,1,
{"ru","Кнопка выполнить нажатие"}
},
{1,1,
{"ru","Кнопка выполнить нажатие"}
},
{1,1,
{"ru","Кнопка выполнить нажатие"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},0},
{6,65f1a46d-450e-4523-9928-5c59684074a4,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,d54d85a2-bc7a-4c58-bf09-cbcf8379e483,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,5,00000000-0000-0000-0000-000000000000,142,
{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,47de4452-7f01-474d-a9f9-6bb6b2736176,
{8,"ОсновныеДействияФормыВыполнить",0,1,
{1,1,
{"ru","Выполнить"}
},1,68dfdfc4-9a89-4f18-b713-e2786c98dd80,1,1e2,0,1,1,0,1,0,0},65f1a46d-450e-4523-9928-5c59684074a4,
{8,"Разделитель",0,1,
{1,0},0,68dfdfc4-9a89-4f18-b713-e2786c98dd80,2,1e2,2,1,1,0,1,0,0},d54d85a2-bc7a-4c58-bf09-cbcf8379e483,
{8,"ОсновныеДействияФормыЗакрыть",0,1,
{1,1,
{"ru","Закрыть"}
},1,68dfdfc4-9a89-4f18-b713-e2786c98dd80,3,1e2,0,1,1,0,1,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,353a7678-074f-4caa-b69c-5a9da1ed436e,1,0,0}
},
{8,0,267,400,292,1,
{0,
{2,8,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,8,1},1,
{0,8,0},0,0,0,0,0,7,8,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
}
}
},400,292,1,0,1,4,4,4},
{
{1},5,
{1,
{
{1},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",47184d0f-2ab3-4b9a-8076-fd3c87284b2e}
}
}
},
{3,
{2,
{2,
{1},
{0,7c56de12-a5ce-46d5-8d10-4bda7418e391}
}
},
{4,
{2,
{1},
{0,8eadfe5a-77bb-432a-81e9-6809c857ac47}
}
},
{6,
{2,
{1},
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6}
}
}
}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{0},1,4,1,0,0,0,
{0},
{0},
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},1,2,0,0,1,1}

View File

@ -1,4 +0,0 @@

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
КонецПроцедуры

View File

@ -1,23 +0,0 @@
18b638a7-3de6-4b2c-a124-3b13a8bc87da-->und\18b638a7-3de6-4b2c-a124-3b13a8bc87da
18b638a7-3de6-4b2c-a124-3b13a8bc87da.0-->Макеты\ДвоичныеДанные.txt
18b638a7-3de6-4b2c-a124-3b13a8bc87da.0-->und\18b638a7-3de6-4b2c-a124-3b13a8bc87da.0
4f7f24a2-3a7b-4095-b622-1f8a1e57459c-->und\4f7f24a2-3a7b-4095-b622-1f8a1e57459c
4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0-->Form\Форма1\Форма.txt
4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0-->und\4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0
4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0-->und\4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0
8fa48c24-db97-44e3-9e3d-41057bdad73b-->und\8fa48c24-db97-44e3-9e3d-41057bdad73b
8fa48c24-db97-44e3-9e3d-41057bdad73b.0-->Макеты\ТекстовыйДокумент.txt
8fa48c24-db97-44e3-9e3d-41057bdad73b.0-->und\8fa48c24-db97-44e3-9e3d-41057bdad73b.0
99c8df1e-5033-46bb-aac6-7f093ce92a3b-->und\99c8df1e-5033-46bb-aac6-7f093ce92a3b
99c8df1e-5033-46bb-aac6-7f093ce92a3b.0-->Макеты\СхемаКомпоновкиДанных\T.xml
99c8df1e-5033-46bb-aac6-7f093ce92a3b.0-->und\99c8df1e-5033-46bb-aac6-7f093ce92a3b.0
a981feb3-1026-4b79-b758-d406f4e487a1-->und\a981feb3-1026-4b79-b758-d406f4e487a1
copyinfo-->und\copyinfo
d661ecd6-4fe1-47ba-a3d9-96181ef46477-->und\d661ecd6-4fe1-47ba-a3d9-96181ef46477
d661ecd6-4fe1-47ba-a3d9-96181ef46477.0-->Form\Форма
e5c0d036-33df-4533-a77e-48e9e2334648-->und\e5c0d036-33df-4533-a77e-48e9e2334648
e5c0d036-33df-4533-a77e-48e9e2334648.0-->Макеты\ТабличныйДокумент.mxl
e5c0d036-33df-4533-a77e-48e9e2334648.0-->und\e5c0d036-33df-4533-a77e-48e9e2334648.0
root-->und\root
version-->und\version
versions-->und\versions

View File

@ -1,6 +0,0 @@
{1,
{2,1,
{0,
{0,0,18b638a7-3de6-4b2c-a124-3b13a8bc87da},"ДвоичныеДанные",
{1,"ru","Двоичные данные"},""}
},0}

View File

@ -1,119 +0,0 @@
{1,
{#base64:IyMg0J3QsNCx0L7RgCDRg9GC0LjQu9C40YIg0LTQu9GPINCw0LLRgtC+0LzQsNGC
0LjRh9C10YHQutC+0Lkg0YDQsNC30LHQvtGA0LrQuC/RgdCx0L7RgNC60Lgg0LLQ
vdC10YjQvdC40YUg0L7QsdGA0LDQsdC+0YLQvtC6INC4INC+0YLRh9C10YLQvtCy
LCDQv9GA0Lgg0L/QvtC80LXRidC10L3QuNC4KGNvbW1pdCkg0LIgZ2l0Lg0KDQoj
IyMg0KfRgtC+INC6INGH0LXQvNGDDQotLS0tDQoqIHB5djh1bnBhY2sucHkgLSBw
eXRob24g0YHQutGA0LjQv9GCLCDQv9C+0LvRg9GH0LDRjtGJ0LjQuSDRgdC/0LjR
gdC+0Log0L/QvtC80LXRidCw0LXQvNGL0YUg0YTQsNC50LvQvtCyINC/0YDQuCDQ
utC+0LzQvNC40YLQtSwg0YTQuNC70YzRgtGA0YPRjtGJ0LjQuSDQv9C+INGA0LDR
gdGI0LjRgNC10L3QuNGOINGC0L7Qu9GM0LrQviDQstC90LXRiNC90LjQtSDQvtCx
0YDQsNCx0L7RgtC60Lgv0L7RgtGH0LXRgtGLINC4INC30LDQv9GD0YHQutCw0Y7R
idC40Lkg0LLQvdC10YjQvdGO0Y4g0L7QsdGA0LDQsdC+0YLQutGDINC00LvRjyDR
gNCw0YHQv9Cw0LrQvtCy0LrQuCDRjdGC0LjRhSDRhNCw0LnQu9C+0LIuIA0KKiBb
VjhSZWFkZXIuZXBmXShodHRwOi8vaW5mb3N0YXJ0LnJ1L3B1YmxpYy8xMDYzMTAv
KSAtINCy0L3QtdGI0L3Rj9GPINC+0LHRgNCw0LHQvtGC0LrQsCAx0KEsINC60L7R
gtC+0YDQsNGPINGBINC/0L7QvNC+0YnRjNGOIFt2OHVucGFja10oaHR0cDovL3N2
bjIuYXNzZW1ibGEuY29tL3N2bi9WOFVucGFjay90cmFjay8pINGA0LDQt9Cx0LjR
gNCw0LXRgiDQstC90LXRiNC90LjQtSDQvtCx0YDQsNCx0L7RgtC60LgsINC+0L/R
gNC10LTQtdC70Y/QtdGCINC90L7RgNC80LDQu9GM0L3Ri9C1INC90LDQuNC80LXQ
vdC+0LLQsNC90LjRjyDQtNC70Y8g0LrQsNGC0LDQu9C+0LPQvtCyINGE0L7RgNC8
LCDRhNCw0LnQu9C+0LIg0LzQvtC00YPQu9C10Lkg0L7QsdGK0LXQutGC0L7QsiDQ
uCDRgi7QtC4g0Lgg0YDQsNGB0LrQu9Cw0LTRi9Cy0LDQtdGCINC40YUg0LIg0L3Q
vtGA0LzQsNC70YzQvdGD0Y4g0YHRgtGA0YPQutGC0YPRgNGDINC/0LDQv9C+0Lou
IA0KKiBpYlNlcnZpY2UgLSDRgdC10YDQstC40YHQvdCw0Y8g0LHQsNC30LAg0LTQ
sNC90L3Ri9GFINC90LAgMdChLCDQtNC70Y8g0LfQsNC/0YPRgdC60LAgVjhSZWFk
ZXIuZXBmDQoqIHByZS1jb21taXQgLSDRgdC+0LHRgdGC0LLQtdC90L3QviDQutC+
0LzQsNC90LTQvdGL0Lkg0YTQsNC50Lsg0LLRi9C30YvQstCw0LXQvNGL0LkgZ2l0
INC/0LXRgNC10LQg0LrQsNC20LTRi9C8INC/0L7QvNC10YnQtdC90LjQtdC8LiDQ
ktGL0L/QvtC70L3Rj9C10YIg0YDQvtC70Ywg0L/RgNC+0YHRgtC+0Lkg0LfQsNC/
0YPRgdC60LDQu9C60Lgg0YHQutGA0LjQv9GC0LAgcHl2OHVucGFjay5weSANCg0K
IyMjINCj0YHRgtCw0L3QvtCy0LrQsA0KDQoxLiDQl9Cw0LLQuNGB0LjQvNC+0YHR
gtC4OiANCiAgICAqIHB5dGhvbiAzLjMNCiAgICAqINGD0YHRgtCw0L3QvtCy0LvQ
tdC90L3QsNGPINC/0LvQsNGC0YTQvtGA0LzQsCAx0KEg0L/RgNC10LTQv9GA0LjR
j9GC0LjRjy4gDQogICAgKiBnaXQNCiAgICAqINCyINGB0LvRg9GH0LDQuNC4INC3
0LDQv9GD0YHQutCwINC40Lcg0L/QvtC0IHdpbmUsINC90LXQvtCx0YXQvtC00LjQ
vCDQuCBtc3NjcmlwdGNvbnRyb2wuDQoNCjIuINCf0L4g0YPQvNC+0LvRh9Cw0L3Q
uNGOINGB0YfQuNGC0LDQtdGC0YHRjywg0YfRgtC+INC/0YPRgtC4INC6IHB5dGhv
bi5leGUg0LggZ2l0LmV4ZSDQvdCw0YXQvtC00Y/RgtGB0LAg0LIg0L/QtdGA0LXQ
vNC10L3QvdC+0LkgcGF0aCwg0LjQvdCw0YfQtSDQvdC10L7QsdGF0L7QtNC40LzQ
viDRg9C60LDQt9Cw0YLRjCDRj9Cy0L3Ri9C5INC/0YPRgtGMINCyINGE0LDQudC7
0LDRhSBwcmUtY29tbWl0KNC00LvRjyBweXRob24pINC4IHB5djh1bnBhY2sucHko
0LTQu9GPIGdpdCkNCg0KMy4g0J/Rg9GC0Ywg0Log0L/Qu9Cw0YLRhNC+0YDQvNC1
INC90LDRhdC+0LTQuNGCINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4LCDQsiDR
gdC70YPRh9Cw0LjQuCDRgdGC0LDQvdC00LDRgtC90L7QuSDRg9GB0YLQsNC90L7Q
stC60LggMdChLiDQldGB0LvQuCDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C60LDQ
t9Cw0YLRjCDRj9Cy0L3QviDQv9GD0YLRjCDQuiDQv9C70LDRgtGE0L7RgNC80LUs
INC90LXQvtCx0YXQvtC00LjQvNC+OiDQo9C60LDQt9Cw0YLRjCDQv9C10YDQtdC8
0LXQvdC90YPRjiDQvtC60YDRg9C20LXQvdC40Y8gUEFUSDFDIGMg0L/Rg9GC0LXQ
vCDQuiDQutCw0YLQsNC70L7Qs9GDLCDQs9C00LUg0YPRgdGC0LDQvdC+0LLQu9C1
0L3QvdCwIDHQoQ0KYGBgDQpzZXQgUEFUSDFDID0gZDpccHJvZ3JhbVwNCmBgYA0K
0LjQu9C4INGB0L7Qt9C00LDRgtGMINGE0LDQudC7IGluaSDRgNGP0LTQvtC8INGB
INGE0LDQudC70L7QvCDRgdC60YDQuNC/0YLQsCBweXY4dW5wYWNrLnB5INC40LvQ
uCDQsiDQtNC+0LzQsNGI0L3QtdC5INC/0LDQv9C60LUg0LIg0LrQvtGA0L3QtSwg
0YEg0LjQvNC10L3QtdC8IHByZWNvbW1pdDFjLmluaSDQuCDRgdC+0LTQtdGA0LDQ
ttC90LjQtdC8Og0KYGBgDQpbREVGQVVMVF0NCm9uZWNwbGF0ZnJvcm1zID0gYzpc
cHJvZ3JhbVwxY3Y4XDguMy41LjgyM1xiaW5cMWN2OC5leGUNCmBgYA0KDQo0LiDQ
n9GD0YLRjCDRhdGA0LDQvdC10L3QuNGPINC40YHRhdC+0LTQvdGL0YUg0YLQtdC6
0YHRgtC+0LLQviDRgNCw0LfQvtCx0YDQsNC90L3Ri9GFINC+0LHRgNCw0LHQvtGC
0L7QuiDQv9C+0YPQvNC+0LvRh9Cw0L3QuNGOINC40YHQv9C+0LvRjNC30YPQtdGC
0YHRjyDQutCw0LogKipzcmMqKiAo0LTQu9GPINC+0LHQtdGB0L/QtdGH0LXQvdC4
0Y8g0YHQvtCy0LzQtdGB0YLQuNC80L7RgdGC0Lgg0YHQviDRgdGC0LDRgNGL0LzQ
uCDQstC10YDRgdC40Y/QvNC4INC+0LHRgNCw0LHQvtGC0LrQuCksINC+0LTQvdCw
0LrQviDQtdCz0L4g0LzQvtC20L3QviDQv9C10YDQtdC90LDQt9C90LDRh9C40YLR
jCDQsiBpbmkg0YTQsNC50LvQtQ0KYGBgDQpbREVGQVVMVF0NCnNvdXJjZSA9IHBs
dWdpbl9zb3VyY2UNCmBgYA0KDQo1LiDQndCw0LrQvtC90LXRhiDRgdC+0LTQtdGA
0LbQuNC80L7QtSDQutCw0YLQsNC70L7Qs9CwINC90LXQvtCx0YXQvtC00LjQvNC+
INGB0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LIg0LrQsNGC0LDQu9C+0LMgLmdpdC9o
b29rcy8g0LLQsNGI0LXQs9C+INC/0YDQvtC10LrRgtCwLiANCj4gKtCf0YDQuNC8
0LXRh9Cw0L3QuNC1Oiog0LrQsNGC0LDQu9C+0LMgLmdpdCDQv9C+INGD0LzQvtC7
0YfQsNC90LjRjiDRgdC60YDRi9GCLiAgDQoNCmBgYA0KLmdpdFwNCiAgICBob29r
c1wNCiAgICAgICAgcHJlLWNvbW1pdA0KICAgICAgICBWOFJlYWRlci5lcGYNCiAg
ICAgICAgaWJTZXJ2aWNlIA0KICAgICAgICBweXY4dW5wYWNrLnB5DQpgYGANCg0K
IyPQl9Cw0L/Rg9GB0LogDQoNCtCf0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4
INC00L7RgdGC0LDRgtC+0YfQvdC+INC00LvRjyDQv9GA0L7QstC10YDQutC4INGB
0LTQtdC70LDRgtGMIGNvbW1pdCDQtNC70Y8g0LvRjtCx0L7Qs9C+INGE0LDQudC7
0LAgZXBmINC4INCyINCy0LDRiNC10Lwg0YDQtdC/0L7Qt9C40YLQsNGA0LjQuCDQ
sNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQtNC+0LvQttC90LAg0YHQvtC30LTQ
sNGC0YzRgdGPINC/0LDQv9C60LAgKnNyYyog0L/QvtCy0YLQvtGA0Y/RjtGJ0LDR
jyDQv9C+0LvQvdC+0YHRgtGM0Y4g0YHRgtGA0YPQutGC0YPRgNGDINC/0YDQvtC1
0LrRgtCwLCDRgtC1INGE0LDQudC70Ysg0LrQvtGC0L7RgNGL0LUg0LHRi9C70Lgg
0LjQt9C80LXQvdC10L3QvdGLINC40LvQuCDQttC1INC00L7QsdCw0LLQu9C10L3Q
vdGLINGA0LDRgdC/0LDQutGD0Y7RgtGB0Y8g0LIg0L/QsNC/0LrQuCDRgSDQsNC9
0LDQu9C+0LPQuNGH0L3Ri9C8INC90LDQuNC80LXQvdC+0LLQsNC90LjQtdC8LiAN
Cg0KIyPQntCz0YDQsNC90LjRh9C10L3QuNGPDQoNCtCe0LTQuNC90LrQvtCy0YvQ
vNC4INC40LzQtdC90LDQvNC4INGE0LDQudC70Ysg0YEg0YDQsNC30L3Ri9C8INGA
0LDRgdGI0LjRgNC10L3QuNC10LwgZXBmINC4IGVyZiDQvdCw0LfRi9Cy0LDRgtGM
INC90LUg0L3QsNC00L4sINGCLtC6LiDQutCw0YLQsNC70L7Qs9C4INGBINC40YHR
hdC+0LTQvdC40LrQsNC80Lgg0YHQvtC30LTQsNGO0YLRgdGPINGC0L7Qu9GM0LrQ
viDQv9C+INC90LDQuNC80LXQvdC+0LLQsNC90LjRjiDQsdC10Lcg0YPRh9C10YLQ
sCDRgNCw0YHRiNC40YDQtdC90LjRjyDQuCDQstC+0LfQvNC+0LbQtdC9INC60L7Q
vdGE0LvQuNC60YIuIA0K0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L4g0L3QtdC+
0LHRhdC+0LTQuNC80LAg0L3QsNGB0YLRgNC+0LnQutCwIGdpdCDQtNC70Y8g0LLQ
vtC30LzQvtC20L3QvtGB0YLQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQ
utC40YDQuNC70LjRh9C10YHQutC40YUg0L3QsNC40LzQtdC90L7QstCw0L3QuNC5
INCy0L3QtdGI0L3QuNGFINC+0LHRgNCw0LHQvtGC0L7QuiBgYGBnaXQgY29uZmln
IC0tbG9jYWwgY29yZS5xdW90ZXBhdGggZmFsc2VgYGANCiMj0KfRgtC+INCy0L3R
g9GC0YDQuA0KDQrQutCw0Log0Y3RgtC+INGA0LDQsdC+0YLQsNC10YI6IHB5djh1
bnBhY2sucHkg0L/QvtCy0YLQvtGA0Y/QtdGCINC/0L7Qu9C90L7RgdGC0YzRjiDQ
uNC10YDQsNGA0YXQuNGOINC/0LDQv9C+0Log0L7RgtC90L7RgdC40YLQtdC70YzQ
vdC+INC60L7RgNC90Y8g0YDQtdC/0L7Qt9C40YLQsNGA0LjRjyDRgtC+0LvRjNC6
0L4g0LIg0L/QsNC/0LrQtSBTUkMgKNC+0YIg0YHQu9C+0LLQsCBzb3VyY2UpINC4
0LvQuCDRgtGDINC60L7RgtC+0YDRg9GOINCy0Ysg0L7Qv9GA0LXQtNC10LvQuNC7
0Lgg0LIg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC+0L3QvdC+0Lwg0YTQsNC50LvR
gyAsINC60LDQttC00LDRjyDQtNC70Y8g0LrQsNC20LTQvtC5INC40LfQvNC10L3Q
tdC90L3QvtC5INCy0L3QtdGI0L3QtdC5INC+0LHRgNCw0LHQvtGC0LrQuCDRgdC+
0LfQtNCw0LXRgtGB0Y8g0YHQstC+0Y8g0L/QsNC/0LrQsCDQuCDRgtGD0LTQsCDR
gSDQv9C+0LzQvtGJ0YzRjiB2OHVucGFjayDRgNCw0YHQv9Cw0LrQvtCy0YvQstCw
0LXRgtGB0Y8g0L/QvtC80LXRidCw0LXQvNCw0Y8g0L7QsdGA0LDQsdC+0YLQutCw
LCDRgSDQv9C+0LzQvtGJ0YzRjiB2OHJlYWRlciDQvtC/0YDQtdC00LXQu9GP0Y7R
gtGB0LAg0L3QsNC40LzQtdC90L7QstCw0L3QuNGPINC80LDQutC10YLQvtCyLCDR
hNC+0YDQvCwg0LzQvtC00YPQu9GPINC+0LHRgNCw0LHQvtGC0LrQuCDQuCDQv9C1
0YDQtdC40LzQtdC90L7QstGL0LLQsNGO0YLRgdGPLCDQv9C10YDQtdC40LzQtdC9
0L7QstCw0L3QuNGPINGB0L7RhdGA0LDQvdGP0Y7RgtGB0LAg0LIg0YHQu9GD0LbQ
tdCx0L3QvtC8INGE0LDQudC70LUgcmVuYW1lcy50eHQgLCDRgtC1INGE0LDQudC7
0YssINC60L7RgtC+0YDRi9C1INC90LXQstC+0LfQvNC+0L3QttC90L4g0L7Qv9GA
0LXQtNC10LvQuNGC0Ywg0LjQu9C4INC20LUg0L3QvtGB0Y/RgiDRh9C40YHRgtC+
INGB0LvRg9C20LXQsdC90YvQuSDRhdCw0YDQsNC60YLQtdGALCDQv9C10YDQtdC9
0L7RgdGP0YLRgdCwINCyINC60LDRgtCw0LvQvtCzICp1bmQqDQo=}
}

View File

@ -1,15 +0,0 @@
{1,
{1,
{0,
{12,
{1,
{0,0,4f7f24a2-3a7b-4095-b622-1f8a1e57459c},"Форма1",
{1,"ru","Форма1"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
}
},
{0}
}
},0}

View File

@ -1,830 +0,0 @@
{3,
{38,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
{0},
{0},1,
{19,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{0,0,1},0,1,0,0},3,77ffcc29-7f2d-4223-b22f-19666e7250ba,
{32,
{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Реквизит1",1,0,
{1,0},
{1,0},
{2,
{1},
{0,7c56de12-a5ce-46d5-8d10-4bda7418e391}
},
{0},1,0,2,0,2,
{1,0},
{1,0},1,1,0,3,0,3,2,3,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{30,
{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
{"U"},
{"U"},"",0,
{4,0,
{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
{5004,0},
{0,0},2,
{1,0},
{1,0},2,1,0,
{"Pattern"},1,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,
{3,0,0},0,
{1,0},2,0,2,0},
{0},1,
{19,
{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Реквизит1КонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{8,
{14,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Реквизит1РасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},77ffcc29-7f2d-4223-b22f-19666e7250ba,
{32,
{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Реквизит2",1,0,
{1,0},
{1,0},
{2,
{1},
{0,8eadfe5a-77bb-432a-81e9-6809c857ac47}
},
{0},1,0,2,0,2,
{1,0},
{1,0},1,1,0,3,0,3,2,3,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{30,
{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
{"U"},
{"U"},"",0,
{4,0,
{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
{5004,0},
{0,0},2,
{1,0},
{1,0},2,1,0,
{"Pattern"},1,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,
{3,0,0},0,
{1,0},2,0,2,0},
{0},1,
{19,
{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Реквизит2КонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{8,
{15,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Реквизит2РасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},143c00f7-a42d-4cd7-9189-88e4467dc768,
{48,
{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,"ТабличнаяЧасть1",0,0,1,
{1,0},
{1,0},
{2,
{1},
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6}
},0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,2,2,1,1,0,0,0,1,2,0,0,1,1,
{0},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,1,1,13,
{"U"},
{0},
{0},1,
{19,
{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1КонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{19,
{7,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"ТабличнаяЧасть1КоманднаяПанель",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{0,0,1},0,1,0,0},3,77ffcc29-7f2d-4223-b22f-19666e7250ba,
{32,
{8,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,1,"ТабличнаяЧасть1НомерСтроки",1,0,
{1,0},
{1,0},
{3,
{1},
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6},
{-2}
},
{0},1,0,2,0,2,
{1,0},
{1,0},1,1,0,3,0,3,2,3,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{10,0,0,2,2,2,
{1,0},0,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},2,
{0},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},
{0},1,
{19,
{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1НомерСтрокиКонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{8,
{26,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1НомерСтрокиРасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},77ffcc29-7f2d-4223-b22f-19666e7250ba,
{32,
{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"ТабличнаяЧасть1Реквизит1",1,0,
{1,0},
{1,0},
{3,
{1},
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6},
{0,8152f9fe-cc1c-47e6-b258-09c19868a200}
},
{0},1,0,2,0,2,
{1,0},
{1,0},1,1,0,3,0,3,2,3,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{30,
{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
{"U"},
{"U"},"",0,
{4,0,
{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
{5004,0},
{0,0},2,
{1,0},
{1,0},2,1,0,
{"Pattern"},1,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,
{3,0,0},0,
{1,0},2,0,2,0},
{0},1,
{19,
{11,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1Реквизит1КонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{8,
{27,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1Реквизит1РасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},77ffcc29-7f2d-4223-b22f-19666e7250ba,
{32,
{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"ТабличнаяЧасть1Реквизит2",1,0,
{1,0},
{1,0},
{3,
{1},
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6},
{0,dfec6dda-f171-4be8-bdb4-814fafbdb96e}
},
{0},1,0,2,0,2,
{1,0},
{1,0},1,1,0,3,0,3,2,3,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{3,4,
{0}
},
{7,3,0,1,100},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{30,
{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
{"U"},
{"U"},"",0,
{4,0,
{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
{5004,0},
{0,0},2,
{1,0},
{1,0},2,1,0,
{"Pattern"},1,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,
{3,0,0},0,
{1,0},2,0,2,0},
{0},1,
{19,
{13,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1Реквизит2КонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{8,
{28,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1Реквизит2РасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},2,2,1,0,
{"Pattern"},"","",2,2,0,1,
{8,
{16,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1РасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0},1,1,1,1,
{3,
{17,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1СтрокаПоиска",
{1,0},
{1,0},1,1,0,1,
{0,0,2,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0}
},1,
{19,
{18,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1СтрокаПоискаКонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{8,
{19,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1СтрокаПоискаРасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0},2,
{5,0},0},1,
{3,
{20,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,1,"ТабличнаяЧасть1СостояниеПросмотра",
{1,0},
{1,0},1,1,0,1,
{0,0,2,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e},3,
{0}
},1,
{19,
{21,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1СостояниеПросмотраКонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{8,
{22,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1СостояниеПросмотраРасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0},2,
{5,1},0},1,
{3,
{23,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"ТабличнаяЧасть1УправлениеПоиском",
{1,0},
{1,0},1,1,0,1,
{0,0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{0}
},1,
{19,
{24,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТабличнаяЧасть1УправлениеПоискомКонтекстноеМеню",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{1,1},0,1,0,0},1,
{8,
{25,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТабличнаяЧасть1УправлениеПоискомРасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0},2,
{5,2},0},0},"","",1,
{19,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},0,0,1,0,1,
{8,
{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},1,"",2,0,1,
{19,
{0},0,0,0,7,"LeftCaptionButtons",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},0,0,1,0,1,
{8,
{0},0,0,0,0,"LeftCaptionButtonsExtendedTooltip",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
},1,
{19,
{0},0,0,0,7,"RightCaptionButtons",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},0,0,1,0,1,
{8,
{0},0,0,0,0,"RightCaptionButtonsExtendedTooltip",
{1,0},
{1,0},1,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
{0},
{3,4,
{0}
},
{3,4,
{0}
},
{3,0,
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
{1,0},0},0,0}
}
},"",
{4,1,
{9,
{1},0,"Объект",
{1,0},
{"Pattern",
{"#",47184d0f-2ab3-4b9a-8076-fd3c87284b2e}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},
{0,0},1,0,0,0,
{0,0},
{0,0}
},0,0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
},
{0,0},
{0,0},
{0,0},
{0,0},0,0}

View File

@ -1,6 +0,0 @@
{1,
{2,4,
{0,
{0,0,8fa48c24-db97-44e3-9e3d-41057bdad73b},"ТекстовыйДокумент",
{1,"ru","Текстовый документ"},""}
},0}

View File

@ -1 +0,0 @@
ТекстовыйДокумент

View File

@ -1,6 +0,0 @@
{1,
{2,6,
{1,
{0,0,99c8df1e-5033-46bb-aac6-7f093ce92a3b},"СхемаКомпоновкиДанных",
{1,"ru","Схема компоновки данных"},"",0,0}
},0}

View File

@ -1,169 +0,0 @@
{1,
{a981feb3-1026-4b79-b758-d406f4e487a1},1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
{1,
{4,47184d0f-2ab3-4b9a-8076-fd3c87284b2e,8e505870-fe96-434c-acb0-25d4c4859c0c,
{0,
{1,
{0,0,4b6badfb-f63c-435d-b313-5b5d906ebeda},"TestForPrecommit1C",
{1,"ru","Test for precommit1 C"},"",0,0}
},d661ecd6-4fe1-47ba-a3d9-96181ef46477,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,1,
{
{0,
{11,88d6deb1-f1f9-412a-b94f-b6a8d3e55f50,ddb05595-13bc-405b-85b2-908f3d3898e4,031250e5-5827-4b49-958a-606ae3c9f547,bad010d8-aa26-43ec-8efb-37618fd4c16b,
{0,
{1,
{0,0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6},"ТабличнаяЧасть1",
{0},"",0,0}
},0,
{1,
{1,1,
{-3},510405d3-2a0c-4fea-960a-7fee59b32f9b,
{12,23,1183c14f-f814-49c6-9233-a3c26b3f64cf,
{"#",9ad557b1-249e-48dc-824b-3e149ecf10a6,
{3,0,0}
},2723eb98-b4c1-498a-a6f3-70444757902f,
{"#",98ea8e5a-b586-442b-b944-6e3447734aa7,0},2bbba66b-fabf-4863-8ba3-54b3c64c896e,
{"B",0},2c8143d5-4248-4c43-8bfb-307c0be2e415,
{"B",0},33c74a4d-561f-4bc0-9eaa-8d21c893c0a9,
{"#",ad3615c5-aae6-4725-89be-91827523abd9,
{ad3615c5-aae6-4725-89be-91827523abd9,0}
},3eaf5a8b-06d6-47b0-ac7d-a9698247f499,
{"U"},4690ff70-e3fa-4914-9127-6a9acc5fc949,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
},4de03908-56f4-4396-a61e-17253afca9ac,
{"B",0},580c29e2-8af4-4258-882a-7cf8073e61c8,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
},6c4f7074-e7d4-48eb-b31b-132873666262,
{"#",157fa490-4ce9-11d4-9415-008048da11f9,
{1,00000000-0000-0000-0000-000000000000}
},6e3a1131-37a3-4da5-8895-572d9d0c9db6,
{"#",ace3fd07-11b2-477e-ab7f-36f0ea37c8dd,
{ace3fd07-11b2-477e-ab7f-36f0ea37c8dd,2}
},7ba608f2-e654-42a3-8885-334fe88ca910,
{"#",12ca4003-ac70-450e-b897-37faf86bd313,0},88149a78-9448-4767-867b-0e650d165d2e,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
},90ae4b5d-e0fd-49ef-a008-d67c1e75038c,
{"B",0},b02800e9-a8d1-42ab-9a12-f673e92be968,
{"B",0},c65a541f-0b91-4f33-bc88-fbaaa57f9992,
{"U"},cf4abea3-37b2-11d4-940f-008048da11f9,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
},cf4abea4-37b2-11d4-940f-008048da11f9,
{"S",""},d4232326-022b-421e-b6d3-88e418f74327,
{"#",3b8e6bdd-d648-49d5-af2f-d46d84f87dd5,
{3b8e6bdd-d648-49d5-af2f-d46d84f87dd5,1}
},e3da683b-c54a-457a-a243-b9b4f9bf76dd,
{"#",b76a58b9-2a56-4e46-bb31-8e04ad9f31ae,
{5004,0}
},e6b3f5f3-bdf3-4ad0-bc60-7323b3feb208,
{"U"},f49e4ced-4033-4e6c-8755-9fbaaccd6078,
{"S",""},fcf503b8-1c06-454a-970c-06413e64aee5,
{"#",f2eaae14-91a7-47b9-9d69-097877f41580,
{0,0}
}
}
}
},
{0}
}
},1,
{5d24a9d1-098e-11d6-b9b8-0050bae0a95d,2,
{
{0,
{27,
{2,
{1,
{0,0,8152f9fe-cc1c-47e6-b258-09c19868a200},"Реквизит1",
{0},"",0,0},
{"Pattern",
{"S",10,1}
}
},0,
{0},
{0},0,"",0,
{"U"},
{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
{5004,0},
{3,0,0},
{0,0},0,
{0},
{"S",""},0,0,0}
},0},
{
{0,
{27,
{2,
{1,
{0,0,dfec6dda-f171-4be8-bdb4-814fafbdb96e},"Реквизит2",
{0},"",0,0},
{"Pattern",
{"S",10,1}
}
},0,
{0},
{0},0,"",0,
{"U"},
{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
{5004,0},
{3,0,0},
{0,0},0,
{0},
{"S",""},0,0,0}
},0}
}
}
},
{3daea016-69b7-4ed4-9453-127911372fe6,4,e5c0d036-33df-4533-a77e-48e9e2334648,8fa48c24-db97-44e3-9e3d-41057bdad73b,18b638a7-3de6-4b2c-a124-3b13a8bc87da,99c8df1e-5033-46bb-aac6-7f093ce92a3b},
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,d661ecd6-4fe1-47ba-a3d9-96181ef46477,4f7f24a2-3a7b-4095-b622-1f8a1e57459c},
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,2,
{
{0,
{27,
{2,
{1,
{0,0,7c56de12-a5ce-46d5-8d10-4bda7418e391},"Реквизит1",
{0},"",0,0},
{"Pattern",
{"S",10,1}
}
},0,
{0},
{0},0,"",0,
{"U"},
{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
{5004,0},
{3,0,0},
{0,0},0,
{0},
{"S",""},0,0,0}
},0},
{
{0,
{27,
{2,
{1,
{0,0,8eadfe5a-77bb-432a-81e9-6809c857ac47},"Реквизит2",
{0},"",0,0},
{"Pattern",
{"S",10,1}
}
},0,
{0},
{0},0,"",0,
{"U"},
{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
{5004,0},
{3,0,0},
{0,0},0,
{0},
{"S",""},0,0,0}
},0}
}
}
}
}

View File

@ -1,59 +0,0 @@
{4,
{7,
{4b6badfb-f63c-435d-b313-5b5d906ebeda,4b6badfb-f63c-435d-b313-5b5d906ebeda,1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"TestForPrecommit1C"}
},
{673a3386-b85e-476a-9cc9-a3b16bfdf9d6,673a3386-b85e-476a-9cc9-a3b16bfdf9d6,1,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,"ТабличнаяЧасть1"}
},
{7c56de12-a5ce-46d5-8d10-4bda7418e391,7c56de12-a5ce-46d5-8d10-4bda7418e391,1,
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"Реквизит1"}
},
{8152f9fe-cc1c-47e6-b258-09c19868a200,8152f9fe-cc1c-47e6-b258-09c19868a200,2,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,"ТабличнаяЧасть1"},
{5d24a9d1-098e-11d6-b9b8-0050bae0a95d,"Реквизит1"}
},
{8eadfe5a-77bb-432a-81e9-6809c857ac47,8eadfe5a-77bb-432a-81e9-6809c857ac47,1,
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"Реквизит2"}
},
{d661ecd6-4fe1-47ba-a3d9-96181ef46477,d661ecd6-4fe1-47ba-a3d9-96181ef46477,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
},
{dfec6dda-f171-4be8-bdb4-814fafbdb96e,dfec6dda-f171-4be8-bdb4-814fafbdb96e,2,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,"ТабличнаяЧасть1"},
{5d24a9d1-098e-11d6-b9b8-0050bae0a95d,"Реквизит2"}
}
},
{2,
{47184d0f-2ab3-4b9a-8076-fd3c87284b2e,4b6badfb-f63c-435d-b313-5b5d906ebeda,0},
{88d6deb1-f1f9-412a-b94f-b6a8d3e55f50,673a3386-b85e-476a-9cc9-a3b16bfdf9d6,0}
},
{6,
{
{-2},88d6deb1-f1f9-412a-b94f-b6a8d3e55f50,
{-2}
},
{
{0,673a3386-b85e-476a-9cc9-a3b16bfdf9d6},47184d0f-2ab3-4b9a-8076-fd3c87284b2e,
{-1}
},
{
{0,7c56de12-a5ce-46d5-8d10-4bda7418e391},47184d0f-2ab3-4b9a-8076-fd3c87284b2e,
{-1}
},
{
{0,8152f9fe-cc1c-47e6-b258-09c19868a200},88d6deb1-f1f9-412a-b94f-b6a8d3e55f50,
{-1}
},
{
{0,8eadfe5a-77bb-432a-81e9-6809c857ac47},47184d0f-2ab3-4b9a-8076-fd3c87284b2e,
{-1}
},
{
{0,dfec6dda-f171-4be8-bdb4-814fafbdb96e},88d6deb1-f1f9-412a-b94f-b6a8d3e55f50,
{-1}
}
},
{0,0},
{0}
}

View File

@ -1,15 +0,0 @@
{1,
{1,
{0,
{12,
{1,
{0,0,d661ecd6-4fe1-47ba-a3d9-96181ef46477},"Форма",
{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,0,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
}
},
{0}
}
},0}

View File

@ -1,6 +0,0 @@
{1,
{2,0,
{1,
{0,0,e5c0d036-33df-4533-a77e-48e9e2334648},"ТабличныйДокумент",
{1,"ru","Табличный документ"},"",0,0}
},0}

View File

@ -1 +0,0 @@
{2,a981feb3-1026-4b79-b758-d406f4e487a1,}

View File

@ -1,3 +0,0 @@
{
{216,0}
}

View File

@ -1 +0,0 @@
{1,18,"",86a24092-e034-4bb2-8ced-024018648e4a,"18b638a7-3de6-4b2c-a124-3b13a8bc87da",d2480255-8bb3-4d3c-a776-7ebdebfd4103,"18b638a7-3de6-4b2c-a124-3b13a8bc87da.0",c5b748e8-9d08-4232-8ffe-332fdd066811,"4f7f24a2-3a7b-4095-b622-1f8a1e57459c",e2d96812-9cdb-42a5-97da-bf2af245d64a,"4f7f24a2-3a7b-4095-b622-1f8a1e57459c.0",f441a38d-3062-443f-b3d9-c7bd333beaa7,"8fa48c24-db97-44e3-9e3d-41057bdad73b",8dec8efa-d2c6-4daf-9555-15cec3a2cadb,"8fa48c24-db97-44e3-9e3d-41057bdad73b.0",c4c049ff-b841-4818-8dde-47f8af33021e,"99c8df1e-5033-46bb-aac6-7f093ce92a3b",0e3fef53-8cbd-4f61-bd0b-63423eb50a50,"99c8df1e-5033-46bb-aac6-7f093ce92a3b.0",77c8b4f3-3a2a-4bff-91bf-c9605f62c247,"a981feb3-1026-4b79-b758-d406f4e487a1",1fcc4c88-6006-4159-b202-1ccd01f253d7,"copyinfo",59e48b3d-88c6-415c-bfc5-1f3bd299d041,"d661ecd6-4fe1-47ba-a3d9-96181ef46477",753deeec-873c-42aa-bca5-57a473cab7fd,"d661ecd6-4fe1-47ba-a3d9-96181ef46477.0",36ef1827-6a49-450e-bcb3-e394a82a5da9,"e5c0d036-33df-4533-a77e-48e9e2334648",5d7f9367-f37e-42b0-9206-57893774cac9,"e5c0d036-33df-4533-a77e-48e9e2334648.0",97e6762a-e266-4b7b-b4ba-a5b311853144,"root",dcf79a1e-e182-48aa-a4b9-51e3998f7de5,"version",c4c48470-4ce5-4b11-9c7c-25ee61dd83eb,"versions",f8149e78-8363-4cc1-af9e-88ad7c1f3b41}

View File

@ -1,119 +0,0 @@
{1,
{#base64:IyMg0J3QsNCx0L7RgCDRg9GC0LjQu9C40YIg0LTQu9GPINCw0LLRgtC+0LzQsNGC
0LjRh9C10YHQutC+0Lkg0YDQsNC30LHQvtGA0LrQuC/RgdCx0L7RgNC60Lgg0LLQ
vdC10YjQvdC40YUg0L7QsdGA0LDQsdC+0YLQvtC6INC4INC+0YLRh9C10YLQvtCy
LCDQv9GA0Lgg0L/QvtC80LXRidC10L3QuNC4KGNvbW1pdCkg0LIgZ2l0Lg0KDQoj
IyMg0KfRgtC+INC6INGH0LXQvNGDDQotLS0tDQoqIHB5djh1bnBhY2sucHkgLSBw
eXRob24g0YHQutGA0LjQv9GCLCDQv9C+0LvRg9GH0LDRjtGJ0LjQuSDRgdC/0LjR
gdC+0Log0L/QvtC80LXRidCw0LXQvNGL0YUg0YTQsNC50LvQvtCyINC/0YDQuCDQ
utC+0LzQvNC40YLQtSwg0YTQuNC70YzRgtGA0YPRjtGJ0LjQuSDQv9C+INGA0LDR
gdGI0LjRgNC10L3QuNGOINGC0L7Qu9GM0LrQviDQstC90LXRiNC90LjQtSDQvtCx
0YDQsNCx0L7RgtC60Lgv0L7RgtGH0LXRgtGLINC4INC30LDQv9GD0YHQutCw0Y7R
idC40Lkg0LLQvdC10YjQvdGO0Y4g0L7QsdGA0LDQsdC+0YLQutGDINC00LvRjyDR
gNCw0YHQv9Cw0LrQvtCy0LrQuCDRjdGC0LjRhSDRhNCw0LnQu9C+0LIuIA0KKiBb
VjhSZWFkZXIuZXBmXShodHRwOi8vaW5mb3N0YXJ0LnJ1L3B1YmxpYy8xMDYzMTAv
KSAtINCy0L3QtdGI0L3Rj9GPINC+0LHRgNCw0LHQvtGC0LrQsCAx0KEsINC60L7R
gtC+0YDQsNGPINGBINC/0L7QvNC+0YnRjNGOIFt2OHVucGFja10oaHR0cDovL3N2
bjIuYXNzZW1ibGEuY29tL3N2bi9WOFVucGFjay90cmFjay8pINGA0LDQt9Cx0LjR
gNCw0LXRgiDQstC90LXRiNC90LjQtSDQvtCx0YDQsNCx0L7RgtC60LgsINC+0L/R
gNC10LTQtdC70Y/QtdGCINC90L7RgNC80LDQu9GM0L3Ri9C1INC90LDQuNC80LXQ
vdC+0LLQsNC90LjRjyDQtNC70Y8g0LrQsNGC0LDQu9C+0LPQvtCyINGE0L7RgNC8
LCDRhNCw0LnQu9C+0LIg0LzQvtC00YPQu9C10Lkg0L7QsdGK0LXQutGC0L7QsiDQ
uCDRgi7QtC4g0Lgg0YDQsNGB0LrQu9Cw0LTRi9Cy0LDQtdGCINC40YUg0LIg0L3Q
vtGA0LzQsNC70YzQvdGD0Y4g0YHRgtGA0YPQutGC0YPRgNGDINC/0LDQv9C+0Lou
IA0KKiBpYlNlcnZpY2UgLSDRgdC10YDQstC40YHQvdCw0Y8g0LHQsNC30LAg0LTQ
sNC90L3Ri9GFINC90LAgMdChLCDQtNC70Y8g0LfQsNC/0YPRgdC60LAgVjhSZWFk
ZXIuZXBmDQoqIHByZS1jb21taXQgLSDRgdC+0LHRgdGC0LLQtdC90L3QviDQutC+
0LzQsNC90LTQvdGL0Lkg0YTQsNC50Lsg0LLRi9C30YvQstCw0LXQvNGL0LkgZ2l0
INC/0LXRgNC10LQg0LrQsNC20LTRi9C8INC/0L7QvNC10YnQtdC90LjQtdC8LiDQ
ktGL0L/QvtC70L3Rj9C10YIg0YDQvtC70Ywg0L/RgNC+0YHRgtC+0Lkg0LfQsNC/
0YPRgdC60LDQu9C60Lgg0YHQutGA0LjQv9GC0LAgcHl2OHVucGFjay5weSANCg0K
IyMjINCj0YHRgtCw0L3QvtCy0LrQsA0KDQoxLiDQl9Cw0LLQuNGB0LjQvNC+0YHR
gtC4OiANCiAgICAqIHB5dGhvbiAzLjMNCiAgICAqINGD0YHRgtCw0L3QvtCy0LvQ
tdC90L3QsNGPINC/0LvQsNGC0YTQvtGA0LzQsCAx0KEg0L/RgNC10LTQv9GA0LjR
j9GC0LjRjy4gDQogICAgKiBnaXQNCiAgICAqINCyINGB0LvRg9GH0LDQuNC4INC3
0LDQv9GD0YHQutCwINC40Lcg0L/QvtC0IHdpbmUsINC90LXQvtCx0YXQvtC00LjQ
vCDQuCBtc3NjcmlwdGNvbnRyb2wuDQoNCjIuINCf0L4g0YPQvNC+0LvRh9Cw0L3Q
uNGOINGB0YfQuNGC0LDQtdGC0YHRjywg0YfRgtC+INC/0YPRgtC4INC6IHB5dGhv
bi5leGUg0LggZ2l0LmV4ZSDQvdCw0YXQvtC00Y/RgtGB0LAg0LIg0L/QtdGA0LXQ
vNC10L3QvdC+0LkgcGF0aCwg0LjQvdCw0YfQtSDQvdC10L7QsdGF0L7QtNC40LzQ
viDRg9C60LDQt9Cw0YLRjCDRj9Cy0L3Ri9C5INC/0YPRgtGMINCyINGE0LDQudC7
0LDRhSBwcmUtY29tbWl0KNC00LvRjyBweXRob24pINC4IHB5djh1bnBhY2sucHko
0LTQu9GPIGdpdCkNCg0KMy4g0J/Rg9GC0Ywg0Log0L/Qu9Cw0YLRhNC+0YDQvNC1
INC90LDRhdC+0LTQuNGCINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4LCDQsiDR
gdC70YPRh9Cw0LjQuCDRgdGC0LDQvdC00LDRgtC90L7QuSDRg9GB0YLQsNC90L7Q
stC60LggMdChLiDQldGB0LvQuCDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C60LDQ
t9Cw0YLRjCDRj9Cy0L3QviDQv9GD0YLRjCDQuiDQv9C70LDRgtGE0L7RgNC80LUs
INC90LXQvtCx0YXQvtC00LjQvNC+OiDQo9C60LDQt9Cw0YLRjCDQv9C10YDQtdC8
0LXQvdC90YPRjiDQvtC60YDRg9C20LXQvdC40Y8gUEFUSDFDIGMg0L/Rg9GC0LXQ
vCDQuiDQutCw0YLQsNC70L7Qs9GDLCDQs9C00LUg0YPRgdGC0LDQvdC+0LLQu9C1
0L3QvdCwIDHQoQ0KYGBgDQpzZXQgUEFUSDFDID0gZDpccHJvZ3JhbVwNCmBgYA0K
0LjQu9C4INGB0L7Qt9C00LDRgtGMINGE0LDQudC7IGluaSDRgNGP0LTQvtC8INGB
INGE0LDQudC70L7QvCDRgdC60YDQuNC/0YLQsCBweXY4dW5wYWNrLnB5INC40LvQ
uCDQsiDQtNC+0LzQsNGI0L3QtdC5INC/0LDQv9C60LUg0LIg0LrQvtGA0L3QtSwg
0YEg0LjQvNC10L3QtdC8IHByZWNvbW1pdDFjLmluaSDQuCDRgdC+0LTQtdGA0LDQ
ttC90LjQtdC8Og0KYGBgDQpbREVGQVVMVF0NCm9uZWNwbGF0ZnJvcm1zID0gYzpc
cHJvZ3JhbVwxY3Y4XDguMy41LjgyM1xiaW5cMWN2OC5leGUNCmBgYA0KDQo0LiDQ
n9GD0YLRjCDRhdGA0LDQvdC10L3QuNGPINC40YHRhdC+0LTQvdGL0YUg0YLQtdC6
0YHRgtC+0LLQviDRgNCw0LfQvtCx0YDQsNC90L3Ri9GFINC+0LHRgNCw0LHQvtGC
0L7QuiDQv9C+0YPQvNC+0LvRh9Cw0L3QuNGOINC40YHQv9C+0LvRjNC30YPQtdGC
0YHRjyDQutCw0LogKipzcmMqKiAo0LTQu9GPINC+0LHQtdGB0L/QtdGH0LXQvdC4
0Y8g0YHQvtCy0LzQtdGB0YLQuNC80L7RgdGC0Lgg0YHQviDRgdGC0LDRgNGL0LzQ
uCDQstC10YDRgdC40Y/QvNC4INC+0LHRgNCw0LHQvtGC0LrQuCksINC+0LTQvdCw
0LrQviDQtdCz0L4g0LzQvtC20L3QviDQv9C10YDQtdC90LDQt9C90LDRh9C40YLR
jCDQsiBpbmkg0YTQsNC50LvQtQ0KYGBgDQpbREVGQVVMVF0NCnNvdXJjZSA9IHBs
dWdpbl9zb3VyY2UNCmBgYA0KDQo1LiDQndCw0LrQvtC90LXRhiDRgdC+0LTQtdGA
0LbQuNC80L7QtSDQutCw0YLQsNC70L7Qs9CwINC90LXQvtCx0YXQvtC00LjQvNC+
INGB0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LIg0LrQsNGC0LDQu9C+0LMgLmdpdC9o
b29rcy8g0LLQsNGI0LXQs9C+INC/0YDQvtC10LrRgtCwLiANCj4gKtCf0YDQuNC8
0LXRh9Cw0L3QuNC1Oiog0LrQsNGC0LDQu9C+0LMgLmdpdCDQv9C+INGD0LzQvtC7
0YfQsNC90LjRjiDRgdC60YDRi9GCLiAgDQoNCmBgYA0KLmdpdFwNCiAgICBob29r
c1wNCiAgICAgICAgcHJlLWNvbW1pdA0KICAgICAgICBWOFJlYWRlci5lcGYNCiAg
ICAgICAgaWJTZXJ2aWNlIA0KICAgICAgICBweXY4dW5wYWNrLnB5DQpgYGANCg0K
IyPQl9Cw0L/Rg9GB0LogDQoNCtCf0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4
INC00L7RgdGC0LDRgtC+0YfQvdC+INC00LvRjyDQv9GA0L7QstC10YDQutC4INGB
0LTQtdC70LDRgtGMIGNvbW1pdCDQtNC70Y8g0LvRjtCx0L7Qs9C+INGE0LDQudC7
0LAgZXBmINC4INCyINCy0LDRiNC10Lwg0YDQtdC/0L7Qt9C40YLQsNGA0LjQuCDQ
sNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQtNC+0LvQttC90LAg0YHQvtC30LTQ
sNGC0YzRgdGPINC/0LDQv9C60LAgKnNyYyog0L/QvtCy0YLQvtGA0Y/RjtGJ0LDR
jyDQv9C+0LvQvdC+0YHRgtGM0Y4g0YHRgtGA0YPQutGC0YPRgNGDINC/0YDQvtC1
0LrRgtCwLCDRgtC1INGE0LDQudC70Ysg0LrQvtGC0L7RgNGL0LUg0LHRi9C70Lgg
0LjQt9C80LXQvdC10L3QvdGLINC40LvQuCDQttC1INC00L7QsdCw0LLQu9C10L3Q
vdGLINGA0LDRgdC/0LDQutGD0Y7RgtGB0Y8g0LIg0L/QsNC/0LrQuCDRgSDQsNC9
0LDQu9C+0LPQuNGH0L3Ri9C8INC90LDQuNC80LXQvdC+0LLQsNC90LjQtdC8LiAN
Cg0KIyPQntCz0YDQsNC90LjRh9C10L3QuNGPDQoNCtCe0LTQuNC90LrQvtCy0YvQ
vNC4INC40LzQtdC90LDQvNC4INGE0LDQudC70Ysg0YEg0YDQsNC30L3Ri9C8INGA
0LDRgdGI0LjRgNC10L3QuNC10LwgZXBmINC4IGVyZiDQvdCw0LfRi9Cy0LDRgtGM
INC90LUg0L3QsNC00L4sINGCLtC6LiDQutCw0YLQsNC70L7Qs9C4INGBINC40YHR
hdC+0LTQvdC40LrQsNC80Lgg0YHQvtC30LTQsNGO0YLRgdGPINGC0L7Qu9GM0LrQ
viDQv9C+INC90LDQuNC80LXQvdC+0LLQsNC90LjRjiDQsdC10Lcg0YPRh9C10YLQ
sCDRgNCw0YHRiNC40YDQtdC90LjRjyDQuCDQstC+0LfQvNC+0LbQtdC9INC60L7Q
vdGE0LvQuNC60YIuIA0K0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L4g0L3QtdC+
0LHRhdC+0LTQuNC80LAg0L3QsNGB0YLRgNC+0LnQutCwIGdpdCDQtNC70Y8g0LLQ
vtC30LzQvtC20L3QvtGB0YLQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQ
utC40YDQuNC70LjRh9C10YHQutC40YUg0L3QsNC40LzQtdC90L7QstCw0L3QuNC5
INCy0L3QtdGI0L3QuNGFINC+0LHRgNCw0LHQvtGC0L7QuiBgYGBnaXQgY29uZmln
IC0tbG9jYWwgY29yZS5xdW90ZXBhdGggZmFsc2VgYGANCiMj0KfRgtC+INCy0L3R
g9GC0YDQuA0KDQrQutCw0Log0Y3RgtC+INGA0LDQsdC+0YLQsNC10YI6IHB5djh1
bnBhY2sucHkg0L/QvtCy0YLQvtGA0Y/QtdGCINC/0L7Qu9C90L7RgdGC0YzRjiDQ
uNC10YDQsNGA0YXQuNGOINC/0LDQv9C+0Log0L7RgtC90L7RgdC40YLQtdC70YzQ
vdC+INC60L7RgNC90Y8g0YDQtdC/0L7Qt9C40YLQsNGA0LjRjyDRgtC+0LvRjNC6
0L4g0LIg0L/QsNC/0LrQtSBTUkMgKNC+0YIg0YHQu9C+0LLQsCBzb3VyY2UpINC4
0LvQuCDRgtGDINC60L7RgtC+0YDRg9GOINCy0Ysg0L7Qv9GA0LXQtNC10LvQuNC7
0Lgg0LIg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC+0L3QvdC+0Lwg0YTQsNC50LvR
gyAsINC60LDQttC00LDRjyDQtNC70Y8g0LrQsNC20LTQvtC5INC40LfQvNC10L3Q
tdC90L3QvtC5INCy0L3QtdGI0L3QtdC5INC+0LHRgNCw0LHQvtGC0LrQuCDRgdC+
0LfQtNCw0LXRgtGB0Y8g0YHQstC+0Y8g0L/QsNC/0LrQsCDQuCDRgtGD0LTQsCDR
gSDQv9C+0LzQvtGJ0YzRjiB2OHVucGFjayDRgNCw0YHQv9Cw0LrQvtCy0YvQstCw
0LXRgtGB0Y8g0L/QvtC80LXRidCw0LXQvNCw0Y8g0L7QsdGA0LDQsdC+0YLQutCw
LCDRgSDQv9C+0LzQvtGJ0YzRjiB2OHJlYWRlciDQvtC/0YDQtdC00LXQu9GP0Y7R
gtGB0LAg0L3QsNC40LzQtdC90L7QstCw0L3QuNGPINC80LDQutC10YLQvtCyLCDR
hNC+0YDQvCwg0LzQvtC00YPQu9GPINC+0LHRgNCw0LHQvtGC0LrQuCDQuCDQv9C1
0YDQtdC40LzQtdC90L7QstGL0LLQsNGO0YLRgdGPLCDQv9C10YDQtdC40LzQtdC9
0L7QstCw0L3QuNGPINGB0L7RhdGA0LDQvdGP0Y7RgtGB0LAg0LIg0YHQu9GD0LbQ
tdCx0L3QvtC8INGE0LDQudC70LUgcmVuYW1lcy50eHQgLCDRgtC1INGE0LDQudC7
0YssINC60L7RgtC+0YDRi9C1INC90LXQstC+0LfQvNC+0L3QttC90L4g0L7Qv9GA
0LXQtNC10LvQuNGC0Ywg0LjQu9C4INC20LUg0L3QvtGB0Y/RgiDRh9C40YHRgtC+
INGB0LvRg9C20LXQsdC90YvQuSDRhdCw0YDQsNC60YLQtdGALCDQv9C10YDQtdC9
0L7RgdGP0YLRgdCwINCyINC60LDRgtCw0LvQvtCzICp1bmQqDQo=}
}

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<SchemaFile xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema">
<dataSource>
<name>ИсточникДанных1</name>
<dataSourceType>Local</dataSourceType>
</dataSource>
<dataSet xsi:type="DataSetQuery">
<name>НаборДанных1</name>
<field xsi:type="DataSetFieldField">
<dataPath>Поле1</dataPath>
<field>Поле1</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Поле2</dataPath>
<field>Поле2</field>
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>Выбрать 1 Как Поле1, 2 Как Поле2</query>
</dataSet>
<settingsVariant>
<name xmlns="http://v8.1c.ru/8.1/data-composition-system/settings">Основной</name>
<presentation xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="xs:string">Основной</presentation>
</settingsVariant>
</dataCompositionSchema>
</SchemaFile><?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><?xml version="1.0" encoding="UTF-8"?>
<SchemaFile xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"/>
</SchemaFile>

View File

@ -1 +0,0 @@
ТабличныйДокумент

View File

@ -1 +0,0 @@
ТекстовыйДокумент

View File

@ -0,0 +1,27 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией работы команды version
//
///////////////////////////////////////////////////////////////////////////////
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
КонецПроцедуры // НастроитьКоманду
// Выполняет логику команды
//
// Параметры:
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// Приложение - Модуль - Модуль менеджера приложения
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
Лог = Приложение.ПолучитьЛог();
Сообщить(Приложение.ВерсияПродукта());
Лог.Отладка("Вывод версии приложения");
Возврат Приложение.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду

View File

@ -0,0 +1,31 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией работы команды
//
///////////////////////////////////////////////////////////////////////////////
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
// Добавление параметров команды
// Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьПараметрФлагКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьПараметрКоллекцияКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьИменованныйПараметрКоллекцияКоманды(Команда, "ИмяПараметра", "Описание параметра");
КонецПроцедуры // НастроитьКоманду
// Выполняет логику команды
//
// Параметры:
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// Приложение - Модуль - Модуль менеджера приложения
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
ВызватьИсключение "Не реализовано";
// При успешном выполнении возвращает код успеха
Возврат Приложение.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду

View File

@ -0,0 +1,41 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией работы команды help
//
///////////////////////////////////////////////////////////////////////////////
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Команда");
КонецПроцедуры // НастроитьКоманду
// Выполняет логику команды
//
// Параметры:
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// Приложение - Модуль - Модуль менеджера приложения
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
Лог = Приложение.ПолучитьЛог();
КомандаДляСправки = ПараметрыКоманды["Команда"];
Если КомандаДляСправки = Неопределено Тогда
Приложение.ВывестиСправкуПоКомандам();
Лог.Отладка("Вывод справки по командам");
Иначе
Приложение.ВывестиСправкуПоКоманде(КомандаДляСправки);
Лог.Отладка(СтрШаблон("Вывод справки по команде %1", КомандаДляСправки));
КонецЕсли;
Возврат Приложение.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду

View File

@ -0,0 +1,31 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией работы команды
//
///////////////////////////////////////////////////////////////////////////////
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
// Добавление параметров команды
// Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьПараметрФлагКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьПараметрКоллекцияКоманды(Команда, "ИмяПараметра", "Описание параметра");
// Парсер.ДобавитьИменованныйПараметрКоллекцияКоманды(Команда, "ИмяПараметра", "Описание параметра");
КонецПроцедуры // НастроитьКоманду
// Выполняет логику команды
//
// Параметры:
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// Приложение - Модуль - Модуль менеджера приложения
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
ВызватьИсключение "Не реализовано";
// При успешном выполнении возвращает код успеха
Возврат Приложение.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду

View File

@ -0,0 +1,275 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с набором методов работы с командами приложения
//
// В большинстве проектов изменять данный модуль не требуется
//
///////////////////////////////////////////////////////////////////////////////
#Использовать logos
#Использовать cmdline
///////////////////////////////////////////////////////////////////////////////
Перем Лог;
Перем ПарсерКоманд;
Перем ИсполнителиКоманд;
Перем ОбъектНастроек;
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЙ ОТКРЫТЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Инициализирует и настраивает приложение
//
// Параметры:
// Настройка - Модуль - Модуль, в котором определены настройки приложения
//
// Возвращаемое значение:
// Модуль - Модуль менеджера приложения
//
Функция Инициализировать(Знач МенеджерНастроек) Экспорт
// Служебные переменные
ПарсерКоманд = Новый ПарсерАргументовКоманднойСтроки();
ИсполнителиКоманд = Новый Соответствие;
ОбъектНастроек = МенеджерНастроек;
// Логирование
Лог = Логирование.ПолучитьЛог(ОбъектНастроек.ИмяЛогаСистемы());
Лог.УстановитьРаскладку(ОбъектНастроек);
// Инициализация команд
ОбъектНастроек.НастроитьКомандыПриложения(ЭтотОбъект);
Возврат ЭтотОбъект;
КонецФункции
// Добавляет команду в приложение
//
// Параметры:
// ИмяКоманды - Строка - Имя команды
// КлассРеализации - Строка - Имя файла класса, в котором реализована команда
// Описаниекоманды - Строка - краткое описание назначения команды
//
Процедура ДобавитьКоманду(Знач ИмяКоманды, Знач КлассРеализации, Знач ОписаниеКоманды) Экспорт
Попытка
РеализацияКоманды = Новый(КлассРеализации);
Команда = ПарсерКоманд.ОписаниеКоманды(ИмяКоманды, ОписаниеКоманды);
ПарсерКоманд.ДобавитьКоманду(Команда);
РеализацияКоманды.НастроитьКоманду(Команда, ПарсерКоманд);
ИсполнителиКоманд.Вставить(ИмяКоманды, РеализацияКоманды);
Исключение
ЗавершитьРаботуПриложенияСОшибкой(СтрШаблон("Не удалось инициализировать команду '%1' для класса '%2' по причине:
|%3", ИмяКоманды, КлассРеализации, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
КонецПроцедуры
// Аварийно завершает работу приложения с ошибкой
//
// Параметры:
// Сообщение - Строка - Сообщение, которое будет выведено пользователю перед завершением
// КодВозврата (не обязательный) - Число - Код возврата с которым будет закрыто приложение
// Значение по умолчанию: "ОшибкаВремениВыполнения" -- 1
//
Процедура ЗавершитьРаботуПриложенияСОшибкой(Знач Сообщение, Знач КодВозврата = Неопределено) Экспорт
Если КодВозврата = Неопределено Тогда
КодВозврата = РезультатыКоманд().ОшибкаВремениВыполнения;
КонецЕсли;
Лог.КритичнаяОшибка(Сообщение);
ЗавершитьРаботу(КодВозврата);
КонецПроцедуры
// Завершает работу приложения
//
// Параметры:
// КодВозврата (не обязательный) - Число - Код возврата с которым будет закрыто приложение
// Значение по умолчанию: "Успех" -- 0
//
Процедура ЗавершитьРаботуПриложения(Знач КодВозврата = Неопределено) Экспорт
Если КодВозврата = Неопределено Тогда
КодВозврата = РезультатыКоманд().Успех;
КонецЕсли;
ЗавершитьРаботу(КодВозврата);
КонецПроцедуры
// Осуществляет запуск приложения на выполнение
//
// Возвращаемое значение:
// Число - Код возврата выполнения команды приложения
//
Функция ЗапуститьВыполнение() Экспорт
Попытка
ПараметрыЗапуска = ПарсерКоманд.Разобрать(АргументыКоманднойСтроки);
Исключение
Лог.Отладка(ОписаниеОшибки());
Лог.Ошибка("Не удалось определить требуемое действие.");
ВывестиСправкуПоКомандам();
Возврат РезультатыКоманд().НеверныеПараметры;
Конецпопытки;
Команда = "";
ЗначенияПараметров = Неопределено;
Если ПараметрыЗапуска = Неопределено ИЛИ ПараметрыЗапуска.Количество() = 0 Тогда
ВывестиВерсию();
ВывестиСправкуПоКомандам();
Возврат РезультатыКоманд().НеверныеПараметры;
ИначеЕсли ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
// это команда
Команда = ПараметрыЗапуска.Команда;
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
Лог.Отладка("Выполняю команду продукта %1", Команда);
ИначеЕсли ЗначениеЗаполнено(ОбъектНастроек.ИмяКомандыПоУмолчанию()) Тогда
// это команда по-умолчанию
Команда = ОбъектНастроек.ИмяКомандыПоУмолчанию();
ЗначенияПараметров = ПараметрыЗапуска;
Лог.Отладка("Выполняю команду продукта по умолчанию %1", Команда);
Иначе
Возврат НекорректныеПараметры();
КонецЕсли;
Если Команда <> ОбъектНастроек.ИмяКомандыВерсия() Тогда
ВывестиВерсию();
КонецЕсли;
Возврат ВыполнитьКоманду(Команда, ЗначенияПараметров);
КонецФункции // ЗапуститьВыполнение()
// Осуществляет запуск на выполнение указанной команды приложения
//
// Параметры:
// ИмяКоманды - Строка - Имя команды, которую необходимо запустить
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
//
Функция ВыполнитьКоманду(Знач ИмяКоманды, Знач ПараметрыКоманды) Экспорт
Команда = ПолучитьКоманду(ИмяКоманды);
КодВозврата = Команда.ВыполнитьКоманду(ПараметрыКоманды, ЭтотОбъект);
Если КодВозврата = Неопределено Тогда
КодВозврата = РезультатыКоманд().Успех;
КонецЕсли;
Возврат КодВозврата;
КонецФункции // ВыполнитьКоманду
///////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Возвращает лог приложения
Функция ПолучитьЛог() Экспорт
Возврат Лог;
КонецФункции // ПолучитьЛог
// Возвращает версию продукта
Функция ВерсияПродукта() Экспорт
Возврат ОбъектНастроек.ВерсияПродукта();
КонецФункции // ВерсияПродукта
// Возвращает имя продукта
Функция ИмяПродукта() Экспорт
Возврат ОбъектНастроек.ИмяПродукта();
КонецФункции // ИмяПродукта
// Выводит справку по всем командам приложения
Процедура ВывестиСправкуПоКомандам() Экспорт
ПарсерКоманд.ВывестиСправкуПоКомандам();
КонецПроцедуры // ВывестиСправкуПоКомандам
// Выводит справку по указанной команде приложения.
Процедура ВывестиСправкуПоКоманде(Знач ИмяКоманды) Экспорт
ПарсерКоманд.ВывестиСправкуПоКоманде(ИмяКоманды);
КонецПроцедуры // ВывестиСправкуПоКоманде
///////////////////////////////////////////////////////////////////////////////
// ПЕРЕЧИСЛЕНИЯ
///////////////////////////////////////////////////////////////////////////////
// Возвращает стандартные коды возврата приложения
Функция РезультатыКоманд() Экспорт
РезультатыКоманд = Новый Структура;
РезультатыКоманд.Вставить("Успех", 0);
РезультатыКоманд.Вставить("НеверныеПараметры", 5);
РезультатыКоманд.Вставить("ОшибкаВремениВыполнения", 1);
Возврат РезультатыКоманд;
КонецФункции // РезультатыКоманд
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
///////////////////////////////////////////////////////////////////////////////
// Получает объект класса с реализацией указанной команды
Функция ПолучитьКоманду(Знач ИмяКоманды)
КлассРеализации = ИсполнителиКоманд[ИмяКоманды];
Если КлассРеализации = Неопределено Тогда
ВызватьИсключение СтрШаблон("Неверная операция. Команда '%1' не предусмотрена.", ИмяКоманды);
КонецЕсли;
Возврат КлассРеализации;
КонецФункции // ПолучитьКоманду
// Осуществляет вывод полной версии продукта
Процедура ВывестиВерсию()
Сообщить(СтрШаблон("%1 v%2", ИмяПродукта(), ВерсияПродукта()));
КонецПроцедуры // ВывестиВерсию
// Вывод ошибки и справки по параметрам
Функция НекорректныеПараметры()
Лог.Ошибка("Некорректные аргументы командной строки");
ВывестиСправкуПоКомандам();
Возврат РезультатыКоманд().НеверныеПараметры;
КонецФункции // НекорректныеПараметры()

View File

@ -0,0 +1,116 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с набором служебных параметров приложения
//
// При создании нового приложения обязательно внести изменение
// в ф-ии ИмяПродукта, указав имя вашего приложения.
//
// При выпуске новой версии обязательно изменить ее значение
// в ф-ии ВерсияПродукта
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// СВОЙСТВА ПРОДУКТА
// ВерсияПродукта
// Возвращает текущую версию продукта
//
// Возвращаемое значение:
// Строка - Значение текущей версии продукта
//
Функция ВерсияПродукта() Экспорт
Возврат "1.0";
КонецФункции // ВерсияПродукта
// ИмяПродукта
// Возвращает имя продукта
//
// Возвращаемое значение:
// Строка - Значение имени продукта
//
Функция ИмяПродукта() Экспорт
Возврат "precommit4onec";
КонецФункции // ИмяПродукта
///////////////////////////////////////////////////////////////////////////////
// ЛОГИРОВАНИЕ
// Форматирование логов
// См. описание метода "УстановитьРаскладку" библиотеки logos
//
Функция Форматировать(Знач Уровень, Знач Сообщение) Экспорт
Возврат СтрШаблон("%1: %2 - %3", ТекущаяДата(), УровниЛога.НаименованиеУровня(Уровень), Сообщение);
КонецФункции
// ИмяЛогаСистемы
// Возвращает идентификатор лога приложения
//
// Возвращаемое значение:
// Строка - Значение идентификатора лога приложения
//
Функция ИмяЛогаСистемы() Экспорт
Возврат "oscript.app." + ИмяПродукта();
КонецФункции // ИмяЛогаСистемы
///////////////////////////////////////////////////////////////////////////////
// НАСТРОЙКА КОМАНД
// Возвращает имя команды "version" (ключ командной строки)
//
// Возвращаемое значение:
// Строка - имя команды
//
Функция ИмяКомандыВерсия() Экспорт
Возврат "version";
КонецФункции // ИмяКомандыВерсия
// Возвращает имя команды "help" (ключ командной строки)
//
// Возвращаемое значение:
// Строка - имя команды
//
Функция ИмяКомандыПомощь() Экспорт
Возврат "help";
КонецФункции // ИмяКомандыПомощь()
// ИмяКомандыПоУмолчанию
// Одна из команд может вызываться неявно, без указания команды.
// Иными словами, здесь указывается какой обработчик надо вызывать, если приложение запущено без какой-либо команды
// myapp /home/user/somefile.txt будет аналогично myapp default-action /home/user/somefile.txt
//
// Возвращаемое значение:
// Строка - имя команды по умолчанию
Функция ИмяКомандыПоУмолчанию() Экспорт
// Возврат "default-action";
Возврат ИмяКомандыПомощь();
КонецФункции // ИмяКомандыПоУмолчанию
// НастроитьКомандыПриложения
// Регистрирует классы обрабатывающие команды прилоложения
//
// Параметры:
// Приложение - Модуль - Модуль менеджера приложения
Процедура НастроитьКомандыПриложения(Знач Приложение) Экспорт
Приложение.ДобавитьКоманду(ИмяКомандыПомощь(), "КомандаСправкаПоПараметрам", "Выводит справку по командам");
Приложение.ДобавитьКоманду(ИмяКомандыВерсия(), "КомандаVersion", "Выводит версию приложения");
Приложение.ДобавитьКоманду("precommit", "КомандаПрекоммит", "Выполняет сценарии precommit");
КонецПроцедуры // ПриРегистрацииКомандПриложения

18
tasks/test-feature.os Normal file
View File

@ -0,0 +1,18 @@
#Использовать ".."
#Использовать 1bdd
КаталогФич = ОбъединитьПути(".", "features");
ПутьФичи = ОбъединитьПути(".", "features", АргументыКоманднойСтроки[0]);
Файл_КаталогФич = Новый Файл(КаталогФич);
ФайлФичи = Новый Файл(ПутьФичи);
ИсполнительБДД = Новый ИсполнительБДД;
РезультатВыполнения = ИсполнительБДД.ВыполнитьФичу(ФайлФичи, Файл_КаталогФич);
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатВыполнения);
Сообщить(ИтоговыйРезультатВыполнения);
Если ИтоговыйРезультатВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался Тогда
ВызватьИсключение 1;
КонецЕсли;

82
tasks/test.os Normal file
View File

@ -0,0 +1,82 @@
#Использовать "../src"
#Использовать 1bdd
#Использовать 1testrunner
Функция ПрогнатьТесты()
Тестер = Новый Тестер;
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
КаталогТестов = Новый Файл(ПутьКТестам);
Если Не КаталогТестов.Существует() Тогда
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
Возврат Истина;
КонецЕсли;
РезультатТестирования = Тестер.ТестироватьКаталог(
КаталогТестов,
Новый Файл(ПутьКОтчетуJUnit)
);
Успешно = РезультатТестирования = 0;
Возврат Успешно;
КонецФункции // ПрогнатьТесты()
Функция ПрогнатьФичи()
ПутьОтчетаJUnit = "./bdd-log.xml";
КаталогФич = ОбъединитьПути(".", "features");
Файл_КаталогФич = Новый Файл(КаталогФич);
Если Не Файл_КаталогФич.Существует() Тогда
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
Возврат Истина;
КонецЕсли;
ИсполнительБДД = Новый ИсполнительБДД;
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
КонецЕсли;
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
Сообщить(СтрШаблон("Результат прогона фич <%1>
|", ИтоговыйРезультатВыполнения));
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
КонецФункции // ПрогнатьФичи()
Попытка
ТестыПрошли = ПрогнатьТесты();
Исключение
ТестыПрошли = Ложь;
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
Попытка
ФичиПрошли = ПрогнатьФичи();
Исключение
ФичиПрошли = Ложь;
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
ВызватьИсключение "Тестирование завершилось неудачно!";
Иначе
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|", ТестыПрошли));
КонецЕсли;

Binary file not shown.

View File

@ -1,13 +0,0 @@
@echo off
setlocal
set mainDir=C:\Projects\xDD\precommit1c
rem set mainDir=%CD%
set path1Cbin="C:\Program Files (x86)\1cv82\8.2.19.68\bin\1cv8.exe"
set testName=Fixture
set testDir=%mainDir%\tests
rd /S /Q %testDir%\testSrc\%testName%
%path1Cbin% /F"%mainDir%\ibService" /DisableStartupMessages /execute "%mainDir%\V8Reader.epf" /C"decompile;pathtocf;%testDir%\%testName%.epf;pathout;%testDir%\testSrc\%testName%;��▲琥����`矣��;"
endlocal

View File

@ -1,469 +0,0 @@
#Использовать tempfiles
#Использовать asserts
#Использовать logos
Перем юТест;
Перем Лог;
//{ подготовка тестов и данных для тестов
Процедура Инициализация()
Лог = Логирование.ПолучитьЛог(ИмяЛога());
КонецПроцедуры
Функция ПолучитьСписокТестов(Знач Контекст) Экспорт
юТест = Контекст;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("Тест_ДолженРазложитьФайлОбработкиИзЗаданнойПапки");
ВсеТесты.Добавить("Тест_ДолженРазложитьКаталогСВложеннымиКаталогами");
ВсеТесты.Добавить("Тест_ДолженРазобратьФайлыПоЖурналуИзмененийГит");
ВсеТесты.Добавить("Тест_ДолженСоздатьРепозитарийГит");
ВсеТесты.Добавить("Тест_ДолженПроверитьНастройкиРепозитарияГит");
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогами");
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогамиИУдалитьИзКеша");
ВсеТесты.Добавить("Тест_ДолженСобратьФайлОбработкиИзЗаданнойПапки");
ВсеТесты.Добавить("Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки");
Возврат ВсеТесты;
КонецФункции
Процедура ПослеЗапускаТеста() Экспорт
Попытка
ВременныеФайлы.Удалить();
Исключение
КонецПопытки;
КонецПроцедуры
Функция ЗагрузитьИсполнителя()
ИмяКаталога = ТекущийСценарий().Каталог;
Исполнитель = ЗагрузитьСценарий(ОбъединитьПути(ИмяКаталога,"../v8files-extractor.os"));
Лог = Логирование.ПолучитьЛог(ИмяЛога());
// Лог.УстановитьУровень(УровниЛога.Отладка);
Возврат Исполнитель;
КонецФункции
Функция ИмяЛога()
Возврат "oscript.app.v8files-extractor";
КонецФункции
Функция ПолучитьФайлТестовойОбработки()
ИмяКаталога = ТекущийСценарий().Каталог;
ИмяФайла = "Fixture";
ИмяФайлаСРасширением = ИмяФайла+".epf";
ПутьФайла = ОбъединитьПути(ИмяКаталога, ИмяФайлаСРасширением);
ФайлОбработки = Новый Файл(ПутьФайла);
Ожидаем.Что(ФайлОбработки.Существует(), "Исходный файл должен существовать").ЭтоИстина();
Возврат ФайлОбработки;
КонецФункции
Функция ПолучитьКаталогТестовойОбработки()
ИмяКаталогаИсходников = "Fixture";
КаталогИсходниковТеста = ОбъединитьПути(КаталогПроекта(), "src", "tests");
ПутьФайла = ОбъединитьПути(КаталогИсходниковТеста, ИмяКаталогаИсходников);
КаталогИсходников = Новый Файл(ПутьФайла);
Ожидаем.Что(КаталогИсходников.Существует(), "Каталог с исходными кодами обработки должен существовать").ЭтоИстина();
Возврат КаталогИсходников;
КонецФункции
//}
//{ тесты
Процедура Тест_ДолженРазложитьФайлОбработкиИзЗаданнойПапки() Экспорт
ФайлОбработки = ПолучитьФайлТестовойОбработки();
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.РазобратьФайл(Новый Файл(ФайлОбработки.ПолноеИмя), КаталогВыгрузки, ФайлОбработки.Путь);
КаталогИсходников = Новый Файл(ОбъединитьПути(КаталогВыгрузки, ФайлОбработки.ИмяБезРасширения));
Ожидаем.Что(КаталогИсходников.Существует()).ЭтоИстина();
Ожидаем.Что(КаталогИсходников.ЭтоКаталог(), "Должны были найти каталог с именем обработки").ЭтоИстина();
Ожидаем.Что(КаталогСодержитИсходникиОбработки(КаталогИсходников.ПолноеИмя), "ожидаем, что КаталогСодержитИсходникиОбработки(КаталогИсходников.ПолноеИмя) это Истина").ЭтоИстина();
КонецПроцедуры
Процедура Тест_ДолженРазложитьКаталогСВложеннымиКаталогами() Экспорт
ФайлОбработки = ПолучитьФайлТестовойОбработки();
ИмяВложенногоКаталога = "1";
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
СоздатьКаталог(ОбъединитьПути(КаталогИсходников, ИмяВложенногоКаталога));
ВложенныйКаталогИсходников = ОбъединитьПути(КаталогИсходников, ИмяВложенногоКаталога);
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогИсходников, ФайлОбработки.Имя);
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.РазобратьКаталог(Новый Файл(КаталогИсходников), КаталогВыгрузки, КаталогИсходников);
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
ФайлВложенныйКаталогВыгрузки = Новый Файл(ВложенныйКаталогВыгрузки);
Ожидаем.Что(ФайлВложенныйКаталогВыгрузки.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
Ожидаем.Что(ФайлВложенныйКаталогВыгрузки.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.ИмяБезРасширения);
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
КонецПроцедуры
Процедура Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогами() Экспорт
КаталогПроекта = КаталогПроекта();
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
СоздатьРепозитарийГит(КаталогВыгрузки, КаталогПроекта);
ФайлОбработки = ПолучитьФайлТестовойОбработки();
ИмяВложенногоКаталога = "1";
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
СоздатьКаталог(ВложенныйКаталогВыгрузки);
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.Имя);
Лог.Отладка("ПутьВложеннойОбработки "+ПутьВложеннойОбработки);
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
КомандаГит = "git add -A .";
ВыполнитьКомандуГит(КомандаГит);
КомандаГит = "git status";
ВыполнитьКомандуГит(КомандаГит);
КомандаГит = "git commit -m ""init commit""";
ВыполнитьКомандуГит(КомандаГит);
КаталогИсходниковВложенногоКаталога = ОбъединитьПути(КаталогВыгрузки, "src", ИмяВложенногоКаталога);
ФайлКаталогИсходниковВложенногоКаталога = Новый Файл(КаталогИсходниковВложенногоКаталога);
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(КаталогИсходниковВложенногоКаталога, ФайлОбработки.ИмяБезРасширения);
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
КонецПроцедуры
Процедура Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогамиИУдалитьИзКеша() Экспорт
КаталогПроекта = КаталогПроекта();
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
СоздатьРепозитарийГит(КаталогВыгрузки, КаталогПроекта);
КаталогХуков = ОбъединитьПути(КаталогВыгрузки, ".git", "hooks");
ПутьКФайлуПрекоммит = ОбъединитьПути(КаталогХуков, "pre-commit");
ТекстПрекоммит = Новый ТекстовыйДокумент;
ТекстПрекоммит.Прочитать(ПутьКФайлуПрекоммит);
КоличествоСтрок = ТекстПрекоммит.КоличествоСтрок();
Для сч = 1 По КоличествоСтрок Цикл
Строка = ТекстПрекоммит.ПолучитьСтроку(сч);
ЭтоСтрокаЗапускаРаспаковщика = СтрНайти(Строка, "v8files-extractor.os --git-precommit") > 0;
Если ЭтоСтрокаЗапускаРаспаковщика Тогда
Строка = Строка + " --remove-orig-bin-files";
ТекстПрекоммит.ЗаменитьСтроку(сч, Строка);
Прервать;
КонецЕсли;
КонецЦикла;
ТекстПрекоммит.Записать(ПутьКФайлуПрекоммит, КодировкаТекста.UTF8NoBOM);
ФайлОбработки = ПолучитьФайлТестовойОбработки();
ИмяВложенногоКаталога = "1";
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
СоздатьКаталог(ВложенныйКаталогВыгрузки);
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.Имя);
Лог.Отладка("ПутьВложеннойОбработки "+ПутьВложеннойОбработки);
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
КомандаГит = "git add -A .";
ВыполнитьКомандуГит(КомандаГит);
КомандаГит = "git status";
ВыполнитьКомандуГит(КомандаГит);
КомандаГит = "git commit -m ""init commit""";
ВыводКоманды = ВыполнитьКомандуГит(КомандаГит);
// git использует "/" как разделитель каталогов, а не стандартный разделитель пути ОС
СтрокаПоиска = "create mode 100644 " + ИмяВложенногоКаталога + "/" + ФайлОбработки.Имя;
ФайлУдаленИзИндексаГит = СтрНайти(ВыводКоманды, СтрокаПоиска) = 0;
Ожидаем.Что(ФайлУдаленИзИндексаГит, "ожидаем, что файла обработки удален из индекса git").ЭтоИстина();
КаталогИсходниковВложенногоКаталога = ОбъединитьПути(КаталогВыгрузки, "src", ИмяВложенногоКаталога);
ФайлКаталогИсходниковВложенногоКаталога = Новый Файл(КаталогИсходниковВложенногоКаталога);
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(КаталогИсходниковВложенногоКаталога, ФайлОбработки.ИмяБезРасширения);
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
КонецПроцедуры
Процедура Тест_ДолженРазобратьФайлыПоЖурналуИзмененийГит() Экспорт
ФайлОбработки = ПолучитьФайлТестовойОбработки();
ЖурналИзмененийГит = "A " + ФайлОбработки.Имя+"
| M " + "pref-" + ФайлОбработки.Имя;
Исполнитель = ЗагрузитьИсполнителя();
МассивИмен = Исполнитель.ПолучитьИменаИзЖурналаИзмененийГит(ЖурналИзмененийГит);
Ожидаем.Что(МассивИмен, "Должны были найти измененный файл").Содержит(ФайлОбработки.Имя);
Ожидаем.Что(МассивИмен, "Должны были найти измененный файл").Содержит("pref-" + ФайлОбработки.Имя);
КонецПроцедуры
Процедура Тест_ДолженСоздатьРепозитарийГит() Экспорт
КаталогПроекта = КаталогПроекта();
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
СоздатьРепозитарийГит(КаталогРепо, КаталогПроекта);
КонецПроцедуры
Процедура Тест_ДолженПроверитьНастройкиРепозитарияГит() Экспорт
Перем КодВозврата;
КаталогПроекта = КаталогПроекта();
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
СоздатьРепозитарийГит(КаталогРепо, КаталогПроекта);
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.ПроверитьНастройкиРепозитарияГит();
КонецПроцедуры
Процедура Тест_ДолженСобратьФайлОбработкиИзЗаданнойПапки() Экспорт
КаталогОбработки = ПолучитьКаталогТестовойОбработки();
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.Компилировать(КаталогОбработки.ПолноеИмя, КаталогВыгрузки);
ИмяФайлаОбработки = КаталогОбработки.Имя;
НайденныеФайлы = НайтиФайлы(КаталогВыгрузки, ИмяФайлаОбработки + ".epf");
Ожидаем.Что(НайденныеФайлы, "ожидаем, что в КаталогВыгрузки найден файл обработки").ИмеетДлину(1);
КонецПроцедуры
//}
//{ служебные методы
Процедура СоздатьРепозитарийГит(Знач КаталогРепо, КаталогПроекта)
Перем КодВозврата;
УстановитьТекущийКаталог(КаталогРепо);
Лог.Отладка("КаталогРепо " + КаталогРепо);
ВыполнитьКомандуГит("git init");
ВыполнитьКомандуГит("git config --local core.quotepath false");
КаталогHooks = Новый Файл(ОбъединитьПути(КаталогРепо, ".git", "hooks"));
Ожидаем.Что(КаталогHooks.Существует(), "Должен существовать исходный каталог сервисной ИБ, а это не так").ЭтоИстина();
Лог.Отладка("КаталогHooks.ПолноеИмя " + КаталогHooks.ПолноеИмя);
Каталог_v8Reader = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8Reader"));
Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
ПересоздатьКаталог(Каталог_v8Reader_конечный);
Файл_v8Reader_конечный = Новый Файл(ОбъединитьПути(Каталог_v8Reader_конечный.ПолноеИмя, "V8Reader.epf"));
КопироватьФайл(ОбъединитьПути(Каталог_v8Reader.ПолноеИмя, "V8Reader.epf"), Файл_v8Reader_конечный.ПолноеИмя);
Ожидаем.Что(Файл_v8Reader_конечный.Существует(), "Должен существовать Файл_v8Reader_конечный, а это не так").ЭтоИстина();
Файл_pre_commit_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "pre-commit"));
КопироватьФайл(ОбъединитьПути(КаталогПроекта, "pre-commit"), Файл_pre_commit_конечный.ПолноеИмя);
Ожидаем.Что(Файл_pre_commit_конечный.Существует(), "Должен существовать Файл_pre_commit_конечный, а это не так").ЭтоИстина();
Лог.Отладка("Файл_pre_commit_конечный.ПолноеИмя " + Файл_pre_commit_конечный);
Файл_сценария_исходный = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8files-extractor.os"));
Файл_сценария_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, Файл_сценария_исходный.Имя));
КопироватьФайл(Файл_сценария_исходный.ПолноеИмя, Файл_сценария_конечный.ПолноеИмя);
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();
КонецПроцедуры
Процедура Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки() Экспорт
КаталогПроекта = КаталогПроекта();
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
УстановитьТекущийКаталог(КаталогРепо);
ВыполнитьКомандуГит("git init");
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.УстановитьВКаталог(КаталогРепо);
КаталогHooks = Новый Файл(ОбъединитьПути(КаталогРепо, ".git", "hooks"));
Ожидаем.Что(КаталогHooks.Существует(), "Должен существовать исходный каталог сервисной ИБ, а это не так").ЭтоИстина();
Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
Файл_v8Reader_конечный = Новый Файл(ОбъединитьПути(Каталог_v8Reader_конечный.ПолноеИмя, "V8Reader.epf"));
Ожидаем.Что(Файл_v8Reader_конечный.Существует(), "Должен существовать Файл_v8Reader_конечный, а это не так").ЭтоИстина();
Файл_pre_commit_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "pre-commit"));
Ожидаем.Что(Файл_pre_commit_конечный.Существует(), "Должен существовать Файл_pre_commit_конечный, а это не так").ЭтоИстина();
Лог.Отладка("Файл_pre_commit_конечный.ПолноеИмя " + Файл_pre_commit_конечный);
Файл_сценария_исходный = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8files-extractor.os"));
Файл_сценария_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, Файл_сценария_исходный.Имя));
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();
КонецПроцедуры
Функция КаталогСодержитИсходникиОбработки(Знач Каталог)
ВыгруженныеФайлы = НайтиФайлы(Каталог, ПолучитьМаскуВсеФайлы());
ИменаВыгруженныхФайлов = РазвернутьМассивФайловВИменаФайлов(ВыгруженныеФайлы);
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("renames.txt");
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("Form");
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("Макеты");
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("und");
Возврат Истина;
КонецФункции
Процедура ПересоздатьКаталог(Каталог)
Если Каталог.Существует() Тогда
УдалитьФайлы(Каталог.ПолноеИмя);
КонецЕсли;
СоздатьКаталог(Каталог.ПолноеИмя);
КонецПроцедуры
Процедура КопироватьДеревоФайлов(Откуда, Куда)
Лог.Отладка(" КопироватьДеревоФайлов Откуда :"+Откуда);
Лог.Отладка(" КопироватьДеревоФайлов Куда :"+Куда);
Файлы = НайтиФайлы(Откуда, ПолучитьМаскуВсеФайлы());
Для Каждого Файл из Файлы Цикл
Если Файл.ЭтоКаталог() Тогда
Лог.Отладка(" Каталог.ПолноеИмя: " + Файл.ПолноеИмя);
НовыйКонечныйКаталог = Новый Файл(ОбъединитьПути(Куда, Файл.Имя));
// Лог.Отладка(" НовыйКонечныйКаталог.ПолноеИмя: " + НовыйКонечныйКаталог.ПолноеИмя);
Если НовыйКонечныйКаталог.Существует() Тогда
Если НовыйКонечныйКаталог.ЭтоФайл() Тогда
УдалитьФайлы(НовыйКонечныйКаталог.ПолноеИмя);
СоздатьКаталог(НовыйКонечныйКаталог.ПолноеИмя);
КонецЕсли;
Иначе
Лог.Отладка("Создаю каталог "+НовыйКонечныйКаталог.ПолноеИмя);
СоздатьКаталог(НовыйКонечныйКаталог.ПолноеИмя);
КонецЕсли;
КопироватьДеревоФайлов(Файл.ПолноеИмя, НовыйКонечныйКаталог.ПолноеИмя);
Иначе
Лог.Отладка(" Откуда Файл.ПолноеИмя: " + Файл.ПолноеИмя);
Лог.Отладка(" Куда Файл.ПолноеИмя: " + ОбъединитьПути(Куда, Файл.Имя));
КопироватьФайл(Файл.ПолноеИмя, ОбъединитьПути(Куда, Файл.Имя));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ВыполнитьКомандуГит(КомандаГит, КодВозврата = Неопределено, ПроверятьНулевойКодВозврата = Истина)
Лог.Информация("Запускаю "+КомандаГит);
Вывод = ПолучитьВыводПроцесса(КомандаГит, КодВозврата);
Лог.Информация(" Вывод команды гит: " + Вывод);
Если ПроверятьНулевойКодВозврата Тогда
Ожидаем.Что(КодВозврата, "Код возврата `"+КомандаГит+"` должен быть 0, а это не так").Равно(0);
КонецЕсли;
Возврат Вывод;
КонецФункции
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
// Это для dev версии 1.0.11
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
Процесс.Запустить();
Вывод = "";
Процесс.ОжидатьЗавершения();
Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();
КодВозврата = Процесс.КодВозврата;
// ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
// СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
// Лог.Отладка(СтрокаЗапуска);
// ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
// Лог.Отладка("Код возврата: " + КодВозврата);
// ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
// Вывод = ЧтениеТекста.Прочитать();
// ЧтениеТекста.Закрыть();
// ВременныеФайлы.УдалитьФайл(ЛогФайл);
Возврат Вывод;
КонецФункции
Функция РазвернутьМассивФайловВИменаФайлов(Знач МассивОбъектовФайл)
ИменаФайлов = Новый Массив;
Для Каждого Файл Из МассивОбъектовФайл Цикл
ИменаФайлов.Добавить(Файл.Имя);
КонецЦикла;
Возврат ИменаФайлов;
КонецФункции
Функция КаталогПроекта()
ФайлИсточника = Новый Файл(ТекущийСценарий().Источник);
Возврат ОбъединитьПути(ФайлИсточника.Путь, "..");
КонецФункции
//}
Инициализация();

Binary file not shown.

View File

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,35 +0,0 @@
v8Reader
========
[Исходный адрес публикации](http://infostart.ru/public/106310/)
Обработка, позволяющая анализировать и сравнивать файлы отчетов, обработок, конфигураций и обновлений.
Имеет мощные инструменты по анализу форм, ролей и ограничений доступа.
Логическое продолжение публикаций http://infostart.ru/public/97194/ и http://infostart.ru/public/69976/
вызванное обсуждением в комментариях (в частности, этим комментарием), с попыткой объединить в себя параллельное направление разработки, обозначенное в публикациях:
[Декомпиляция и анализ форм с генерацией кода формы от MRAK](http://infostart.ru/profile/9094/)
[Сравнение объектов и форм метаданных (очередная декомпиляция и анализ форм) от alexer](http://infostart.ru/profile/31755/)
[Деструктивный анализ формы от asady](http://infostart.ru/profile/6841/)
[Декомпилятор форм от Sverkalov](http://infostart.ru/profile/18041/)
И, наконец, их обобщенным и логичноструктурированным продолжением -
[Декомпиляция элементов формы для 8.2 для обычных форм (не управляемых) от Istur](http://infostart.ru/profile/28574/) -
всем рекомендую (только ошибки исправить надо - письмо о них было написано - никакой реакции)
Для более тщательного анализа форм был использован материал, предложенный brix8x в этом комментарии, а также развитие этой идеи, предложенное tormozit в публикации http://infostart.ru/public/57431/
Для придания "рюшечек" использовалась идея, предложенная Шепотом теней в публикации http://infostart.ru/public/59581/
Ну, и, как обычно... использовалась программа V8Unpack от disa_da
v8Reader

Binary file not shown.

View File

@ -1,87 +0,0 @@
1.13
1) Исправлена ошибка разбора ролей, возникающая при обнаружении неизвестных идентификаторов стандартных реквизитов
2) Исправлен алгоритм построения дерева элементов обычной формы в случае, если у панели формы есть несколько страниц.
3) Гиперссылка, декомпилирующая обычную форму целиком, теперь формирует полноценный текст декомпиляции (раньше по этой гиперссылке формировался файл в режиме «бутафории»)
4) Добавлена настройка использования внешней программы для сравнения модулей и их методов
5) При запуске обработки для распаковки файла конфигурации, содержащего конфигурацию поставщика, появилась возможность по нажатию отдельной кнопки распаковать файл конфигурации поставщика и запустить сравнение с исходной конфигурацией
6) В рамках проекта precommit исправлены ошибки формирования соответствия распакованных файлов для их последующей сборки в полноценный 1С-файл силами скрипта precommit.
7) Также в рамках проекта precommit для распакованных файлов также формируется отдельный файл maps.txt, позволяющий найти в исходниках управляемых форм номера строк, которые соответствуют началу и концу модуля управляемой формы
8) Кроме этого, в рамках проекта precommit при распаковке макетов теперь для каждого из них создаются файлы с соответствующим расширением:
- Компоновка – xml,
- Табличный документ – mxl,
- Текстовый документ – txt,
- Макет оформления компоновки данных – xml,
- Графическая схема – grs,
- Географическая схема – geo,
- ActiveDocument – bin,
- ДвоичныеДанные – bin (исключение составляют макеты с префиксом ПФ_, для которых создаются файлы с расширением, соответствующим второй части префикса – например, ПФ_DOC_* - будет создан файл с расширение doc и т.д) ,
- HTMLДокумент – html (вложения html будут распакованы в папку ИмяМакета_files рядом с html – естественно, сам html при этом их видеть не будет, но главное, что вложения тоже распаковываются).
9) Ну и самая главная доработка в рамках проекта precommit – это добавление ко всем модулям отчетов и обработок расширения bsl, наличие которого позволит эффективнее осваивать 1с-разработчикам инфраструктуру веб-сервисов github и проще применять инструменты, заточенные под формат исходных кодов 1С, будь-то анализаторы или подсветка синтаксиса.
1.12
Доработана совместимость регулярок с внутренним представлением 8.3.6.
Реализован программный интерфейс для открытия сравнения файлов из стороннего кода 1С – в модуле обработки экспортная процедура ОткрытьСравнение(ПутьФайла1,ПутьФайла2). Этот интерфейс позволяет использовать весь функционал проекта v8diff – можно сравнивать обработки, отчеты, конфигурации, файлы mxl, файлы форм и сериализованные в XML табличные документы, выгруженные платформой 8.3. Для всего остального будет открываться произвольное текстовое сравнение.
Добавлена обработка ключа запуска convert-mxl2txt для скрипта precommit.
// Пример строки запуска для precommit - "decompile;pathtocf;E:\ПутьКФайлуКоторыйНадоРазобратьНаИсходники;pathout;E:\ПутьКПапкеИсходников;convert-mxl2txt;shutdown"
В случае запуска скрипта precommit с ключом convert-mxl2txt для файлов табличных документов дополнительно создаются текстовые аналоги с постфиксом *_mxl.txt.
Используется новая версия V8Unpack (by baton_pk) – исправлены ошибки распаковки файлов form, ssf и cfu. Главное преимущество новой версии – возможность распаковки конфигураций большого объема (например ERP2.0, которую V8Unpack2.0 не распаковывает) без ущерба для производительности.
Мелкие доработки эргономики вывода сравнения временных файлов.
[Исправлены ошибки в 1.12](https://github.com/xDrivenDevelopment/v8Reader/issues?q=milestone%3A1.12+is%3Aclosed)
1.11
В таблице структурного сравнения модулей изменена сортировка по изменениям - неизмененные строки выводятся в самом низу.
Реализована совместимость регулярок реквизитов и табличных частей с внутренним представлением 8.3.6 (в первом приближении - возможно, позже потребуются правки). В управляемой форме в число допустимых видов поля формы добавлен новый вид - Поле планировщика.
[Исправлены ошибки в 1.11](https://github.com/xDrivenDevelopment/v8Reader/issues?q=milestone%3A1.11+is%3Aclosed)
1.10
Увеличение скорости распаковки порядка 20%
В макет V8Unpack помещена новая версия, собранная Сергеем Батановым aka dmpas
https://build.batanov.me/job/v8unpack-win/label=mingw32/lastSuccessfulBuild/artifact/bin/Release/v8unpack.exe
Новая версия не требует дополнительных библиотек + прирост скорости распаковки по сравнению с версией V8Unpack2.0 порядка 20%
В V8Reader была добавлена возможность разбора обработок в структуру папок с исходниками, имеющими человекопонятные имена.
Эта автоматизация была реализована в рамках проекта precommit, представляющего собой скрипт, который запускает этот разбор при каждом коммите в систему контроля версий Git.
Также в рамках проекта diff1C реализован скрипт, запускающий V8Reader для сравнения выгруженных с помощью стандартной выгрузки 8.3 обычных форм и табличных документов в формате xml.
Попробуйте, это очень удобно!
1) https://github.com/xDrivenDevelopment/v8Reader/issues/9 - из командной строки через батник diff-1c-cf.bat из проекта v8Diff можно сравнить XML-файлы табличных документов из выгрузки 8.3
2) https://github.com/xDrivenDevelopment/v8Reader/issues/2 - реализована проверка версии через github API (проверяется содержимое поля data из страницы https://api.github.com/repos/bambr1975/v8reader/commits?per_page=1
3) Оптимизированы регулярки для корректного разбора реквизитов и табличных частей объектов метаданных
4) Исправлен разбор управляемых форм (иногда выскакивала ошибка разбора)
5) Изменилась логика сравнения в модулях (теперь строки структурного сравнения сравниваются без учета пустого пространства)
6) Логика построения дерева обычных форм отвязана от идеи деструктивного анализа – иерархия элементов строится на основе внутреннего представления
7) В управляемых формах реализован разбор командного интерфейса.
Добавлена возможность корректной обработки объектов платформы 8.3.
Исправлены различные ошибки
1.9
Реализовано требование https://github.com/xDrivenDevelopment/v8Reader/issues/6
Теперь можно увидеть различия в модулях, если в методе модуля исправлен регистр буквы.
Реализованы требования
1) https://github.com/xDrivenDevelopment/v8Reader/issues/1
2) https://github.com/xDrivenDevelopment/v8Diff/issues/4
3) https://github.com/xDrivenDevelopment/v8Diff/issues/3
- исправлена маленькая ошибка формирования синонимов форм в конфигурациях
- добавлены работа с http-сервисами,
- исправлена совместимость со старыми версиями платформ 8.2,
- исправлена картинка строк для отображения http-сервисов,
- удаляются пустые ветки добавленных метаданных (HTTP-сервисов и определяемых типов)
27.01.2012 - на infostart.ru опубликована первая версия v8Reader

View File

@ -1,6 +0,0 @@
Перед выпуском релиза нужно выполнить операции по следующему чек-листу:
- Изменить номер версии в методе Версия() модуля обработки V8Reader.epf
- Выполнить все тесты из папки Tests. Ошибок быть не должно.
- Описать все изменения версии в файле history.txt
- Убедиться, что в задачах/issues на Гитхабе для нового релиза/milestone не осталось невыполненных задач.
- Если все-таки есть незавершенные задачи, их нужно убрать из нового релиза/milestone.

View File

@ -1,126 +0,0 @@
{27,
{16,
{
{1,0},3,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},20,0,0,0,0,0,0,
{3,1,
{3,0,
{0},"",-1,-1,1,0}
},0,1,
{1,1,
{3,
{1,1,
{"ru","Страница1"}
},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},-1,1,1,"Страница1",1}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
{2,284,0,1,4,0,0,8,0},1,4294967295,5,64},
{0}
},
{0}
},1,1,1,0,0,1,4,509},
{
{-1},4,
{3,
{
{1},0,0,1,"ТекстФормы",
{"Pattern",
{"S"}
}
},
{
{2},0,0,1,"Реквизит",
{"Pattern",
{"#",f8356b47-9e97-43b8-9e70-a71a73d82751}
}
},
{
{3},0,0,1,"Ключ",
{"Pattern"}
}
},
{0}
},
{00000000-0000-0000-0000-000000000000,0},
{2,
{70000,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПередОткрытием",
{1,"ПередОткрытием",
{1,2,
{"ru","Перед открытием"},
{"en","Перед открытием"}
},
{1,2,
{"ru","Перед открытием"},
{"en","Перед открытием"}
},
{1,2,
{"ru","Перед открытием"},
{"en","Перед открытием"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},1,2,0,0,1,1}

View File

@ -1,27 +0,0 @@

//из публикации MRAK http://infostart.ru/public/22147/
Процедура ПриОткрытии()
Выполнить(ТекстФормы);
КонецПроцедуры
//предложенная Istur в публикации http://infostart.ru/public/99363/ процедура для присвоения элементу нужного положения
Процедура УстановитьПоложениеЭлемента(Элемент, Верх, Высота, Лево, Ширина)
Элемент.Верх = Верх;
Если Тип(Элемент) <> Тип("КоманднаяПанель") Тогда
Элемент.Высота = Высота;
КонецЕсли;
Элемент.Лево = Лево;
Элемент.Ширина = Ширина;
КонецПроцедуры
//фиктивная функция обработки действия - для видимой доступности кнопок
Процедура ОбработчикНажатияКнопки()
КонецПроцедуры
//назначение форме владельца (чтобы можно было открыть несколько форм рядом и все они были подчиненными одной форме-владельцу)
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЭтаФорма.ВладелецФормы = Ключ;
ЭтаФорма.ЗакрыватьПриЗакрытииВладельца = Истина;
КонецПроцедуры

View File

@ -1,101 +0,0 @@
Перем Счетчик;
Перем ЭлементыВладельцаФормы;
Процедура ДеревоОбъектовВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя = "ОткрытьВПроводнике" Тогда
Файл = Новый Файл(ВыбраннаяСтрока.ПолноеИмя);
ОткрытьВПроводнике(Файл);
ИначеЕсли Колонка.Имя = "ОткрытьВБлокноте" И ВыбраннаяСтрока.ИндексКартинки <> 1 Тогда
WS = Новый COMОбъект("WScript.Shell");
WS.Run("Notepad " + ВыбраннаяСтрока.ПолноеИмя, 10);
ИначеЕсли ВыбраннаяСтрока.ИндексКартинки <> 1 Тогда
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ВыбраннаяСтрока.ПолноеИмя, КодировкаТекста.UTF8);
ЭлементыВладельцаФормы.ПолеТекстовогоДокумента1.УстановитьТекст(Текст.ПолучитьТекст());
Иначе
Возврат;
КонецЕсли;
КонецПроцедуры
Процедура ДеревоОбъектовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Имя.ОтображатьКартинку=истина;
ОформлениеСтроки.Ячейки.Имя.ИндексКартинки=ДанныеСтроки.ИндексКартинки;
Если ДанныеСтроки.ИндексКартинки=1 Тогда
ОформлениеСтроки.Ячейки.ОткрытьВБлокноте.ОтображатьКартинку=ложь;
КонецЕсли;
КонецПроцедуры
Процедура ДеревоОбъектовПриАктивизацииСтроки(Элемент)
Если Элемент = ЭлементыФормы.ДеревоОбъектов Тогда
Дерево = ЭтаФорма.ВладелецФормы.ДеревоМетаданных;
Гиперссылка = ЭлементыФормы.ОбъектМетаданных
ИначеЕсли Элемент = ЭлементыФормы.ДеревоОбъектов1 Тогда
Дерево = ЭтаФорма.ВладелецФормы.ДеревоCf;
Гиперссылка = ЭлементыФормы.ОбъектМетаданных1;
Иначе
Дерево = ЭтаФорма.ВладелецФормы.ТретьеДерево;
Гиперссылка = ЭлементыФормы.ОбъектМетаданных2;
КонецЕсли;
Если Открытие = Ложь Тогда
Если Элемент.ТекущаяСтрока <> Неопределено Тогда
Если Элемент.ТекущаяСтрока.Родитель = Неопределено Тогда
СтрокаОбъекта = Дерево.Строки.Найти(Элемент.ТекущаяСтрока.Имя, "ПутьТекОбъект", Истина);
Если СтрокаОбъекта <> Неопределено Тогда
Гиперссылка.Заголовок = СтрокаОбъекта.Синоним;
Гиперссылка.Гиперссылка = Истина;
Иначе Гиперссылка.Заголовок = "Объект не найден";
Гиперссылка.Гиперссылка = Ложь;
КонецЕсли;
Иначе СтрокаОбъекта = Дерево.Строки.Найти(Элемент.ТекущаяСтрока.Родитель.Имя, "ПутьТекОбъект", Истина);
Если СтрокаОбъекта <> Неопределено Тогда
Гиперссылка.Заголовок = СтрокаОбъекта.Синоним;
Гиперссылка.Гиперссылка = Истина;
Иначе Гиперссылка.Заголовок = "Объект не найден";
Гиперссылка.Гиперссылка = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если РежимСравнения = 1 И Счетчик = Неопределено Тогда
Счетчик = 1;
Иначе
Открытие = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбъектМетаданныхНажатие(Элемент)
Если Элемент = ЭлементыФормы.ОбъектМетаданных Тогда
Если РежимСравнения = 1 Тогда
ЭлементыВладельцаФормы.ПанельДляДерева.ТекущаяСтраница = ЭлементыВладельцаФормы.ПанельДляДерева.Страницы.ДеревоCfu;
КонецЕсли;
ЭлементыВладельцаФормы.ДеревоМетаданных.ТекущаяСтрока = ЭлементыВладельцаФормы.ДеревоМетаданных.Значение.Строки.Найти(Элемент.Заголовок,"Синоним", Истина);
Иначе
ЭлементыВладельцаФормы.ПанельДляДерева.ТекущаяСтраница = ЭлементыВладельцаФормы.ПанельДляДерева.Страницы.ДеревоCf;
ЭлементыВладельцаФормы.ДеревоCf.ТекущаяСтрока = ЭлементыВладельцаФормы.ДеревоCf.Значение.Строки.Найти(Элемент.Заголовок,"Синоним", Истина);
КонецЕсли;
КонецПроцедуры
Процедура КонтекстноеМенюСортироватьПоВыделенному(Кнопка)
ИмяТекКолонки = ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя;
ЭтаФорма.ТекущийЭлемент.Значение.Строки.Сортировать("" + ИмяТекКолонки + " возр", Истина);
КонецПроцедуры
Процедура КонтекстноеМенюСортироватьПоВыделенному1(Кнопка)
ИмяТекКолонки = ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя;
ЭтаФорма.ТекущийЭлемент.Значение.Строки.Сортировать("" + ИмяТекКолонки + " убыв", Истина);
КонецПроцедуры
Процедура КонтекстноеМенюВосстановитьПоУмолчанию(Кнопка)
ЭтаФорма.ТекущийЭлемент.Значение.Строки.Сортировать("ИндексКартинки убыв, Имя возр");
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ЭлементыВладельцаФормы.УправляющаяКоманднаяПанель.Кнопки.ОткрытьНавигаторФайлов.Доступность = Истина;
КонецПроцедуры
ЭлементыВладельцаФормы = ЭтаФорма.ВладелецФормы.ЭлементыФормы;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,811 +0,0 @@
{27,
{16,
{
{1,1,
{"ru","Просмотр HTML (заимствовано у MAV)"}
},111,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},20,0,2,
{0,3,1},
{0,97,1},1,
{0,3,2},3,
{0,3,3},
{0,97,3},
{0,100,3},0,0,
{3,1,
{3,0,
{0},"",-1,-1,1,0}
},0,1,
{1,1,
{3,
{1,1,
{"ru","Страница1"}
},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},-1,1,1,"Страница1",1}
},1,1,0,4,
{2,4,1,1,1,0,0,0,0},
{2,4,0,1,2,0,0,0,0},
{2,707,1,1,3,0,0,4,0},
{2,399,0,1,4,0,0,30,0},0,97,5,64},
{0}
},
{3,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,3,
{2,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,00000000-0000-0000-0000-000000000000},
{1,0}
},8,2,0,2,0,1,
{5,041535af-fe2e-4650-818c-a32a92ab1366,11,1,2,
{6,f5232fbf-5fd1-4c64-856c-8ea53e06e0c1,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,5f6fcde5-13be-4b79-938c-e14c9b1f6e77,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,2,00000000-0000-0000-0000-000000000000,142,
{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,f5232fbf-5fd1-4c64-856c-8ea53e06e0c1,
{8,"Разделитель1",0,1,
{1,0},0,041535af-fe2e-4650-818c-a32a92ab1366,11,1e2,2,0,1,0,0,0,0},5f6fcde5-13be-4b79-938c-e14c9b1f6e77,
{8,"Действие1",0,1,
{1,1,
{"ru","Закрыть"}
},1,041535af-fe2e-4650-818c-a32a92ab1366,3,1e2,0,1,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0}
},
{8,0,404,711,429,1,
{0,
{2,3,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,3,1},1,
{0,3,0},0,0,0,0,0,0,3,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
{d92a805c-98ae-4750-9158-d9ce7cec2f20,97,
{5,0,
{2,
{0,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПолеHTMLДокументаДокументСформирован",
{1,"ПолеHTMLДокументаДокументСформирован",
{1,1,
{"ru","Поле HTMLДокумента документ сформирован"}
},
{1,1,
{"ru","Поле HTMLДокумента документ сформирован"}
},
{1,1,
{"ru","Поле HTMLДокумента документ сформирован"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{2,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПолеHTMLДокументаonclick",
{1,"ПолеHTMLДокументаonclick",
{1,1,
{"ru","Поле HTMLДокументаonclick"}
},
{1,1,
{"ru","Поле HTMLДокументаonclick"}
},
{1,1,
{"ru","Поле HTMLДокументаonclick"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
},
{3,3,
{-22}
},
{3,0,
{0},1,1,0,48312c09-257f-4b29-b280-284dd89efc1e},1,0},
{8,4,29,707,399,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-30},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-4},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,2,2,0,0},
{14,"ПолеHTMLДокумента",4294967295,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,100,
{2,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},8,2,0,0,1,1,
{5,a5584947-9bee-4486-9ab4-b3e9672746a7,50,1,11,
{6,9d210bc0-b333-4726-b970-bc087034a03f,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыполнитьКоманду",
{1,"ВыполнитьКоманду",
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294AgLDAAICgsADIztMAxdHVAJCo
sABgkKAAoOjwAJDY4ABAaHAAcIiQAICIkADAyc4AsPDwALDw/wCg8PAAcJigAGt/
hgCAyNAAUHCAADBggABgwPAAILjwAFBgcABgiJAAkMjQAJDo8ACA2OAAYMjgAFCY
sABAWGAAIICgAACQ0ABQWHAAkKCwAKDw/wBggJAAYHCAAFBocABAWHAAIHCQAEBI
YACQoKAAoOj/AJDg8ABw0PAAEKDQABCY0AAwOEAAgJigAIDg8ABw2PAAUNDwABCw
8ACwoJAAsJiQALCQgACgiIAAoIBwAJB4YACQcGAAYNjwAFDI8AAwwPAA////AP/4
/wDw8PAA8OjgAIBoUACAYFAAgJCgAIDY8ABAyPAAELjwAACg4ADAsKAAwKigAPDg
0ADQyMAAYFBAAACo8ADw2NAA4NDAAHBYUABQSEAAQEBAAHDI8AAAqOAAAJjQANDA
sAAgMEAAcICQAODIwADQuLAAz9XaAEBQYAAwQFAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwcHBwcHBwcHBwcHBwcHBw
cHBwcFNpaWlpaWlpaWlwMyZub2lLXEVFRUVFRUVpaiUvLy8vSlJgYWtobGxFaRll
WERmZ0lRWlpbRWhFRWkaPE5YX1lIUFFSYGFiXmNkVVZXTlhZR09aWltcVF1ecEA7
TE1OREZPT1BRUlNUcHBAFkFCQ0RFRkdISUpLcHBwOR06Ozw9PT0+Ly8vP3BwcDEd
MjM0IjU1JjY3LzhwcHAUHR0nKCkqKywtLi8wcHBwFBwdHh8eICEiIyQlJnBwcBMU
FBQVFhYXGBkaGRtwcHBwcHBwcBAQERJwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcP//
AAD8AAAAgAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAHAAAABwAAAAcAAAAH
AAAABwAA+H8AAP//AAA=}
},0}
},
{6,7d0c435d-a729-49ff-9658-60096026a36c,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыполнитьКоманду",
{1,"ВыполнитьКоманду",
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294A0crKALawqQDp7O0A4ODgAKik
nwDe3dwAoJiQANzc3QDx8O0AwLCwALu4swCwmJAAw7uxAOTp6wDv6OAAgHBgAMXJ
ywDCs7MAoJCQANnb3ADQyMAAcGBQAMy8twCwq6YAkIBwAGdYWADV09QAfHh0AIV3
aACAaFAAvLOuAOrZ0wDtposA4IBQANWafwDQeFAA0X5YANWghwDTu7AA69nUAO+V
aADghlkApGBKAJpiRgDCd0oAwGhAALqYhwDjp4EA4IhQALBoQACQUDAAqX9pAN7Y
1ADNtacA59fQANzRywDd3t4A3dHLALymnQBwQDAA5NbQANK2qwCAUDAAxoxsALBg
QABgQDAAOisrANSNbQBiTTgA0LeqAGdCOgBnQisAtKGUANS6rQCaaUcAZ0I7ALii
mAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dXV1dXV1dXV1dXV1dXV1d
XVlaW1xdXV1dXV1dXV1dXV1TUEJUXVVWV1hdXV1dXV1dMV1NTl1PUFFSXV1dXV1d
XUBdXUJdM11KS11dXV1dXV0/QEFCQzNdRUJdXV1dXV1dXTg5Ojs8Mz0+XV1dXV1d
XV1dMDEyMzQ1Nl1dXV1dXV1dXV0sJS0uXV1dXV1dXV1dXV1dKB8lK11dXV1dXV1d
XV1dJhYnKCldXV1dXV1dXV1dXSEiXSQlIF1dXV1dXV1dXV0bHF1dHyBdXV1dXV1d
XV1dFl1dXRkaXV1dXV1dXV1dEBFdXV1dFF1dXV1dXV1dXV1dXV1dXV1dXV1dXf//
AADh/wAA4Q8AAOkPAADtTwAA4E8AAPAPAAD4DwAA/D8AAPw/AAD4PwAA+R8AAPmf
AAD7nwAA898AAP//AAA=}
},0}
},
{6,96b375b5-0a28-4f1f-8095-175c4554d04c,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыполнитьКоманду",
{1,"ВыполнитьКоманду",
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294A4MCwANDAsADQuLAA0LCgANTP
zgD///8AwLCgAKCAYADKycYAwKiQANDIwACQcGAAy8nGAP/YwAD/0LAA8ODQALCg
kADwyLAA8MCwAPC4oADwsJAA3MvCAP/4/wD/8PAA8OjgAPCogADAaDAA0sC0AMCo
oAD/yKAA8LiQAOCwgADgoHAA8MCgAPCYcACwWDAAzbqzAP/48ADw8PAA4LigAP+w
kADw2NAA4JBgAKBQIADQmHAA4KiQAPDQwADg2NAA4NDAAODIwADgoIAA4JhwANCA
UACgSCAAYEgwANCQcACQSCAA0IhgAMB4UACQQCAAwHBAAIBAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5OTk5OTk5OTk5OTk5OTk5O
Tk5OTk5OTk5OTk5OTk5OTk5OTk5MMzM7O0hIS01OTk5OTk5OSjUTExMWLBlLTk5O
Tk5OTkkVOkREREQsSE4gRkZGRkZHFRUnHz4iFkhOICcfP0BBQhUpQzpERBNFTiA1
LzAwPD0VFRU1KD4TO04ZFTU2KB83FTg4OTozMztOLBUtLi8wMRUVFRUyITM0ThYV
FSYnKCEVFRUVKSorTk4SFR0eHyAhIiIjJCQlTk5OERUVFRUZGhscTk5OTk5OThAV
FRUVFhcYTk5OTk5OTk4QEBEREhMUTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTv//
AAD//wAA/AEAAPwBAAD8AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAAB/
AAAA/wAAAf8AAP//AAA=}
},0}
},
{6,28c0c22f-88a6-4a97-87a8-c506e48c9921,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,b26620ef-c51e-45fe-a74b-d68037a662d5,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельРежим",
{1,"КоманднаяПанельРежим",
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294A8KiQAPCogADwoIAA8JhwAOCY
cADgkGAA4IhgAOCAUADgeEAA4HBAAP/AoAD/uJAA/7CQAP+ogADwoHAA8JhgANBo
MADgiFAA0GAwANC4oADw+PAA8OjgAP///wDAsKAAYEgwAOjs7wCwoJAAoJCAALCg
oACwqKAA4LigANCwkADQqJAAs6ykAMCwsADw6NAA8OjAAMCwkACAeGAA0NDQAM/I
wQDAqKAA///gAP//0ADAsIAAkIBwAPDg0ADgyLAA0LCgAOD48AC4rqMA4NCwAP//
8AD/+MAA8NigAHBYUADQ8OAAlYZ3AP/wwADw2LAAYFBAAODYwADA6NAAwKiQAJSH
ewCwmIAA///AAP/w0ACwqJAAcHBwAJCgoADA8NAAz8/OAHdwaADAoIAA8OCgAGBw
cABgmLAAcIiQAJCYoACw6NAAsOjAANDX2QBwaGAAYGhgAECIoABAwPAAYLDQAKCY
kADc29cAy8XDAM/KxAB+hY0AUGBwACCg0AAwuPAAYKCwAFBocACgiIAAgGhQAHBY
QACHm6UAQFBgACCYwAAwOEAAW3SBAJSltAAgMEAAW3N/AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfX19fX19fXp7fH19fX19fX19
fX19fXV2d3h5fX19fX19fX19fWxtbm9wcXJzdCgofX1jTExkZWZnXmgnJyoqKH1Z
WltGVFxdXl9IV2BhKihQUVJFSlNUVVYkQUhXTk8oSUM6OjtKS0xNP0AvME5PKEJD
REQ6RUZHJiYmJEFIOSg4OSYmOjs8PT4/QC8wQTkofTEyMzQ1NjcmJiYmJiQnKH19
JyorLC0mLi4jLzAmJyh9fSMkJCQlJiYmJiYmJicofX0QEBAREhQVIRcYGRkZIn19
EBoaGhsbHB0dHh4THyB9fRAQEBAREhMUFRYXGBgZfX19fX19fX19fX19fX19ff4/
AAD8HwAA+AAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAwAAAAMAA
AADAAAAAwAAAAP//AAA=}
},0}
},
{6,0454424b-2a7e-4de5-bc92-e74f59cadf63,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельРежим",
{1,"КоманднаяПанельРежим",
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294AucHYAGBwsAC+yNgAxdHWAHCQ
4ABgeNAA8LCQAPCokADwoIAA8KBwAOCYcADgkGAA4IhQANCYgACAsMAA0LiwAHCI
0AAwOJAA/8CgAP+4oAD/uJAA/7CQAP+ogADwqIAA0LCgAHCwwACQ4PAAcMjgAICI
gACgp8AA8JhwAOCIYADQqJAAYKiwAGDA0ABQmLAAEBAQALfDxwDQuKAA////AP/4
8ADQ0NAAUKCwAK6+xADgyMAAwLiwALC/xgCgoKAAkLjAAHDQ4ACAcGAAUJCwAMCw
sACAYFAAcHBwAFBYUAAAAAAA0MCwAHBQQADAsKAA//DgAPDY0ADAqKAA4OjgAODg
4ADg4NAA4NjQAODQwADgyLAA4MCwALCgkABgSDAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhISEhISEhISEhISEhISEhI
SEhISEhISEhISEhISEhWV1dXV1dXV1dXV0pISEhITjdPUFFSUzxUVU5KSEhISEs3
PElJTCgoKE1OSkhISEg2Nzc3ODhGR0hJKEpISEhINjc8PDw4PzdDNERFSEhISDY3
Nzc3Nz9AQTM0QkhISEg2Nzw8PDc9OioyMzQ+SEhINjc3Nzc3ODk6KjIzNDtISBYX
FxguGy8bMDEqMjM0NUgWIiIjJCUmJicoKSorLCEtFhcXFxgZGhscGx0eHyARIUhI
SEhISEhISEhIExEUFRFISEhISEhISEhISEgQERESSEhISEhISEhISEhISEhISP//
AAD//wAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAAcAAAADAAAAAQAAAAAAAAAA
AAD/4AAA//AAAP//AAA=}
},0}
},
{6,99890470-519e-4d71-841c-c13e88016cbf,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,21884698-5881-4ed8-b345-317922ec63b7,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,6bc2c07a-2ad3-434a-b2ec-a15bfd5567d8,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыполнитьКоманду",
{1,"ВыполнитьКоманду",
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADx8/QA8PLzAO7w8gDs7/AA6u3vAOns7gDn6uwA5enrAOPo
6gDk6OoA4eboAN/k5gDd4uQA2+DjANne4QDX3N8A8LiwAPCwsADwqLAA8KCgAOCY
oADgkJAA4IiQAOCAgADQeIAA0HhwANBwcADU294A/8DAAP+QkAD///8A//jwAMBY
UACwWGAA8IiQAPDw8ADAUEAAYDAwALBYUADwqKAA8OjgALBQMADgeIAAoFBQAOB4
cADw2NAAsEgwAODQwACgQCAA0GhgAODIwACgOBAAwGBgAJBIUAD/uMAA/7iwANBg
YADAYFAAkEhAAP+wsAD/oKAA8JCQAPCIgADQaHAAsFBQAP+osABwWFAAcGBQAIBo
YACwSEAAgEBAAAAAAABAQDAA8ODQAIB4YACgQEAA/5igAJB4cADw4OAAkIBwAKBA
MACAOEAAsEggAEAwIADAuLAA0MDAANDIwABQUFAAoDgwAHA4QADkxckAwGhgAHA4
MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0dHR0dHR0dHR0dHR0dHR0da
WyYrKys1OjpGUVFZXEdHPz0XUlNUVFVWV1BQWFlHRxpMPhdCSE1OKE9QS1BRR0cZ
PD0+QkdILUlKRUVLRkdHGEE8PUJCQkJDRCBARUZHRxc7Ozw9PhcqGj80IEA6R0cW
Njc4OSAkKS4wMzQgOkdHFRwxHh4fIygtLzIzNDVHRxQcGh4eHh8jKC0vMDErR0cT
HCweHh4eHyMoLS4aK0dHJxwXHh4eHh4fIygpKitHRxEcIh4eHh4eHh8jJCUmR0cR
HB0eHh4eHh4eHyAhIUdHEBARERITFBUVFhcYGRpHR0dHR0dHR0dHR0dHR0dHR///
AACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
AACAAQAAgAEAAP//AAA=}
},0}
},
{6,2760b2d7-b86d-4373-a1a0-8664d9280706,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельРежим",
{1,"КоманднаяПанельРежим",
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{1,1,
{"ru","Режим"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADw8vMA7vDyAOzv8ADq7e8A6ezuAOfq7ADl6esA4+jqAOTo
6gDh5ugA3+TmAN3i5ADb4OMA2d7hANfc3wDU294A8KiQAPCogADwoIAA8JhwAOCY
cADgkGAA4IhgAOCAUADgeEAA4HBAAP/AoAD/uJAA/7CQAP+ogADwoHAA8JhgANBo
MADgiFAA0GAwANC4oADw+PAA8OjgAP///wDAsKAAYEgwAOjs7wCwoJAAoJCAALCg
oACwqKAA4LigANCwkADQqJAAs6ykAMCwsADw6NAA8OjAAMCwkACAeGAA0NDQAM/I
wQDAqKAA///gAP//0ADAsIAAkIBwAPDg0ADgyLAA0LCgAOD48AC4rqMA4NCwAP//
8AD/+MAA8NigAHBYUADQ8OAAlYZ3AP/wwADw2LAAYFBAAODYwADA6NAAwKiQAJSH
ewCwmIAA///AAP/w0ACwqJAAcHBwAJCgoADA8NAAz8/OAHdwaADAoIAA8OCgAGBw
cABgmLAAcIiQAJCYoACw6NAAsOjAANDX2QBwaGAAYGhgAECIoABAwPAAYLDQAKCY
kADc29cAy8XDAM/KxAB+hY0AUGBwACCg0AAwuPAAYKCwAFBocACgiIAAgGhQAHBY
QACHm6UAQFBgACCYwAAwOEAAW3SBAJSltAAgMEAAW3N/AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfX19fX19fX19fX19fX19fX19
fX19fX19fX19fX19fX0qKCgoKCgoKCgoKCgoKCh9KkQ+Pk0/Pz8uQEAwWloofSom
IyMjQEBPT1paWlowKH0qJiYmREQBJT4+ND8/MCh9KiY/PyMjI0BAT09aWkAofU8m
JiYmJiYmRAElJT4/KH05JngtJjJ7JkBAME9PPyh9OSZse3h4bCYmJiZERE0ofScm
AkcBeAImIyNAQE8+KH1AJiY3VTcmJiYmJiYmJSh9IyYmJmwmJiY/IyMjQCUofUAm
JiYmJiYmJiYmJiYmKH0nIyMjQCcnJyc5OU9PTyp9fX19fX19fX19fX19fX19ff//
AAD//wAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB
AAAAAQAAAAEAAP//AAA=}
},0}
},
{6,2fe33eb5-33ee-4ead-b609-aea1190ef448,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыполнитьКоманду",
{1,"ВыполнитьКоманду",
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{1,1,
{"ru","Выполнить команду"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,3,
{0},"",-1,-1,0,
{
{#base64:AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAADx8/QA8PLzAO7w8gDs7/AA6u3vAOns7gDn6uwA5enrAOPo
6gDk6OoA4eboAN/k5gDd4uQA2+DjANne4QDX3N8A3NTRANDAsADe1dIA4NHRAP//
/wD/+P8A8OjgANC4sACAYFAAzMzNAObm5wDw8PAA0MjAAMCwsADg2NAAgHBgAIVn
WADZy70A//DwAPDg0ACxpqEA4+PgAMCwoADg0NAAgGhgALCYkACwoJAA0MvHAODI
wADw8OAA8ODgAMCooACgkIAA1tDJALeijQDQsKAAwKCQALCQgACggHAAkHBgAHBg
UACgiHAA//jwAKCIgACQeGAAsJiAAJCAcABwWFAAcFhAAAD/EAAAoAAAYEgwALOV
hgDw2MAAAP+wAIBoUABwUEAAx8C5ALOdlQD/6OAA//DgAPDY0ADw0LAA8MCgAIR1
ZgDT09IApI6GAODQwADIyckA2tXRAKOckwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1dXV1dXV1dXV1dXV1dXV1dX
RxgYOEBASEhDQ0NXV1dXUlMqKioqKioqKioqQ1dXSUpLOkxLTU5PQkJCQENQV0Qe
FBQUFCIuRUFGQkdIQ1c1FhQUFBQUOhZBQUI3OENXPREXJio9Oz43KBg/PihAVzQ6
FBQUFBQUOiIbFjs8GFcxMjMvMzQ1NjcYOB8qORhXVysmLBQVFSItLi8YMCYYV1dX
JSYUFhwcFxEnKBgpKldXV1chFhQUFBUiIxcYJFdXV1dXGhcUGxwcFx0eHyBXV1dX
V1cSExQUFBQVFhcYV1dXV1dXVxAREREREREREVdXV1dXV1dXV1dXV1dXV1dXV///
AADABwAAgAMAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAA4AMAAOAD
AADwAwAA+AMAAP//AAA=}
},0}
},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,11,6bc2c07a-2ad3-434a-b2ec-a15bfd5567d8,
{8,"КомандаSaveAs",0,1,
{1,1,
{"ru","Сохранить"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,9,1e2,0,0,1,0,0,0,0},2fe33eb5-33ee-4ead-b609-aea1190ef448,
{8,"КомандаPrint",0,1,
{1,1,
{"ru","Печать"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,11,1e2,0,0,1,0,0,0,0},99890470-519e-4d71-841c-c13e88016cbf,
{8,"Разделитель",0,1,
{1,0},0,a5584947-9bee-4486-9ab4-b3e9672746a7,4,1e2,2,0,1,0,0,0,0},0454424b-2a7e-4de5-bc92-e74f59cadf63,
{8,"Редактирование",0,1,
{1,1,
{"ru","Редактирование"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,5,1e2,0,0,1,1,0,0,0},2760b2d7-b86d-4373-a1a0-8664d9280706,
{8,"Текст",0,1,
{1,1,
{"ru","Текст"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,7,1e2,0,0,1,0,0,0,0},b26620ef-c51e-45fe-a74b-d68037a662d5,
{8,"Просмотр",0,1,
{1,1,
{"ru","Просмотр"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,6,1e2,0,0,1,0,0,0,0},28c0c22f-88a6-4a97-87a8-c506e48c9921,
{8,"РазделительОсновной",0,1,
{1,0},0,a5584947-9bee-4486-9ab4-b3e9672746a7,10,1e2,2,0,1,0,0,0,0},7d0c435d-a729-49ff-9658-60096026a36c,
{8,"КомандаCut",0,1,
{1,1,
{"ru","Вырезать"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,15,1e2,0,0,1,0,0,0,0},96b375b5-0a28-4f1f-8095-175c4554d04c,
{8,"КомандаCopy",0,1,
{1,1,
{"ru","Копировать"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,13,1e2,0,0,1,0,0,0,0},9d210bc0-b333-4726-b970-bc087034a03f,
{8,"КомандаPaste",0,1,
{1,1,
{"ru","Вставить"}
},1,a5584947-9bee-4486-9ab4-b3e9672746a7,14,1e2,0,0,1,0,0,0,0},21884698-5881-4ed8-b345-317922ec63b7,
{8,"Разделитель2",0,1,
{1,0},0,a5584947-9bee-4486-9ab4-b3e9672746a7,16,1e2,2,0,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0}
},
{8,4,4,707,28,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,100,0,24},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-4},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,100,1},0,0,0,0,0,0,1,1,0,0},
{14,"КоманднаяПанель",97,0,0,0},
{0}
}
}
},711,429,1,0,1,4,4,2351},
{
{0},14,
{2,
{
{0},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",f8356b47-9e97-43b8-9e70-a71a73d82751}
}
},
{
{13},0,0,1,"Реквизит",
{"Pattern",
{"S",10,1}
}
}
},
{0}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{2,
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{70003,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриЗакрытии",
{1,"ПриЗакрытии",
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{1,97,4294967295,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},
{0},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},1,2,0,0,1,1}

View File

@ -1,237 +0,0 @@
//_________________________________________
//
// Copyright © Андрей Михайлов aka MAV
// Адрес для связи: mav@erpg.ru
// Мой сайт в интернет: www.erpg.ru
// ICQ: 137167406
//_________________________________________
Перем Документ;
Перем Адрес;
Перем ПредыдущийРежим;
//Процедура ВыполнитьКомандуМеню(Элемент)
// ОбАвторе(Элемент);
//КонецПроцедуры
Процедура ЗагрузитьДокумент(Адрес)
ЭлементыФормы.ПолеHTMLДокумента.Перейти(Адрес);
КонецПроцедуры
Процедура ПриОткрытии()
// Заполнение списка стилей
//СтилиТекста = ЭлементыФормы.КомандаformatBlock.СписокВыбора;
//СтилиТекста.Добавить("<p>", "Обычный");
//СтилиТекста.Добавить("<h1>", "Заголовок 1");
//СтилиТекста.Добавить("<h2>", "Заголовок 2");
//СтилиТекста.Добавить("<h3>", "Заголовок 3");
//СтилиТекста.Добавить("<h4>", "Заголовок 4");
//СтилиТекста.Добавить("<h5>", "Заголовок 5");
//СтилиТекста.Добавить("<h6>", "Заголовок 6");
//СтилиТекста.Добавить("<pre>", "Форматированный");
//СтилиТекста.Добавить("<address>", "Адрес");
//ЭлементыФормы.КомандаformatBlock.Значение = СтилиТекста[0].Значение;
// Заполнение списка шрифтов
//Список = ЭлементыФормы.КомандаFontName.СписокВыбора;
//Список.Добавить("Arial");
//Список.Добавить("Arial Black");
//Список.Добавить("Arial Narrow");
//Список.Добавить("Comic Sans MS");
//Список.Добавить("Courier New");
//Список.Добавить("System");
//Список.Добавить("Tahoma");
//Список.Добавить("Times New Roman");
//Список.Добавить("Verdana");
//Список.Добавить("Wingdings");
//ЭлементыФормы.КомандаFontName.Значение = Список[0].Значение;
//
//// Заполнение списка размеров
//Список = ЭлементыФормы.КомандаFontSize.СписокВыбора;
//Для Ном = 1 По 14 Цикл
// Список.Добавить(Ном);
//КонецЦикла;
//ЭлементыФормы.КомандаFontSize.Значение = Список[2].Значение;
Документ = ЭлементыФормы.ПолеHTMLДокумента.Документ;
ПредыдущийРежим = ЭлементыФормы.КоманднаяПанель.Кнопки.Редактирование;
КонецПроцедуры
Процедура КоманднаяПанельРежим(Кнопка)
Если Кнопка.Пометка Тогда
Возврат;
КонецЕсли;
ЭлементыФормы.КоманднаяПанель.Кнопки.Редактирование.Пометка = Ложь;
ЭлементыФормы.КоманднаяПанель.Кнопки.Текст.Пометка = Ложь;
ЭлементыФормы.КоманднаяПанель.Кнопки.Просмотр.Пометка = Ложь;
Кнопка.Пометка = Истина;
Если Кнопка = ЭлементыФормы.КоманднаяПанель.Кнопки.Текст Тогда
//Документ.Body.InnerText = Документ.Body.InnerHTML;
sExpression = "
|document.body.innerText = document.body.innerHTML;
|document.body.innerHTML = colourCode(document.body.innerHTML);
|function colourCode(code)
|{
| htmlTag = /(&lt;([\s\S]*?)&gt;)/gi
| tableTag = /(&lt;(table|tbody|th|tr|td|\/table|\/tbody|\/th|\/tr|\/td)([\s\S]*?)&gt;)/gi
| commentTag = /(&lt;!--([\s\S]*?)&gt;)/gi
| imageTag = /(&lt;img([\s\S]*?)&gt;)/gi
| linkTag = /(&lt;(a|\/a)([\s\S]*?)&gt;)/gi
| scriptTag = /(&lt;(script|\/script)([\s\S]*?)&gt;)/gi
| code = code.replace(htmlTag,""<font color=#FF0000>$1</font>"")
| code = code.replace(tableTag,""<font color=#008080>$1</font>"")
| code = code.replace(commentTag,""<font color=#808080>$1</font>"")
| code = code.replace(imageTag,""<font color=#800080>$1</font>"")
| code = code.replace(linkTag,""<font color=#008000>$1</font>"")
| code = code.replace(scriptTag,""<font color=#800000>$1</font>"")
| return code;
|}";
Документ.parentWindow.execScript(sExpression);
ИначеЕсли ПредыдущийРежим = ЭлементыФормы.КоманднаяПанель.Кнопки.Текст Тогда
Документ.Body.InnerHTML = Документ.Body.InnerText;
КонецЕсли;
Если Кнопка = ЭлементыФормы.КоманднаяПанель.Кнопки.Просмотр Тогда
Документ.Body.ContentEditable = "false";
Иначе
Документ.Body.ContentEditable = "true";
КонецЕсли;
Доступность = (Кнопка = ЭлементыФормы.КоманднаяПанель.Кнопки.Редактирование);
//ЭлементыФормы.КомандаFormatBlock.Доступность = Доступность;
//ЭлементыФормы.КомандаFontName.Доступность = Доступность;
//ЭлементыФормы.КомандаFontSize.Доступность = Доступность;
УправлятьДоступностью = Ложь;
Для каждого Кн Из ЭлементыФормы.КоманднаяПанель.Кнопки Цикл
Если УправлятьДоступностью Тогда
Кн.Доступность = Доступность
КонецЕсли;
Если Кн.Имя = "РазделительОсновной" Тогда
УправлятьДоступностью = Истина;
КонецЕсли;
КонецЦикла;
ПредыдущийРежим = Кнопка;
ПоказатьРежимыКнопок();
КонецПроцедуры
Процедура ВыполнитьКоманду(Кнопка)
Команда = Сред(Кнопка.Имя, 8);
Если (Кнопка = ЭлементыФормы.КоманднаяПанель.Кнопки.КомандаSaveAs) или
(Кнопка = ЭлементыФормы.КоманднаяПанель.Кнопки.КомандаPrint) Тогда
КоманднаяПанельРежим(ЭлементыФормы.КоманднаяПанель.Кнопки.Редактирование);
КонецЕсли;
Если Документ.queryCommandSupported(Команда) Тогда
Если ТипЗнч(Кнопка) = Тип("ПолеВыбора") Тогда
Документ.execCommand(Команда, Истина, Кнопка.Значение);
Иначе
Документ.execCommand(Команда, Ложь);
КонецЕсли;
ПоказатьРежимыКнопок();
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельОткрыть(Кнопка)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.ПолноеИмяФайла = Адрес;
Диалог.Заголовок = "Выберите html-файл";
Диалог.Фильтр = "HTML файлы|*.htm*|Все файлы|*.*";
Диалог.Расширение = "htm";
Если Диалог.Выбрать() Тогда
Адрес = Диалог.ПолноеИмяФайла;
ЗагрузитьДокумент(Диалог.ПолноеИмяФайла);
КонецЕсли;
КонецПроцедуры
Процедура ВыборЦвета(Кнопка)
Цвет = ЭтотОбъект.ПолучитьФорму("ВыборЦвета").ОткрытьМодально();
Если Цвет <> Неопределено Тогда
Команда = Сред(Кнопка.Имя, 8);
Если Документ.queryCommandSupported(Команда) Тогда
Документ.execCommand(Команда, Ложь, "" + ПеревестиИз10(Цвет.Красный) + ПеревестиИз10(Цвет.Зеленый) + ПеревестиИз10(Цвет.Синий));
КонецЕсли;
КонецЕсли;
ПоказатьРежимыКнопок();
КонецПроцедуры
Функция ПеревестиИз10(Знач Значение = 0) Экспорт
Значение = Число(Значение);
Если Значение <= 0 Тогда
Возврат "00";
КонецЕсли;
Значение = Цел(Значение);
Результат = "";
Пока Значение > 0 Цикл
Результат = Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", Значение % 16 + 1, 1) + Результат;
Значение = Цел(Значение / 16);
КонецЦикла;
Если СтрДлина(Результат) = 1 Тогда
Результат = "0" + Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
Документ.Body.ContentEditable = "true";
КонецПроцедуры
Процедура КоманднаяПанельРисунок(Кнопка)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл с рисунком";
Диалог.Фильтр = "Файлы рисунков|*.gif;*.dib;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf;*.tga;*.tif;*.tiff;*.rle;*.iff;*.lbm;*.ilbm;*.jpe;*.jif;*.jfif;*.kdc;*.pcd;*.pcx;*.dcx;*.pic;*.pix;*.png;*.psd;*.sgi;*.bw;*.rgb;*.rgba|Все файлы|*.*";
Диалог.ПредварительныйПросмотр = Истина;
Если Диалог.Выбрать() Тогда
Документ.execCommand("InsertImage", Ложь, Диалог.ПолноеИмяФайла);
КонецЕсли;
ПоказатьРежимыКнопок();
КонецПроцедуры
Процедура КоманднаяПанельГиперссылка(Кнопка)
Гиперссылка = ЭтотОбъект.ПолучитьФорму("ВыборГиперссылки").ОткрытьМодально();
Если Гиперссылка <> Неопределено Тогда
Документ.execCommand("CreateLink", Ложь, Гиперссылка);
КонецЕсли;
ПоказатьРежимыКнопок();
КонецПроцедуры
Процедура ПоказатьРежимыКнопок()
Для каждого Кнопка Из ЭлементыФормы.КоманднаяПанель.Кнопки Цикл
Если Кнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Действие Тогда
Команда = Сред(Кнопка.Имя, 8);
Если Документ.queryCommandSupported(Команда) Тогда
Попытка
Кнопка.Пометка = Документ.queryCommandState(Команда);
Исключение
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПолеHTMLДокументаonclick(Элемент, pEvtObj)
ПоказатьРежимыКнопок();
КонецПроцедуры
Процедура ПриЗакрытии()
Для д = 0 По КоллекцияВременныхФайлов.Количество() - 1 Цикл
УдалитьФайлы(КоллекцияВременныхФайлов[д].ПолноеИмя);
КонецЦикла;
КоллекцияВременныхФайлов.Очистить();
КонецПроцедуры

View File

@ -1,257 +0,0 @@
{27,
{16,
{
{1,1,
{"ru","Двоичные данные"}
},4,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},20,0,0,0,0,0,0,
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},0,1,
{1,1,
{3,
{1,1,
{"ru","Страница1"}
},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},-1,1,1,"Страница1",1}
},1,1,0,4,
{2,4,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,262,1,1,3,0,0,4,0},
{2,29,0,1,4,0,0,8,0},0,4294967295,4,64},
{0}
},
{2,
{6ff79819-710e-4145-97cd-1618da79e3e2,2,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},1,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},10,
{1,1,
{"ru","Выгрузить в файл"}
},1,1,0,0,0,
{3,0,
{0},"",-1,-1,1,0},
{0,0,0},0,0},
{1,
{0,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВыгрузитьВФайлНажатие",
{1,"ВыгрузитьВФайлНажатие",
{1,1,
{"ru","Выгрузить в файл нажатие"}
},
{1,1,
{"ru","Выгрузить в файл нажатие"}
},
{1,1,
{"ru","Выгрузить в файл нажатие"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
}
},
{8,4,8,168,29,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,0,21},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,2,164},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,2,1},0,1,
{0,2,3},0,0,0,0,0,1,0,0},
{14,"ВыгрузитьВФайл",4294967295,0,0,0},
{0}
},
{6ff79819-710e-4145-97cd-1618da79e3e2,4,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},1,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},10,
{1,1,
{"ru","Отмена"}
},1,1,0,0,0,
{3,0,
{0},"",-1,-1,1,0},
{0,0,0},0,0},
{1,
{0,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ОтменаНажатие",
{1,"ОтменаНажатие",
{1,1,
{"ru","Отмена нажатие"}
},
{1,1,
{"ru","Отмена нажатие"}
},
{1,1,
{"ru","Отмена нажатие"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
}
},
{8,182,8,262,29,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,0,21},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,2,80},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,4,1},0,1,
{0,4,3},0,0,0,0,1,2,0,0},
{14,"Отмена",4294967295,0,0,0},
{0}
}
}
},266,37,1,0,1,4,4,1054},
{
{-1},4,
{2,
{
{2},0,0,1,"Реквизит",
{"Pattern"}
},
{
{3},0,0,1,"ИмяФайла",
{"Pattern",
{"S"}
}
}
},
{0}
},
{00000000-0000-0000-0000-000000000000,0},
{0},1,4,1,0,0,0,
{0},
{0},
{3,0,
{3,1,
{0,a6cbfd77-fcf0-40f4-a8de-ee0d3e580fe6},"",-1,-1,1,0}
},1,2,0,0,1,1}

View File

@ -1,17 +0,0 @@

Процедура ВыгрузитьВФайлНажатие(Элемент)
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогВыбора.Заголовок = "Сохранить как...";
ДиалогВыбора.Фильтр = "Все файлы (*.*)";
ДиалогВыбора.ПолноеИмяФайла = ИмяФайла;
Если ДиалогВыбора.Выбрать() Тогда
ИмяФайлаРезультата = ДиалогВыбора.ПолноеИмяФайла;
Реквизит.Записать(ИмяФайлаРезультата);
ЭтаФорма.Закрыть();
Предупреждение("Файл сохранен!", 10);
КонецЕсли;
КонецПроцедуры
Процедура ОтменаНажатие(Элемент)
Закрыть();
КонецПроцедуры

File diff suppressed because it is too large Load Diff

View File

@ -1,373 +0,0 @@
{27,
{16,
{
{1,1,
{"ru","Просмотр картинки"}
},8,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},20,0,1,
{0,4,1},0,2,
{0,4,3},
{0,7,3},0,0,
{3,1,
{3,0,
{0},"",-1,-1,1,0}
},0,1,
{1,1,
{3,
{1,1,
{"ru","Страница1"}
},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},-1,1,1,"Страница1",1}
},1,1,0,4,
{2,0,1,1,1,0,0,0,0},
{2,32,0,1,2,0,0,0,0},
{2,408,1,1,3,0,0,0,0},
{2,238,0,1,4,0,0,8,0},0,4294967295,5,64},
{0}
},
{3,
{151ef23e-6bb2-4681-83d0-35bc2217230c,4,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},15,4,0,
{3,0,
{0},"",-1,-1,1,0},
{0,0,0},1,1,0,0,
{1,0}
},
{0}
},
{8,0,32,408,199,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-47},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,1,
{0,5,0},0,0,0,0,0,0,2,0,0},
{14,"ПолеКартинки1",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,5,
{3,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},7,
{1,0},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{3,4,
{3,0,
{0},"",-1,-1,1,0}
},4},
{0}
},
{8,0,210,219,235,1,
{0,
{2,4,1,11},
{2,-1,6,0}
},
{0,
{2,5,0,25},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,5,2,219},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,5,1},0,1,
{0,5,3},0,0,0,0,1,3,0,0},
{14,"ФорматКартинки",4294967295,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,7,
{2,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},8,2,0,0,0,1,
{5,d7748099-604f-413d-ac0d-b14d0db1ba92,1,1,1,
{6,79a65da2-54c5-4661-b66f-8c372315ff95,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"СохранитьВФайл",
{1,"СохранитьВФайл",
{1,1,
{"ru","Сохранить в файл"}
},
{1,1,
{"ru","Сохранить в файл"}
},
{1,1,
{"ru","Сохранить в файл"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
},1,
{3,1,
{0,894cf65b-4109-4533-a1d7-c87b1fcc80a3},"",-1,-1,1,0}
},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,79a65da2-54c5-4661-b66f-8c372315ff95,
{8,"СохранитьВФайл",0,1,
{1,1,
{"#","Сохранить в файл"}
},0,d7748099-604f-413d-ac0d-b14d0db1ba92,1,1e2,0,3,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0}
},
{8,0,0,408,24,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,7,0,24},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,7,1},0,0,0,0,0,0,2,1,0,0},
{14,"КоманднаяПанель1",0,0,0,0},
{0}
}
}
},408,246,1,0,1,4,4,1188},
{
{0},2,
{2,
{
{0},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",f8356b47-9e97-43b8-9e70-a71a73d82751}
}
},
{
{1},0,0,1,"Реквизит",
{"Pattern",
{"S"}
}
}
},
{0}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{3,
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{70003,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриЗакрытии",
{1,"ПриЗакрытии",
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{70009,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},1,2,0,0,1,1}

View File

@ -1,33 +0,0 @@

Процедура ПриОткрытии()
Картинка = Новый Картинка(Реквизит, Истина);
ЭтаФорма.ЭлементыФормы.ФорматКартинки.Заголовок = "Тип картинки: " + Картинка.Формат();
ЭтаФорма.ЭлементыФормы.ПолеКартинки1.Картинка = Картинка;
КонецПроцедуры
Процедура СохранитьВФайл(Кнопка)
Рисунок = ЭтаФорма.ЭлементыФормы.ПолеКартинки1.Картинка;
Если ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.BMP Тогда Фильтр="BMP (*.bmp)|*.bmp"
ИначеЕсли ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.JPEG Тогда Фильтр="JPEG (*.jpg)|*.jpg"
ИначеЕсли ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.Icon Тогда Фильтр="ICO (*.ico)|*.ico"
ИначеЕсли ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.PNG Тогда Фильтр = "PNG (*.png)|*.png"
ИначеЕсли ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.GIF Тогда Фильтр = "GIF (*.gif)|*.gif"
ИначеЕсли ЭлементыФормы.ПолеКартинки1.Картинка.Формат() = ФорматКартинки.TIFF Тогда Фильтр="TIFF (*.tif)|*.tif"
Иначе Фильтр=""
КонецЕсли;
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогВыбора.Фильтр = Фильтр;
ДиалогВыбора.Заголовок = "Сохранить как...";
Если ДиалогВыбора.Выбрать() Тогда
ИмяФайлаРезультата = ДиалогВыбора.ПолноеИмяФайла;
ЭлементыФормы.ПолеКартинки1.Картинка.Записать(ИмяФайлаРезультата);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗакрытии()
Для д = 0 По КоллекцияВременныхФайлов.Количество() - 1 Цикл
УдалитьФайлы(КоллекцияВременныхФайлов[д].ПолноеИмя);
КонецЦикла;
КоллекцияВременныхФайлов.Очистить();
КонецПроцедуры

File diff suppressed because it is too large Load Diff

View File

@ -1,163 +0,0 @@
Перем Версия;
Процедура ЗаписатьНастройкиОбработки(Отказ)
Если ПрограммаDiff <> "" И НастройкаСтрокиЗапуска <> "" Тогда
ВыборDiff = Новый Структура;
ВыборDiff.Вставить("ПутьПрограммы", ПрограммаDiff);
ВыборDiff.Вставить("ИспользоватьМетки", ИспользоватьМетки);
ВыборDiff.Вставить("СтрокаЗапуска", НастройкаСтрокиЗапуска);
Иначе
ВыборDiff = Неопределено;
КонецЕсли;
Если ИспользоватьВнешнююПрограммуСравнения И ВыборDiff = Неопределено Тогда
Предупреждение("Укажите настройки внешней программы сравнения на закладке ""Настройка 3-way diff""");
Отказ = Истина;
Возврат;
КонецЕсли;
СохранитьЗначение("V8Reader|ВыборDiff", ВыборDiff);
СохранитьЗначение("V8Reader|ПроверятьАктуальнуюВерсиюПриОткрытии", ПроверятьАктуальнуюВерсиюПриОткрытии);
ЭтаФорма.ВладелецФормы.ИзменитьЗаголовокDiff();
СохранитьЗначение("V8Reader|ИспользоватьКэш", ИспользоватьКэш);
СохранитьЗначение("V8Reader|СтруктурноеСравнениеМодулей", СтруктурноеСравнениеМодулей);
СохранитьЗначение("V8Reader|ИспользоватьВнешнююПрограммуСравнения", ИспользоватьВнешнююПрограммуСравнения);
КонецПроцедуры
Процедура ОсновныеДействияФормыЗаписатьИЗакрыть(Кнопка)
Отказ = Ложь;
ЗаписатьНастройкиОбработки(Отказ);
Если НЕ Отказ Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
Процедура ОсновныеДействияФормыЗаписать(Кнопка)
ЗаписатьНастройкиОбработки(Ложь);
КонецПроцедуры
Процедура ВыборDiffНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Фильтр = "Файлы приложений (*.exe)|*.exe";
ДиалогВыбора.ПолноеИмяФайла = Элемент.Значение;
ДиалогВыбора.Заголовок = "Выберите приложение для трехуровневого сравнения файлов";
Если ДиалогВыбора.Выбрать() Тогда
ФайлDiff = Новый файл(ДиалогВыбора.ПолноеИмяФайла);
Элемент.Значение = ДиалогВыбора.ПолноеИмяФайла;
Если ФайлDiff.Имя = "kdiff3.exe" ИЛИ ФайлDiff.Имя="sgdm.exe" Тогда
ЭлементыФормы.ИспользоватьМетки.Видимость = Истина;
ИспользоватьМетки = Истина;
Иначе
ЭлементыФормы.ИспользоватьМетки.Видимость = Ложь;
ИспользоватьМетки = Ложь;
КонецЕсли;
ЗапуститьКонструкторСтрокиЗапуска(ФайлDiff);
КонецЕсли;
КонецПроцедуры
Процедура НастройкаСтрокиЗапускаНачалоВыбора(Элемент, СтандартнаяОбработка)
ВвестиСтроку(НастройкаСтрокиЗапуска, "Строка запуска программы для 3-way diff", , Истина);
КонецПроцедуры
Процедура ЗапуститьКонструкторСтрокиЗапуска(ФайлDiff)
Если ФайлDiff.Имя = "kdiff3.exe" Тогда
Если ИспользоватьМетки = Истина Тогда
НастройкаСтрокиЗапуска = """" + ФайлDiff.ПолноеИмя + """ ""%1"" -fname ""синоним%1 (первый файл)"" ""%2"" -fname ""синоним%2 (второй файл)"" ""%3"" -fname ""синоним%3 (третий файл)""";
Иначе
НастройкаСтрокиЗапуска = """" + ФайлDiff.ПолноеИмя + """ ""%1"" ""%2"" ""%3""";
КонецЕсли;
ИначеЕсли ФайлDiff.Имя = "sgdm.exe" Тогда
Если ИспользоватьМетки = Истина Тогда
НастройкаСтрокиЗапуска = """" + ФайлDiff.ПолноеИмя + """ /title1=""синоним%1 (первый файл)"" /title2=""синоним%2 (второй файл)"" /title3=""синоним%3 (третий файл)"" ""%1"" ""%2"" ""%3""";
Иначе
НастройкаСтрокиЗапуска = """" + ФайлDiff.ПолноеИмя + """ ""%1"" ""%2"" ""%3""";
КонецЕсли;
Иначе
НастройкаСтрокиЗапуска = """" + ФайлDiff.ПолноеИмя + """ ""%1"" ""%2"" ""%3""";
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
Если ВыборDiff <> Неопределено Тогда
Попытка
ЭлементыФормы.ПрограммаDiff.Значение = ВыборDiff.ПутьПрограммы;
ФайлDiff = Новый Файл(ПрограммаDiff);
Если ФайлDiff.Имя = "kdiff3.exe" ИЛИ ФайлDiff.Имя = "sgdm.exe" Тогда
ЭлементыФормы.ИспользоватьМетки.Видимость = Истина;
КонецЕсли;
ЭлементыФормы.ИспользоватьМетки.Значение = ВыборDiff.ИспользоватьМетки;
ЭлементыФормы.НастройкаСтрокиЗапуска.Значение = ВыборDiff.СтрокаЗапуска;
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура ИспользоватьМеткиПриИзменении(Элемент)
ФайлDiff = Новый Файл(ПрограммаDiff);
ЗапуститьКонструкторСтрокиЗапуска(ФайлDiff);
КонецПроцедуры
Процедура ПроверитьСейчасНажатие(Элемент) Экспорт
Попытка
ПутьКВремФайлу = ПолучитьИмяВременногоФайла();
Шел = Новый COMОбъект("WScript.Shell");
СтрокаЗапуска = "cmd /c ping -n 1 ya.ru > " + ПутьКВремФайлу;
Шел.run(СтрокаЗапуска, 0, 1);
ТекстФайла = Новый ТекстовыйДокумент;
ТекстФайла.Прочитать(ПутьКВремФайлу);
strPingResults = НРег(ТекстФайла.ПолучитьТекст());
Если Найти(strPingResults, "ttl=") >0 Тогда
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.SetClientCertificate("localhost");
WinHttp.Open("GET","https://api.github.com/repos/xDrivenDevelopment/v8reader/commits?per_page=1",0);
WinHttp.Send();
ТД = Новый ТекстовыйДокумент;
ТД.УстановитьТекст(WinHttp.ResponseText);
РегулярноеВыражениеX = Новый COMОбъект("VBScript.RegExp");
РегулярноеВыражениеX.Global = Истина;
РегулярноеВыражениеX.IgnoreCase = Истина;
РегулярноеВыражениеX.MultiLine = Истина;
РегулярноеВыражениеX.Pattern = """date"":""([^""]+)""";
Наборы = РегулярноеВыражениеX.Execute(ТД.ПолучитьТекст());
ВерсияНовая = Наборы.Item(0).SubMatches(0);
Если Дата(Лев(ВерсияНовая, 4),Сред(ВерсияНовая, 6, 2),Сред(ВерсияНовая, 9, 2)) > Дата(Версия) Тогда
ПоказатьОповещениеПользователя(, , " Обнаружена новая версия
| от " + Лев(ВерсияНовая, 10) + "
| Ссылка на страницу разработки
| находится в форме настройки.",
ЭлементыФормы.ПолеКартинки1.Картинка);
ИначеЕсли Элемент <> Неопределено Тогда
ПоказатьОповещениеПользователя(, , " Обработка V8Reader
| последней версии.
| Обновление не требуется.", ЭлементыФормы.ПолеКартинки.Картинка);
КонецЕсли;
ИначеЕсли Элемент <> Неопределено Тогда
ПоказатьОповещениеПользователя(, , " Отсутствует
| подключение к интернету.", ЭлементыФормы.ПолеКартинки1.Картинка);
КонецЕсли;
Исключение
Если Элемент <> Неопределено Тогда
ПоказатьОповещениеПользователя(, , " В Вашем программном окружении
| не поддерживается
| объект WinHttpRequest.", ЭлементыФормы.ПолеКартинки1.Картинка);
КонецЕсли;
КонецПопытки;
КонецПроцедуры
Процедура ПерейтиНаСтраницуРазработкиНажатие(Элемент)
ЗапуститьПриложение("https://github.com/xDrivenDevelopment/v8Reader");
//ЗапуститьПриложение("http://infostart.ru/public/106310/");
КонецПроцедуры
СтраницаРазработки = "http://infostart.ru/public/106310/";
Версия = "26.08.2016 23:59:59";
ЭлементыФормы.АктуальнаяВерсия.Заголовок = "V8Reader версия от " + Лев(Версия, 10) + ""

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@

Процедура РазличияДействийВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СравнениеПроцедур = ТекстовоеСравнениеВоВременныхФайлах(ВыбраннаяСтрока.ТекстПервогоЭлемента, ВыбраннаяСтрока.ТекстВторогоЭлемента);
СравнениеПроцедур.ПоказатьРазличия();
КонецПроцедуры
Процедура ДействияЭлементаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
ТекстОбработчика = Новый ТекстовыйДокумент;
ТекстОбработчика.УстановитьТекст(ВыбраннаяСтрока.ТекстСвойства);
ТекстОбработчика.Показать();
КонецПроцедуры
Процедура ТабличноеПолеСвойствВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Лев(ВыбраннаяСтрока.Значение,6) = "<elem>" Тогда
ТекстСвойства = Новый ТекстовыйДокумент;
ТекстСвойства.УстановитьТекст(ВыбраннаяСтрока.Значение);
ТекстСвойства.Показать();
КонецЕсли;
КонецПроцедуры
Процедура РазличияСвойствВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Лев(ВыбраннаяСтрока.ЗначениеПервойФормы, 6) = "<elem>" Тогда
СравнениеСвойств = ТекстовоеСравнениеВоВременныхФайлах(ВыбраннаяСтрока.ЗначениеПервойФормы, ВыбраннаяСтрока.ЗначениеВторойФормы);
СравнениеСвойств.ПоказатьРазличия();
КонецЕсли;
КонецПроцедуры

View File

@ -1,909 +0,0 @@
{27,
{16,
{
{1,1,
{"ru","Структурное сравнение модулей"}
},8,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},20,0,1,
{0,6,1},4,
{0,4,2},
{0,4,3},
{0,7,2},
{0,7,3},5,
{0,4,2},
{0,4,3},
{0,6,3},
{0,7,2},
{0,7,3},0,0,
{3,1,
{3,0,
{0},"",-1,-1,1,0}
},0,1,
{1,1,
{3,
{1,1,
{"ru","Страница1"}
},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},-1,1,1,"Страница1",1}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,621,1,1,3,0,0,8,0},
{2,292,0,1,4,0,0,8,0},0,4294967295,5,64},
{0}
},
{4,
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4,
{3,
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},7,
{1,1,
{"ru","Вывести простое сравнение модулей"}
},1,1,1,0,0,
{0,0,0},0,
{1,0},1,
{3,4,
{3,0,
{0},"",-1,-1,1,0}
},4},
{1,
{0,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВывестиПростоеСравнениеМодулей",
{1,"ВывестиПростоеСравнениеМодулей",
{1,1,
{"ru","Вывести простое сравнение модулей"}
},
{1,1,
{"ru","Вывести простое сравнение модулей"}
},
{1,1,
{"ru","Вывести простое сравнение модулей"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
}
},
{8,386,276,617,292,1,
{0,
{2,6,1,4},
{2,-1,6,0}
},
{0,
{2,4,0,16},
{2,-1,6,0}
},
{0,
{2,0,2,386},
{2,0,3,-243}
},
{0,
{2,0,2,617},
{2,0,3,-12}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,4,1},0,0,0,0,0,0,0,4,1,0},
{14,"ВывестиСравнениеФорм",4294967295,0,0,0},
{0}
},
{ea83fe3a-ac3c-4cce-8045-3dddf35b28b1,6,
{5,
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
},
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,0}
},
{14,117643277,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-14}
},
{3,3,
{-15}
},
{3,3,
{-13}
},2,2,0,0,0,0,0,1,1,
{6,2,0,
{-20},1},
{6,2,0,
{-20},1},2,0,1,
{6,
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Структура первого модуля"}
},
{1,0},
{1,0},191.9999999999998,1,-1,-1,-1,12590592,
{3,3,
{0},"",14,3,1,
{
{#base64:Qk06AwAAAAAAADoAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////////4aGhrK0tTaNYjaNYrK0tbK0tf///////////5OHdf//
/////////////////////7K0tf///////////////////////////////2ZNKZ+R
hf///////////////////7K0tf///////////////////////3FHK2ZNKWZNKWZN
KZSHdf///////////////7K1tf///4aGhrK1tcyZAMyZALK1tXFHK2ZNKWZNKWZN
KWZNKZWHdf///////////7O1tf///7O1tf///////////////3FHK2ZNKWZNKWZN
KZaIdf///////////////4aGhq6urjJopjJoprO1tbO1tf///////////2ZNKZaI
df///////////////////7O1tf///////////////////////////////5eIdf//
/////////////////////7O1tf//////////////////////////////////////
/////////////////////4aGhrO1tVzW91zW97O1tbO1tf//////////////////
/////////////////////7S1tf//////////////////////////////////////
/////////////////////7S1tf//////////////////////////////////////
/////////////////////xsx7xsx77S1tbS1tf//////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////w==}
},0},
{3,3,
{0},"",-1,-1,0,
{
{#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAsElEQVRIieWV0Q3D
IAxEz1U2gpmyU5iJna4fqSObgNpYUanUJ/EBweKMz0RIEhNZAAA5x6JrBQAUkVD4
SgJMiWFS4gaEwzeAj1jq9/FDAnL2w2LnA78UETfservPcXig9cJovfmmHuh5YeQP
G/OVEmjWvW65VUB7/cpKoojsbdewuJmt76vHr9A7QIWNRHgBgUOvCOsJfF+CWs9d
8KFQzdpyuoW/fwmFJGf+jHYBE3kC+qeX3ZnWGVQAAAAASUVORK5CYII=}
},0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"СтруктураПервогоМодуля",
{},28,0,
{1,0},
{"Pattern",
{"S"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ
OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U
bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm
rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ
XFhJtSKWz30vMgcItzCmDw==},0}
},
{-1},
{-1},
{-1}
},"СтруктураПервогоМодуля","","ТипПервый",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Структура второго модуля"}
},
{1,0},
{1,0},192,0,-1,-1,-1,12590592,
{3,3,
{0},"",11,3,1,
{
{#base64:Qk06AwAAAAAAADoAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////4aGhrK0tTaNYjaNYrK0tbK0tf///////////////5OHdf//
/////////////////7K0tf///////////////////////////////5+RhWZNKf//
/////////////////7K0tf///////////////////////////5SHdWZNKWZNKWZN
KXFHK////////////7K1tf///4aGhrK1tcyZAMyZALK1tZWHdWZNKWZNKWZNKWZN
KXFHK////////////7O1tf///7O1tf///////////////////5aIdWZNKWZNKWZN
KXFHK////////////4aGhq6urjJopjJoprO1tbO1tf///////////5aIdWZNKf//
/////////////////7O1tf///////////////////////////////////5eIdf//
/////////////////7O1tf//////////////////////////////////////////
/////////////////4aGhrO1tVzW91zW97O1tbO1tf//////////////////////
/////////////////7S1tf//////////////////////////////////////////
/////////////////7S1tf//////////////////////////////////////////
/////////////////xsx7xsx77S1tbS1tf//////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////w==}
},0},
{3,3,
{0},"",-1,-1,0,
{
{#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAsElEQVRIieWV0Q3D
IAxEz1U2gpmyU5iJna4fqSObgNpYUanUJ/EBweKMz0RIEhNZAAA5x6JrBQAUkVD4
SgJMiWFS4gaEwzeAj1jq9/FDAnL2w2LnA78UETfservPcXig9cJovfmmHuh5YeQP
G/OVEmjWvW65VUB7/cpKoojsbdewuJmt76vHr9A7QIWNRHgBgUOvCOsJfF+CWs9d
8KFQzdpyuoW/fwmFJGf+jHYBE3kC+qeX3ZnWGVQAAAAASUVORK5CYII=}
},0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"СтруктураВторогоМодуля",
{},28,0,
{1,0},
{"Pattern",
{"S"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ
OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U
bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm
rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ
XFhJtSKWz30vMgcItzCmDw==},0}
},
{-1},
{-1},
{-1}
},"СтруктураВторогоМодуля","","ТипВторой",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Текст первого модуля"}
},
{1,0},
{1,0},1e2,3,-1,-1,-1,12851200,
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"ТекстПервогоЭлемента",
{},15,0,
{1,0},
{"Pattern",
{"S"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ
OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U
bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm
rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ
XFhJtSKWz30vMgcItzCmDw==},0}
},
{-1},
{-1},
{-1}
},"ТекстПервогоЭлемента","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Текст второго модуля"}
},
{1,0},
{1,0},1e2,4,-1,-1,-1,12851200,
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"ТекстВторогоЭлемента",
{},15,0,
{1,0},
{"Pattern",
{"S"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ
OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U
bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm
rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ
XFhJtSKWz30vMgcItzCmDw==},0}
},
{-1},
{-1},
{-1}
},"ТекстВторогоЭлемента","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Сортировка"}
},
{1,0},
{1,0},1e2,5,-1,-1,-1,12851200,
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"Сортировка",
{},15,0,
{1,0},
{"Pattern",
{"S"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ
OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U
bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm
rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ
XFhJtSKWz30vMgcItzCmDw==},0}
},
{-1},
{-1},
{-1}
},"Сортировка","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{16,
{1,1,
{"ru","Есть изменения"}
},
{1,0},
{1,0},1e2,6,-1,-1,-1,12851200,
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"ЕстьИзменения",
{},15,0,
{1,0},
{"Pattern",
{"N",1,0,1}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNdY5NDsIgEIV126SXYA0JA7RlLmHceICq3bow3TWc
zIUX8Q5eQWYomLYpECbz5ud9n+OBz/f1nlDW1STO/TgOz4fg5CQkSC0h1FUgIT2I
CmVWOgo6V9d5Ky0Px4+rloIyZq9/m6eJbi0Y+CtMosCTS7ysRmZuMJDExYXyQ/Rj
NHERoUQhSpPO5DpxUU0BPZid9kpldgmVt2Z8hse+a529GwU4oHLNYJT3aJXx+npD
wKbHjvrcBlUnWF43b2QPSN7JMfwA},0}
},
{-1},
{-1},
{-1}
},"ЕстьИзменения","","",0}
}
},0,0,0,0}
},
{342cf854-134c-42bb-8af9-a2103d5d9723,
{5,0,0,1}
},
{2,
{34,e1692cc2-605b-4535-84dd-28440238746c,
{3,"СтруктурноеСравнениеМодуляВыбор",
{1,"СтруктурноеСравнениеМодуляВыбор",
{1,1,
{"ru","Структурное сравнение модуля выбор"}
},
{1,1,
{"ru","Структурное сравнение модуля выбор"}
},
{1,1,
{"ru","Структурное сравнение модуля выбор"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
},
{47,e1692cc2-605b-4535-84dd-28440238746c,
{3,"СтруктурноеСравнениеМодуляПриВыводеСтроки",
{1,"СтруктурноеСравнениеМодуляПриВыводеСтроки",
{1,1,
{"ru","Структурное сравнение модуля при выводе строки"}
},
{1,1,
{"ru","Структурное сравнение модуля при выводе строки"}
},
{1,1,
{"ru","Структурное сравнение модуля при выводе строки"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
}
},
{8,8,36,621,272,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-28},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,2,
{0,4,0},
{0,8,0},0,0,0,0,0,1,2,0,0},
{14,"СтруктурноеСравнениеМодуля",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,7,
{3,
{
{10,1,
{3,4,
{0}
},
{3,0,
{16711680}
},
{6,1,60,
{0},700,0,0,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},7,
{1,1,
{"ru","Модуль"}
},1,1,0,0,0,
{0,0,0},0,
{1,0},1,
{3,4,
{3,0,
{0},"",-1,-1,1,0}
},4},
{0}
},
{8,8,8,621,31,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,7,0,23},
{2,-1,6,0}
},
{0,
{2,0,2,8},
{2,0,3,-621}
},
{0,
{2,0,2,621},
{2,0,3,-8}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,7,1},0,0,0,0,0,0,2,1,1,0},
{14,"Модуль",4294967295,0,0,0},
{0}
},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,8,
{1,
{
{
{10,1,
{3,4,
{0}
},
{3,4,
{0}
},
{6,3,0,1},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0}
},4,
{1,1,
{"ru","Выводить только измененные"}
},1,0,1},1,0,0},
{1,
{2147483647,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ТолькоИзмененныеПриИзменении",
{1,"ТолькоИзмененныеПриИзменении",
{1,1,
{"ru","Только измененные при изменении"}
},
{1,1,
{"ru","Только измененные при изменении"}
},
{1,1,
{"ru","Только измененные при изменении"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
}
},
{8,8,276,305,292,1,
{0,
{2,6,1,4},
{2,-1,6,0}
},
{0,
{2,8,0,16},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,8,2,297},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,8,1},0,1,
{0,8,3},0,0,0,0,3,3,0,0},
{14,"ТолькоИзмененные",4294967295,0,0,0},
{0}
}
}
},629,300,1,0,1,4,4,240},
{
{1},7,
{6,
{
{1},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",f8356b47-9e97-43b8-9e70-a71a73d82751}
}
},
{
{2},1,0,1,"СтруктурноеСравнениеМодуля",
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
}
},
{
{3},0,0,1,"ПервыйМодуль",
{"Pattern",
{"S"}
}
},
{
{4},0,0,1,"ВторойМодуль",
{"Pattern",
{"S"}
}
},
{
{5},0,0,1,"Модуль",
{"Pattern",
{"S"}
}
},
{
{6},1,0,1,"ТолькоИзмененные",
{"Pattern",
{"B"}
}
}
},
{3,
{6,
{1,
{2}
}
},
{7,
{1,
{5}
}
},
{8,
{1,
{6}
}
}
}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{1,
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{3,0,
{0},"",-1,-1,1,0},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{3,0,
{3,0,
{0},"",-1,-1,1,0}
},1,2,0,0,1,1}

View File

@ -1,98 +0,0 @@

//==============================================================================================================================================
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
//==============================================================================================================================================
Процедура ПриОткрытии()
Заголовок = Заголовок + " <" + Модуль + ">";;
ТекстПервогоМодуля = Новый ТекстовыйДокумент;
ТекстПервогоМодуля.Прочитать(ПервыйМодуль);
ВремТабПервогоМодуля = ПолучитьТаблицуПроцедурМодуля(ТекстПервогоМодуля.ПолучитьТекст()).Скопировать();
ТекстВторогоМодуля = Новый ТекстовыйДокумент;
ТекстВторогоМодуля.Прочитать(ВторойМодуль);
ВремТабВторогоМодуля = ПолучитьТаблицуПроцедурМодуля(ТекстВторогоМодуля.ПолучитьТекст()).Скопировать();
ПолучитьТаблицуСтруктурногоСравнения(ВремТабПервогоМодуля, ВремТабВторогоМодуля, СтруктурноеСравнениеМодуля, ТолькоИзмененные)
КонецПроцедуры
//==============================================================================================================================================
// ОБРАБОТЧИКИ СОБЫТИЙ КНОПОК ФОРМЫ
//==============================================================================================================================================
Процедура ВывестиПростоеСравнениеМодулей(Элемент)
Если ИспользоватьВнешнююПрограммуСравнения Тогда
СтрокаЗапуска = "" + ВыборDiff.ПутьПрограммы + " " + ПервыйМодуль + " " + ВторойМодуль;
Попытка
ЗапуститьПриложение(СтрокаЗапуска);
Исключение
КонецПопытки;
Иначе
СравнениеФайлов = Новый СравнениеФайлов;
СравнениеФайлов.ПервыйФайл = ПервыйМодуль;
СравнениеФайлов.ВторойФайл = ВторойМодуль;
СравнениеФайлов.ИгнорироватьПустоеПространство = Истина;
СравнениеФайлов.УчитыватьРегистр = Истина;
СравнениеФайлов.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
СравнениеФайлов.ПоказатьРазличия();
КонецЕсли;
КонецПроцедуры
//==============================================================================================================================================
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ
//==============================================================================================================================================
Процедура СтруктурноеСравнениеМодуляВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СравнениеПроцедур = ТекстовоеСравнениеВоВременныхФайлах(ВыбраннаяСтрока.ТекстПервогоЭлемента, ВыбраннаяСтрока.ТекстВторогоЭлемента, ВыбраннаяСтрока.СтруктураПервогоМодуля, ВыбраннаяСтрока.СтруктураВторогоМодуля);
Если ИспользоватьВнешнююПрограммуСравнения Тогда
СтрокаЗапуска = "" + ВыборDiff.ПутьПрограммы + " " + СравнениеПроцедур.ПервыйФайл + " " + СравнениеПроцедур.ВторойФайл;
Попытка
ЗапуститьПриложение(СтрокаЗапуска);
Исключение
КонецПопытки;
Иначе
СравнениеПроцедур.ПоказатьРазличия();
КонецЕсли;
КонецПроцедуры
Процедура СтруктурноеСравнениеМодуляПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если ДанныеСтроки.ЕстьИзменения = 3 Тогда
ОформлениеСтроки.Ячейки.СтруктураПервогоМодуля.ОтображатьКартинку = Ложь;
ОформлениеСтроки.ЦветФона = Новый Цвет(192, 220, 192);
ИначеЕсли ДанныеСтроки.ЕстьИзменения = 2 Тогда
ОформлениеСтроки.Ячейки.СтруктураВторогоМодуля.ОтображатьКартинку = Ложь;
ОформлениеСтроки.ЦветФона = Новый Цвет(255, 228, 196);
Иначе
Если ДанныеСтроки.ЕстьИзменения = 1 Тогда
ОформлениеСтроки.ЦветФона = Новый Цвет(225, 253, 253);
КонецЕсли;
КонецЕсли;
Если ДанныеСтроки.Сортировка = "_РазделПеременных_" ИЛИ ДанныеСтроки.Сортировка = "_РазделОператоров_" Тогда
ОформлениеСтроки.Ячейки.СтруктураПервогоМодуля.ОтображатьКартинку = Ложь;
ОформлениеСтроки.Ячейки.СтруктураВторогоМодуля.ОтображатьКартинку = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ТолькоИзмененныеПриИзменении(Элемент)
КодВозврата = Вопрос("Будет переформирована таблица структурного сравнения модуля. Продолжить?", РежимДиалогаВопрос.ОКОтмена);
Если КодВозврата = КодВозвратаДиалога.ОК Тогда
СтруктурноеСравнениеМодуля.Очистить();
ПриОткрытии();
Иначе
ТолькоИзмененные = НЕ ТолькоИзмененные;
КонецЕсли;
КонецПроцедуры
//==============================================================================================================================================
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//==============================================================================================================================================

View File

@ -1,595 +0,0 @@
//==============================================================================================================================================
// ПЕРЕМЕННЫЕ МОДУЛЯ ОБЪЕКТА
//==============================================================================================================================================
Перем КоллекцияВременныхФайлов Экспорт;
Перем СоответствиеИдентификаторов Экспорт;
//==============================================================================================================================================
// ФУНКЦИИ ДЛЯ АНАЛИЗА УЗЛОВ ДОКУМЕНТА DOM, ПОЛУЧЕННОГО ИЗ ВНУТРЕННЕГО ФОРМАТА 1С из публикации http://infostart.ru/public/57431/ от tormozit
//==============================================================================================================================================
Функция СтрокаВнутрВХМЛТело(вхСтрока) Экспорт //изначально было предложено brix8x в комментариях к публикации http://infostart.ru/public/17139/
//{ Получение одной длинной строки
выхХМЛТело = СтрЗаменить(вхСтрока, СИМВОЛЫ.ПС, "#%");
выхХМЛТело = СтрЗаменить(выхХМЛТело, СИМВОЛЫ.ВК, "#%");
//}
//{ Заменяем символы, критичные для XML
// & на "&amp;"
// < на "&lt;"
// > на "&gt;"
выхХМЛТело = СтрЗаменить(выхХМЛТело, "&", "&amp;");
выхХМЛТело = СтрЗаменить(выхХМЛТело, "<", "&lt;");
выхХМЛТело = СтрЗаменить(выхХМЛТело, ">", "&gt;");
//}
//{Решаем проблему с кавычками:
выхХМЛТело = СтрЗаменить(выхХМЛТело, """""", "^$^$");
выхХМЛТело = СтрЗаменить(выхХМЛТело, """", Символы.ПС + "^$");
//}
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.УстановитьТекст(выхХМЛТело);
новХМЛТелоДок = Новый ТекстовыйДокумент;
Максимум = СтрЧислоСтрок(выхХМЛТело);
//{Обрабатываем документ построчно:
КавычкаОткрыта = Истина;
Для НомерСтроки = 1 По Максимум Цикл
КавычкаОткрыта = НЕ КавычкаОткрыта;
СтрокаДляВыводаСостояния = "Построение XML: ";
выхСтрока = ТекстДок.ПолучитьСтроку(НомерСтроки);
Если КавычкаОткрыта = Истина Тогда
//{Решаем проблему с получением модуля в управляемой форме
выхСтрока = СтрЗаменить(выхСтрока, "#%", Символы.ВК);
//}
новХМЛТелоДок.ДобавитьСтроку(выхСтрока);
Продолжить;
КонецЕсли;
//{ Замена одинарных символов
выхСтрока = СтрЗаменить(выхСтрока, ",", "</data><data>");
выхСтрока = СтрЗаменить(выхСтрока, "{", "<elem><data>");
выхСтрока = СтрЗаменить(выхСтрока, "}", "</data></elem>");
//}
новХМЛТелоДок.ДобавитьСтроку(выхСтрока);
КонецЦикла;
новХМЛТело = новХМЛТелоДок.ПолучитьТекст();
//}
//{ Восстановление кавычек
новХМЛТело = СтрЗаменить(новХМЛТело, Символы.ПС + "^$", "^$");
новХМЛТело = СтрЗаменить(новХМЛТело, "^$", """");
новХМЛТело = СтрЗаменить(новХМЛТело, "#%", "");
//}
//{ Удаление лишних блоков
новХМЛТело = СтрЗаменить(новХМЛТело, "<data><elem>", "<elem>");
новХМЛТело = СтрЗаменить(новХМЛТело, "</elem></data>", "</elem>");
//}
//{ Добавление переносов строк для удобства поиска различий
новХМЛТело = СтрЗаменить(новХМЛТело, "</elem>", "</elem>" + СИМВОЛЫ.ПС);
новХМЛТело = СтрЗаменить(новХМЛТело, "</data>", "</data>" + СИМВОЛЫ.ПС);
//}
Возврат новХМЛТело;
КонецФункции
Функция ПолучитьДокументDOMФормы(XMLСтрокаФормы) Экспорт
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(XMLСтрокаФормы);
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
Возврат ДокументDOM;
КонецФункции
//==============================================================================================================================================
// ПРОЦЕДУРЫ ПАРСИНГА МОДУЛЕЙ
//==============================================================================================================================================
Функция ПолучитьТаблицуПроцедурМодуля(ТекстМодуля) Экспорт //с определением достоверного источника затрудняюсь
ТаблицаПроцедурМодуля = Новый ТаблицаЗначений;
ТаблицаПроцедурМодуля.Колонки.Добавить("ИмяПроцедуры", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100)));
ТаблицаПроцедурМодуля.Колонки.Добавить("ТекстПроцедуры", Новый ОписаниеТипов("Строка"));
ТаблицаПроцедурМодуля.Колонки.Добавить("ВидПроцедуры", Новый ОписаниеТипов("Число"));
ТаблицаПроцедурМодуля.Колонки.Добавить("ИндексНачалаПроцедуры", Новый ОписаниеТипов("Число"));
ТаблицаПроцедурМодуля.Колонки.Добавить("ДлинаПроцедуры", Новый ОписаниеТипов("Число"));
Если ПустаяСтрока(ТекстМодуля) Тогда
Возврат ТаблицаПроцедурМодуля;
КонецЕсли;
ТекущийМодуль = Новый ТекстовыйДокумент();
ТекущийМодуль.УстановитьТекст(ТекстМодуля);
НомерСтрокиНачалаОператоров = 1;
НомерСтрокиОкончанияПеременных = ТекущийМодуль.КоличествоСтрок();
ТекстПроцедуры = "";
СписокОператоров = Новый СписокЗначений;
СписокОператоров.Добавить("процедура ", "конецпроцедуры");
СписокОператоров.Добавить("функция ", "конецфункции");
Для Каждого Оператор Из СписокОператоров Цикл
НайденоНачало = Ложь;
НайденКонец = Ложь;
ОператорНачала = Оператор.Значение;
ОператорКонца = Оператор.Представление;
ДлинаНачала = СтрДлина(ОператорНачала);
ДлинаКонца = СтрДлина(ОператорКонца);
ИндексНачалаПроцедуры = 0;
ДлинаПроцедуры = 0;
ВидПроцедуры = ?(ОператорНачала = "процедура ", 0, 1);
Для Сч = 1 По ТекущийМодуль.КоличествоСтрок() Цикл
СтрокаМодуля = ТекущийМодуль.ПолучитьСтроку(Сч);
Если НЕ НайденоНачало Тогда
ОператорСтроки = Лев(НРег(СокрЛП(СтрокаМодуля)), ДлинаНачала);
НайденоНачало = (ОператорСтроки = ОператорНачала);
Если НайденоНачало Тогда
ИндексНачалаПроцедуры = ПолучитьНомерСтрокиНачалаКомментарияПроцедуры(Сч, ТекущийМодуль, ТекстПроцедуры);
Поз = Найти(СтрокаМодуля, "(");
Если Поз = 0 Тогда
Поз = СтрДлина(СтрокаМодуля);
Иначе
Поз = Поз - 1;
КонецЕсли;
ИмяПроцедуры = СокрЛП(Сред(СтрокаМодуля, ДлинаНачала + 1, Поз - ДлинаНачала));
Если ИндексНачалаПроцедуры < НомерСтрокиОкончанияПеременных Тогда
НомерСтрокиОкончанияПеременных = ИндексНачалаПроцедуры - 1;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
Если НайденоНачало Тогда
ТекстПроцедуры = ?(ТекстПроцедуры = "", "", ТекстПроцедуры + Символы.ПС) + СтрокаМодуля;
КонецЕсли;
НайденКонец = Лев(НРег(СокрЛП(СтрокаМодуля)), ДлинаКонца) = ОператорКонца;
//Проверим, что дальше не значащий символ
Если НайденКонец
И НЕ ПустаяСтрока(Сред(СокрЛ(СтрокаМодуля), ДлинаКонца + 1, 1))
И Сред(СтрокаМодуля, ДлинаКонца + 1, 1) <> "/"
Тогда
НайденКонец = Ложь;
КонецЕсли;
Если НайденКонец Тогда
ДлинаПроцедуры = Сч - ИндексНачалаПроцедуры + 1;
Если ТекстПроцедуры <> "" Тогда
ТекстПроцедурыДляЗаписи = ТекстПроцедуры;
СвойстваПроцедуры = Новый Структура;
СвойстваПроцедуры.Вставить("ИндексНачалаПроцедуры", ИндексНачалаПроцедуры);
СвойстваПроцедуры.Вставить("ДлинаПроцедуры", ДлинаПроцедуры);
СвойстваПроцедуры.Вставить("ТекстПроцедурыДляЗаписи", ТекстПроцедурыДляЗаписи);
СвойстваПроцедуры.Вставить("ВидПроцедуры", ВидПроцедуры);
ОбработатьПроцедуру(ИмяПроцедуры, ТаблицаПроцедурМодуля, СвойстваПроцедуры);
ТекстПроцедуры = "";
КонецЕсли;
Если Сч > НомерСтрокиНачалаОператоров Тогда
НомерСтрокиНачалаОператоров = Сч + 1;
КонецЕсли;
НайденоНачало = Ложь;
КонецЕсли;
КонецЦикла;
КонецЦикла;
// Создадим модуль раздела переменных
Если НомерСтрокиНачалаОператоров <> 1 Тогда
ТекстПеременныхМодуля = Новый ТекстовыйДокумент();
Для Сч = 1 По НомерСтрокиОкончанияПеременных Цикл
СтрокаМодуля = ТекущийМодуль.ПолучитьСтроку(Сч);
ТекстПеременныхМодуля.ДобавитьСтроку(СтрокаМодуля);
КонецЦикла;
Если ТекстПеременныхМодуля.КоличествоСтрок() <> 0 Тогда
СвойстваПроцедуры = Новый Структура;
СвойстваПроцедуры.Вставить("ИндексНачалаПроцедуры", 1);
СвойстваПроцедуры.Вставить("ДлинаПроцедуры", НомерСтрокиОкончанияПеременных);
СвойстваПроцедуры.Вставить("ТекстПроцедурыДляЗаписи", ТекстПеременныхМодуля.ПолучитьТекст());
СвойстваПроцедуры.Вставить("ВидПроцедуры", 2);
ОбработатьПроцедуру("_РазделПеременных_", ТаблицаПроцедурМодуля, СвойстваПроцедуры);
КонецЕсли;
КонецЕсли;
// Создадим модуль раздела операторов
ТекстОператоровМодуля = Новый ТекстовыйДокумент();
Для Сч = НомерСтрокиНачалаОператоров По ТекущийМодуль.КоличествоСтрок() Цикл
СтрокаМодуля = ТекущийМодуль.ПолучитьСтроку(Сч);
ТекстОператоровМодуля.ДобавитьСтроку(СтрокаМодуля);
КонецЦикла;
Если ТекстОператоровМодуля.КоличествоСтрок() <> 0 Тогда
СвойстваПроцедуры = Новый Структура;
СвойстваПроцедуры.Вставить("ИндексНачалаПроцедуры", НомерСтрокиНачалаОператоров);
СвойстваПроцедуры.Вставить("ДлинаПроцедуры", ТекущийМодуль.КоличествоСтрок() - НомерСтрокиНачалаОператоров + 1);
СвойстваПроцедуры.Вставить("ТекстПроцедурыДляЗаписи", ТекстОператоровМодуля.ПолучитьТекст());
СвойстваПроцедуры.Вставить("ВидПроцедуры", 3);
ОбработатьПроцедуру("_РазделОператоров_", ТаблицаПроцедурМодуля, СвойстваПроцедуры);
КонецЕсли;
Возврат ТаблицаПроцедурМодуля;
КонецФункции
Функция ПолучитьНомерСтрокиНачалаКомментарияПроцедуры(НомерСтрокиНачалаПроцедуры, ТекущийМодуль, ТекстПроцедуры) //с определением достоверного источника затрудняюсь
Если НомерСтрокиНачалаПроцедуры = 1 Тогда
Возврат 1;
КонецЕсли;
НомерСтрокиНачалаКомментарияПроцедуры = НомерСтрокиНачалаПроцедуры;
СтрокаМодуля = ТекущийМодуль.ПолучитьСтроку(НомерСтрокиНачалаКомментарияПроцедуры - 1);
СтрокаМодуля = СокрЛ(СтрокаМодуля);
Пока Лев(СтрокаМодуля, 2) = "//"
ИЛИ Лев(СтрокаМодуля, 1) = "&" Цикл
ТекстПроцедуры = СтрокаМодуля + ?(ТекстПроцедуры = "", "", Символы.ПС + ТекстПроцедуры);
НомерСтрокиНачалаКомментарияПроцедуры = НомерСтрокиНачалаКомментарияПроцедуры - 1;
Если НомерСтрокиНачалаКомментарияПроцедуры = 1 Тогда
Прервать;
КонецЕсли;
СтрокаМодуля = ТекущийМодуль.ПолучитьСтроку(НомерСтрокиНачалаКомментарияПроцедуры - 1);
КонецЦикла;
Возврат НомерСтрокиНачалаКомментарияПроцедуры;
КонецФункции
Процедура ОбработатьПроцедуру(ИмяПроцедуры, ТаблицаПроцедурМодуля, СвойстваПроцедуры) //с определением достоверного источника затрудняюсь
ПроцедураОбъект = ТаблицаПроцедурМодуля.Добавить();
ПроцедураОбъект.ИмяПроцедуры = ИмяПроцедуры;
ПроцедураОбъект.ИндексНачалаПроцедуры = СвойстваПроцедуры.ИндексНачалаПроцедуры;
ПроцедураОбъект.ДлинаПроцедуры = СвойстваПроцедуры.ДлинаПроцедуры;
ПроцедураОбъект.ТекстПроцедуры = СвойстваПроцедуры.ТекстПроцедурыДляЗаписи;
ПроцедураОбъект.ВидПроцедуры = СвойстваПроцедуры.ВидПроцедуры;
КонецПроцедуры
Процедура ПолучитьТаблицуСтруктурногоСравнения(ВремТабПервогоМодуля, ВремТабВторогоМодуля, СтруктурноеСравнениеМодуля, ТолькоИзмененные) Экспорт
Для Каждого ТекущаяСтрока Из ВремТабПервогоМодуля Цикл
СтрокаСравнения = ВремТабВторогоМодуля.Найти(ТекущаяСтрока.ИмяПроцедуры, "ИмяПроцедуры");
Если ТолькоИзмененные = Ложь Тогда
НоваяСтрока = СтруктурноеСравнениеМодуля.Добавить();
НоваяСтрока.СтруктураПервогоМодуля = ТекущаяСтрока.ИмяПроцедуры;
НоваяСтрока.ТекстПервогоЭлемента = ТекущаяСтрока.ТекстПроцедуры;
НоваяСтрока.ТипПервый = ТекущаяСтрока.ВидПроцедуры;
НоваяСтрока.Сортировка = ТекущаяСтрока.ИмяПроцедуры;
КонецЕсли;
Если СтрокаСравнения <> Неопределено Тогда
Если ТолькоИзмененные = Истина И СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрокаСравнения.ТекстПроцедуры, " ", ""), Символы.ПС, ""), Символы.Таб, "") <> СтрЗаменить(СтрЗаменить(СтрЗаменить(ТекущаяСтрока.ТекстПроцедуры, " ", ""), Символы.ПС, ""), Символы.Таб, "") Тогда
НоваяСтрока = СтруктурноеСравнениеМодуля.Добавить();
НоваяСтрока.СтруктураПервогоМодуля = ТекущаяСтрока.ИмяПроцедуры;
НоваяСтрока.ТекстПервогоЭлемента = ТекущаяСтрока.ТекстПроцедуры;
НоваяСтрока.ТипПервый = ТекущаяСтрока.ВидПроцедуры;
НоваяСтрока.Сортировка = ТекущаяСтрока.ИмяПроцедуры;
НоваяСтрока.СтруктураВторогоМодуля = СтрокаСравнения.ИмяПроцедуры;
НоваяСтрока.ТекстВторогоЭлемента = СтрокаСравнения.ТекстПроцедуры;
НоваяСтрока.ТипВторой = СтрокаСравнения.ВидПроцедуры;
НоваяСтрока.ЕстьИзменения = 1;
ИначеЕсли ТолькоИзмененные = Ложь Тогда
НоваяСтрока.СтруктураВторогоМодуля = СтрокаСравнения.ИмяПроцедуры;
НоваяСтрока.ТекстВторогоЭлемента = СтрокаСравнения.ТекстПроцедуры;
НоваяСтрока.ТипВторой = СтрокаСравнения.ВидПроцедуры;
Если СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрокаСравнения.ТекстПроцедуры, " ", ""), Символы.ПС, ""), Символы.Таб, "") <> СтрЗаменить(СтрЗаменить(СтрЗаменить(ТекущаяСтрока.ТекстПроцедуры, " ", ""), Символы.ПС, ""), Символы.Таб, "") Тогда
НоваяСтрока.ЕстьИзменения = 1;
КонецЕсли;
КонецЕсли;
ИначеЕсли СтрокаСравнения = Неопределено Тогда
Если ТолькоИзмененные = Истина Тогда
НоваяСтрока = СтруктурноеСравнениеМодуля.Добавить();
НоваяСтрока.СтруктураПервогоМодуля = ТекущаяСтрока.ИмяПроцедуры;
НоваяСтрока.ТекстПервогоЭлемента = ТекущаяСтрока.ТекстПроцедуры;
НоваяСтрока.Сортировка = ТекущаяСтрока.ИмяПроцедуры;
НоваяСтрока.ТипПервый = ТекущаяСтрока.ВидПроцедуры;
КонецЕсли;
НоваяСтрока.СтруктураВторогоМодуля = "<Отсутствует>";
НоваяСтрока.ТекстВторогоЭлемента = "";
НоваяСтрока.ЕстьИзменения = 2;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из ВремТабВторогоМодуля Цикл
Если ВремТабПервогоМодуля.Найти(Строка.ИмяПроцедуры, "ИмяПроцедуры") = Неопределено Тогда
НоваяСтрока = СтруктурноеСравнениеМодуля.Добавить();
НоваяСтрока.СтруктураПервогоМодуля = "<Отсутствует>";
НоваяСтрока.СтруктураВторогоМодуля = Строка.ИмяПроцедуры;
НоваяСтрока.ТекстВторогоЭлемента = Строка.ТекстПроцедуры;
НоваяСтрока.ТипПервый = Строка.ВидПроцедуры;
НоваяСтрока.ТипВторой = Строка.ВидПроцедуры;
НоваяСтрока.Сортировка = Строка.ИмяПроцедуры;
НоваяСтрока.ЕстьИзменения = 3;
КонецЕсли;
КонецЦикла;
СтруктурноеСравнениеМодуля.Сортировать("ЕстьИзменения Убыв, Сортировка Возр");
////помещаем строку _РазделПеременных_ в самое начало
//СтрокаПеременных = СтруктурноеСравнениеМодуля.Найти("_РазделПеременных_", "Сортировка");
//Если СтрокаПеременных <> Неопределено Тогда
// Если СтрокаПеременных.ЕстьИзменения <> 0 Тогда
// СтруктурноеСравнениеМодуля.Сдвинуть(СтрокаПеременных, -СтруктурноеСравнениеМодуля.Индекс(СтрокаПеременных));
// ИначеЕсли ТолькоИзмененные = Ложь Тогда
// СтруктурноеСравнениеМодуля.Удалить(СтрокаПеременных);
// КонецЕсли;
//КонецЕсли;
////помещаем строку _РазделОператоров_ в самый конец
//СтрокаОператоров = СтруктурноеСравнениеМодуля.Найти("_РазделОператоров_", "Сортировка");
//Если СтрокаОператоров <> Неопределено Тогда
// Если СтрокаОператоров.ЕстьИзменения <> 0 Тогда
// Смещение = СтруктурноеСравнениеМодуля.Количество() - СтруктурноеСравнениеМодуля.Индекс(СтрокаОператоров) - 1;
// СтруктурноеСравнениеМодуля.Сдвинуть(СтрокаОператоров, Смещение);
// ИначеЕсли ТолькоИзмененные = Ложь Тогда
// СтруктурноеСравнениеМодуля.Удалить(СтрокаОператоров);
// КонецЕсли;
//КонецЕсли;
КонецПроцедуры
//==============================================================================================================================================
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
//==============================================================================================================================================
Процедура ОткрытьВПроводнике(Файл) Экспорт
SA = Новый COMОбъект("Shell.Application");
Cч = SA.Windows().Count;
SA.Explore(Файл.Путь);
Пока SA.Windows().Count = Cч Цикл
КонецЦикла;
Инд = 1;
Для Каждого Window Из SA.Windows() Цикл
Если Инд = SA.Windows().Count И Window.LocationURL = "file:///" + СтрЗаменить(СтрЗаменить(Лев(Файл.Путь, СтрДлина(Файл.Путь) - 1), "\", "/"), " ", "%20") Тогда
Window.Document.SelectItem(Файл.ПолноеИмя, 16 + 8 + 1);
КонецЕсли;
Инд = Инд + 1;
КонецЦикла;
Возврат;
КонецПроцедуры
Функция ПолучитьСтандартныйРеквизитИзВнутреннегоПредставления(ВидМетаданных) Экспорт
Если ВидМетаданных = "Справочник" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v6, v7, v8, v10, v13", "СтандартныйРеквизит.Код", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.Родитель", "СтандартныйРеквизит.Владелец", "СтандартныйРеквизит.ЭтоГруппа", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Предопределенный", "СтандартныйРеквизит.ИмяПредопределенныхДанных");
ИначеЕсли ВидМетаданных = "Документ" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v7, v8", "СтандартныйРеквизит.Номер", "СтандартныйРеквизит.Дата", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Проведен", "СтандартныйРеквизит.Движения");
ИначеЕсли ВидМетаданных = "ЖурналДокументов" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v4, v7, v100, v101, v60003", "СтандартныйРеквизит.Номер", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Проведен", "СтандартныйРеквизит.Дата", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Тип");
ИначеЕсли ВидМетаданных = "ПланВидовХарактеристик" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v4, v5, v6, v7, v8, v9, v11, v14", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Предопределенный", "СтандартныйРеквизит.Родитель", "СтандартныйРеквизит.ЭтоГруппа", "СтандартныйРеквизит.Код", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.ТипЗначения", "СтандартныйРеквизит.ИмяПредопределенныхДанных");
ИначеЕсли ВидМетаданных = "ПланСчетов" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v4, v5, v6, v7, v8, v10, v11, v12, v17, v28", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Предопределенный", "СтандартныйРеквизит.Родитель", "СтандартныйРеквизит.Код", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.Вид", "СтандартныйРеквизит.Забалансовый", "РеквизитСтандартнойТабличнойЧасти.ВидыСубконто", "СтандартныйРеквизит.Порядок", "СтандартныйРеквизит.ИмяПредопределенныхДанных");
ИначеЕсли ВидМетаданных = "ПланВидовРасчета" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v6, v8, v10, v11, v20, v30", "СтандартныйРеквизит.Код", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.ПериодДействияБазовый", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Предопределенный", "РеквизитСтандартнойТабличнойЧасти.БазовыеВидыРасчета", "СтандартныйРеквизит.ИмяПредопределенныхДанных", "РеквизитСтандартнойТабличнойЧасти.ВытесняющиеВидыРасчета", "РеквизитСтандартнойТабличнойЧасти.ВедущиеВидыРасчета");
ИначеЕсли ВидМетаданных = "РегистрСведений" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5", "СтандартныйРеквизит.Период", "СтандартныйРеквизит.Регистратор", "СтандартныйРеквизит.НомерСтроки", "СтандартныйРеквизит.Активность");
ИначеЕсли ВидМетаданных = "РегистрНакопления" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v9", "СтандартныйРеквизит.Период", "СтандартныйРеквизит.Регистратор", "СтандартныйРеквизит.НомерСтроки", "СтандартныйРеквизит.Активность", "СтандартныйРеквизит.ВидДвижения");
ИначеЕсли ВидМетаданных = "РегистрБухгалтерии" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v9, v10", "СтандартныйРеквизит.Период", "СтандартныйРеквизит.Регистратор", "СтандартныйРеквизит.НомерСтроки", "СтандартныйРеквизит.Активность", "СтандартныйРеквизит.ВидДвижения", "СтандартныйРеквизит.Счет");
ИначеЕсли ВидМетаданных = "РегистрРасчета" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v13", "СтандартныйРеквизит.Регистратор", "СтандартныйРеквизит.НомерСтроки", "СтандартныйРеквизит.ВидРасчета", "СтандартныйРеквизит.ПериодДействия", "СтандартныйРеквизит.ПериодДействияНачало", "СтандартныйРеквизит.ПериодДействияКонец", "СтандартныйРеквизит.БазовыйПериодНачало", "СтандартныйРеквизит.БазовыйПериодКонец", "СтандартныйРеквизит.Активность", "СтандартныйРеквизит.Сторно", "СтандартныйРеквизит.ПериодРегистрации");
ИначеЕсли ВидМетаданных = "БизнесПроцесс" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v7, v8, v9", "СтандартныйРеквизит.Номер", "СтандартныйРеквизит.Дата", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Завершен", "СтандартныйРеквизит.ВедущаяЗадача", "СтандартныйРеквизит.Стартован");
ИначеЕсли ВидМетаданных = "Задача" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v5, v7, v8, v9, v10", "СтандартныйРеквизит.Номер", "СтандартныйРеквизит.Дата", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.БизнесПроцесс", "СтандартныйРеквизит.ТочкаМаршрута", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.Выполнена");
ИначеЕсли ВидМетаданных = "ПланОбмена" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3, v4, v6, v9, v10, v13", "СтандартныйРеквизит.Код", "СтандартныйРеквизит.Наименование", "СтандартныйРеквизит.ПометкаУдаления", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.НомерОтправленного", "СтандартныйРеквизит.НомерПринятого", "СтандартныйРеквизит.ЭтотУзел");
ИначеЕсли ВидМетаданных = "ТабличнаяЧасть" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v3, v10", "СтандартныйРеквизит.НомерСтроки", "СтандартныйРеквизит.НомерСтроки");
ИначеЕсли ВидМетаданных = "Перечисление" Тогда
СтруктураСтандартныхРеквизитов = Новый Структура("v2, v3", "СтандартныйРеквизит.Ссылка", "СтандартныйРеквизит.Порядок");
КонецЕсли;
Возврат СтруктураСтандартныхРеквизитов;
КонецФункции
Функция ТекстовоеСравнениеВоВременныхФайлах(ПервыйТекст, ВторойТекст, ПервыйПрефикс = Неопределено, ВторойПрефикс = Неопределено) Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
ПервыйВременныйФайлРаспаковки = ПолучитьИмяВременногоФайла("txt");
ВторойВременныйФайлРаспаковки = ПолучитьИмяВременногоФайла("txt");
Если ПервыйПрефикс <> Неопределено И Найти(ПервыйПрефикс, "<Отсутствует>") = 0 Тогда
ПервыйВременныйФайлРаспаковки = Лев(ПервыйВременныйФайлРаспаковки, Найти(ПервыйВременныйФайлРаспаковки, "v8_") + 7) + ПервыйПрефикс + "_" + Прав(ПервыйВременныйФайлРаспаковки, СтрДлина(ПервыйВременныйФайлРаспаковки) - Найти(ПервыйВременныйФайлРаспаковки, "v8_") - 7);
КонецЕсли;
Если ВторойПрефикс <> Неопределено И Найти(ВторойПрефикс, "<Отсутствует>") = 0 Тогда
ВторойВременныйФайлРаспаковки = Лев(ВторойВременныйФайлРаспаковки, Найти(ВторойВременныйФайлРаспаковки, "v8_") + 7) + ВторойПрефикс + "_" + Прав(ВторойВременныйФайлРаспаковки, СтрДлина(ВторойВременныйФайлРаспаковки) - Найти(ВторойВременныйФайлРаспаковки, "v8_") - 7);
КонецЕсли;
ТекстПервогоФайла = Новый ТекстовыйДокумент;
ТекстПервогоФайла.УстановитьТекст(ПервыйТекст);
ТекстПервогоФайла.Записать(ПервыйВременныйФайлРаспаковки);
ТекстВторогоФайла = Новый ТекстовыйДокумент;
ТекстВторогоФайла.УстановитьТекст(ВторойТекст);
ТекстВторогоФайла.Записать(ВторойВременныйФайлРаспаковки);
СравнениеВременныхФайлов = Новый СравнениеФайлов;
СравнениеВременныхФайлов.ПервыйФайл = ПервыйВременныйФайлРаспаковки;
СравнениеВременныхФайлов.ВторойФайл = ВторойВременныйФайлРаспаковки;
СравнениеВременныхФайлов.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
СравнениеВременныхФайлов.УчитыватьРегистр = Истина;
СравнениеВременныхФайлов.ИгнорироватьПустоеПространство = Истина;
#Иначе
СравнениеВременныхФайлов = Неопределено;
#КонецЕсли
Возврат СравнениеВременныхФайлов;
КонецФункции
Процедура ОткрытьСравнение(ПутьФайла1, ПутьФайла2) Экспорт
СоответствиеВидовФайлов = ПостроитьСоответствиеВидовФайлов();
Файл1 = Новый Файл(ПутьФайла1);
Файл2 = Новый Файл(ПутьФайла2);
Если Файл2.Существует() Тогда
Расширение = НРег(Сред(Файл2.Расширение, 2))
ИначеЕсли Файл1.Существует() Тогда
Расширение = НРег(Сред(Файл1.Расширение, 2));
Иначе
Расширение = "";
КонецЕсли;
Если СоответствиеВидовФайлов.Получить(Расширение) <> Неопределено Тогда
Если СоответствиеВидовФайлов.Получить(Расширение) < 9 Тогда
Форм = ПолучитьФорму("Форма", , "КлючУникальности");
Форм.Открыть();
ФайлКонфигурации = ПутьФайла1;
ФайлОбновления = ПутьФайла2;
КаталогДляРаспаковкиОбновления = "";
КаталогДляРаспаковкиКонфигурации = "";
РежимСравнения = 1;
РежимВыбораОбъекта = СоответствиеВидовФайлов.Получить(Расширение);
Форм.ПростоеСравнение();
ИначеЕсли СоответствиеВидовФайлов.Получить(Расширение) = 102 Тогда
СравнитьСериализованныеMXL(ПутьФайла1, ПутьФайла2);
Иначе
СравнениеПроизвольныхФайлов(ПутьФайла1, ПутьФайла2);
КонецЕсли;
Иначе
СравнениеПроизвольныхФайлов(ПутьФайла1, ПутьФайла2);
КонецЕсли;
КонецПроцедуры
Процедура СравнениеПроизвольныхФайлов(Путь1, Путь2) Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Сравнение = Новый СравнениеФайлов;
Сравнение.ПервыйФайл = ФайлКонфигурации;
Сравнение.ВторойФайл = ФайлОбновления;
Сравнение.ИгнорироватьПустоеПространство = Истина;
Сравнение.УчитыватьРегистр = Истина;
Попытка
Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
Сравнение.ПоказатьРазличияМодально();
Исключение
Попытка
Сравнение.СпособСравнения = СпособСравненияФайлов.ТабличныйДокумент;
Сравнение.ПоказатьРазличияМодально();
Исключение
Сравнение.СпособСравнения = СпособСравненияФайлов.Двоичное;
Сравнение.ПоказатьРазличияМодально();
КонецПопытки;
КонецПопытки;
Возврат;
#КонецЕсли
КонецПроцедуры
Процедура СравнитьСериализованныеMXL(Путь1, Путь2) Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Попытка
ПервыйВременныйФайлРаспаковки = ПолучитьИмяВременногоФайла("mxl");
ВторойВременныйФайлРаспаковки = ПолучитьИмяВременногоФайла("mxl");
ЧтениеХМЛ1 = Новый ЧтениеXML;
ЧтениеХМЛ1.ОткрытьФайл(Путь1);
ТабДок1 = СериализаторXDTO.ПрочитатьXML(ЧтениеХМЛ1, Тип("ТабличныйДокумент"));
ТабДок1.Записать(ПервыйВременныйФайлРаспаковки);
ЧтениеХМЛ2 = Новый ЧтениеXML;
ЧтениеХМЛ2.ОткрытьФайл(Путь2);
ТабДок2 = СериализаторXDTO.ПрочитатьXML(ЧтениеХМЛ2, Тип("ТабличныйДокумент"));
ТабДок2.Записать(ВторойВременныйФайлРаспаковки);
СравнениеВременныхФайлов = Новый СравнениеФайлов;
СравнениеВременныхФайлов.ПервыйФайл = ПервыйВременныйФайлРаспаковки;
СравнениеВременныхФайлов.ВторойФайл = ВторойВременныйФайлРаспаковки;
СравнениеВременныхФайлов.СпособСравнения = СпособСравненияФайлов.ТабличныйДокумент;
СравнениеВременныхФайлов.УчитыватьРегистр = Истина;
СравнениеВременныхФайлов.ИгнорироватьПустоеПространство = Истина;
СравнениеВременныхФайлов.ПоказатьРазличияМодально();
Исключение
Предупреждение("Неподдерживаемый формат xml-файла");
КонецПопытки;
#КонецЕсли
КонецПроцедуры
Функция ПостроитьСоответствиеВидовФайлов() Экспорт
СоответствиеВидовФайлов = Новый Соответствие;
СоответствиеВидовФайлов.Вставить("cf", 0);
СоответствиеВидовФайлов.Вставить("cfu", 2);
СоответствиеВидовФайлов.Вставить("epf", 1);
СоответствиеВидовФайлов.Вставить("erf", 3);
СоответствиеВидовФайлов.Вставить("ssf", 4);
СоответствиеВидовФайлов.Вставить("form", 4);
СоответствиеВидовФайлов.Вставить("mxl", 100);
СоответствиеВидовФайлов.Вставить("txt", 101);
СоответствиеВидовФайлов.Вставить("xml", 102);
Возврат СоответствиеВидовФайлов;
КонецФункции
Функция Версия() Экспорт
Версия = "1.13.1";
Возврат Версия;
КонецФункции
//==============================================================================================================================================
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//==============================================================================================================================================

View File

@ -1,9 +0,0 @@
Макеты\Автозаполнение.mxl-->9d84af2e-7e98-4bd6-b8a7-cddb813852df.0
Макеты\Автозаполнение.mxl-->cfca3803-704f-4f3b-94ed-717ebfa6a7f0.0
Макеты\МакетОформленияДляСравнения.xml-->ee4742b3-8506-4205-b23d-35ba4dd3a30d.0
Макеты\МакетРасширений.mxl-->612065b8-f85d-4c98-ba3c-3425a0650549.0
Макеты\МакетСвойств.mxl-->59fc50b9-e64d-4b41-9289-fe5d4347fa44.0
Макеты\МакетСвойствУправляемойФормы.mxl-->578b42df-9f20-491a-84ee-a03a67937650.0
Макеты\МакетСтандартныхДействий.mxl-->6f680c0d-f360-4dd5-8fec-15672a87468e.0
Макеты\МакетСтруктурыКонфигурации.mxl-->730a590b-3afd-4126-a365-9b465e5dec1f.0
Макеты\СвойстваПолеВвода.mxl-->1da9808b-523e-4e19-a579-8066f1a6715b.0

View File

@ -1,47 +0,0 @@
1aee28e2-8225-463f-be46-4ad936f2b7ce-->und\1aee28e2-8225-463f-be46-4ad936f2b7ce
1aee28e2-8225-463f-be46-4ad936f2b7ce.0-->Form\ВиртуальнаяФорма
1da9808b-523e-4e19-a579-8066f1a6715b-->und\1da9808b-523e-4e19-a579-8066f1a6715b
1da9808b-523e-4e19-a579-8066f1a6715b.0-->und\1da9808b-523e-4e19-a579-8066f1a6715b.0
30e6f641-d550-403b-baa0-858779e00175.0\info-->und\30e6f641-d550-403b-baa0-858779e00175.0\info
30e6f641-d550-403b-baa0-858779e00175.0\text-->ObjectModule.bsl
578b42df-9f20-491a-84ee-a03a67937650-->und\578b42df-9f20-491a-84ee-a03a67937650
578b42df-9f20-491a-84ee-a03a67937650.0-->und\578b42df-9f20-491a-84ee-a03a67937650.0
59fc50b9-e64d-4b41-9289-fe5d4347fa44-->und\59fc50b9-e64d-4b41-9289-fe5d4347fa44
59fc50b9-e64d-4b41-9289-fe5d4347fa44.0-->und\59fc50b9-e64d-4b41-9289-fe5d4347fa44.0
612065b8-f85d-4c98-ba3c-3425a0650549-->und\612065b8-f85d-4c98-ba3c-3425a0650549
612065b8-f85d-4c98-ba3c-3425a0650549.0-->und\612065b8-f85d-4c98-ba3c-3425a0650549.0
650ef89e-0894-4269-9786-1705b436c87f-->und\650ef89e-0894-4269-9786-1705b436c87f
650ef89e-0894-4269-9786-1705b436c87f.0-->Form\НавигаторПоФайлам
6671e18d-b2bc-4a3c-a8e1-19b48690b760-->und\6671e18d-b2bc-4a3c-a8e1-19b48690b760
6671e18d-b2bc-4a3c-a8e1-19b48690b760.0-->Form\ФормаHTML
6ce41219-5366-488e-b186-5cf2a98e3a84-->und\6ce41219-5366-488e-b186-5cf2a98e3a84
6ce41219-5366-488e-b186-5cf2a98e3a84.0-->Form\ФормаСвойств
6f3ae742-09b1-4c84-a677-20ba1ad94604-->und\6f3ae742-09b1-4c84-a677-20ba1ad94604
6f3ae742-09b1-4c84-a677-20ba1ad94604.0-->Form\ФормаСтруктурногоСравненияМодуля
6f680c0d-f360-4dd5-8fec-15672a87468e-->und\6f680c0d-f360-4dd5-8fec-15672a87468e
6f680c0d-f360-4dd5-8fec-15672a87468e.0-->und\6f680c0d-f360-4dd5-8fec-15672a87468e.0
730a590b-3afd-4126-a365-9b465e5dec1f-->und\730a590b-3afd-4126-a365-9b465e5dec1f
730a590b-3afd-4126-a365-9b465e5dec1f.0-->und\730a590b-3afd-4126-a365-9b465e5dec1f.0
75c9e0a1-c061-419d-a435-a758a19ebc88-->und\75c9e0a1-c061-419d-a435-a758a19ebc88
75c9e0a1-c061-419d-a435-a758a19ebc88.0-->Form\ФормаНастройки
9911a7d8-1125-4191-aad4-dcc34d1d6d7c-->und\9911a7d8-1125-4191-aad4-dcc34d1d6d7c
9911a7d8-1125-4191-aad4-dcc34d1d6d7c.0-->Form\РазборФормы
9d84af2e-7e98-4bd6-b8a7-cddb813852df-->und\9d84af2e-7e98-4bd6-b8a7-cddb813852df
9d84af2e-7e98-4bd6-b8a7-cddb813852df.0-->und\9d84af2e-7e98-4bd6-b8a7-cddb813852df.0
a635243d-2cfb-421b-89ef-af90a9c7d16e-->und\a635243d-2cfb-421b-89ef-af90a9c7d16e
a635243d-2cfb-421b-89ef-af90a9c7d16e.0-->Form\ФормаДляРолей
a73b50b7-09a5-48f1-80d0-b4ce9f6116cb-->und\a73b50b7-09a5-48f1-80d0-b4ce9f6116cb
b027147a-d5e5-4aa0-8d6e-080042e7d2c4-->und\b027147a-d5e5-4aa0-8d6e-080042e7d2c4
b027147a-d5e5-4aa0-8d6e-080042e7d2c4.0-->Form\ФормаКартинки
beafca84-05f5-404d-a794-9066eb489c58-->und\beafca84-05f5-404d-a794-9066eb489c58
beafca84-05f5-404d-a794-9066eb489c58.0-->Form\ФормаДвоичныхДанных
cfca3803-704f-4f3b-94ed-717ebfa6a7f0-->und\cfca3803-704f-4f3b-94ed-717ebfa6a7f0
cfca3803-704f-4f3b-94ed-717ebfa6a7f0.0-->und\cfca3803-704f-4f3b-94ed-717ebfa6a7f0.0
copyinfo-->und\copyinfo
ee4742b3-8506-4205-b23d-35ba4dd3a30d-->und\ee4742b3-8506-4205-b23d-35ba4dd3a30d
ee4742b3-8506-4205-b23d-35ba4dd3a30d.0-->und\ee4742b3-8506-4205-b23d-35ba4dd3a30d.0
f74c76d8-817b-4b93-8e7a-d2c284dbc721-->und\f74c76d8-817b-4b93-8e7a-d2c284dbc721
f74c76d8-817b-4b93-8e7a-d2c284dbc721.0-->Form\Форма
root-->und\root
version-->und\version
versions-->und\versions

View File

@ -1,10 +0,0 @@
{1,
{1,
{0,
{9,
{0,
{0,0,1aee28e2-8225-463f-be46-4ad936f2b7ce},"ВиртуальнаяФорма",
{1,"ru","Виртуальная форма"},""},0,0},
{0}
}
},0}

View File

@ -1,6 +0,0 @@
{1,
{2,0,
{0,
{0,0,1da9808b-523e-4e19-a579-8066f1a6715b},"СвойстваПолеВвода",
{1,"ru","Свойства поле ввода"},""}
},0}

View File

@ -1,6 +0,0 @@
{1,
{2,0,
{0,
{0,0,578b42df-9f20-491a-84ee-a03a67937650},"МакетСвойствУправляемойФормы",
{1,"ru","Макет свойств управляемой формы"},""}
},0}

View File

@ -1,6 +0,0 @@
{1,
{2,0,
{0,
{0,0,59fc50b9-e64d-4b41-9289-fe5d4347fa44},"МакетСвойств",
{1,"ru","Макет свойств"},""}
},0}

View File

@ -1,6 +0,0 @@
{1,
{2,0,
{0,
{0,0,612065b8-f85d-4c98-ba3c-3425a0650549},"МакетРасширений",
{1,"ru","Макет расширений"},""}
},0}

View File

@ -1,10 +0,0 @@
{1,
{1,
{0,
{9,
{0,
{0,0,650ef89e-0894-4269-9786-1705b436c87f},"НавигаторПоФайлам",
{1,"ru","Навигатор по файлам"},""},0,0},
{0}
}
},0}

View File

@ -1,10 +0,0 @@
{1,
{1,
{0,
{9,
{0,
{0,0,6671e18d-b2bc-4a3c-a8e1-19b48690b760},"ФормаHTML",
{1,"ru","Форма HTML"},""},0,0},
{0}
}
},0}

View File

@ -1,10 +0,0 @@
{1,
{1,
{0,
{9,
{0,
{0,0,6ce41219-5366-488e-b186-5cf2a98e3a84},"ФормаСвойств",
{1,"ru","Форма свойств"},""},0,0},
{0}
}
},0}

View File

@ -1,10 +0,0 @@
{1,
{1,
{0,
{9,
{0,
{0,0,6f3ae742-09b1-4c84-a677-20ba1ad94604},"ФормаСтруктурногоСравненияМодуля",
{1,"ru","Форма структурного сравнения модуля"},""},0,0},
{0}
}
},0}

Some files were not shown because too many files have changed in this diff Show More