> For the complete documentation index, see [llms.txt](https://endpoint-docs.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://endpoint-docs.gitbook.io/docs/main.md).

# ОИТ

## 1. [Стандарты написания кода для локальных разработок (бизнес-процессы, локальные приложения, модификации init.php, бот и т.д.)](#locals_dev)

***

## 2. [Требования к локальным приложениям. Инструкция по индексированию и коммиту изменений в GitHub](#github_inst)

***

## 3. [Разработка REST-приложений для Маркетплейса](#rest_market)

## Стандарты написания кода для локальных разработок (бизнес-процессы, локальные приложения, модификации init.php, бот и т.д.) <a href="#locals_dev" id="locals_dev"></a>

1. Желательно для создания локальной разработки использовать тестовый Битрикс.
2. В корне обоих Битриксов находится файл constants.php. Он содержит в себе используемые приложениями и бизнес-процессами константы – номера инфоблоков, свойств инфоблоков и т.д. Для формирования данного файла можно использовать приложение Property downloader (<https://dev.vestrus.ru/marketplace/app/235/> и <https://gkyw.ru/marketplace/app/96/>).
3. В коде локальных разработок все числовые, символьные, строковые обозначения свойств инфоблоков, пользовательских полей и т.д. должны быть заменены на соответствующие имена констант из constants.php так, как это сделано в приложении Мои данные.
4. Все инфоблоки, создаваемые на боевом Битриксе, должны так же создаваться на тестовом. То же самое касается пользовательских свойств, стадий CRM и т.д.

## Требования к локальным приложениям. Инструкция по индексированию и коммиту изменений в GitHub <a href="#github_inst" id="github_inst"></a>

Для каждого приложения организован 1 глобальный репозиторий и 2 локальных (тестовый и боевой).

После внесения изменений в локальный репозиторий на тестовом сервере должна осуществляться их отправка в глобальный репозиторий, а затем подтягивание изменений в локальный репозиторий боевого сервера.

Для разрешения конфликтов слияния можно использовать редактор Visual Studio Code.

После внесения рабочих изменений на боевой б24 необходимо делать коммит с подтверждением этих изменений. В названии коммита должна содержаться подстрока «**(боевой)**». В свою очередь коммиты на тестовом должны содержать подстроку «**(тестовый)**».

## Алгоритм работы

1. Подтягивание актуального состояния приложения с глобального репозитория в локальный тестовый репозиторий.
2. Внесение изменений в код на тестовом б24.
3. Создание коммита с подстрокой «**(тестовый)**» в названии и отправка изменений в глобальный репозиторий.
4. Подтягивание изменений в локальный боевой репозиторий, создание коммита с подстрокой «**(боевой)**» и отправка его в глобальный репозиторий.

> **Примечание:**\
> В случае, если изменения вносятся сразу на боевом сервере, необходимо так же делать соответствующий коммит.\
> Подключение к локальным репозиториям осуществляется по ssh.

Папка на сервер (локальные репозитории): `/home/bitrix/www/marketplace/appFot`

## Внесение изменений в репозиторий по SSH

Осуществляется по следующему алгоритму:

1. Производится авторизация в Б24 (боевом или тестовом) по SSH через терминал (Putty, инструментарий VS Code либо ее форков, иные инструменты). Данные SSH-подключений находятся в CRM Пароли боевого Б24 и выдаются руководителем отдела.
2. Переход в каталог с локальным репозиторием приложения.\
   Например, для Моих данных:

```
cd /home/bitrix/www/marketplace/appFot
```

3. Проверка статуса репозитория

Перед внесением изменений проверьте текущий статус репозитория:

```bash
git status
```

Пример вывода:

```
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   index.html

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        new-file.js

no changes added to commit (use "git add" and/or "git commit -a")
```

4. Индексирование изменений

После внесения изменений в файлы необходимо добавить их в индекс:

Добавление всех измененных файлов:

```bash
git add .
```

Добавление конкретного файла или папки:

```bash
git add путь/к/файлу.расширение
git add src/components/
```

5. Создание коммита

После индексирования изменений создайте коммит с информативным сообщением:

```bash
# Для тестовой среды
git commit -m "[FIX-123] Исправлена ошибка в форме авторизации (тестовый)"

# Для боевой среды
git commit -m "[FEATURE-456] Добавлена функция экспорта в PDF (боевой)"
```

6. Отправка изменений в глобальный репозиторий

После создания коммита отправьте изменения в глобальный репозиторий:

```bash
git push origin main
```

Пример успешного push:

```
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 324 bytes | 324.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:username/repo.git
   a1b2c3d..e4f5g6h  main -> main
```

## Подтягивание изменений с глобального репозитория

```bash
git pull origin 
```

## Доступ Github

Данные от Гита находятся в CRM Пароли боевого Б24 и выдаются руководителем отдела.

## Разработка REST-приложений для Маркетплейса <a href="#rest_market" id="rest_market"></a>

## Основная информация о процессе разработки

1. Разработка тиражных REST-приложений ведется на облачном портале компании. Регистрация разработчиков осуществляется руководителем отдела.
2. Файлы приложений располагаются на отдельном хостинге. Данные от хостинга находятся в CRM Пароли боевого Б24 и выдаются руководителем отдела.
3. После того, как приложение проходит тестирование, оно размещается в кабинете разработчика Б24 и отправляется на модерацию. Данные от кабинета разработчика находятся в CRM Пароли и выдаются руководителем отдела.

## Дополнительные ресурсы

* [Документация по REST API Битрикс24](https://dev.1c-bitrix.ru/rest_help/)
* [Marketplace Битрикс24](https://www.bitrix24.ru/apps/)
