# Из Ally в 1C



# Канал: VV.Events

#### Назначение  


Реплицирует в 1С изменения по событиям графика в отдельный канал Fin2


---

#### Очередь (routing key)

Динамический (несколько ключей):

- Если payload.type='Аутсорсинг': handEvents1CFinOut, handEvents1CFinSQL, handEvents1CFinSS
- Если employeeId начинается с ГЛ: handEvents1CFinSQL, handEvents1CFinSS
- Иначе: handEvents1CFin, handEvents1CFinSQL, handEvents1CFinSS


---

#### Node-RED поток

Репликация событий


---

#### Node-RED узел

VV.Events (amqp-out)


---

#### Источник данных

- events
- user\_profile
- restaurants
- userPositions
- calendar
- change\_log
- settingTypes


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON  


```json
{
    "id":
    "updatedAt":
    "employeeId":
    "ttId":
    "roleId":
    "position":
    "hours":
    "nightHours":
    "over8Hours":
    "over10Hours":
    "lunchHours":
    "beginAt":
    "endAt":
    "type":
    "trainee":
    "major":
    "extra":
    "hourly":
    "fact":
    "operation":
    "holidayHours":
    "training":
    "medosmotr":
    "confirmed":
    "ResponsibleId":
    "ResponsibleFIO":
}
```

# Канал: VV.Events.2

#### Назначение

Реплицирует в 1С изменения по событиям графика в отдельный канал Fin2


---

#### Очередь (routing key)

handEvents1CFin2


---

#### Node-RED поток

Репликация событий


---

#### Node-RED узел

VV.Events.2 (amqp-out)


---

#### Источник данных

- events
- user\_profile
- restaurants
- userPositions
- calendar
- change\_log
- settingTypes


---

#### Когда отправляется

Регламентный запуск по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "id":
    "updatedAt":
    "employeeId":
    "ttId":
    "roleId":
    "position":
    "hours":
    "nightHours":
    "over8Hours":
    "over10Hours":
    "lunchHours":
    "beginAt":
    "endAt":
    "type":
    "trainee":
    "major":
    "extra":
    "hourly":
    "fact":
    "operation":
    "holidayHours":
    "training":
    "medosmotr":
    "confirmed":
    "ResponsibleId":
    "ResponsibleFIO":
}
```

# Канал: Freezing

#### Назначение

Передаёт в 1С события, связанные с “заморозкой” данных графика, чтобы 1С корректно учитывала фиксированное состояние при обработке


---

#### Очередь (routing key)

handFreezing1CFin


---

#### Node-RED поток

Репликация событий


---

#### Node-RED узел

Freezing (amqp-out)


---

#### Источник данных

- events
- user\_profile
- restaurants
- userPositions
- calendar
- change\_log
- settingTypes


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "id":
    "updatedAt":
    "employeeId":
    "ttId":
    "roleId":
    "position":
    "hours":
    "nightHours":
    "over8Hours":
    "over10Hours":
    "lunchHours":
    "beginAt":
    "endAt":
    "type":
    "trainee":
    "major":
    "extra":
    "hourly":
    "fact":
    "operation":
    "holidayHours":
    "training":
    "medosmotr":
    "confirmed":
    "ResponsibleId":
    "ResponsibleFIO":
}
```

# Канал: EventsHL

#### Назначение

Репликация в 1С изменений по выходам ГЛ. Передаются как обновления смен, так и удаления, чтобы 1С синхронизировала актуальное состояние по выходам ГЛ


---

#### Очередь (routing key)

handEvents1CFinHL


---

#### Node-RED поток

Репликация выходов ГЛ


---

#### Node-RED узел

EventsHL (amqp-out)


---

#### Источник данных

- events
- user\_profile
- restaurants
- userPositions
- calendar
- change\_log


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту или вручную


---

#### Структура JSON

```json
{
    "id":
    "date_update":
    "employeeId":
    "employeeFIO":
    "TeamCode":
    "TeamName":
    "RoleCode":
    "RoleName":
    "beginAt":
    "endAt":
    "type":
    "extra":
    "hours":
    "lunchHours":
    "nightHours":
    "holidayHours":
    "timezone":
    "operation":
    "ResponsibleId":
    "ResponsibleFIO":
}
```

# Канал: Absent

#### Назначение

Репликация в 1С отсутствий отклонений от смены, событий, которые не являются Смена/Тренинг/Легкий труд. Передаются актуальные отсутствия и удаленные отсутствия (как реальные удаления, так и случаи, когда отсутствие превратилось в смену/тренинг/легкий труд)


---

#### Очередь (routing key)

- scheduleDeviationsVV
- scheduleDeviationsSS


---

#### Node-RED поток

Репликация отсутствий


---

#### Node-RED узел

Absent (amqp-out)


---

#### Источник данных

- events
- user\_profile
- restaurants
- change\_log


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "tt_id":
    "fio":
    "employee_id":
    "date":
    "type":
    "comment":
    "deleted":
    "event_id":
}
```

# Канал: AbsentHL

#### Назначение

Репликация в 1С отклонений для сотрудников ГЛ с типом “ГПХ”. Передаются актуальные отсутствия и удаленные отсутствия (как реальные удаления, так и случаи, когда отсутствие превратилось в смену/тренинг/легкий труд)


---

#### Очередь (routing key)

scheduleDeviationsVVHL


---

#### Node-RED поток

Репликация отсутствий ГЛ


---

#### Node-RED узел

AbsentHL (amqp-out)


---

#### Источник данных

- events
- userEvents
- eventTypes
- user\_profile
- change\_log


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "tt_id":
    "fio":
    "employee_id":
    "date":
    "type":
    "comment":
    "deleted":
    "event_id":
}
```

# Канал: DeviationType

#### Назначение

Репликация в 1С справочника типов отсутствий/отклонений (Deviation types), чтобы 1С могла корректно интерпретировать DeviationId/Deviation из потоков отсутствий


---

#### Очередь (routing key)

DeviationType


---

#### Node-RED поток

Репликация типов отсутствий


---

#### Node-RED узел

DeviationType (amqp-out)


---

#### Источник данных

- eventTypes


---

#### Когда отправляется

Автоматически по таймеру в 1 час


---

#### Структура JSON

-

# Канал: VV.Certification

#### Назначение

Репликация в 1С изменений по аттестации для сотрудников. Есть разделение на штат/аутсорс по префиксу


---

#### Очередь (routing key)

Certification или CertificationOut:

- Если employeeId начинается с A: CertificationOut
- Иначе: Certification


---

#### Node-RED поток

Репликация наставников


---

#### Node-RED узел

VV.Certification (amqp-out)


---

#### Источник данных

- changelog
- user\_profile
- user\_profile


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

-

# Канал: VV.Mentors

#### Назначение

Репликация в 1С изменений по наставникам (привязки наставник-сотрудник). Есть разделение на штат/аутсорс по префиксу


---

#### Очередь (routing key)

Mentors или MentorsOut:

- Если employeeId начинается с A: MentorsOut
- Иначе: Mentors


---

#### Node-RED поток

Репликация наставников


---

#### Node-RED узел

VV.Mentors (amqp-out)


---

#### Источник данных

- changelog
- user\_profile
- user\_profile


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

-

# Канал: VV.Employees

#### Назначение

Репликация в 1С изменений по карточкам сотрудников ТД/ГПХ: ФИО/позиция/тип, связки наставник/помощник, а также данные по увольнению


---

#### Очередь (routing key)

- EmployeesVV
- Dismissals
- EmployeesVVSQL


---

#### Node-RED поток

Репликация сотрудников


---

#### Node-RED узел

VV.Employees (amqp-out)


---

#### Источник данных

user\_profile


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "id":
    "updatedAt":
    "employeeId":
    "employeeFIO":
    "position":
    "type":
    "assistantId":
    "assistantReason":
    "assistantFIO":
    "assistantResponsibleFIO":
    "mentorId":
    "mentorResponsibleId":
    "is_service":
    "resign":
    "resignResponsibleId":
    "resignDate":
    "resignReason":
    "resignReasonExtra":
    "resignComment":
    "resignCanReturn":
}
```

# Канал: SS.Employees

#### Назначение

Репликация в отдельный канал SS данных по сотрудникам


---

#### Очередь (routing key)

SSEmployees


---

#### Node-RED поток

Репликация сотрудников


---

#### Node-RED узел

SS.Employees (amqp-out)


---

#### Источник данных

user\_profile


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "id":
    "updatedAt":
    "employeeId":
    "employeeFIO":
    "position":
    "type":
    "assistantId":
    "assistantReason":
    "assistantFIO":
    "assistantResponsibleFIO":
    "mentorId":
    "mentorResponsibleId":
    "is_service":
    "resign":
    "resignResponsibleId":
    "resignDate":
    "resignReason":
    "resignReasonExtra":
    "resignComment":
    "resignCanReturn":
}
```

# Канал: EmployeesTT

#### Назначение

Репликация в 1С изменений по привязке сотрудник-ТТ для сотрудников типов ТД и ГПХ, добавление/удаление привязки к ТТ и изменения профиля


---

#### Очередь (routing key)

EmployeesTT


---

#### Node-RED поток

Репликация TT сотрудников


---

#### Node-RED узел

EmployeesTT (amqp-out)


---

#### Источник данных

- change\_log\_new
- change\_log
- userAddRestaurants
- user\_profile, restaurants


---

#### Когда отправляется

Автоматически по таймеру в 1 минуту


---

#### Структура JSON

```json
{
    "employeeId":
    "id_tt":
    "type":
    "position":
    "active":
    "date_update":
    "is_delete":
}
```

# Канал: Roles

#### Назначение

Репликация в 1С изменений справочника ролей-должностей


---

#### Очередь (routing key)

- RolesVV
- RolesVVSQL


---

#### Node-RED поток

Репликация ролей


---

#### Node-RED узел

Roles (amqp-out)


---

#### Источник данных

- change\_log\_new
- userPositions


---

#### Когда отправляется

Автоматически по таймеру в 10 минут


---

#### Структура JSON

-