# Структура

## Общие сведения

Ссылка на страницу на сайте: [https://stankin.ru/about/structure](https://stankin.ru/about/structure).

Внешний вид страницы:

[![image-1786612803417.png](https://howto.stankin.ru/uploads/images/gallery/2026-08/scaled-1680-/image-1786612803417.png)](https://howto.stankin.ru/uploads/images/gallery/2026-08/image-1786612803417.png)

## Реализация

<p class="callout info">Структура загружается каждые сутки через комбинацию агента Битрикс на стороне сайта stankin.ru (принимающая сторона) и REST-метода на стороне corp.stankin.ru (отдающая сторона).</p>

<table id="bkmrk-%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82-%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8" style="border-collapse: collapse; width: 100%; height: 337.4375px;"><tbody><tr style="height: 29px;"><td style="width: 49.938272%; height: 29px;">**Компонент**</td><td style="width: 49.938272%; height: 29px;">**Комментарии**</td></tr><tr style="height: 202.4375px;"><td style="width: 49.938272%; height: 202.4375px;">**Агент загрузки данных**</td><td style="width: 49.938272%; height: 202.4375px;">

- **Настраивается на стороне сайта.** В [разделе агенты](https://stankin.ru/bitrix/admin/agent_list.php?lang=ru) настроен с опцией "Функция агента":  
    CronStructureService::fetchStructureFromCorp();
- Загрузка производится **раз в сутки** каждый день.
- **Просмотр журнала** по [ссылке](https://stankin.ru/bitrix/admin/event_log.php?PAGEN_1=1&SIZEN_1=20&lang=ru&set_filter=Y&adm_filter_applied=2&find=%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D1%81%20%D0%BA%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D1%82%D0%B0%D0%BB%D0%B0&find_type=audit_type_id) (в строке поиска должна быть вбита фраза: "Загрузка структуры с корпортала" и выбран пункт выпадающего списка "Событие").
- Реализация в директории: `local/agents/CronStructureService`.
- Особенности настройки агента: был добавлен `local/php_interface/init.php` с директивной включения файла автозагрузки `local/php_interface/s1/autoload.php`.

</td></tr><tr style="height: 77px;"><td style="width: 49.938272%; height: 77px;">**REST-метод**</td><td style="width: 49.938272%; height: 77px;">

- **Отрабатывает на стороне корпортала.**
- REST-метод является собственной разработкой. Реализация в директории: `local/rest/structure`.
- Техническая особенность: при получении данных через REST-метод необходимо передавать SEF-путь, указанный в компоненте, иначе ссылки на карточки руководителей не будут работать.

</td></tr><tr style="height: 29px;"><td style="width: 49.938272%; height: 29px;">**Компоненты Битрикс**</td><td style="width: 49.938272%; height: 29px;">

- **Используются для отображения информации на сайте.**
- Реализация через комплексный компонент: 
    - Родительский компонент: `local/components/stankin/structure`
    - Дерево подразделений: `local/components/stankin/departments`
    - Карточка пользователя: `local/components/stankin/employee`
- Два режима работы компонента: данные берутся из БД Битрикс или из JSON-файла. Режим отображения данных из БД задумывался для сценария, при котором у сайта своя актуальная копия данных о подразделениях и сотрудниках, получаемая из шины. Вместо этого была реализована архитектура отображения данных на основании JSON-файла, загружаемого из корпортала, который выступает таким образом в роли источника данных.

</td></tr></tbody></table>

## Ручная синхронизация

При внесении изменений в корпортале можно запустить синхронизацию в ручном режиме в [административной панели сайта](https://stankin.ru/bitrix/admin/php_command_line.php?lang=ru#authorize).

Для запуска синхронизации необходимо нажать зеленую кнопку "Выполнить". Синхронизация выполняется мгновенно.

В случае, если PHP-строка пустая, необходимо вставить следующий код и нажать кнопку "Выполнить":

```PHP
//title: Загрузка структуры с корпортала
include_once '/home/bitrix/www/local/agents/CronStructureService/CronStructureService.php';
CronStructureService::fetchStructureFromCorp();
```

## Редактирование карточек руководителей

<p class="callout info">Информация может быть отредактирована через карточку профиля или через административную панель корпортала. Здесь рассматривается вариант редактирования через карточку профиля пользователя.</p>

### Данные, выгружаемые автоматически

- ФИО
- Электронная почта
- Подразделения
- Должности

### Данные для ручного заполнения

#### Поиск пользователя

В верхней панели нажать на кнопку поиска (значок лупы):

[![image-1786611975106.png](https://howto.stankin.ru/uploads/images/gallery/2026-08/scaled-1680-/image-1786611975106.png)](https://howto.stankin.ru/uploads/images/gallery/2026-08/image-1786611975106.png)

Откроется строка поиска:

[![image-1786612015073.png](https://howto.stankin.ru/uploads/images/gallery/2026-08/scaled-1680-/image-1786612015073.png)](https://howto.stankin.ru/uploads/images/gallery/2026-08/image-1786612015073.png)

Необходимо вбить имя сотрудника и перейти в карточку его профиля.

#### Перечень полей

- Контактные данные 
    - Телефоны (поля "Рабочий", "Внутренний телефон", "Внутр. телефон")
    - Адрес
- Фото
- Биография
- Научная деятельность
- Общественная деятельность
- Образование
- Награды

## Обновление телефонов на корп. портале

#### Файл "Телефонный справочник.xlsx"

Актуальный файл со всеми телефонами лежит на диске битрикса - [https://corp.stankin.ru/bitrix/tools/disk/focus.php?objectId=205726&amp;cmd=show&amp;action=showObjectInGrid&amp;ncc=1](https://corp.stankin.ru/bitrix/tools/disk/focus.php?objectId=205726&cmd=show&action=showObjectInGrid&ncc=1)

Также найти файл можно просто поиском в диске:

[![image-1791986577067.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791986577067.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791986577067.png)

Чтобы изменить его содержимое необходимо его скачать, внести изменения, а затем загрузить его заново <span style="color: #ff3939;">**с заменой файла!!! (Чтобы id файла не изменился)**</span>

[![image-1791986429609.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791986429609.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791986429609.png)

[![image-1791986465373.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791986465373.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791986465373.png)

Если все хорошо, то должно быть следующее:

[![image-1791986485122.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791986485122.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791986485122.png)

Далее жмем "Закрыть".

#### Изменения в файле "Телефонный справочник.xlsx"

Номера телефонов необходимо приводить к нужному формату. Для рабочих: "+7 (499) ХХХ-ХХ-ХХ", для внутренних: "Х-ХХ". Если у сотрудника несколько рабочих телефонов (максимум 3 штуки) или внутренних, то необходимо их писать в одной ячейке через разделитель ", " (запятая и пробел). Например:

[![image-1791987165847.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791987165847.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791987165847.png)

Если какого-то телефона нет у сотрудника, то ячейку оставить пустой.

<p class="callout warning">Обязательно у сотрудников необходимо заполнять столбцы "Сотрудник" и "Подразделение", так как это составной ключ для скрипта при поиске сотрудника в корп. портале. Иначе изменения не вступят в силу!</p>

#### Обновление телефонов на корп портале:

1\) После загрузки файла, необходимо запустить скрипт синхронизации телефонов по ссылке (необходимо просто дождаться загрузки страницы. Сама страница - просто белый фон):  
[https://corp.stankin.ru/local/agents/CronPhonebookService/CronPhonebookService.php](https://corp.stankin.ru/local/agents/CronPhonebookService/CronPhonebookService.php)

2\) Удостовериться, что скрипт сработал. Для этого проверить необходимые карточки сотрудников в битриксе (на примере ректора):

[![image-1791986987498.png](https://howto.stankin.ru/uploads/images/gallery/2026-10/scaled-1680-/image-1791986987498.png)](https://howto.stankin.ru/uploads/images/gallery/2026-10/image-1791986987498.png)