eppk-form/IT-INSTRUCTION.md

213 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Инструкция для IT-отдела: Настройка системы сбора данных ЕППК
## Цель
Автоматизация сбора данных Единого плана повышения квалификации (ЕППК) и отчётов по бюджету обучений с филиалов Казахтелеком.
## Требования
### Google Workspace
- Корпоративный аккаунт Google Workspace
- Доступ к созданию форм и таблиц
- Доступ к Google Apps Script
### Пользователи
- 21 филиал + Центральный аппарат
- Каждый филиал заполняет форму через корпоративный email
---
## Шаг 1: Создание Google Формы
### Структура формы
**Название:** Сбор данных ЕППК — Казахтелеком
**Поля формы:**
| Поле | Тип | Обязательное | Варианты |
|------|-----|--------------|----------|
| Филиал | Выпадающий список | Да | Список филиалов (см. ниже) |
| Тип отчёта | Выпадающий список | Да | Бюджет (ежемесячно) / ЕППК (годовой) |
| Период | Выпадающий список | Да | Январь, Февраль, Март, ..., Декабрь |
| Год | Выпадающий список | Да | 2025, 2026 |
| Бюджет обучений (тенге) | Число | Да | - |
| Бюджет командировок (тенге) | Число | Да | - |
| Запланировано обучений | Число | Нет | - |
| Прошло обучений | Число | Нет | - |
| Комментарий | Текст | Нет | - |
### Список филиалов для выпадающего списка
```
Астана
Алматы
Шымкент
Атырау
Актобе
Караганда
Павлодар
Петропавловск
Костанай
Туркестан
Усть-Каменогорск
Уральск
Семей
Кызылорда
Тараз
Жезказган
Экибастуз
Темиртау
Балхаш
Турксиб
ЦА (Центральный аппарат)
```
### Настройки формы
1. **Ограничение доступа:** Только сотрудники корпоративного аккаунта
2. **Сбор email:** Включить автоматический сбор email заполнителя
3. **Одна отправка на email:** Запретить повторные отправки (опционально)
4. **Показывать.progress bar:** Включить
---
## Шаг 2: Настройка Google Таблицы
### Автоматическое создание таблицы
При создании формы нажмите "Создать таблицу" — данные будут поступать автоматически.
### Дополнительные колонки (формулы)
Добавьте в таблицу вычисляемые колонки:
| Колонка | Формула | Описание |
|---------|---------|----------|
| Статус | `=IF(E2>0,"Сдано","Ожидает")` | Автоматический статус |
| % выполнения | `=IF(D2>0,E2/D2*100,0)` | Процент выполнения плана |
| Разница бюджета | `=F2-G2` | Разница между обучением и командировками |
---
## Шаг 3: Настройка автоматических напоминаний
### Google Apps Script для напоминаний
Создайте новый скрипт: **Расширения → Apps Script**
```javascript
// Конфигурация
const SHEET_NAME = "Ответы формы";
const EMAIL_COLUMN = 2; // Столбец с email (B)
const STATUS_COLUMN = 10; // Столбец со статусом (J)
const DEADLINE_DAY = 25; // День дедлайна (25-е число)
function sendReminders() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
const data = sheet.getDataRange().getValues();
const today = new Date();
const currentDay = today.getDate();
// Проверяем, не наступил ли дедлайн (25-е число)
if (currentDay < DEADLINE_DAY) {
Logger.log("Дедлайн ещё не наступил. Текущий день: " + currentDay);
return;
}
// Собираем email филиалов, которые ещё не сдали
const pendingEmails = [];
for (let i = 1; i < data.length; i++) {
const email = data[i][EMAIL_COLUMN - 1];
const status = data[i][STATUS_COLUMN - 1];
if (email && status !== "Сдано") {
pendingEmails.push(email);
}
}
if (pendingEmails.length === 0) {
Logger.log("Все филиалы сдали отчёт!");
return;
}
// Формируем письмо
const subject = "Напоминание: сдача отчёта по ЕППК";
const body = `
Уважаемые коллеги!
Напоминаем о необходимости сдачи ежемесячного отчёта по бюджету обучений и командировочных расходов.
Дедлайн: 25-е число текущего месяца.
Пожалуйста, заполните форму:
[ВСТАВЬТЕ ССЫЛКУ НА ФОРМУ]
С уважением,
Центральный аппарат Казахтелеком
`;
// Отправляем каждому филиалу
pendingEmails.forEach(email => {
GmailApp.sendEmail(email, subject, body);
Logger.log("Отправлено: " + email);
});
// Или отправляем одним письмом BCC
// GmailApp.sendEmail("", subject, body, {bcc: pendingEmails.join(",")});
}
// Автоматический запуск каждый месяц 25-го числа
function createMonthlyTrigger() {
ScriptApp.newTrigger("sendReminders")
.timeBased()
.onMonthDay(DEADLINE_DAY)
.atHour(10) // 10:00 утра
.create();
}
```
### Настройка триггера
1. Запустите функцию `createMonthlyTrigger()` один раз
2. Скрипт будет автоматически отправлять напоминания 25-го числа каждого месяца в 10:00
---
## Шаг 4: Настройка доступа
### Кто может заполнять форму
- Настройте форму: **Настройки → Ограничения → Только сотрудники [ваша_организация].com**
### Кто может просматривать таблицу
- Настройте общий доступ к Google Таблице
- Роль: "Просмотр" для филиалов, "Редактор" для вас и IT
### Кто может редактировать скрипт
- Только IT-отдел и вы
---
## Шаг 5: Тестирование
1. Создайте тестовую форму с ограничением доступа
2. Отправьте тестовые данные
3. Проверьте, что данные поступают в таблицу
4. Проверьте отправку напоминаний вручную
5. Настройте автоматический триггер
---
## Контакты
При вопросах обращайтесь к [ваше имя] — [ваш email]
---
## Дополнительные опции
### Если нет Google Workspace
- **Microsoft Forms + Power Automate** — аналогичная функциональность
- **Яндекс.Формы** — если используете Яндекс.Корпоративный портал
### Если нужна более сложная система
- **Airtable** — база данных с формами и автоматизациями
- **Notion** — база данных + формы + шаблоны отчётов