1
0
mirror of https://github.com/SergeFocus/1C-Functin-to-yEd.git synced 2024-12-12 19:06:59 +02:00

#2 Изменен README.md

This commit is contained in:
serge_focus 2016-04-21 02:22:31 +03:00
parent a99a8e31b0
commit 41cf4342a2

104
README.md
View File

@ -1,83 +1,67 @@
<<<<<<< HEAD # Обработка "Граф вызовов для модулей 1С".
# 1C-Functin-to-yEd
Обработка "Граф вызовов для модулей 1С".
=======
## Шаблон для работы правильного 1С разработчика
[![Join the chat at https://gitter.im/silverbulleters/vanessa-bootstrap](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/silverbulleters/vanessa-bootstrap?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Обработка позволяет по тексту модуля 1С 8.1/8.2 построить граф вызовов. В отличии от отчета "Анализ модуля" в АК, обработка обладает большим числом настроек и не требует загрузки всех текстов модулей в специальную базу.
* содержит выработанную и обдуманную семантически структуру каталогов Граф вызовов модуля позволяет:
* содержит необходимые утилиты для быстрого старта
текущая версия **0.2.5.4** Произвести оптимизацию числа серверных вызовов из управляемых форм 8.2.
Проследить цепочку вызовов, идущих из выбранной процедуры или наоборот, приводящих к процедуре.
Оценить степень запутанности программного кода и пр.
Обработка реализована для 8.1 и 8.2 в управляемом и обычном режиме, загрузить ее можно здесь. В версии обработки для 8.1 часть функционала недоступна.
### Порядок установки Перед использованием обработки необходимо установить программу Graphviz и выполнить настройку построения графов
Основные настройки обработки:
* прочитайте [Wiki](https://github.com/silverbulleters/vanessa-bootstrap/wiki/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0%D0%BC-1%D0%A1) Тип отчета:
* склонируйте репозиторий в любое место, чтобы изучить каждый каталог и его предназначение
* не забудьте что git под Windows нужно устанавливать с git:bash интерпретатором
#### Порядок работы 1С специалиста Общий список.
По секциям.
Управляемая форма.
Управляемая форма (только приводящие к вызову на сервер).
Тип отчета "Общий список" предназначен для простого вывода графа вызовов без каких-либо дополнительных группировок. Для остальных типов отчетов описание приведено ниже.
* как настоящий 1С специалист новую конфигурацию подключите к Хранилищу 1С (если вы разрабатываете внешнюю обработку, этот пункт можете пропустить) "По компонентам связности" - разделяет граф на независимые друг с другом части (компоненты связности). В этом случае, функции отображаются в виде дерева и для построения графа необходимо выбрать одну из компонент.
* настройте на своем CI-сервере выгрузку исходников из [Хранилища 1С](http://v8.1c.ru/overview/DeveloperGroupp.htm) в git репозиторий с помощью [Yet Another Unpack](https://github.com/silverbulleters/vanessa-unpack) - выгрузку лучше всего настроить в каталог .\src\cf Флажки в табличном поле позволяют исключать некоторые функции и процедуры из графа. Например, некоторая универсальная функция в модуле может использоваться большинством других функций и процедур, из-за этого, граф вызовов модуля может быть запутанным. Исключив несколько таких процедур и функций граф вызовов может распасться на несколько небольших компонент связности и анализ модуля значительно упростится.
* обратите внимание на проект [по исправлению артефактов 1С при выгрузке в исходники](https://github.com/pumbaEO/undiff1c/blob/master/src/undiff1c/undiff1c.py) - если вы видите странные изменения в xml файлах, значит необходимо описать пример в качестве запроса https://github.com/pumbaEO/undiff1c/issues, чтобы исключить проблемы выгрузки. Только идентификаторы" - вместо имен функций и процедур выводить идентификаторы в вершинах графа. При включенном значений вместе с картинкой открывается текстовый документ с расшифровкой имен.
* обратите внимание на наличие у вас интерпретатора python для работы с [precommit1C](https://github.com/pumbaEO/precommit1c) - конечная цель чтобы в каталоге src находились все epf файлы анаходящиеся в репозитории, только в виде исходников.
* следите за обновлением шаблона
* подпишитесь на изменения WiKi в виде RSS канала https://github.com/silverbulleters/vanessa-bootstrap/wiki.atom
обратите внимание что: Отчет по секциям.
* существует проект [gitsync](https://github.com/EvilBeaver/oscript-library/tree/develop/src/gitsync) реализованный на [oscript.io](http://oscript.io/) Под секциями понимаются части модуля разделенные комментариями вида:
* precommit1C на данный момент имеет версию как для Python, так и для **OScript** [precommit1C](https://github.com/xDrivenDevelopment/precommit1c/)
### Порядок инсталяции и обновления шаблона ////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
инсталятор и скрипт обновления представляет собой скрипт на `bash`, поэтому, необходимо выполнить следующие команды Для этого типа отчета доступны три разных способа формирования графа
Все секции - все функции и процедуры модуля группируются в кластеры по имени секции.
Обращения между секциями - выводятся сводные данные о количестве вызовов между функциями и процедурами из различных секций.
Только выбранная секция - выводится только кластер для выбранной секции. Дополнительно, можно задать вывод вызовов к функциям и процедурам секции из других секций, а также, вызовы из функций и процедур секции в другие секции.
если еще нет репозитория `git` Для отчета по секциям не доступна настройка "По компонентам связности".
```Shell Отчет по управляемым формам. (только для версии обработки под 8.2)
echo "Эти команды нужно выполнить в командной строке"
echo "для пользователей Windows используйте MSGIT:Bash (устанавливается вместе с MSGIT)"
git init ./my-new-repo
cd ./my-new-repo
curl -o bootstrap.in-up.sh -sSL https://raw.githubusercontent.com/silverbulleters/vanessa-bootstrap/master/bootstrap.in-up.sh
./bootstrap.in-up.sh
```
если репозиторий уже существует
```Shell Основное назначение этого типа отчета - отследить все вызовы из процедур и функций управляемых форм с директивой компиляции &НаКлиенте, приводящие к обращению на сервер. Эта информация может помочь провести оптимизацию числа серверных вызовов в управляемых форм.
echo "Эти команды нужно выполнить в командной строке"
echo "для пользователей Windows используйте MSGIT:Bash (устанавливается вместе с MSGIT)"
cd ./my-existing-repo
curl -o bootstrap.in-up.sh -sSL https://raw.githubusercontent.com/silverbulleters/vanessa-bootstrap/master/bootstrap.in-up.sh
./bootstrap.in-up.sh
```
обновление шаблона происходит автоматически, для этого достаточно запустить скачанный скрипт еще раз В табличном поле отображаются только функции и процедуры с директивой компиляции - &НаКлиенте.
```Shell Все функции и процедуры модуля разбиваются на кластеры, в зависимости от стоящей перед ними директивы компиляции - &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста, &НаКлиентеНаСервере. Параметр "На клиенте в одном кластере" позволяет включать или выключать группировку функций и процедур с директивой компиляции &НаКлиенте в отдельный кластер.
echo "Эти команды нужно выполнить в командной строке"
echo "для пользователей Windows используйте MSGIT:Bash (устанавливается вместе с MSGIT)"
cd ./my-existing-repo-with-download-bootstrap
echo "Обновляю BootStrap"
./bootstrap.in-up.sh
```
откуда берется `curl` вы должны понять, если изучили каталог `.\tools\Windows` - ключевое слово для понимания `choco` Кроме функций и процедур в отдельные кластеры графа могут попасть:
### Возможности доработки шаблона Функции и процедуры платформы приводящие к вызову на сервер, например - ПредопределенноеЗначение.
Серверные общие модули без флага "Клиент (управляемое приложение)".
На приведенном ниже рисунке все функции и процедуры входят в одну компоненту связности, но для этого типа отчета, группы составляются только с учетом вызовов между клиентскими функциями и процедурами. Таким образом, при включении флажка "По компонентам связности", каждая процедура будет образовывать свою группу.
* откройте issue - если вам не хватает кого-то каталога под ваши задачи Параметр "Первые вызовы на сервере" позволяет не отображать серверные процедуры и функции, которые не вызываются из клиентских. Например, на рисунке выше, при включенном параметре не отображалась бы процедура N018.
* войдите в чат Gitter - чтобы задать дополнительные вопросы
* сделайте fork, внесите изменения и выполните pull request с предлагаемыми вами изменениями (fork и pull request - это кнопки на GitHub.)
### Заметки на полях В табличном поле красным цветом выделяются процедуры и функции которые могут привести более чем к одному серверному вызову.
Ввод текста модуля.
* структура содержит адаптацию семантики каталогов для проектов на проекте Graphite от компании 1С (пример текущего каталога из проекта Graphite можно посмотреть тут https://github.com/1C-Company/dt-demo-configuration/tree/master/DemoConfDT Для построения графа необходимо в форме ввода текста скопировать содержимое анализируемого программного модуля и указать тип модуля.
* для GitFlow в Windows мы советуем использовать программу SourceTree от компании Atlassian, для GitFlow в linux следует использовать расширение git-flow для git Обычный модуль - модуль не содержащий директивы компиляции.
Управляемая форма - модуль, который должен содержать директивы компиляции.
Автоопределение - тип модуля будет определен автоматически по наличию в нем директив компиляции.
Поиск управляемых форм в конфигурации.
* для управления релизами мы используем [Семантическое версионирование](http://semver.org/lang/ru/) При выборе пункта меню "Все действия / Найти управляемые формы" открывается текстовый документ со списком всех найденных управляемых форм в конфигурации. Доступно только в управляемой форме обработки под 8.2.
>>>>>>> dc6d741d0afb9c6a3b0a8bc1d84372f14788a176