vault backup: 2026-02-03 12:46:28

This commit is contained in:
Daniil Klimov
2026-02-03 12:46:28 +03:00
35 changed files with 22300 additions and 185 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.trash/
.trash/

View File

@@ -4,5 +4,8 @@
"obsidian-kanban",
"obsidian-icon-folder",
"obsidian-git",
"obsidian-mind-map"
"obsidian-mind-map",
"table-editor-obsidian",
"dataview",
"obsidian-tasks-plugin"
]

20876
.obsidian/plugins/dataview/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.68",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",
"authorUrl": "https://github.com/blacksmithgu",
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
"isDesktopOnly": false
}

141
.obsidian/plugins/dataview/styles.css vendored Normal file
View File

@@ -0,0 +1,141 @@
.block-language-dataview {
overflow-y: auto;
}
/*****************/
/** Table Views **/
/*****************/
/* List View Default Styling; rendered internally as a table. */
.table-view-table {
width: 100%;
}
.table-view-table > thead > tr, .table-view-table > tbody > tr {
margin-top: 1em;
margin-bottom: 1em;
text-align: left;
}
.table-view-table > tbody > tr:hover {
background-color: var(--table-row-background-hover);
}
.table-view-table > thead > tr > th {
font-weight: 700;
font-size: larger;
border-top: none;
border-left: none;
border-right: none;
border-bottom: solid;
max-width: 100%;
}
.table-view-table > tbody > tr > td {
text-align: left;
border: none;
font-weight: 400;
max-width: 100%;
}
.table-view-table ul, .table-view-table ol {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Rendered value styling for any view. */
.dataview-result-list-root-ul {
padding: 0em !important;
margin: 0em !important;
}
.dataview-result-list-ul {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Generic grouping styling. */
.dataview.result-group {
padding-left: 8px;
}
/*******************/
/** Inline Fields **/
/*******************/
.dataview.inline-field-key {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-primary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-standalone-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
/***************/
/** Task View **/
/***************/
.dataview.task-list-item, .dataview.task-list-basic-item {
margin-top: 3px;
margin-bottom: 3px;
transition: 0.4s;
}
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
background-color: var(--text-selection);
box-shadow: -40px 0 0 var(--text-selection);
cursor: pointer;
}
/*****************/
/** Error Views **/
/*****************/
div.dataview-error-box {
width: 100%;
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 4px dashed var(--background-secondary);
}
.dataview-error-message {
color: var(--text-muted);
text-align: center;
}
/*************************/
/** Additional Metadata **/
/*************************/
.dataview.small-text {
font-size: smaller;
color: var(--text-muted);
margin-left: 3px;
}
.dataview.small-text::before {
content: "(";
}
.dataview.small-text::after {
content: ")";
}

View File

@@ -6,7 +6,11 @@
"emojiStyle": "native",
"iconColor": null,
"recentlyUsedIcons": [
"🎲"
"🧑",
"📔",
"👩‍👦",
"🤢",
"LiPcCase"
],
"recentlyUsedIconsSize": 5,
"rules": [],
@@ -30,5 +34,9 @@
"debugMode": false,
"useInternalPlugins": false
},
"Своя игра.md": "🎲"
"Работа": "LiPcCase",
"Интеграция СУП": "🤢",
"Мама": "👩‍👦",
"Другое": "📔",
"Личное": "🧑"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
{
"id": "obsidian-tasks-plugin",
"name": "Tasks",
"version": "7.22.0",
"minAppVersion": "1.4.0",
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
"helpUrl": "https://publish.obsidian.md/tasks/",
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
"authorUrl": "https://github.com/obsidian-tasks-group",
"fundingUrl": "https://github.com/sponsors/claremacrae",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
{
"formatType": "normal",
"showRibbonIcon": true,
"bindEnter": true,
"bindTab": true
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.22.1",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

View File

@@ -0,0 +1,78 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code {
font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
}
.widget-icon {
width: 20px;
height: 20px;
fill: var(--text-muted);
}
.widget-icon:hover {
fill: var(--text-normal);
}
.advanced-tables-csv-export textarea {
height: 200px;
width: 100%;
}
.advanced-tables-donation {
width: 70%;
margin: 0 auto;
text-align: center;
}
.advanced-tables-donate-button {
margin: 10px;
}

28
.obsidian/types.json vendored Normal file
View File

@@ -0,0 +1,28 @@
{
"types": {
"aliases": "aliases",
"cssclasses": "multitext",
"tags": "tags",
"TQ_explain": "checkbox",
"TQ_extra_instructions": "text",
"TQ_short_mode": "checkbox",
"TQ_show_backlink": "checkbox",
"TQ_show_cancelled_date": "checkbox",
"TQ_show_created_date": "checkbox",
"TQ_show_depends_on": "checkbox",
"TQ_show_done_date": "checkbox",
"TQ_show_due_date": "checkbox",
"TQ_show_edit_button": "checkbox",
"TQ_show_id": "checkbox",
"TQ_show_on_completion": "checkbox",
"TQ_show_postpone_button": "checkbox",
"TQ_show_priority": "checkbox",
"TQ_show_recurrence_rule": "checkbox",
"TQ_show_scheduled_date": "checkbox",
"TQ_show_start_date": "checkbox",
"TQ_show_tags": "checkbox",
"TQ_show_task_count": "checkbox",
"TQ_show_tree": "checkbox",
"TQ_show_urgency": "checkbox"
}
}

View File

@@ -1,28 +1,5 @@
https://blitz.digital-home.site:443/eb4643570d60cb40ef62b5bc7c7b92c4/
```js
callTemporalService: function () {
const serviceOptions = {
// ClientData: {
// Name: this.get("Name"), // AccountId: this.get("Id") // }, OrderData: {
OrderName: this.get("Number"),
OrderDate: this.get("NrbStartDate"),
ClientId: "123-123",
ManagerProjectId: "00123036",
HeadProjectId: "00123037",
DirectorProjectId: "00123038",
OrderAmount: this.get("NrbAmountDeal"),
ProductAttribute: 1,
ProjectId: "",
OrderId: this.get("Id")
} };
ServiceHelper.callService("PresaleProjectService", "CreatePresaleProject", function (response) {
}, serviceOptions, this);
},
```
19 - 100000 (ap +)
20 - 150000 (изменение + - согласование идет) - 1 заявка
21 - 120000 () - 1 заявка (нужно перевыпуск)

View File

@@ -1,13 +0,0 @@
Есть идея продавать готовые комплекты умного дома для людей
Есть ключевая потребность, что Алиса и остальные моменты очень дорогие, так как для устройств Zigbee нужно покупать более дорогую колонку, хочется сделать более дешевый проект, чтобы люди могли купить коробочку, в которой уже все будет настроено и им пришлось бы просто подключить ее к Алисе минимальными затратами и управлять своим умным домом через колонку, приложение или настройку автоматизаций через приложение.
Главная идея купить Raspberry Pi, корпус и установить туда необходимый софт для работы
1. Нужно понять какую версию и с какими характеристиками нужно покупать Raspberry Pi для различных задач
1. Минимальный набор умного дома - Home Assistant с установленными интеграциями
2. Набор умного дома + облако - Home Assistant и Nextcloud
3. Умный дом и медиаплеер - Home Assistant + Plex + QbitTorrent
2. Нужно сделать так, чтобы люди просто покупали коробочку, делали минимальную настройку и минимальные трудозатраты и могли подключаться к своим серверам в независимости от того, где они находятся (нужно продумать как делать красивый URL для их дома, они могут сами придумывать домен для доступа к сервисами)
3. Нужно посчитать сколько примерно денег будет стоить каждый проект, который я описал в пункте 1
4. Нужно подумать возможная ли такая реализация и какие шаги должны будет выполнить пользователь для подключения коробочки и начала работы с ней, трудозатраты пользователя должны быть минимальны
5. Подключение новых устройств умного дома должно быть быстрым и не особо сложным
-----------------

View File

@@ -1,4 +1 @@
DG8QLX7WL2H58QBBNUU4PH3S
PROBA MACBOOK
DG8QLX7WL2H58QBBNUU4PH3S

View File

@@ -1,11 +0,0 @@
1. Интеграция на создание клиента
1. Какой endpoint будет использоваться на стороне СУП (ссылка)
2. Какой протокол будет использоваться при интеграции (REST или SOAP)
3. По поводу авторизации ранее договаривались кастомный header в запросе (дополнительно обсудить его название и значение)
4. Ответ по созданию клиента будет синхронным или асинхронным
5. Если в п. 4 ответ асинхронный, то нужно будет договориться по поводу интеграции СУП -> СРМ (endpoint, протокол, авторизация)
2. Интеграция на создание некоммерческого проекта
1. Какой endpoint будет использоваться на стороне СУП (ссылка)
2. Какой протокол будет использоваться при интеграции (REST или SOAP)
3. По поводу авторизации ранее договаривались кастомный header в запросе (дополнительно обсудить его название и значение)
4. Ответ по созданию некоммерческого проекта будет скорее всего асинхронным (иногда потребуется дополнительное согласование для проекта), поэтому нужно будет договориться по поводу интеграции СУП -> СРМ (endpoint, протокол, авторизация)

View File

@@ -1,26 +0,0 @@
## Взаимодействие систем
### Rabbit
### Temporal
## Примеры запросов
### Создание клиента
### Создание presale-проекта
### Ответы
У меня новые вводные, схема взаимодействия должна быть следующая:
1. Я инициирую запрос в Temporal
2. Создается активность CreatePresaleProject (Отправляется POST запрос в систему ERP)
3. Эта активность должна будет периодически (раз в 10 минут, настраиваемый диапазон запрашивать данные у другой системы)
4. Если я получаю ответ, то активность CreatePresaleProject завершается и запускается UpdateOrderInCRM
5. Если получаю какую-то ошибку, то уже завершаю активность с ошибкой
Это делаем для StartOrderOnly Worker.
Учти, что POST и GET запросы должны посылаться из Temporal
Скажи, что нужно сделать, какой план?

View File

@@ -1,11 +1,12 @@
## Статусы объектов
Заявка
- Черновик -
- На утверждении -
- На рассмотрении в ЦПРП -
- Зарегистрирована (финальный) -
- Отклонена -
- Черновик - 1
- На утверждении - 2
- На рассмотрении в ЦПРП - 3
- Зарегистрирована (финальный) - 4
- Отклонена - 5
- Отозвана - 6
Проект
- Открыт - E0001
@@ -62,14 +63,14 @@
{
    "projects": [
        {
            "projectId": "AP001", // AP ID проекта
            "applicationStatus": "...", // Id статуса заявки
            "projectStatus": "E0005" // Id статуса проекта
            "projectId": "AP001",
            "applicationStatus": "4",
            "projectStatus": "E0001"
        },
        {
            "projectId": "AP002", // AP ID проекта
            "applicationStatus": "...", // Id статуса заявки
            "projectStatus": "E0001" // Id статуса проекта
            "projectId": "AP002",
            "applicationStatus": "4",
            "projectStatus": "E0005"
        }
    ]
}
@@ -131,7 +132,7 @@
```json
{
"status": "Waiting",
"projectId": "",
"projectId": "AP001",
"errorMessage": ""
}
```
@@ -140,7 +141,7 @@
```json
{
"status": "Success",
"projectId": "123-123-124",
"projectId": "AP001",
"errorMessage": ""
}
```
@@ -149,7 +150,7 @@
```json
{
"status": "Error",
"projectId": "",
"projectId": "AP001",
"errorMessage": "Описание ошибки"
}
```

View File

@@ -0,0 +1,9 @@
1. Проставить значение настройки "NrbErpHeadProject"
2. Проставить значение настройки "NrbAsyncServiceUri"
3. Проставить значение настройки "NrbPresaleProjectServiceKey"
4. Проверить настройку "GatewayURLKey"
Секреты
1. Dev CRM `20b6702d-a3f7-4dfa-baad-640da98b727c`
2. Preprod CRM `347bf64d-8920-4de6-a0f1-654c2ab15fda`
3. Prod CRM `24b9aef3-dffb-4f9e-9c5d-fa8a9802276f`

View File

@@ -1,3 +1,10 @@
## Авторизация
Используется кастомный header `X-Erp-Integration`
Значение хранится в конфигах у системы СУП.
Для дев и прод разные значения.
При получении значения необходимо его сравнить со значением хранящимся в конфиге.
Если значения не соответствуют, то вернуть ошибку.
## Создание клиента
Используется endpoint с методом POST
@@ -8,16 +15,25 @@
```json
{
"companyId": "", // Компания
"typeId": "", // Тип заявки
"kindId": "", // Вид заявки
"name": "Альфа-Пласт",
"shortName": "Альфа-Пласт",
"managerId": "123456", // Значение ИНС (залили данные в AD и храним их в CRM. Значение без нулей в начале)
"managerId": "00123456", // Значение ИНС сотрудника
"countryCode": "RU", // Двухбуквенный код страны
"industryCode": "0015", // Код отрасли ERP
"authorId": "00123456", // Значение ИНС сотрудника
"accountId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c42"
}
```
```
"name" - Наименование клиента
"shortName" - Краткое название
"managerId" - Менеджер по продажам
"countryCode" - Страна
"industryCode" - Отрасль
"authorId" - Автор клиента в CRM
"accountId" - Id контрагента в CRM
```
### Ответ
Успешный
@@ -40,7 +56,7 @@
Используется endpoint с методом GET
Предлагаемый вариант
`api/1.0/openRequest/view?accountId={accountId}`
`api/1.0/openRequest/viewAccount?accountId={accountId}`
Главная суть метода, что мы по значению `accountId` из пункта `Создание клиента` получаем готовность создания клиента.
Клиент считается созданным, если у него заполнено поле `ClientId` (уточнить как называется в базе данных поле `Код клиента из R3`)
@@ -58,8 +74,8 @@
Создание клиента завершено
```json
{
"status": "Done",
"clientId": "123-123-123",
"status": "Success",
"clientId": "0000101202",
"errorMessage": ""
}
```

View File

@@ -0,0 +1,31 @@
## Описание ошибок
### Получение готовности проекта /viewApplication
| **Причина** | **Код статуса** | **Сообщение** |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |
| Не найден проект по указанному applicationId | 404 | Project not found or an error occurred while creating. |
| Не найден сотрудник по указанному значению ИНС в свойстве headProjectId (руководитель проекта) | 500 | projectManagerEmployee not found or an invalid ID was provided. |
| Не найден сотрудник по указанному значению ИНС в свойстве directorProjectId (директор проекта) | 500 | projectDirectorEmployee not found or an invalid ID was provided. |
| Не найден клиент по указанному коду R3 | 500 | customer not found or an invalid ID was provided. |
| У указанного клиента нет привязанного к нему менеджера по продажам, и при этом не указан явный идентификатор менеджера по продажам в свойстве managerProjectId тела | 500 | Customer does not have a sale manager, and sale manager ID was not specified in the request. |
| Не найден сотрудник по указанному значению ИНС в свойстве managerProjectId (менеджер по продажам проекта) | 500 | saleManager not found or an invalid ID was provided. |
| Произошла ошибка при регистрации проекта в SAP | 500 | SAP returned error code. Project not registered. |
| **При перевыпуске**: заявка, привязанная к ID сделки, не найдена, либо проект ещё не зарегистрирован | 500 | Project not found or not yet created. |
| **При перевыпуске**: Статус заявки не равен значению «Зарегистрирована» | 500 | Invalid request status. |
| **При перевыпуске**: не найден проект, соответствующий заявке | 500 | Error getting corresponding project. |
| **При перевыпуске**: Статус проекта не соответствует значениям «Открыт» либо «Закрыт для списания TS» | 500 | Invalid project status. |
| **При перевыпуске**: есть активная заявка на закрытие проекта | 500 | An active close request already exists for this project, meaning it cannot be reissued. |
### Создание проекта /createPresaleProject
| **Причина** | **Код статуса** | **Сообщение** |
| ----------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------- |
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |
| Нет тела запроса | 400 | No body has been provided. |
| Проект с указанным applicationId уже существует, при этом projectId не указан (повторное создание) | 400 | Cannot create project. Project with the same applicationId already exists. |
### Получение статусов заявок и проектов /getPresaleProjectsStatus
| **Причина** | **Код статуса** | **Сообщение** |
| ----------------------------------------------------------------------------------------------------- | --------------- | ------------- |
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |

View File

@@ -1,3 +0,0 @@
```
export CONFIG_FILE="configs/config.yaml
```

View File

@@ -0,0 +1,293 @@
## Исследовательский проект "Секреты здоровья: юные учёные"
### Общая информация о проекте
**Проблема:** Дети дошкольного возраста имеют поверхностные представления о здоровом образе жизни, не понимают причинно-следственные связи между своими действиями и состоянием здоровья.
**Актуальность:** Формирование осознанного отношения к своему здоровью необходимо начинать с дошкольного возраста, когда закладываются основные привычки и паттерны поведения.
**Цель проекта:** Формирование у детей осознанного отношения к здоровому образу жизни через экспериментально-исследовательскую деятельность.
**Задачи:**
- Познакомить детей с основными составляющими здорового образа жизни
- Развивать познавательную активность через экспериментирование
- Формировать умение делать выводы на основе наблюдений
- Воспитывать желание заботиться о своём здоровье
**Продолжительность:** 4 недели
**Участники:** дети 6-7 лет, воспитатели, родители
---
## Тематический план занятий
### Неделя 1. "Почему нужно мыть руки?"
#### Занятие 1. "Невидимые жители"
**Проблемная ситуация:** Почему взрослые постоянно говорят "помой руки"? Руки же чистые!
**Цель:** Показать детям необходимость соблюдения гигиены рук.
**Опыт 1: "Путешествие микробов"**
_Материалы:_ хлеб белый (3 кусочка), зип-пакеты (3 шт.), перчатки, маркер
_Ход опыта:_
1. Кусочек №1 - берём чистыми руками в перчатках, кладём в пакет (контрольный образец)
2. Кусочек №2 - трогаем немытыми руками после игры, кладём в пакет
3. Кусочек №3 - трогаем руками, вымытыми с мылом, кладём в пакет
4. Подписываем пакеты, убираем в тёплое место
5. Наблюдаем 5-7 дней
_Ожидаемый результат:_ На хлебе №2 появится плесень быстрее всего, на №3 - медленнее или не появится.
_Вывод:_ На грязных руках живут микробы, которые могут вызвать болезни.
**Опыт 2: "Как мыло борется с грязью"**
_Материалы:_ тарелки с водой (2 шт.), перец молотый, жидкое мыло, ватные палочки
_Ход опыта:_
1. Насыпаем перец на поверхность воды (это "микробы")
2. Опускаем палец в воду - ничего не происходит
3. Макаем палочку в мыло, опускаем в воду с перцем
4. Перец разбегается к краям тарелки
_Вывод:_ Мыло "отталкивает" грязь и микробов от наших рук.
**Практическая часть:** Учимся правильно мыть руки (6 этапов мытья рук по ВОЗ в игровой форме)
---
### Неделя 2. "Что происходит с нашей едой?"
#### Занятие 2. "Почему нужно жевать?"
**Проблемная ситуация:** Зачем долго жевать? Можно же быстро проглотить!
**Цель:** Показать важность тщательного пережёвывания пищи.
**Опыт 3: "Волшебная слюна"**
_Материалы:_ крекеры несладкие, секундомер, зеркала
_Ход опыта:_
1. Кладём кусочек крекера в рот, не жуём - засекаем время, когда он начнёт растворяться
2. Второй кусочек тщательно жуём - наблюдаем, как быстро он становится мягким
3. Смотрим в зеркало - какой язык становится? (влажный)
_Вывод:_ Слюна помогает переваривать пищу, а жевание делает еду мягкой и удобной для желудка.
**Опыт 4: "Путь яблока"**
_Материалы:_ яблоко, тёрка, прозрачные стаканы, вода, пакет зип-лок
_Ход опыта:_
1. Кусочек яблока - это еда во рту (целый кусок)
2. Натираем яблоко - так работают зубы
3. Кладём в пакет с водой, мнём - так работает желудок
4. Показываем, как из кашицы организм берёт полезное
_Вывод:_ Хорошо пережёванная пища легче переваривается.
**Творческая работа:** Рисуем "Путешествие яблока по организму"
---
### Неделя 3. "Зачем нужна вода и свежий воздух?"
#### Занятие 3. "Вода - помощница здоровья"
**Проблемная ситуация:** Зачем пить воду, если можно сок или компот?
**Цель:** Показать важность чистой воды для организма.
**Опыт 5: "Фильтр нашего тела"**
_Материалы:_ фильтр для кофе, воронка, стаканы, вода с землёй, чистая вода, сок, компот
_Ход опыта:_
1. Фильтруем грязную воду - она становится чище
2. Фильтруем сок - фильтр окрашивается, засоряется
3. Фильтруем чистую воду - фильтр остаётся чистым
_Объяснение:_ Наши почки работают как фильтр. Чистой воде их легче очищать, а сладкие напитки - это дополнительная работа.
_Вывод:_ Чистая вода лучше всего утоляет жажду и помогает организму.
**Опыт 6: "Растение без воды"**
_Материалы:_ 2 одинаковых растения в горшках
_Ход опыта:_
1. Одно растение поливаем регулярно
2. Второе не поливаем неделю
3. Наблюдаем и зарисовываем изменения каждый день
_Вывод:_ Без воды всё живое вянет и может погибнуть. Нашему телу тоже нужна вода.
**Практическое задание:** Ведём дневник "Сколько стаканов воды я выпил сегодня"
---
#### Занятие 4. "Чистый воздух - здоровые лёгкие"
**Проблемная ситуация:** Почему в комнате нужно открывать окна? Зимой же холодно!
**Цель:** Показать важность свежего воздуха и проветривания.
**Опыт 7: "Объём лёгких"**
_Материалы:_ воздушные шары, сантиметровая лента
_Ход опыта:_
1. Дети надувают шары одним выдохом
2. Измеряем объём шара
3. Делаем физкультминутку
4. Надуваем снова - шар больше!
_Вывод:_ Физические упражнения развивают лёгкие.
**Опыт 8: "Свежий и спёртый воздух"**
_Материалы:_ 2 банки с крышками, свеча, спички
_Ход опыта:_
1. Одну банку открываем на улице/у окна на 5 минут
2. Вторую держим закрытой в комнате
3. Зажигаем свечу, опускаем в первую банку - горит дольше
4. Опускаем во вторую - гаснет быстрее
_Вывод:_ В свежем воздухе больше кислорода, который нужен для дыхания.
**Дыхательная гимнастика:** Комплекс упражнений "Лесной воздух"
---
### Неделя 4. "Движение - это жизнь!"
#### Занятие 5. "Что происходит, когда мы двигаемся?"
**Проблемная ситуация:** Почему после бега сердце стучит быстрее?
**Цель:** Показать влияние физической активности на организм.
**Опыт 9: "Пульс до и после"**
_Материалы:_ секундомер, стетоскоп (игрушечный)
_Ход опыта:_
1. Считаем пульс в спокойном состоянии (педагог помогает найти пульс на запястье)
2. Делаем 20 приседаний
3. Снова считаем пульс
4. Отдыхаем 3 минуты, считаем снова
_Вывод:_ При движении сердце работает активнее, разгоняя кровь с кислородом по телу. Тренированное сердце быстрее восстанавливается.
**Опыт 10: "Сила мышц"**
_Материалы:_ эспандер детский или резиновая лента, таблица наблюдений
_Ход опыта:_
1. Сжимаем эспандер максимальное количество раз (считаем)
2. Каждый день тренируемся
3. Через неделю проверяем - получается больше раз!
_Вывод:_ Мышцы от тренировок становятся сильнее.
**Подвижные игры:** Эстафеты "Весёлые старты здоровья"
---
#### Занятие 6. "Сон - лучшее лекарство"
**Проблемная ситуация:** Зачем ложиться спать рано? Хочу ещё играть!
**Цель:** Показать важность полноценного сна для здоровья.
**Опыт 11: "Усталые глаза"**
_Материалы:_ мелкие картинки, таймер, таблица для фиксации результатов
_Ход опыта:_
1. Утром дети рассматривают и запоминают картинки (сколько деталей увидели за 30 сек)
2. Вечером перед сном повторяем - результат хуже
3. После выходного (когда выспались) проверяем снова - лучше!
_Вывод:_ Уставший мозг хуже работает, а сон помогает восстановиться.
**Опыт 12: "Растения тоже спят"**
_Материалы:_ растение кислица (оксалис) или мимоза стыдливая
_Ход наблюдения:_
1. Наблюдаем за растением днём - листья открыты
2. Смотрим вечером - листья закрыты
3. Делаем фото, сравниваем
_Вывод:_ Всему живому нужен отдых и сон для восстановления сил.
**Релаксация:** Упражнение "Готовимся ко сну" (дыхание, расслабление)
---
## Итоговое мероприятие (конец 4-й недели)
### Научная конференция "Мы - исследователи здоровья!"
**Формат:** Презентация результатов проекта для родителей и других групп
**Содержание:**
1. Выставка исследовательских дневников
2. Демонстрация опытов (дети показывают 2-3 самых ярких)
3. Презентация плакатов "Секреты здоровья"
4. Вручение дипломов "Юный исследователь ЗОЖ"
---
## Работа с родителями
1. **Информационный стенд:** "Простые опыты дома"
2. **Домашние задания:**
- Вести дневник питья воды
- Зарисовывать полезные продукты
- Фиксировать время сна
3. **Консультации:** "Как поддержать исследовательский интерес ребёнка"
---
## Результаты проекта
**Дети научатся:**
- Понимать необходимость гигиены, правильного питания, физической активности
- Проводить простые опыты и делать выводы
- Объяснять, почему важен ЗОЖ
- Применять знания в повседневной жизни
**Педагоги получат:**
- Методическую копилку опытов по ЗОЖ
- Опыт проектной деятельности
- Материалы для портфолио
**Родители:**
- Станут союзниками в формировании ЗОЖ
- Получат практические рекомендации

View File

@@ -0,0 +1,3 @@
```
export CONFIG_FILE="configs/config.yaml"
```

View File

@@ -1,80 +0,0 @@
## Заявка
- Черновик
- На утверждении
- На рассмотрении в ЦПРП
- Зарегистрирована (финальный)
- Отклонена
## Проект
- Открыт - 01
- Закрыт (финальный) - 02
- Приостановлен - 03
- На закрытии в ЦПРП (финальный) - 04
- На закрытии в ФС (финальный) - 05
- Аннулирован (финальный) - 06
- Закрыт для списания TS - 07
## Рассуждения
1. Когда мы получаем AP ID (Id проекта) по интеграции, то Заявка в статусе "Зарегистрирована", а проект в статусе "Открыт"
2. Мы можем посылать изменения в статусах "Зарегистрирована и Открыт" или "Зарегистрирована и Закрыт для списания TS"
3. Заявка в статусах "Черновик", "На утверждении", "На рассмотрении в ЦПРП" в CRM не хранятся, так как мы не можем получить по ним такие данные или нужно будет интегрировать статус заявки в ответ по готовности проекта.
4. Каждый день отправляем запрос по измененным данным в заявках, у которых статус "Зарегистрирована" и проект в статусе "Открыт" или "Приостановлен" или "Закрыт для списания TS".
5. Если получаем статус проекта "Закрыт" или "На закрытии в ФС" или "Аннулирован" или "На закрытии в ЦПРП", то по таким заявкам мы больше не будем отправлять данные, так как статусы проектов финальные.
6. В конечном итоге получается, что отправляются измененные данные, у которых
1. Заявка "Зарегистрирована" и Проект "Открыт"
2. Заявка "Зарегистрирована" и Проект "Приостановлен"
3. Заявка "Зарегистрирована" и Проект "Закрыт для списания TS"
4. Все измененные данные будут отправляться каждый день, пока по ним не будет получен положительный ответ, то есть будет присутствовать накопительный эффект, но как только статус проекта перейдет в финальный, то данные больше не будут посылаться в систему
## Пример запросов
```json
{
    "projects": [
        {
            "orderName": "Сделка-1", // Название проекта
            "orderDate": "2025-12-31", // Дата сделки из CRM
            "clientId": "123-123", // Код клиента
            "headProjectId": "00123123", // ИНС руководителя проекта
            "managerProjectId": "00123124", // ИНС менеджера по продажам
            "directorProjectId": "00123125", // ИНС директора проекта
            "orderAmount": 12345.67, // Сумма сделки
            "projectId": "AP001", // AP ID проекта
            "applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c43" // Id заявки в CRM
        },
        {
            "orderName": "Сделка-2", // Название проекта
            "orderDate": "2026-01-31", // Дата сделки из CRM
            "clientId": "123-124", // Код клиента
            "headProjectId": "00123123", // ИНС руководителя проекта
            "managerProjectId": "00123124", // ИНС менеджера по продажам
            "directorProjectId": "00123125", // ИНС директора проекта
            "orderAmount": 12348.67, // Сумма сделки
            "projectId": "AP002", // AP ID проекта
            "applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c44" // Id заявки в CRM
        }
    ]
}
```
## Пример ответов
```json
{
    "projects": [
        {
            "success": true, // Статус обработки (true - Успешно, false - Ошибка)
            "projectId": "AP001", // AP ID проекта
            "errorMessage": "", // Текст ошибки, если не получилось изменить
            "projectStatus": "01" // Id статуса проекта
        },
        {
            "success": false, // Статус обработки (true - Успешно, false - Ошибка)
            "projectId": "AP002", // AP ID проекта
            "errorMessage": "Нельзя менять данные в рамках текущего статуса", // Текст ошибки, если не получилось изменить
            "projectStatus": "02" // Id статуса проекта
        }
    ]
}
```