# Mục lục — tài liệu hướng dẫn sử dụng Omniscol Canonical Omniscol user documentation, generated from the maintained `help/vi/` corpus. This is the authoritative reference and supersedes any older PDF manual. Authoring directives (UI labels, i18n strings, feature gating) are resolved to their real vi wording. Internal cross-references link to `#page-` anchors within this file. Interactive step-by-step walkthroughs are omitted. ## Contents **1. Bắt đầu sử dụng** - [1.1 Omniscol là gì?](#page-overview.what-is-omniscol) - [1.2 Triết lý chung của Omniscol](#page-overview.philosophy) - [1.3 Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) - [1.4 Kiến trúc, mô-đun và vai trò](#page-overview.architecture-and-roles) - [1.5 Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) - [1.6 Chọn đúng loại thời khóa biểu: hằng tuần, theo chu kỳ, theo lịch](#page-overview.timetable-modes) - [1.7 Đăng nhập lần đầu](#page-getting-started.first-login) - [1.8 Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [1.9 Mời và kích hoạt người dùng](#page-getting-started.inviting-users) - [1.10 Chuẩn bị dữ liệu để nhập hàng loạt (theo lô)](#page-getting-started.preparing-data) - [1.11 Hướng dẫn làm quen ban đầu (6 bước của mô-đun Trang chủ)](#page-getting-started.onboarding-tour) **2. Khái niệm cốt lõi** - [2.1 Tổ chức dữ liệu: môn học, giáo viên, lớp, thời khóa biểu](#page-core-concepts.data-model) - [2.2 Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [2.3 Phân vùng lớp](#page-core-concepts.class-divisions) - [2.4 Căn chỉnh nhóm](#page-core-concepts.alignments) - [2.5 Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [2.6 Phân cấp nhóm: nhóm cha, nhóm con, ràng buộc kế thừa](#page-core-concepts.group-hierarchy) - [2.7 Nhóm tự do](#page-core-concepts.free-groups) - [2.8 Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types) - [2.9 Tiết học phức hợp: luân phiên, nối tiếp, liên kết, đồng giảng](#page-core-concepts.complex-lessons) - [2.10 Đơn vị, cơ sở, phòng học, tài nguyên, đa phòng học](#page-core-concepts.sites-rooms-resources) - [2.11 Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) - [2.12 Chuyên ngành phòng học](#page-core-concepts.classroom-specializations) - [2.13 Thời gian rảnh và ràng buộc thời gian của giáo viên](#page-core-concepts.wishes-and-availability) - [2.14 Ràng buộc thời gian: lớp, môn học, nhóm, phòng học và lưới thời gian](#page-core-concepts.time-constraints) - [2.15 Năm học, tuần luân phiên, ngày nghỉ lễ](#page-core-concepts.school-year) - [2.16 Dải thời gian và điều hướng theo thời gian](#page-core-concepts.timeline-navigation) - [2.17 Tìm kiếm và lọc trong các danh sách](#page-core-concepts.search-and-filter) - [2.18 Cộng tác giữa các quản trị viên](#page-core-concepts.collaboration) **3. Xây dựng thời khóa biểu (mô-đun Quản lý thời khóa biểu)** - [3.1 Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [3.2 Điều kiện tiên quyết để tạo thời khóa biểu](#page-timetables.prerequisites) - [3.3 Chế độ lịch — các tùy chọn nâng cao](#page-timetables.calendar-mode) - [3.4 Thời gian rảnh và ràng buộc thời gian ở chế độ lịch](#page-timetables.calendar-wishes) - [3.5 Cửa sổ ngày](#page-timetables.date-windows) - [3.6 Bước 1 — Thông số chung](#page-timetables.general-settings) - [3.7 Bước 2 — Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [3.8 Bước 3 — Phân công giáo viên](#page-timetables.assigning-teachers) - [3.9 Bước 4 — Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) - [3.10 Bước 5 — Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) - [3.11 Bước 6 — Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) - [3.12 Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) - [3.13 Bước 6b — Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [3.14 Bước 7 — Tạo tự động](#page-timetables.generation) - [3.15 Bước 8 — Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) - [3.16 Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [3.17 Xếp tiết học thủ công](#page-timetables.manual-placement) - [3.18 Chỉnh sửa một tiết học](#page-timetables.lesson-edit) - [3.19 Tiết học và lớp ngoài khung giờ](#page-timetables.off-grid-lessons) - [3.20 Khóa vị trí của một tiết học](#page-timetables.lesson-lock) - [3.21 Phát hiện và xử lý lỗi tương thích (khi tạo thời khóa biểu)](#page-timetables.conflicts) - [3.22 Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) - [3.23 Hiển thị, nhân bản, tổ chức lại một thời khóa biểu](#page-timetables.visualize-duplicate) - [3.24 Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) **4. Trang tổng quan** - [4.1 Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) - [4.2 Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) - [4.3 Thống kê giáo viên](#page-dashboard.teachers) - [4.4 Thống kê phòng học](#page-dashboard.classrooms) - [4.5 Thống kê môn học](#page-dashboard.subjects) - [4.6 Thống kê lớp](#page-dashboard.classes) - [4.7 Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) **5. Sử dụng hàng ngày (mô-đun Thời khóa biểu)** - [5.1 Tra cứu và lọc thời khóa biểu](#page-schedules.consult-and-filter) - [5.2 Hiển thị thời khóa biểu: lưới, danh sách, bảng, lịch trình, tháng, cạnh nhau](#page-schedules.schedule-display) - [5.3 Thay đổi riêng lẻ trên một thời khóa biểu đã công bố](#page-schedules.ad-hoc-changes) - [5.4 Sự kiện đơn lẻ (ngoài thời khóa biểu)](#page-schedules.events) - [5.5 In và chia sẻ](#page-schedules.print-and-export) - [5.6 Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) **6. Vắng mặt và thay thế** - [6.1 Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) - [6.2 Khai báo vắng mặt (quản trị viên / giáo viên / học sinh)](#page-absences.declaring) - [6.3 Chính sách thay thế](#page-absences.substitution-policies) - [6.4 Thay thế riêng lẻ cho một tiết học](#page-absences.single-lesson-replacement) - [6.5 Vắng mặt nhiều ngày](#page-absences.multi-day) - [6.6 Vắng mặt của lớp và của học sinh](#page-absences.class-and-student-absences) - [6.7 Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics) **7. Quản lý nhân sự** - [7.1 Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [7.2 Xây dựng lưới trực ban](#page-staffing.building-grids) - [7.3 Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [7.4 Phân công nhân viên](#page-staffing.planner) - [7.5 Tạo và chia sẻ bảng phân công](#page-staffing.roster) **8. Quản trị** - [8.1 Người dùng và vai trò](#page-admin.users-and-roles) - [8.2 Quản lý các quản trị viên](#page-admin.admins) - [8.3 Vai trò tùy chỉnh dành cho quản trị](#page-admin.customroles) - [8.4 Phạm vi lập kế hoạch](#page-admin.planning-domains) - [8.5 Quản lý giáo viên](#page-admin.teachers) - [8.6 Quản lý học sinh](#page-admin.students) - [8.7 Quản lý các thành viên nhân sự](#page-admin.staff) - [8.8 Quản lý môn học (chính thức và tùy chỉnh)](#page-admin.subjects) - [8.9 Loại tiết học](#page-admin.lesson-types) - [8.10 Năm học và ngày nghỉ lễ](#page-admin.school-year) - [8.11 Thông số chung của trường](#page-admin.parameters) - [8.12 Thông số nâng cao và tùy chỉnh](#page-admin.advanced-parameters) - [8.13 Giới hạn hiển thị và đăng nhập](#page-admin.visibility-restrictions) - [8.14 Nhập và xuất dữ liệu](#page-admin.import-export) - [8.15 Điểm sao lưu](#page-admin.snapshots) - [8.16 Nhật ký hoạt động (logs)](#page-admin.logs) **9. Tích hợp** - [9.1 Tổng quan về các tích hợp](#page-integrations.overview) - [9.2 Omniscol vận hành thế nào — một API duy nhất, một nguồn sự thật duy nhất](#page-integrations.architecture) - [9.3 iCal — đăng ký và liên kết động](#page-integrations.ical) - [9.4 API Omniscol — mã thông báo xác thực](#page-integrations.api-tokens) - [9.5 OAuth2 / OIDC — kết nối một dịch vụ với Omniscol](#page-integrations.oauth-server) - [9.6 Tùy chỉnh API: ghi đè điểm truy cập và hook](#page-integrations.api-customization) - [9.7 Mô hình dữ liệu đầy đủ: thực thể JSON, quan hệ và bản thể học](#page-integrations.data-model-full) - [9.8 Truy vấn nâng cao — lọc, chọn trường và phân trang API](#page-integrations.advanced-queries) - [9.9 API tiết học — lấy tiết học cho bất kỳ ngày nào](#page-integrations.lessons-api) - [9.10 MCP — kết nối một tác nhân AI bên ngoài với Omniscol](#page-integrations.mcp) - [9.11 Trợ lý AI tích hợp](#page-integrations.ai-assistant) - [9.12 OIDC / SSO — đăng nhập qua nhà cung cấp danh tính](#page-integrations.oauth2) - [9.13 Đồng bộ hóa với các hệ thống bên ngoài (ERP)](#page-integrations.extsync) - [9.14 OneRoster (1.2 và các nhóm nâng cao)](#page-integrations.oneroster) - [9.15 Tài khoản liên kết và tài nguyên dùng chung](#page-integrations.linked-accounts) - [9.16 Trình kết nối Edusign](#page-integrations.edusign) **10. Cổng thông tin** - [10.1 Cổng thông tin học sinh](#page-portal.student-portal) - [10.2 Cổng thông tin giáo viên](#page-portal.teacher-portal) - [10.3 Cổng thông tin khách (liên kết công khai)](#page-portal.guest-portal) - [10.4 Liên kết chia sẻ công khai](#page-portal.share-links) **11. Bảng thông tin** - [11.1 Cấu hình bảng thông tin cho sảnh hay hành lang](#page-panels.lobby-panel) - [11.2 Cấu hình bảng thông tin trước cửa một phòng học](#page-panels.room-panel) - [11.3 Tùy chỉnh giao diện bảng thông tin](#page-panels.customization) **12. Chuyển đổi từ phần mềm khác** - [12.1 Chuyển đổi từ một phần mềm khác sang Omniscol — Tổng quan](#page-migration.overview) - [12.2 Chuyển đổi từ Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [12.3 Chuyển đổi từ EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [12.4 Di chuyển dữ liệu từ aSc Timetables](#page-migration.from-asc) - [12.5 Chuyển đổi từ ADE / ADE Campus](#page-migration.from-ade) - [12.6 Di chuyển dữ liệu từ bảng tính Excel tự làm](#page-migration.from-spreadsheet) **13. Đặc thù giáo dục đại học** - [13.1 Đặc thù của giáo dục đại học — tổng quan](#page-higher-ed.overview) - [13.2 Đợt học, khóa, chương trình, lộ trình](#page-higher-ed.sessions-and-tracks) - [13.3 Giáo viên bên ngoài (thỉnh giảng, giáo sư thỉnh giảng)](#page-higher-ed.external-faculty) - [13.4 Phòng học tách đôi và kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) - [13.5 Đồng giảng dạy và luân phiên giáo viên](#page-higher-ed.co-teaching) - [13.6 Chế độ lịch cho các chương trình không lặp lại](#page-higher-ed.calendar-mode) - [13.7 Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links) - [13.8 Đa cơ sở trong giáo dục đại học](#page-higher-ed.multi-site) **14. Đặc thù tiểu học / trung học (giáo dục phổ thông)** - [14.1 Đặc thù của bậc tiểu học và trung học — tổng quan](#page-k12.overview) - [14.2 Nửa lớp và môn tự chọn trong phân vùng](#page-k12.half-classes-and-options) - [14.3 Giờ tự học có giám sát (phổ thông)](#page-k12.study-halls) - [14.4 Lớp ghép nhiều trình độ](#page-k12.multi-grade-classes) **15. Kịch bản sử dụng** - [15.1 Kịch bản sử dụng — tổng quan](#page-use-cases.overview) - [15.2 Kịch bản — Tạo mới và tạo tự động thời khóa biểu](#page-use-cases.creation-and-generation) - [15.3 Kịch bản — Xếp lịch và chỉnh sửa hằng ngày](#page-use-cases.placement-and-modification) - [15.4 Kịch bản — Nhiều nhóm, nhiều phòng học, nhiều giảng viên](#page-use-cases.multi-entities) - [15.5 Kịch bản — Thao tác hàng loạt](#page-use-cases.mass-operations) - [15.6 Kịch bản — Kỳ thi và sự kiện](#page-use-cases.exams-and-events) - [15.7 Kịch bản — Vắng mặt và thay thế](#page-use-cases.absences-and-substitutions) - [15.8 Kịch bản — Báo cáo và thống kê](#page-use-cases.reporting-and-stats) - [15.9 Kịch bản — Phổ biến và chia sẻ](#page-use-cases.diffusion-and-sharing) **16. FAQ — câu hỏi thường gặp** - [16.1 FAQ — Câu hỏi chung](#page-faq.general) - [16.2 FAQ — Xây dựng thời khóa biểu](#page-faq.timetables) - [16.3 FAQ — Nhập dữ liệu](#page-faq.data-import) - [16.4 FAQ — Cách hoạt động của thuật toán tạo tự động](#page-faq.solver-behavior) - [16.5 FAQ — Hiển thị và giao diện](#page-faq.display-and-ux) - [16.6 FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) - [16.7 FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - [16.8 FAQ — Bảo mật và lưu trữ dữ liệu](#page-faq.security-and-hosting) - [16.9 FAQ — Bảng giá và giấy phép](#page-faq.pricing-and-licenses) - **[Bảng thuật ngữ](#chapter-glossary)** (54 terms) - **[Index](#chapter-index)** --- ## 1. Bắt đầu sử dụng ### 1.1 Omniscol là gì? *Source: `help/vi/overview/what-is-omniscol.md` · id: overview.what-is-omniscol · Updated: 2026-06-13* Omniscol là **phần mềm trực tuyến lập kế hoạch theo ràng buộc**, được thiết kế cho các cơ sở đào tạo từ bậc tiểu học đến giáo dục đại học và đào tạo thường xuyên. Phần mềm cho phép tạo thời khóa biểu theo tuần, theo chu kỳ hoặc theo lịch (có ngày cụ thể, không lặp lại), rồi công bố cho những người dùng liên quan. Sản phẩm kết hợp việc nhập liệu thủ công, chẩn đoán lỗi tương thích và tạo tự động bằng [thuật toán tạo thời khóa biểu](#page-glossary.solver). Các chi tiết nghiệp vụ được trình bày trong những trang chuyên biệt. #### Cách hoạt động, nhìn tổng quát Quy trình làm việc chuẩn với Omniscol: ``` 1. Nhập dữ liệu (người dùng, môn học, cơ sở/phòng học, lớp) ↓ 2. Cấu hình thời khóa biểu (khối lượng giờ, căn chỉnh nhóm, ràng buộc) ↓ 3. Tạo tự động hoặc đặt vị trí (thuật toán tạo tự động hoặc đặt vị trí thủ công) ↓ 4. Kiểm tra và quyết định (lỗi tương thích, điều chỉnh, khóa vị trí) ↓ 5. Công bố (thời khóa biểu hiện ra với người dùng) ↓ 6. Vận hành hằng ngày (thay đổi mỗi ngày, vắng mặt, thay thế) ``` Mỗi bước có một mô-đun riêng. Các bước từ 1 đến 5 chỉ làm theo từng đợt (trước một năm học mới, một học kỳ hoặc một lần tổ chức lại). Bước 6 là việc sử dụng hằng ngày. #### Các kiểu thời khóa biểu Omniscol hỗ trợ **ba kiểu** thời khóa biểu. Mỗi kiểu có dùng được hay không là tùy theo gói bạn đã đăng ký. - **Theo tuần** — các tiết học lặp lại trên một tuần mẫu, có hoặc không có luân phiên A/B. Đây là trường hợp chuẩn của giáo dục tiểu học và trung học. Có trên mọi gói. - **Theo chu kỳ** — các tiết học lặp lại trên một chu kỳ gồm N ngày được đánh số (thường là 6 hoặc 8), khác với tuần 5 hay 7 ngày. Phổ biến trong các hệ thống Bắc Mỹ. Có trên tài khoản Premium. - **Theo lịch** — từng tiết học được đặt vào một ngày cụ thể, không lặp lại. Đây là chế độ ưa dùng của giáo dục đại học và đào tạo thường xuyên. Có trên tài khoản Premium. Trên tài khoản Premium, cả ba kiểu đều dùng được. Và nhờ [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables), chức năng có sẵn trong gói Premium, chúng còn có thể kết hợp trên cùng những giai đoạn. Xem [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) để cân nhắc lựa chọn. #### Triết lý: dữ liệu trước tiên Omniscol xuất phát từ một nhận định: thời khóa biểu không phải là một bảng biểu chỉ cần điền vào, mà là một **bài toán tối ưu hóa có ràng buộc**. Phần mềm được thiết kế xoay quanh năm nguyên tắc: 1. **Dữ liệu trước, tính toán sau**: cơ sở, phòng học, giáo viên, lớp, nhóm, môn học và khối lượng giờ phải đáng tin cậy trước khi khởi chạy một lượt tạo tự động. 2. **Tách bạch cấu trúc và vận hành hằng ngày**: xây dựng một thời khóa biểu và xử lý những thay đổi trong ngày là hai công việc khác nhau, với những giao diện khác nhau. 3. **Ràng buộc được nêu rõ**: các điều bất khả thi được báo dưới dạng [lỗi tương thích](#page-glossary.conflict) hoặc tiết học chưa đặt vị trí; quyết định nghiệp vụ vẫn thuộc về người dùng. 4. **Bản nháp và phiên bản**: một thời khóa biểu chưa công bố có thể được thử nghiệm, nhân bản hay dựng lại mà không đổi những gì người dùng thấy. 5. **Làm chủ dữ liệu**: xuất dạng JSON hoặc qua bảng tính tích hợp, và khả năng lấy lại dữ liệu. Trang tham khảo: [Triết lý chung của Omniscol](#page-overview.philosophy). #### Dữ liệu đầu vào / đầu ra Ở **đầu vào**, Omniscol tiếp nhận: - nhập từng mục trong giao diện; - nhập hàng loạt bằng cách sao chép rồi dán từ bảng tính, có bước kiểm tra trước khi áp dụng; - các đợt chuyển đổi dữ liệu có đội ngũ đồng hành, tùy theo những bản xuất sẵn có ở hệ thống nguồn; - các trình kết nối ERP/hệ thống thông tin qua [đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) (Aurion, Auriga, Edusign; thêm một hệ thống mới theo dự án); - [API Omniscol](#page-integrations.api-tokens) tùy theo quyền và tùy chọn của tài khoản; - [OIDC / SSO](#page-integrations.oauth2) tùy theo hợp đồng và cách thiết lập. Ở **đầu ra**: - xem trên web với giao diện thích ứng; - đăng ký [iCal](#page-integrations.ical); - liên kết công khai có chữ ký và có hạn sử dụng; - bảng thông tin; - xuất Excel / CSV / PDF / JSON tùy theo màn hình; - API REST có tài liệu, với phạm vi bị giới hạn bởi những điểm truy cập và tùy chọn được cho phép; - [MCP](#page-integrations.mcp) cho các tác nhân AI tương thích trên tài khoản Premium. #### Tổ chức theo mô-đun Phần mềm được chia thành hai nhóm mô-đun. ##### Các mô-đun dùng hằng ngày - **Trang chủ** — cái nhìn tổng hợp về ngày hôm nay và danh sách việc cần làm khi bắt đầu. - **Thời khóa biểu** — xem và chỉnh sửa đơn lẻ. - **Trang tổng quan** — thống kê mức độ chiếm dụng và giờ làm việc. - **Quản lý vắng mặt & thay thế** — khai báo thời gian không thể có mặt và phân công người thay thế. ##### Các mô-đun thiết lập - **Quản lý thời khóa biểu** — tạo mới, cấu hình, tạo tự động và công bố các thời khóa biểu. - **Quản trị** — người dùng, môn học, năm học, thông số, nhập / xuất dữ liệu và các tích hợp. - **Quản lý nhân sự** — lập kế hoạch nhân sự theo nhiệm vụ khi mô-đun này được bật; mô-đun cũng có thể bán ở dạng gói độc lập. #### Vai trò và quyền truy cập Bốn hồ sơ người dùng định hình quyền truy cập ở phía nhà trường. **Quản trị viên** (người phụ trách xếp lịch, ban giám hiệu, bộ phận công nghệ thông tin) thiết lập tài khoản và xây dựng các thời khóa biểu. **Giáo viên** xem lịch của mình, khai báo thời gian rảnh và báo vắng mặt. **Học sinh** xem thời khóa biểu cá nhân của mình. **Nhân viên** (bộ phận quản lý học sinh, giám thị) tham gia khi mô-đun Quản lý nhân sự được sử dụng. Ngoài ra, các liên kết chia sẻ có chữ ký còn cho phép truy cập một phạm vi xác định mà không cần tài khoản. Các vai trò có thể cộng dồn: một giáo viên tham gia công tác xếp lịch có thể vừa là Giáo viên vừa là Quản trị viên. Chi tiết các vai trò được trình bày trong [Kiến trúc và vai trò](#page-overview.architecture-and-roles). Tùy chọn [Vai trò tùy chỉnh](#page-admin.customroles) cho phép giới hạn quyền của một tài khoản quản trị viên theo từng mô-đun và theo từng thao tác. #### Các gói và tùy chọn Omniscol có nhiều gói: **Lite** (người hành nghề tự do, người đào tạo cá nhân, cơ sở đào tạo rất nhỏ), **Staffing** (chỉ mô-đun Quản lý nhân sự), **Standard** (trường học thông thường), **Standard Plus** (Standard + Quản lý nhân sự) và **Premium** (giáo dục đại học, đào tạo thường xuyên, các tổ chức nhiều cơ sở phức tạp). Một số chức năng có sẵn mặc định trong gói Premium — kiểu thời khóa biểu theo chu kỳ và theo lịch, thời gian rảnh theo lịch, nhiều thời khóa biểu cùng hoạt động — trong khi những chức năng khác được bật theo hợp đồng (điểm sao lưu, nhật ký hoạt động, cộng tác thời gian thực, tài khoản liên kết, vai trò tùy chỉnh...). Chi tiết về các gói, các tùy chọn và cách bật chúng được tập hợp trong [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options). #### Những điểm khác biệt - **Tạo tự động**: thuật toán đặt các tiết học sao cho tuân thủ những ràng buộc bắt buộc và tối ưu hóa các ưu tiên. - **Kiểm soát thủ công**: người dùng luôn có thể xem xét, di chuyển, khóa hoặc tự quyết định. - **Phân phối trên nhiều kênh**: web, iCal, các bản xuất, liên kết công khai và bảng thông tin. - **Báo cáo**: trang tổng quan và các bản xuất để theo dõi số giờ, mức độ chiếm dụng phòng học và những chỉ số phục vụ công tác kiểm tra. #### Kiến trúc và lưu trữ dữ liệu Các yếu tố về kiến trúc, bảo mật và lưu trữ dữ liệu được mô tả trong [Kiến trúc và vai trò](#page-overview.architecture-and-roles) và [FAQ — Bảo mật và lưu trữ dữ liệu](#page-faq.security-and-hosting). #### Bước tiếp theo - Để xem một vòng tham quan tương tác: [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour). - Để thiết lập tài khoản của bạn: [Đăng nhập lần đầu](#page-getting-started.first-login) rồi [Thiết lập tài khoản của trường](#page-getting-started.setup-school). - Để hiểu các khái niệm nghiệp vụ: [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups). - Để tạo thời khóa biểu đầu tiên: [Mô-đun Quản lý thời khóa biểu](#page-timetables.overview). - Về những câu hỏi thường gặp: [FAQ câu hỏi chung](#page-faq.general). #### Xem thêm - [Triết lý chung của Omniscol](#page-overview.philosophy) - [Kiến trúc và vai trò](#page-overview.architecture-and-roles) - [Chọn đúng loại thời khóa biểu: hằng tuần, theo chu kỳ, theo lịch](#page-overview.timetable-modes) - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) - [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) ### 1.2 Triết lý chung của Omniscol *Source: `help/vi/overview/philosophy.md` · id: overview.philosophy · Updated: 2026-06-13* Trước khi nói đến các tính năng, có vài nguyên tắc định hình trải nghiệm Omniscol và giải thích vì sao phần mềm chọn cách xử lý này chứ không phải cách khác. #### Bối cảnh nghiệp vụ Thời khóa biểu không phải là một bảng biểu chỉ cần điền vào. Đó là một **bài toán tối ưu hóa có ràng buộc**: - ràng buộc rất nhiều và thường không được nói ra; - các ràng buộc đôi khi mâu thuẫn với nhau; - áp lực vận hành rất lớn: ngày khai giảng, học kỳ hay giai đoạn đó bắt buộc phải chạy được. Omniscol được thiết kế như một **trợ lý xếp lịch có ràng buộc**: phần mềm làm công việc nhanh hơn, báo hiệu những điều bất khả thi và để quyết định nghiệp vụ lại cho người dùng. #### Omniscol không phải là gì | Hạng mục | Hệ thống đó làm gì | Omniscol? | | --- | --- | --- | | ERP trường học / SIS | Hồ sơ hành chính, học vụ | Không. Omniscol tiếp nhận hoặc đồng bộ những dữ liệu này. | | Nền tảng học tập số / LMS | Sư phạm, nội dung giảng dạy, truyền thông | Không. | | Điểm số / điểm danh | Đánh giá, ký xác nhận, sổ đầu bài | Không. | | Omniscol | Tổ chức thời gian: ai, cái gì, ở đâu, khi nào | Có. | Omniscol được làm ra để kết nối với các hệ thống khác qua nhập dữ liệu, xuất dữ liệu, iCal, API REST có tài liệu, OIDC / SSO tùy theo hợp đồng và [đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). Phần mềm không tìm cách thay thế những công cụ nghiệp vụ phụ trách các mảng khác. Xem thêm [integrations.partners](#page-integrations.partners). #### Năm nguyên tắc nền tảng ##### 1. Dữ liệu trước, tính toán sau Không thể tạo ra một thời khóa biểu đáng tin cậy nếu dữ liệu chưa lành mạnh: cơ sở, phòng học, giáo viên, lớp, nhóm, môn học, khối lượng giờ, thời gian rảnh và các ràng buộc. ##### 2. Tách bạch việc xây dựng cấu trúc và việc vận hành hằng ngày Xây dựng một thời khóa biểu và sống cùng một thời khóa biểu đã công bố là hai công việc khác nhau. Việc thứ nhất chủ yếu diễn ra trong [Quản lý thời khóa biểu](#page-timetables.overview), việc thứ hai trong [Thời khóa biểu](#page-schedules.consult-and-filter), [Quản lý vắng mặt](#page-absences.overview) và [Trang tổng quan](#page-dashboard.overview). ##### 3. Ràng buộc cứng và ràng buộc tối ưu hóa Một số ràng buộc làm cho thời khóa biểu trở nên không hợp lệ và được xử lý như những ràng buộc nghiêm ngặt: một giáo viên chỉ ở một nơi tại cùng một thời điểm, một lớp không bị chồng chéo trừ các nhóm nằm trong một phân vùng, một phòng học thông thường chỉ được phân cho một tiết học, các khoảng không rảnh, sức chứa, tài nguyên vật chất và việc di chuyển giữa các cơ sở. Những ràng buộc khác dùng để cải thiện lời giải: khung giờ không mong muốn, giờ trống, sự cân đối giữa các ngày, thứ tự sư phạm giữa các môn học, số giờ tối đa hoặc tối thiểu, số ngày có mặt. Chúng được tính thành điểm trừ mà công cụ tạo tự động tìm cách giảm bớt. ##### 4. Bản nháp và các phiên bản Một thời khóa biểu chưa công bố không ảnh hưởng gì đến những gì người dùng nhìn thấy. Bạn có thể nhân bản, thử nghiệm, so sánh, khóa một số tiết học, chạy lại một lượt tạo tự động và chỉ công bố khi kết quả đã ưng ý. Các điểm sao lưu, khi được kích hoạt, tạo thêm một lưới an toàn để quay lại trạng thái trước hoặc khôi phục một phần dữ liệu. ##### 5. Người dùng vẫn làm chủ dữ liệu Omniscol cho phép xuất toàn bộ dữ liệu dạng JSON, xuất theo nghiệp vụ tùy từng màn hình và luôn giữ đường quay lại. Các cơ chế tự động không thay thế quyết định của con người. #### Lỗi tương thích là một thông tin, không phải một sai sót Khi bạn tự xếp bằng tay, Omniscol báo hiệu các lỗi tương thích nhưng để bạn tự quyết định. Điều này hữu ích cho những trường hợp đặc thù có thật: phòng riêng dành cho học sinh được kéo dài thời gian làm bài, việc cố ý vượt sức chứa lý thuyết, việc phân một phòng học ngoài chuyên ngành của nó vì một lý do tại chỗ. Công cụ tạo tự động, ngược lại, không cố ý tạo ra chồng chéo lớn. Nếu không tìm được lời giải trọn vẹn, nó giữ lại thời khóa biểu tốt nhất tính được và để những tiết học không xếp nổi trong danh sách thẻ post-it chưa được xếp. [Việc khóa một tiết học](#page-timetables.lesson-lock) cho phép neo giữ một vị trí bạn muốn: lượt tạo tự động tiếp theo sẽ điều chỉnh những tiết học khác xung quanh chỗ đã khóa đó. #### Nhiều thời khóa biểu như một nguyên tắc mô hình hóa Omniscol hỗ trợ **nhiều thời khóa biểu** ngay từ gốc. Nhiều thời khóa biểu có thể cùng tồn tại trong một trường: - các năm học khác nhau; - các học kỳ hoặc các giai đoạn; - việc phân tách về mặt logic theo cơ sở, theo khoa hoặc theo bậc đào tạo; - sự kết hợp nhiều kiểu khác nhau, ví dụ kiểu hằng tuần lặp lại và kiểu lịch theo ngày. Với Premium, nhiều thời khóa biểu có thể [hoạt động song song](#page-timetables.multiple-active-timetables) — việc kích hoạt riêng cũng khả thi trên một số tài khoản Standard. Một trường có thể có giai đoạn đại cương với hai thời khóa biểu hằng tuần, mỗi học kỳ một cái, giai đoạn chuyên ngành theo lịch không lặp lại, và đồng thời một chương trình ExecMBA kéo dài 18 tháng, bắt đầu và kết thúc lệch so với các kế hoạch khác và so với năm học. Với Omniscol, bạn tạo từng thời khóa biểu riêng biệt mà vẫn được kiểm tra lỗi tương thích chéo trong lúc xếp lịch, rồi kích hoạt tất cả song song, cùng lúc, để kết quả cuối cùng là một khung nhìn hợp nhất, trong suốt đối với người dùng cuối. #### AI tối ưu hóa và các tác nhân bên ngoài [Công cụ tạo tự động](#page-glossary.solver) là một AI tối ưu hóa theo hướng **siêu heuristic Monte-Carlo nơ-ron – ký hiệu**. Bộ máy này thử các cách xếp dưới ràng buộc, tìm một lời giải hợp lệ rồi tối ưu hóa các điểm trừ, với tốc độ rất ấn tượng (ví dụ: dưới một phút cho một trường trung học cơ sở 16 lớp). Nếu không tìm được lời giải hợp lệ, một cơ chế nới lỏng sẽ hy sinh các tiết học một cách thông minh, và vẫn tiếp tục tối ưu hóa kết quả. Omniscol là một công ty AI-first, ra đời từ một giai đoạn R&D “deeptech” kéo dài. Omniscol còn có những thuật toán khác thuộc dạng AI ký hiệu, dùng để kiểm tra lỗi tương thích, phát hiện điểm thiếu nhất quán trong thiết lập, đưa ra đề xuất cải thiện hoặc cảnh báo cấu hình, lọc trước lời giải tốt nhất trong một danh sách đề xuất, hay tự động phân một tập hợp con các phòng học cho một tập hợp con các tiết học — tất cả ngay trong trình duyệt, tức thì. Omniscol cũng mở các công cụ API cho những tác nhân tương thích qua [MCP](#page-integrations.mcp) khi tùy chọn này và quyền tương ứng được bật. Nhờ đó bạn có thể trao đổi với Omniscol bằng ngôn ngữ tự nhiên, mở rộng những gì giao diện đồ họa cho phép, bằng cách lấy thẳng dữ liệu cần thiết từ máy chủ Omniscol. Các tác nhân này chỉ hoạt động trong giới hạn của mã thông báo được cấp; những cách dùng chỉ để tra cứu là an toàn nhất, và mọi thao tác ghi đều phải được người dùng kiểm chứng. Hiện tại, tác nhân AI tốt nhất để làm việc với Omniscol là Claude, bản Desktop. #### Xem thêm - [Omniscol là gì?](#page-overview.what-is-omniscol) - [Kiến trúc và vai trò](#page-overview.architecture-and-roles) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Lỗi tương thích](#page-glossary.conflict) - [Công cụ tạo tự động](#page-glossary.solver) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) ### 1.3 Tham quan có hướng dẫn trong năm phút *Source: `help/vi/overview/quick-tour.md` · id: overview.quick-tour · Updated: 2026-06-25* Chuyến tham quan có hướng dẫn này đưa bạn đi qua những mô-đun chính của Omniscol chỉ trong vài phút. Nếu bạn mới biết đến phần mềm, đây chính là nơi nên bắt đầu. #### Menu mô-đun ở bên trái Ở bên trái mọi màn hình, một menu dọc liệt kê những mô-đun khả dụng với vai trò của bạn. Từ trên xuống dưới, theo thứ tự sử dụng hằng ngày: 1. **Trang chủ** (biểu tượng [house]) — hướng dẫn khởi động chừng nào chưa có thời khóa biểu nào được công bố; nếu đã có thì là màn hình trang chủ được cá nhân hóa. 2. **Thời khóa biểu** — chế độ xem chính của bạn hằng ngày. 3. **Trang tổng quan** — số liệu thống kê. 4. **Quản lý vắng mặt** — quản lý vắng mặt và thay thế. 5. **Quản lý thời khóa biểu** — tạo và dựng cấu trúc các thời khóa biểu. 6. **Quản trị** — người dùng, môn học, thông số. Tùy theo hợp đồng, có thể xuất hiện thêm những mô-đun khác, ví dụ **Quản lý nhân sự** (lưới công việc và trực giám sát, dành cho bộ phận quản lý học sinh). #### Dải thời gian Ở phía trên phần lớn các màn hình, một **dải thời gian** (theo tuần hoặc theo tháng) thể hiện cả năm học. Nó cho phép bạn di chuyển trong thời gian và nhìn thấy ngay những giai đoạn đã có thời khóa biểu được công bố (các tuần được tô màu) và những ngày nghỉ lễ (các tuần bị làm xám). Dải thời gian này có rất nhiều tùy chọn và cách dùng. Nó có thể chuyển thành chế độ xem theo tháng hoặc theo năm (thậm chí từ ngày đến ngày, nếu bạn chỉ định rõ). Trong Quản lý thời khóa biểu, dải này được tô màu theo các thời khóa biểu đã công bố — chỗ trống chính là những tuần còn trắng. Khi hiển thị một thời khóa biểu dạng lịch, các dấu hiệu màu xanh nhạt ở phía trên cho biết những tiết học nằm ở đâu trên các chế độ xem lịch trình đang mở trên màn hình. Các mũi tên `◀` và `▶︎` ở hai đầu dùng để chuyển qua lại giữa các năm học. #### Hãy theo hướng dẫn! Chào mừng bạn đến với Omniscol. Phần tổng quan này giới thiệu các mô-đun của phần mềm và cách chúng gắn kết với nhau. 1. **Nút trợ giúp** ở góc trên bên phải mở phần trợ giúp này vào bất cứ lúc nào, trên bất kỳ màn hình nào. Nó biết bạn đang ở màn hình nào và đề xuất trang phù hợp nhất. Ngay bên cạnh, nút chú giải hiển thị mô tả các thành phần đang có trên màn hình. 2. **Trang chủ** (biểu tượng [house]): chừng nào bạn chưa công bố thời khóa biểu đầu tiên, mô-đun này hướng dẫn bạn từng bước. Hãy làm theo [các bước](#page-getting-started.setup-school), đánh dấu vào các ô, và quay lại bất cứ khi nào bạn muốn. 3. **Thời khóa biểu**: phần tra cứu hằng ngày. Đầy đủ các bộ lọc (lớp, giáo viên, phòng học, nhóm, môn học, học sinh). Nhiều chế độ hiển thị: lưới chuẩn, danh sách, bảng dạng bảng tính, lịch trình, lịch trình theo giờ, ngày, tháng và cạnh nhau. Một lịch trình chỉ hiện ra khi đã công bố một thời khóa biểu đầu tiên có các tiết học được xếp chỗ. 4. **Trang tổng quan**: số liệu thống kê của thời khóa biểu thực tế (đang vận hành). Số giờ theo giáo viên, theo lớp, theo phòng học, theo môn học. Có thể lọc theo khoảng thời gian. Có thể xuất ra CSV và Excel. Kèm một API còn chi tiết hơn nữa. 5. **Quản lý vắng mặt**: quản lý tập trung. Khai báo do giáo viên hoặc học sinh thực hiện (kèm bước duyệt của bộ phận quản trị), hoặc do bộ phận quản trị nhập trực tiếp. Phân công giáo viên thay thế cho những giáo viên vắng mặt. Vắng mặt cả lớp (đi thực tập, đi tham quan ngoại khóa...). 6. **Quản lý thời khóa biểu**: nơi tạo ra chính các thời khóa biểu. Cơ sở, lớp, nhóm, giáo viên, môn học, tiết học. Tạo tự động hoặc xếp chỗ thủ công. Công bố, để một thời khóa biểu trên lý thuyết trở thành thời khóa biểu vận hành. 7. **Quản lý nhân sự** (nếu mô-đun được bật): việc xếp lịch cho đội ngũ giám thị và nhân viên quản lý học sinh. Xác định các công việc và đặc thù của từng việc, phân công nhân sự. Phiếu phân công để phát cho từng người. 8. **Quản trị**: người dùng, môn học, năm học, thông số, nhập và xuất dữ liệu. Chủ yếu dùng khi mới khởi tạo tài khoản. #### Tiếp theo - Để thiết lập tài khoản từ đầu: [Đăng nhập lần đầu](#page-getting-started.first-login). - Để hiểu các khái niệm nghiệp vụ (lớp, nhóm, phân vùng, căn chỉnh nhóm, v.v.): [Khái niệm nghiệp vụ](#page-core-concepts.classes-and-groups). - Để tạo thời khóa biểu đầu tiên: [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview). - Để biết Omniscol kết nối với hệ thống thông tin của bạn ra sao: [Tổng quan về các tích hợp](#page-integrations.overview). #### Xem thêm - [Omniscol là gì?](#page-overview.what-is-omniscol) - [Kiến trúc và vai trò](#page-overview.architecture-and-roles) ### 1.4 Kiến trúc, mô-đun và vai trò *Source: `help/vi/overview/architecture-and-roles.md` · id: overview.architecture-and-roles · Updated: 2026-08-07* Trang này tóm tắt kiến trúc ứng dụng của Omniscol và những vai trò mà phía nhà trường nhìn thấy. Các cam kết hợp đồng cụ thể (tính sẵn sàng, sao lưu, thời gian lưu giữ, giám sát) thuộc về những tài liệu pháp lý hoặc thương mại đã được phê duyệt. #### Lưu trữ dữ liệu và độ tin cậy Omniscol được lưu trữ trong Liên minh châu Âu, cụ thể là trên AWS Paris và Scaleway Paris. Sản phẩm sử dụng các cơ chế sao lưu, giám sát và cách ly logic giữa tài khoản của các trường; chi tiết áp dụng cho một tài khoản phụ thuộc vào hợp đồng và môi trường liên quan. Xem [FAQ — Bảo mật và lưu trữ dữ liệu](#page-faq.security-and-hosting) để biết chi tiết dành cho người dùng. #### Kiến trúc phần mềm - **Ứng dụng web**: ứng dụng chỉ tải một lần, sau đó các màn hình được dựng động qua trao đổi REST/JSON (Single Page Application). - **CouchDB** làm cơ sở dữ liệu chính. - **Redis** làm cơ sở dữ liệu phục vụ việc đồng bộ phía ứng dụng và nhật ký. - **TypeScript** cho giao diện (webapp). - **Backend Node.js / Express** điều phối các engine nội bộ (api, webapp, portal, panel, ical, mcp, oauth2, v.v.). - **C++** cho thuật toán tạo tự động, chạy trên những máy ảo chuyên dụng được khởi động theo nhu cầu. #### Bảo mật - **HTTPS** cho các kết nối mở ra bên ngoài. - **Cloudflare** là cửa vào duy nhất (bảo vệ chống DDOS). - **Mật khẩu được băm trước ở phía máy khách bằng scrypt**, rồi được băm lại và thêm salt ở phía máy chủ. Chúng không được lưu trữ hay truyền đi dưới dạng rõ. - **Xác thực JWT** với khóa ký và thời hạn ngắn; việc xoay vòng hoặc thu hồi một khóa có thể làm mất hiệu lực các mã thông báo đã ký. - **[Liên kết chia sẻ](#page-glossary.share-link)** có chữ ký, có thể hết hạn, gắn với tài khoản đã tạo ra chúng và mất hiệu lực khi tài khoản đó đổi mật khẩu hoặc bị vô hiệu hóa. - **[Mã thông báo API](#page-glossary.api-token)** với một khóa gốc và các mã thông báo phái sinh, giới hạn theo điểm truy cập và có thời hạn. - **OIDC / SSO** khả dụng tùy theo hợp đồng và cách thiết lập tài khoản. - **Xuất dữ liệu và sao lưu nội bộ dạng JSON** để bảo đảm khả năng lấy lại dữ liệu. #### Vai trò người dùng Omniscol phân biệt nhiều vai trò ở phía nhà trường: | Vai trò | Sử dụng điển hình | | --- | --- | | Quản trị viên | Người phụ trách xếp lịch, ban giám hiệu, bộ phận công nghệ thông tin | | Giáo viên | Giáo viên, giảng viên thỉnh giảng, người hướng dẫn đào tạo | | Học sinh | Học sinh, sinh viên, người học | | Nhân viên | Bộ phận quản lý học sinh, giám thị, trợ lý giáo dục, nếu mô-đun Quản lý nhân sự đang bật | | Liên kết chia sẻ | Truy cập qua URL có chữ ký vào một phần nội dung được xác định rõ | Sự tương ứng giữa các nhãn này và mã định danh kỹ thuật của từng vai trò được trình bày chi tiết trong [Người dùng và vai trò](#page-admin.users-and-roles). Cùng một người dùng có thể **mang nhiều vai trò cùng lúc**. Ví dụ, một giáo viên tham gia công việc xếp lịch có thể vừa là Giáo viên vừa là Quản trị viên. Vai trò Liên kết chia sẻ không tương ứng với một tài khoản người dùng thông thường. Đó là những liên kết có chữ ký: liên kết web của thời khóa biểu chỉ cho phép xem, còn một số liên kết có mục đích riêng vẫn có thể cho phép một thao tác giới hạn, ví dụ việc nhập thời gian rảnh của một giáo viên cho đến một ngày hết hạn. Ngoài ra còn có những vai trò nội bộ dành riêng cho các nhóm của Omniscol: quản trị nền tảng, dịch thuật, hoạt động thương mại và các đối tác phân phối. Một số tài khoản trong đó được phép đăng nhập vào tài khoản của các trường, vì lý do bảo trì. Khi đó họ làm việc với tư cách siêu quản trị viên của trường, với nhiều khả năng hơn một quản trị viên: nhập dữ liệu thô thẳng vào cơ sở dữ liệu, bật hoặc tắt các tùy chọn có phí, đăng nhập dưới danh nghĩa một người dùng. Những lần truy cập này kích hoạt cảnh báo đăng nhập hiển thị rõ và mã thông báo của chúng hết hạn rất nhanh. Quyền lực càng lớn thì trách nhiệm càng nặng. > _Option: Vai trò tùy chỉnh_ #### Vai trò tùy chỉnh Tùy chọn [Vai trò tùy chỉnh](#page-admin.customroles) cho phép giới hạn quyền của một tài khoản quản trị viên theo từng mô-đun và theo từng thao tác. Nó dùng để giao lại một phần công việc quản trị mà không trao toàn bộ quyền chung. Cũng chính tùy chọn đó mở ra [phạm vi](#page-admin.planning-domains): vai trò giới hạn các thao tác, còn phạm vi thì giới hạn dữ liệu — những lớp nào, những cơ sở nào, những thời khóa biểu nào mà người lập thời khóa biểu được phép sửa. #### Các mô-đun Những mô-đun hiển thị trong một tài khoản tiêu chuẩn: - **Trang chủ** (`home`) — trang vào và bản tóm tắt trong ngày. - **Thời khóa biểu** (`schedules`) — tra cứu và những thay đổi riêng lẻ. - **Trang tổng quan** (`dashboard`) — thống kê mức sử dụng và giờ làm việc. - **Quản lý vắng mặt** (`absences`) — khai báo và thay thế. - **Quản lý thời khóa biểu** (`timetables`) — dựng, tạo tự động và công bố thời khóa biểu. - **Quản trị** (`admin`) — người dùng, thông số, nhập / xuất và tích hợp. Tùy theo hợp đồng, có thể xuất hiện thêm những mô-đun khác, đặc biệt là **Quản lý nhân sự** để xếp lịch các công việc quản lý học sinh và trực giám sát. #### Nhiều trường Mỗi trường được cách ly logic ở phía máy chủ và truy cập vào tên miền riêng của mình. Dữ liệu của một trường không hiển thị với các trường khác từ trong ứng dụng. Ngược lại, nếu có yêu cầu, có thể bật một kênh liên lạc giữa những tài khoản riêng biệt, để chia sẻ các lỗi tương thích về phòng học và giáo viên. Điều này rất hữu ích khi các trường dùng chung tòa nhà, hoặc với một nhóm trường cùng chia sẻ tài nguyên. #### Xem thêm - [Giới thiệu chung](#page-overview.what-is-omniscol) - [Tham quan có hướng dẫn](#page-overview.quick-tour) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Vai trò tùy chỉnh](#page-admin.customroles) - [Phạm vi](#page-admin.planning-domains) - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) - [Bảo mật và lưu trữ](#page-faq.security-and-hosting) ### 1.5 Các gói và tùy chọn của Omniscol *Source: `help/vi/overview/plans-and-options.md` · id: overview.plans-and-options · Updated: 2026-08-07* Omniscol được bán theo một mô hình đơn giản: **nhiều gói**, các **chức năng Premium có sẵn**, một số **tùy chọn bật theo hợp đồng** và một gói độc lập **Quản lý nhân sự**. Giá và phạm vi cụ thể phụ thuộc vào hợp đồng ký với cơ sở đào tạo của bạn. #### Các gói | Gói | Dành cho ai? | Bao gồm | | --- | --- | --- | | **Lite** | Cơ sở đào tạo rất nhỏ, người hành nghề tự do, người đào tạo cá nhân, dùng thử | Tạo thời khóa biểu và in ấn. **Không công bố, không năm học, không nhiều cơ sở, không quản lý học sinh**, tài nguyên bị giới hạn. Các mô-đun hiển thị: Quản lý thời khóa biểu + phần Quản trị tối thiểu. | | **Staffing** | Cơ sở đào tạo chỉ cần đến phần quản lý nhân sự | Chỉ mô-đun Quản lý nhân sự, dành cho công tác giám thị, trực ban và phụ trách học sinh | | **Standard** | Trường học thông thường (tiểu học, trung học cơ sở, trung học phổ thông), một tổ xếp thời khóa biểu duy nhất, thời khóa biểu theo tuần | Lite + công bố, năm học, nhiều cơ sở, quản lý học sinh, lập kế hoạch hằng ngày, vắng mặt, trang tổng quan, bảng thông tin, iCal, API chỉ đọc có giới hạn | | **Standard Plus** | Cơ sở đào tạo cần cả gói Standard lẫn phần quản lý nhân sự | Standard + Quản lý nhân sự | | **Premium** | Giáo dục đại học, đào tạo thường xuyên, các tổ chức nhiều cơ sở hoặc nhiều lộ trình đào tạo phức tạp hơn | Thời khóa biểu theo tuần, theo chu kỳ hoặc theo lịch, thời gian rảnh theo ngày cụ thể, nhiều thời khóa biểu cùng hoạt động, nhiều thông số cấu hình hơn (trạng thái tiết học, đặt ngoài khung giờ, sự kiện đơn lẻ, hình thức tiết học, liên kết hội nghị truyền hình...), API đầy đủ qua mã thông báo, MCP, OIDC / SSO, đồng bộ hóa với hệ thống bên ngoài, các tùy chọn nâng cao theo hợp đồng (cộng tác, điểm sao lưu, vai trò tùy chỉnh). | Không phải chức năng nào cũng được bật theo cùng một cách: - một số chức năng **có sẵn mặc định trong gói Premium** (chế độ lịch, thời gian rảnh theo lịch, nhiều thời khóa biểu cùng hoạt động); - một số khác được **bật theo hợp đồng của bạn**, thường là trên các tài khoản Premium; - một vài trường hợp vẫn **có thể bật ngoại lệ** trên tài khoản Standard khi có nhu cầu thật cụ thể; - phần **Quản lý nhân sự** cũng đi theo lô-gic riêng, vì mô-đun này có thể bán độc lập. #### Gói độc lập Quản lý nhân sự Mô-đun Quản lý nhân sự cũng được bán **không kèm phần còn lại của Omniscol** cho những cơ sở đào tạo chỉ cần quản lý công tác giám thị / phụ trách học sinh. Khi đó tài khoản chỉ hiển thị mô-đun Quản lý nhân sự, phần vắng mặt của nhân viên có thể được phân công và những màn hình người dùng cần thiết. Không có thời khóa biểu, không có trang tổng quan giảng dạy, không có bảng thông tin. Xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview). #### Các tùy chọn bật theo hợp đồng | Chức năng | Mô tả | Cách bật | | --- | --- | --- | | Vai trò tùy chỉnh | Vai trò tùy chỉnh kèm ma trận phân quyền chi tiết. | Theo hợp đồng của tài khoản | | Phạm vi lập kế hoạch | Vùng dữ liệu và các quyền tương ứng giao cho một quản trị viên, để ủy quyền một đơn vị, một ngành đào tạo hay một trường. | Tài khoản Premium, theo hợp đồng của tài khoản | | Điểm sao lưu | Các điểm sao lưu, bản tóm lược, khôi phục và xoay vòng theo hạn mức hợp đồng do Omniscol bật. | Theo hợp đồng của tài khoản | | Cộng tác | Cộng tác giữa các quản trị viên, hiển thị hiện diện theo thời gian thực tùy cấu hình. | Theo hợp đồng của tài khoản | | Nhật ký hoạt động | Màn hình tra cứu nhật ký với thời gian lưu giữ do Omniscol bật theo hợp đồng. | Theo hợp đồng của tài khoản | | Tài khoản liên kết | Nhiều tài khoản Omniscol khác nhau được liên kết để chia sẻ tình trạng chiếm dụng phòng học, giáo viên hay lớp giữa các trường mà mỗi trường có một tên miền phụ Omniscol riêng. | Theo yêu cầu, sau khi xác định khuôn khổ | | Nhiều thời khóa biểu cùng hoạt động trên tài khoản Standard | Trường hợp ngoại lệ dành cho một số tài khoản trường học thực sự tách biệt (ví dụ một trường trung học cơ sở — trung học phổ thông độc lập, hoặc một trường liên cấp tiểu học — trung học cơ sở — trung học phổ thông). | Bật riêng, có khuôn khổ và cách tính phí phù hợp | | Phân công trực tiếp học sinh vào các lớp và nhóm trong thời khóa biểu | Thông thường, các trường lập kế hoạch khi chưa có danh sách chính xác học sinh cùng phân công của họ. Vì vậy họ làm việc với các lớp và nhóm theo số học sinh dự kiến trên lý thuyết, đồng thời nêu rõ lô-gic tổ chức; khi thời khóa biểu đã xong, học sinh mới (có thể) được phân công vào các lớp và nhóm, sau đó. Tuy nhiên còn một cách vận hành khác, phổ biến ở các cơ sở đào tạo nghề, khi cần danh sách chính xác học sinh của từng lớp và từng nhóm ngay từ đầu, lúc thiết kế thời khóa biểu; khi đó lô-gic không xung đột giữa các nhóm (loại trừ lẫn nhau) được Omniscol tự động suy ra. Điều này làm thay đổi mô hình dữ liệu lẫn cách vận hành, nên chỉ đội ngũ Omniscol mới bật được như một tùy chọn. | Theo yêu cầu, sau khi đánh giá cách lập kế hoạch đặc thù | | Quản lý nhân sự | Mô-đun quản lý công tác giám thị / phụ trách học sinh (kỳ thi, trực ban). Cũng được bán ở dạng gói độc lập. | Ở dạng gói độc lập, trong gói Standard Plus hoặc theo hợp đồng | | Mô-đun bổ sung | Các mô-đun bổ sung có thể có. | Tùy theo mô-đun và hợp đồng | #### Giải thích các chức năng đáng chú ý ##### Chế độ lịch Cho phép đặt các tiết học **theo từng ngày** thay vì trên một tuần mẫu. Đây là chức năng **có sẵn mặc định trong gói Premium**, không thể thiếu với giáo dục đại học, đào tạo thường xuyên và các trung tâm đào tạo. Xem [Chế độ lịch](#page-glossary.calendar-mode). ##### Nhóm của nhóm Gom nhiều nhóm — của cùng một lớp hoặc của những lớp khác nhau — thành một thực thể xếp lịch được trọn khối. **Có trên mọi tài khoản, bất kể gói nào**, và trên mọi kiểu thời khóa biểu (theo tuần, theo chu kỳ, theo lịch); không cần bật gì thêm. Xem [Nhóm của nhóm](#page-core-concepts.groups-of-groups). ##### Nhiều thời khóa biểu cùng hoạt động song song Công bố đồng thời nhiều thời khóa biểu trên cùng những tuần, được hợp nhất động. Chức năng này có sẵn mặc định trong gói Premium. Omniscol cũng có thể bật ngoại lệ trên một số tài khoản Standard hoặc tài khoản trường liên cấp khi nhu cầu và cách tính phí thỏa đáng. Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). ##### Tài khoản liên kết Nối nhiều tài khoản Omniscol để chia sẻ tình trạng chiếm dụng các tài nguyên dùng chung: giáo viên, phòng học, tòa nhà hay lớp tùy trường hợp. Việc bật do Omniscol thực hiện theo yêu cầu, vì cần xác định khuôn khổ các tài khoản được nối và các tài nguyên dùng chung. Xem [Tài khoản liên kết và tài nguyên dùng chung](#page-integrations.linked-accounts). ##### Vai trò tùy chỉnh Giới hạn chi tiết quyền của một tài khoản quản trị viên — theo từng mô-đun, với lựa chọn các thao tác (xem / sửa / xóa) và khả năng tắt trọn một mô-đun chỉ bằng một cú nhấp chuột. Xem [Vai trò tùy chỉnh](#page-admin.customroles). ##### Phạm vi lập kế hoạch Giao cho một quản trị viên một vùng dữ liệu — đơn vị, môn học, thời khóa biểu, cơ sở, phòng học, lớp, nhóm — cùng các quyền người đó được thực hiện trên đó. Mỗi người lập thời khóa biểu làm việc trên phần của mình mà không đụng đến phần của người khác, còn quyền xem vẫn để mở. Xem [Phạm vi](#page-admin.planning-domains). ##### Điểm sao lưu Lưu trạng thái của tài khoản tại một thời điểm và khôi phục lại về sau. Rất hữu ích trước một thao tác rủi ro (làm lại toàn bộ, nhập dữ liệu khối lượng lớn, đầu năm học). Xem [Điểm sao lưu](#page-admin.snapshots). ##### Cộng tác theo thời gian thực Nhiều quản trị viên có thể cùng làm việc trên một tài khoản, kèm chỉ báo hiện diện khi tùy chọn này được bật. Xem [Cộng tác theo thời gian thực](#page-core-concepts.collaboration). ##### MCP **MCP** cho phép kết nối một tác nhân AI tương thích như Claude (khuyến nghị), với việc định danh tài khoản qua OAuth2. Xem [MCP](#page-integrations.mcp). ##### Nhật ký hoạt động Khi tùy chọn được Omniscol bật, màn hình Nhật ký hoạt động cho phép tra cứu và xuất những mục do Omniscol ghi lại. Không nên trình bày nó như một bản kiểm toán đầy đủ có so sánh trước/sau hay phát lại yêu cầu. Xem [Nhật ký hoạt động (logs)](#page-admin.logs). ##### Đồng bộ hóa với ERP Đồng bộ hóa với các hệ thống bên ngoài là một tùy chọn bật theo hợp đồng, thường trên các tài khoản Premium, khi đã cấu hình một trình kết nối. Hiện có các trình kết nối Aurion, Auriga và Edusign; việc bổ sung một ERP mới được xử lý theo dự án, với API có tài liệu, môi trường sandbox và khuôn khổ ánh xạ dữ liệu. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). ##### Quản lý nhân sự ở dạng gói độc lập Mô-đun Quản lý nhân sự có thể mua riêng, kể cả ở dạng gói độc lập (không kèm phần còn lại của Omniscol). Xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview). #### Làm thế nào để biết gói và tùy chọn nào đang hoạt động Xem trong Thông số — mục nằm ở cuối màn hình, hiển thị gói đang hoạt động và các tùy chọn đã đăng ký. Gói + các tùy chọn quyết định những mô-đun nào có mặt trong menu bên trái. #### Xem thêm - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Tài khoản liên kết và tài nguyên dùng chung](#page-integrations.linked-accounts) - [Chế độ lịch](#page-timetables.calendar-mode) - [Vai trò tùy chỉnh](#page-admin.customroles) - [Phạm vi](#page-admin.planning-domains) - [Điểm sao lưu](#page-admin.snapshots) - [Cộng tác theo thời gian thực](#page-core-concepts.collaboration) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) ### 1.6 Chọn đúng loại thời khóa biểu: hằng tuần, theo chu kỳ, theo lịch *Source: `help/vi/overview/timetable-modes.md` · id: overview.timetable-modes · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Với tài khoản Premium, bạn có ba loại thời khóa biểu để chọn ngay khi tạo. Khác biệt cốt lõi nằm giữa **tính lặp lại** (Hằng tuần và Theo chu kỳ: một mẫu lặp lại) và **tính không lặp lại** (Lịch: mỗi tiết học được gắn ngày riêng). Lựa chọn này định hình mọi việc về sau; vì vậy cần hiểu rõ trước khi tạo một thời khóa biểu. Công cụ **tạo tự động** khả dụng cho cả ba loại; ưu điểm và giới hạn riêng của từng loại được mô tả bên dưới. #### Tóm gọn trong một câu | Loại | Tính lặp lại | Khi nào dùng | | --- | --- | --- | | **[Hằng tuần](#page-glossary.weekly-timetable)** | Có lặp lại (tuần mẫu) | Các tiết học lặp lại trên một **tuần mẫu**. Tiểu học / trung học. | | **[Theo chu kỳ](#page-glossary.cyclic-timetable)** | Có lặp lại (chu kỳ N ngày) | Các tiết học lặp lại trên một **chu kỳ N ngày** (khác với tuần 5 hoặc 7 ngày). Hệ thống giáo dục Bắc Mỹ, trường quốc tế. | | **[Lịch](#page-glossary.calendar-mode)** | Không lặp lại | Các tiết học được **gắn ngày cho từng tiết một**, không lặp lại. Giáo dục đại học, đào tạo thường xuyên. | #### Hằng tuần — trường hợp chuẩn Đây là chế độ mặc định. Nó phù hợp với mọi trường có các tiết học theo một **tuần mẫu lặp lại**, có hoặc không có luân phiên A/B. Ưu điểm: - Logic đơn giản: bạn nhập một tuần mẫu, rồi chọn những tuần mà tuần mẫu đó được áp dụng. - Ngày nghỉ lễ được tự động loại bỏ. Giới hạn: - Không phù hợp với những trường mà tuần nào cũng khác nhau (tiết học đơn lẻ, giáo viên bên ngoài dạy luân phiên). - Những tiết học chỉ diễn ra một lần duy nhất (hội thảo chuyên đề, kỳ thi vào một ngày cụ thể) phải được thêm dưới dạng thay đổi đơn lẻ hoặc qua một thời khóa biểu riêng. #### Theo chu kỳ — cho những chu kỳ không tính theo tuần Chế độ theo chu kỳ phù hợp với những trường tổ chức các tiết học trên một **chu kỳ N ngày** (thường là 6 hoặc 8) khác với tuần 5 hoặc 7 ngày — phổ biến ở các hệ thống giáo dục Bắc Mỹ và ở một số trường quốc tế. Cách vận hành gần giống chế độ hằng tuần, với một chu kỳ gồm N ngày được đánh số (Ngày 1, Ngày 2…). Ánh xạ chu kỳ ↔ ngày trong tuần được dựng động từ việc **công bố thời khóa biểu**, tức là khi bạn chọn những tuần mà chu kỳ được áp dụng. #### Lịch — cho giáo dục đại học và đào tạo thường xuyên Chế độ lịch khác biệt đáng kể so với hai chế độ kia: mỗi tiết học được đặt vào **một ngày cụ thể**, không lặp lại. Đây là chế độ được ưu tiên dùng cho: - giáo dục đại học (trường kinh doanh, trường kỹ thuật, đại học), - đào tạo thường xuyên, - các trung tâm đào tạo nơi các tiết học không lặp lại mỗi tuần. So với một cuốn lịch công tác thông thường hay một phần mềm ERP/quản lý trường học, bạn có thêm những đặc thù thường thấy của giáo dục đại học (xem [chế độ lịch](#page-timetables.calendar-mode) để biết chi tiết): - **Hỗ trợ nhập liệu rất đầy đủ** — lỗi tương thích theo thời gian thực, bộ lọc phòng học, thời gian rảnh được hợp nhất… - **Thời gian rảnh hợp nhất theo thời gian thực** — mọi thay đổi về thời gian rảnh của giáo viên phụ trách đều lập tức được phản ánh thành lỗi tương thích tiềm tàng hoặc đã xảy ra. - **Công bố hai trạng thái** — thời khóa biểu ở trạng thái đã công bố hoặc chưa công bố, không phải chọn khoảng tuần. Giới hạn hiện tại — **tính bán lặp lại**: một số trường có các tuần nhìn chung giống nhau nhưng xen kẽ những chỗ bất thường (một số tiết học kết thúc sớm hơn các tiết học khác, ngày nghỉ lễ, giáo viên chỉ dạy theo từng đợt…). Có các nút cho phép **nhân bản thủ công** một tiết học theo một mẫu lặp lại, nhưng công cụ tạo tự động chưa xử lý được trường hợp này; việc tạo tự động vẫn hoàn toàn khả dụng trên những thời khóa biểu theo lịch không có mẫu lặp lại ngầm bên dưới, hoặc ngược lại, cho những thời khóa biểu lặp lại hoàn toàn (hằng tuần). **Tạo tự động một phần** — việc tạo tự động có thể được giới hạn trong một phần phạm vi thông qua bảng tùy chọn. Có ba bộ lọc: - **Lớp**: chọn những lớp cần tạo. - **Môn học**: chọn những môn học cần tạo. - **Khoảng ngày**: riêng cho chế độ Lịch. Cho phép xử lý từng giai đoạn một (ví dụ: học kỳ kế tiếp). Điều này đặc biệt hữu ích ở chế độ Lịch: bạn có thể dựng thời khóa biểu **theo từng vòng nối tiếp nhau** — một học kỳ, rồi học kỳ sau; một ngành, rồi các ngành còn lại; v.v. #### Chọn chế độ phù hợp: hướng dẫn nhanh ```mermaid flowchart TD Q1{{"Các tiết học của bạn có theo
một mẫu lặp lại không?"}} Q2{{"Mẫu đó có phải là tuần
(5 đến 7 ngày) không?"}} H([Hằng tuần]) Cy([Theo chu kỳ]) Ca([Lịch]) Q1 -->|Có| Q2 Q1 -->|Không| Ca Q2 -->|Có| H Q2 -->|Không| Cy ``` #### Chuyển một thời khóa biểu sang loại khác Nếu bạn muốn chuyển một thời khóa biểu hiện có từ loại này sang loại khác, bạn có thể **tạo bản sao kèm chuyển đổi** bằng thao tác Tạo bản sao trong danh sách thời khóa biểu, ở mô-đun Quản lý thời khóa biểu. Cả sáu chiều chuyển đổi đều được hỗ trợ: Hằng tuần ↔ Theo chu kỳ, Hằng tuần ↔ Lịch, Theo chu kỳ ↔ Lịch. Tùy loại đích, hệ thống sẽ hỏi thêm một thông số: - **Lịch**: khoảng ngày (bắt đầu / kết thúc) để trải các tiết học lên đó. Hộp thoại mặc định đề xuất tuần đầu tiên và tuần cuối cùng của năm học. - **Theo chu kỳ**: độ dài chu kỳ, tính bằng ngày (mặc định là 12). - **Hằng tuần**: không cần thêm thông số nào. Những gì được ánh xạ lại trong quá trình chuyển đổi: - **Vị trí của các tiết học** — mỗi vị trí được dịch từ hệ quy chiếu gốc sang hệ quy chiếu đích (ngày trong tuần ↔ số thứ tự trong chu kỳ ↔ ngày cụ thể). - **Hằng tuần → Lịch**: mỗi tiết học được nhân ra trên mọi ngày tương ứng trong khoảng đích, và **khối lượng giờ của các môn học** được nhân với số tuần để giữ nguyên tổng số. **Luân phiên A/B** được áp dụng tự động cho từng ngày được cụ thể hóa. - **Thời gian rảnh**: chỉ được giữ lại và chuyển sang khi nguồn là **Hằng tuần**. Nguồn Theo chu kỳ hoặc Lịch sẽ xóa chúng — thời gian rảnh gắn theo ngày cụ thể hoặc theo số thứ tự chu kỳ không chiếu lại gọn gàng lên một tuần mẫu hay một chu kỳ khác. Kết quả là một **thời khóa biểu độc lập**, tách rời khỏi bản gốc — bạn có thể chỉnh sửa nó riêng, công bố một mình nó hoặc công bố song song với bản gốc. #### Kết hợp các chế độ Bạn có thể **công bố đồng thời nhiều thời khóa biểu thuộc các loại khác nhau** trên cùng những tuần. Các trường hợp điển hình: - **Phần đại cương lặp lại + sự kiện đơn lẻ**: một thời khóa biểu hằng tuần cho các tiết học đều đặn + một thời khóa biểu [theo lịch](#page-timetables.calendar-mode) cho các masterclass, hội thảo chuyên đề hay kỳ thi đã ấn định ngày. - **Nhịp độ khác nhau trên cùng những lớp**: một thời khóa biểu hằng tuần cho các buổi sáng (những môn học nền tảng rất đều đặn) + một thời khóa biểu theo lịch cho các buổi chiều (thể thao, câu lạc bộ, xưởng thực hành thay đổi từ tuần này sang tuần khác). - **Cách vận hành khác nhau tùy lớp**: giai đoạn đại cương chạy hằng tuần, còn giai đoạn chuyên ngành thì không lặp lại, với nhiều giáo viên thỉnh giảng bên ngoài dạy liền nhiều ngày cùng một khóa học cho cùng những học sinh đó. Nếu nhiều thời khóa biểu đã công bố dùng chung một giáo viên hay một phòng học, Omniscol **hợp nhất linh động các chế độ xem** ở phía tra cứu. Khi bạn chỉnh sửa một thời khóa biểu trong lúc một thời khóa biểu khác đã được công bố, theo mặc định Omniscol có tính đến việc giáo viên, phòng học và lớp đang bị thời khóa biểu đã công bố đó chiếm chỗ (có thể tắt tính năng này). #### Xem thêm - [Hằng tuần](#page-glossary.weekly-timetable) - [Theo chu kỳ](#page-glossary.cyclic-timetable) - [Lịch](#page-glossary.calendar-mode) - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) ### 1.7 Đăng nhập lần đầu *Source: `help/vi/getting-started/first-login.md` · id: getting-started.first-login · Updated: 2026-05-10* Để đăng nhập vào Omniscol, bạn hãy mở địa chỉ URL của trường mình — thường có dạng `https://.omniscol.com`. Trang đăng nhập sẽ yêu cầu bạn nhập tên đăng nhập và mật khẩu. #### Thông tin đăng nhập Thông tin đăng nhập của bạn do trường cung cấp. Cú pháp mặc định là `ten.ho` hoặc `ho.ten` (tùy theo cấu hình của trường trong [Thông số chung](#page-admin.parameters)), nhưng cũng có thể là một số hiệu định danh dạng số. #### Quên mật khẩu Hãy bấm Quên mật khẩu ? rồi nhập tên đăng nhập của bạn. Nếu địa chỉ e-mail đã được điền, bạn sẽ nhận được một liên kết đặt lại mật khẩu. Hãy làm theo hướng dẫn. Nếu bạn không nhận được e-mail: - kiểm tra xem tên đăng nhập vừa nhập có đúng với tên đã được thiết lập trong Omniscol hay không (nếu chưa chắc chắn, hãy liên hệ quản trị viên của trường), - xem trong hộp thư rác / spam, - kiểm tra xem trường đã điền địa chỉ e-mail của bạn vào hồ sơ người dùng của tài khoản hay chưa. #### Đăng nhập lần đầu Nếu đây là lần đăng nhập đầu tiên, hệ thống có thể yêu cầu bạn **đổi mật khẩu** ngay lập tức. Hãy chọn một mật khẩu mạnh và không dùng ở nơi nào khác (Omniscol không có cách nào tìm lại được mật khẩu đó — nó được biến thành dạng không thể đọc được ngay cả trước khi truyền đi). #### Đăng nhập qua nhà cung cấp danh tính Nếu trường của bạn dùng [OIDC / SSO](#page-integrations.oauth2) (Google Workspace, Azure AD/Microsoft Entra, Keycloak, nhà cung cấp SSO nội bộ), một nút riêng sẽ xuất hiện trên trang đăng nhập. Hãy bấm vào đó và xác thực qua dịch vụ danh tính bạn vẫn dùng. #### Hạn chế theo loại người dùng Quản trị viên có thể quyết định **chặn đăng nhập** đối với một số loại người dùng (ví dụ tắt đăng nhập của học sinh giữa năm học, hoặc vô hiệu hóa một tài khoản giáo viên cụ thể). Nếu loại người dùng của bạn bị hạn chế, bạn sẽ thấy một thông báo cho biết điều đó. Xem Hạn chế đăng nhập vào ứng dụng. #### Xem thêm - [Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) - [OIDC / SSO](#page-integrations.oauth2) ### 1.8 Thiết lập tài khoản của trường *Source: `help/vi/getting-started/setup-school.md` · id: getting-started.setup-school · Audience: admin · Updated: 2026-05-10* Khi tài khoản Omniscol của bạn được tạo, màn hình trang chủ sẽ hướng dẫn bạn từng bước. Hãy làm theo thứ tự được đề xuất: đó là lộ trình thuận tiện nhất. Trang này tóm tắt trình tự ấy theo chiều **từ phải sang trái** trong menu Quản trị (một mục càng ít dùng thì càng nằm về bên phải). #### Bước 1 — Thông số Màn hình Thông số chứa toàn bộ cấu hình của tài khoản. Nhiều giá trị đã được điền sẵn theo **quốc gia** của trường bạn, dựa trên những thói quen địa phương mà Omniscol ghi nhận — thường thì bạn chỉ phải chỉnh lại vài chi tiết. Cần kiểm tra trước tiên: - Tên trường — hiển thị trên trang đăng nhập. - **Khối lớp** (khối 6, khối 7, Cử nhân 1, Thạc sĩ 2…) — chúng được dùng làm tham chiếu ở khắp nơi. Hãy điều chỉnh theo cách đặt tên của trường bạn. - **Cách nhập thời gian rảnh của giáo viên** — theo tuần, theo lịch (trên các tài khoản Premium), theo lịch + theo tuần (trên các tài khoản Premium), hoặc tắt. - **Giới hạn xem thời khóa biểu cho học sinh** — học sinh được xem thời khóa biểu của mình trước bao nhiêu tuần (hữu ích khi cần hoãn công bố một thời khóa biểu chưa hoàn chỉnh). - **Tên đăng nhập** — cú pháp tự động sinh tên đăng nhập (`ten.ho`, `ho.ten`, mã số định danh…). - Ngày đầu tuần — quan trọng với những quốc gia bắt đầu tuần vào Chủ nhật (các nước Ả Rập, Israel). - Tuần luân phiên (dành cho thời khóa biểu theo tuần) — A/B, 1/2 (tức là hiển thị bằng chữ cái hay bằng chữ số), hoặc tắt. - **Logo của trường** — hiển thị thay cho logo Omniscol trên trang đăng nhập và trên thanh trên cùng. Chi tiết xem [Thông số chung](#page-admin.parameters). #### Bước 2 — Năm học Trước khi có thể công bố một thời khóa biểu, bạn phải khai báo ít nhất **một năm học** trong Năm học. Cần điền: - **Tên** — theo quy ước là các mốc năm: “2025-2026”. - **Ngày bắt đầu và ngày kết thúc**. - **Ngày nghỉ lễ** — hoặc sao chép và dán từ một bảng, hoặc nhập các ngày đã điền sẵn cho quốc gia của bạn (được đề xuất khi tạo mới), hoặc khai báo thủ công. - **Năm học hiện tại** — chỉ định năm đang thực sự được dùng. Đó là năm hiển thị theo mặc định và là năm duy nhất được công bố. Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). #### Bước 3 — Môn học Nếu Omniscol đã điền sẵn một **danh mục môn học chung** cho quốc gia của bạn, có thể bạn không phải làm gì thêm. Nếu chưa, hoặc với những môn riêng của trường bạn: - Hãy tạo các **môn học tùy chỉnh** bằng Tạo mới. - Hãy khai báo các **loại tiết học** (ví dụ lý thuyết, thực hành, thi, chuyên đề) trong Tạo mới nếu cách phân loại giảng dạy của trường bạn có dùng đến. - Tùy chọn: cấu hình các **nhóm môn học** để gom những môn học có liên quan với nhau. ⚠ **Hãy chú ý chính tả** của các môn học tùy chỉnh: Omniscol tạo một bản sao nội bộ ngay khi môn học được gán vào một thời khóa biểu, và việc sửa lại về sau không lan sang những thời khóa biểu đã thiết lập trong quá khứ (chỉ lan sang thời khóa biểu hiện tại, tương lai và chưa công bố). #### Bước 4 — Người dùng Đây là nơi bạn tạo giáo viên, học sinh và quản trị viên. Xem [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) để biết chi tiết. Sau bước này, bạn sẽ tạo được thời khóa biểu đầu tiên của mình. Khi đó hãy làm theo [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview). #### Xem thêm - [Thông số chung](#page-admin.parameters) - [Năm học](#page-admin.school-year) - [Quản lý môn học](#page-admin.subjects) - [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) ### 1.9 Mời và kích hoạt người dùng *Source: `help/vi/getting-started/inviting-users.md` · id: getting-started.inviting-users · Audience: admin · Updated: 2026-08-07* Bốn vai trò người dùng phía nhà trường định hình bước khởi đầu: **Quản trị viên**, **Giáo viên**, **Học sinh** và **Nhân viên**. Mỗi vai trò mở ra một phần khác nhau của ứng dụng. #### Màn hình nào cho vai trò nào | Vai trò | Màn hình | Bắt buộc? | | --- | --- | --- | | Quản trị viên | Các quản trị viên | Ít nhất phải có quản trị viên chính. | | Giáo viên | Giáo viên | Thiết yếu, để có thể tạo và công bố các tiết học cùng với giáo viên. | | Học sinh | Học sinh | Tùy chọn: Omniscol vẫn chạy được mà không cần biết học sinh và không cần cho họ vào cổng thông tin tra cứu. | | Nhân viên | Thành viên nhân sự | Chỉ hữu ích nếu bạn dùng mô-đun Quản lý nhân sự. | Chi tiết quyền của từng vai trò và cách chúng ánh xạ sang vai trò kỹ thuật được mô tả trong [Người dùng và vai trò](#page-admin.users-and-roles). #### Tạo từng người hoặc tạo hàng loạt **Từng người**: nút Thêm trên màn hình của vai trò tương ứng. Bạn mở biểu mẫu của một người dùng duy nhất và điền các thông tin cơ bản. **Hàng loạt**: nút Nhập dữ liệu trên màn hình của vai trò tương ứng. Bạn tạo hoặc sửa nhiều dòng trong một bảng, từ tệp đã chuẩn bị sẵn trong Excel, Google Sheets, Numbers hoặc Calc. Xem [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data). #### Kích hoạt một người dùng Người dùng đang hoạt động có thể đăng nhập, xuất hiện trên những màn hình liên quan đến họ và nhận phân công. Để chuyển một người dùng sang trạng thái ngừng hoạt động mà không xóa họ, hãy dùng hồ sơ của người đó hoặc thao tác hàng loạt. Tài khoản ngừng hoạt động không đăng nhập được nữa và cũng không được phân công vào thời khóa biểu mới, nhưng lịch sử của tài khoản vẫn tra cứu được. #### Mời qua e-mail Nút Mời người dùng, áp dụng cho những người dùng đã chọn, gửi cho mỗi người nhận một e-mail kèm liên kết đăng nhập lần đầu. Trước hết hãy kiểm tra xem các địa chỉ e-mail đã được điền chưa; nếu thiếu, lời mời không thể gửi đi. #### Đặt mật khẩu ban đầu Nếu lời mời qua e-mail không phù hợp, bạn có thể đặt mật khẩu thủ công bằng Thay đổi mật khẩu. Cách này nên dành cho các tài khoản thử nghiệm, tài khoản dịch vụ hoặc những trường hợp nhà trường tự quản lý việc phân phát thông tin đăng nhập. Mật khẩu đặt thủ công như vậy (có thể nhờ đến nút sinh ngẫu nhiên) thực chất chỉ là tạm thời: ở lần đăng nhập đầu tiên, người dùng sẽ phải nhập một mật khẩu mới của riêng mình. #### Xếp học sinh vào lớp và nhóm Việc xếp học sinh được quản lý từ màn hình Học sinh: 1. Trên Học sinh, chọn những học sinh liên quan. 2. Nhấn Phân công vào lớp. 3. Chọn năm học, lớp và các ngày nếu cần. 4. Dùng Nhóm cho các nhóm (ngoại ngữ, môn tự chọn, giờ thực hành, nửa lớp). Việc xếp học sinh có thể làm thành nhiều đợt, ví dụ theo khối lớp hoặc theo tiến độ nhập học. Có một tùy chọn cho phép phân công học sinh trực tiếp vào lớp và nhóm ngay ở cấp thời khóa biểu, ngay từ đầu, thay vì làm sau đó trong mô-đun Quản trị. Hãy liên hệ đội ngũ Omniscol nếu bạn quan tâm đến cách làm việc này. > _Option: Vai trò tùy chỉnh_ #### Vai trò tùy chỉnh Tùy chọn **Vai trò tùy chỉnh** cho phép giới hạn quyền của một tài khoản quản trị viên theo từng mô-đun và theo từng thao tác. Xem [Vai trò tùy chỉnh](#page-admin.customroles). Tùy chọn này cũng mở ra [phạm vi](#page-admin.planning-domains), giúp khoanh vùng dữ liệu giao cho một người lập thời khóa biểu — cơ sở, ngành đào tạo hay thời khóa biểu của người đó. #### Hướng dẫn — Bắt tay vào quản lý người dùng đầu năm học 1. Chuẩn bị các tệp hoặc bảng người dùng: quản trị viên, giáo viên, học sinh và nhân viên nếu cần. 2. Nhập hoặc tạo tài khoản từ các màn hình của mô-đun Quản trị. 3. Kiểm tra e-mail, tên đăng nhập và vai trò. 4. Gửi lời mời bằng Mời người dùng. 5. Xếp học sinh vào lớp và nhóm tương ứng sau khi đã công bố một thời khóa biểu đầu tiên cho năm học. 6. Cuối năm, hãy vô hiệu hóa những tài khoản không còn được phép đăng nhập, thay vì xóa ngay lịch sử. #### Xem thêm - [Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Quản lý giáo viên](#page-admin.teachers) - [Quản lý học sinh](#page-admin.students) ### 1.10 Chuẩn bị dữ liệu để nhập hàng loạt (theo lô) *Source: `help/vi/getting-started/preparing-data.md` · id: getting-started.preparing-data · Audience: admin · Updated: 2026-06-03* Tự tay nhập vài trăm hay vài nghìn dòng (giáo viên, học sinh, phòng học, tiết học…) hiếm khi là cách làm hợp lý. Omniscol cung cấp cách **nhập hàng loạt** bằng sao chép rồi dán từ bất kỳ bảng tính nào (Excel, Google Sheets, Numbers, Calc…), ở định dạng CSV hoặc TSV. Việc nhập này được thực hiện bằng cách bấm vào các nút [table], thường nằm ở đầu danh sách các thực thể. Một vài nút chỉ dùng để xuất dữ liệu, nhưng phần lớn đều nhận dữ liệu nhập vào. #### Nhập được những gì? | Thực thể | Màn hình | Khối lượng thường gặp | | --- | --- | --- | | **Giáo viên** | Xuất dữ liệu dưới định dạng CSV | 10 - 1000 | | **Học sinh** | Xuất dữ liệu dưới định dạng CSV | 50 - 10.000 | | **Phòng học** | Xuất dữ liệu dưới định dạng CSV | 10 - 500 | | **Môn học tùy chỉnh** | Xuất dữ liệu dưới định dạng CSV | 10 - 1000 | | **Tiết học của một thời khóa biểu** | Xuất dữ liệu dưới định dạng CSV | 100 - 10.000 | #### Chuẩn bị các tệp của bạn **Những quy tắc vàng**: 1. **Một dòng = một thực thể.** Không có dòng gộp ô, không có tiêu đề trải trên nhiều dòng. 2. **Tuân thủ thứ tự cột mà Omniscol quy định.** Màn hình nhập hiển thị khung cột theo đúng thứ tự đích, và bạn có thể **sắp xếp lại các cột này** ở phía Omniscol cho khớp với thứ tự trong bảng tính nguồn — nhờ vậy việc sao chép rồi dán từ Excel hay Google Sheets cho kết quả sạch, không phải viết lại tệp của bạn. 3. **Một số cột chỉ đọc.** Những cột đó hiển thị mờ, chỉ phục vụ việc xuất dữ liệu. Cột đầu tiên thường là mã định danh của dữ liệu đã lưu trong cơ sở dữ liệu. 4. **Các cột đánh dấu “*” là bắt buộc.** Nếu thiếu một trường bắt buộc, dòng đó bị bỏ qua (không được tạo khi nhập, hoặc bị xóa nếu trước đó đã có trong cơ sở dữ liệu). 5. **Dấu phân cách bên trong một ô là tùy ý** trong các danh sách (nhiều giáo viên, nhiều nhóm, nhiều phòng học của cùng một tiết học): dấu phẩy, dấu chấm phẩy, dấu gạch chéo. 6. **AI tích hợp sẽ dọn dẹp dữ liệu** nhưng chỉ đến một mức nhất định: bạn hãy cố gắng đưa vào dữ liệu sạch và rõ ràng, nếu không có thể gặp vài bất ngờ khó chịu. #### Các trường thường gặp theo thực thể ##### Giáo viên - Tên, Họ (bắt buộc). - E-mail (khuyến nghị, dùng cho lời mời). - Mã số / mã định danh bên ngoài (không bắt buộc nhưng hữu ích để truy vết). - Môn học giảng dạy (danh sách, dấu phân cách tùy ý). - Giờ làm việc (số giờ dự kiến mỗi tuần). - Cơ sở chính (nếu trường có nhiều cơ sở). ##### Học sinh - Tên, Họ (bắt buộc). - E-mail (khuyến nghị). - Mã số SIS (hữu ích để tránh nhầm lẫn giữa những người trùng tên). - Khối lớp / Lớp. - Nhóm (môn tự chọn, nhóm con). - Trạng thái (đang hoạt động, đang ghi danh sơ bộ, không hoạt động). ##### Phòng học - Tên (bắt buộc). - Cơ sở (bắt buộc nếu trường có nhiều cơ sở — nếu không, Omniscol gán vào cơ sở mặc định). - Sức chứa. - Chuyên ngành (danh sách). - Tòa nhà (nhập tự do). - Thẻ / nhận xét. ##### Tiết học - Lớp + môn học (tối thiểu). - Thời lượng (nếu bỏ trống thì suy ra từ giờ bắt đầu/giờ kết thúc). - Ngày, giờ bắt đầu, giờ kết thúc (để đặt sẵn vị trí; nếu không thì để trống rồi đặt vị trí sau). - Nhóm (không bắt buộc). - Loại tiết học (bài tập, thực hành, lý thuyết, kiểm tra…). - Giáo viên, một hoặc nhiều người (dấu phân cách tùy ý). - Phòng học, một hoặc nhiều phòng (dấu phân cách tùy ý — đúng vậy, [nhiều phòng học](#page-glossary.multi-room) cho cùng một tiết học được hỗ trợ). - Tài nguyên, một hoặc nhiều. - Tuần luân phiên (định dạng `A/B`, `1/2`, v.v.). - Nhận xét tự do. #### Sau khi chuẩn bị xong Việc nhập diễn ra thế nào là tùy màn hình đích. Thông thường, màn hình sẽ tải lại toàn bộ cùng dữ liệu mới. Với **tiết học của một thời khóa biểu**, xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import), trang mô tả trình hướng dẫn riêng gồm bốn bước. #### Xuất dữ liệu Cũng chính bảng tính tích hợp đó cho phép trích xuất dữ liệu. Bạn có nhiều lựa chọn: - Sao chép rồi dán sang một bảng tính bên ngoài (định dạng TSV, tự động). - Dùng các nút phía dưới để xuất thẳng ra tệp PDF, CSV hoặc Excel (XLSX). #### Nhập lại Việc nhập dữ liệu không chỉ giới hạn ở lần nhập đầu tiên. Bạn hoàn toàn có thể nhập hàng loạt thành nhiều đợt. Cột đầu tiên, mang nhãn “id”, chứa mã định danh chỉ đọc của từng thực thể trong cơ sở dữ liệu, cũng là mã bạn thấy trong các địa chỉ URL. Nếu bạn sửa một dòng ứng với một mã định danh nhất định, dữ liệu của thực thể đó sẽ được sửa theo. Để thêm dữ liệu mới, bạn chỉ cần xuống cuối bảng tính, nơi luôn có sẵn vài dòng trống chưa gắn mã định danh. Dán dữ liệu mới vào đó, như ở lần nhập đầu tiên, bảng sẽ tự nới rộng thêm bấy nhiêu dòng. Các thực thể được nhập lại có thể mang những dữ liệu phức tạp không thuộc diện nhập/xuất (đôi khi có một cột chỉ đọc dùng riêng để xuất những dữ liệu đó). Ràng buộc thời gian trên giáo viên, phòng học, lớp, v.v. là một ví dụ. Trong trường hợp này, dữ liệu được đưa lại nguyên vẹn một cách tự động. Nhờ vậy, bạn nhập hàng loạt được nhiều đợt mà không mất dữ liệu đã bổ sung trên các thực thể sẵn có, đồng thời vẫn tạo mới hoặc xóa bớt được thực thể khác. #### Xóa hàng loạt Như đã thấy ở phần nhập lại, cột “id” đầu tiên dùng để nhận ra từng thực thể. Nếu bạn xóa nội dung một dòng, ít nhất là các cột bắt buộc đánh dấu “*”, thì lần nhập sẽ xóa những thực thể đã bị làm trống. Vì bạn chọn được nhiều dòng và nhiều cột như trên một bảng tính thông thường, chỉ cần bấm phím xóa trên bàn phím là làm trống bao nhiêu dòng tùy ý, và qua đó xóa hàng loạt các thực thể tương ứng khỏi cơ sở dữ liệu. #### Xem thêm - [Nhập và xuất dữ liệu](#page-admin.import-export) - [Nhập hàng loạt tiết học của một thời khóa biểu](#page-timetables.mass-import) - [Chuyển dữ liệu từ một phần mềm khác](#page-migration.overview) ### 1.11 Hướng dẫn làm quen ban đầu (6 bước của mô-đun Trang chủ) *Source: `help/vi/getting-started/onboarding-tour.md` · id: getting-started.onboarding-tour · Audience: admin · Updated: 2026-05-10* Khi bạn đăng nhập lần đầu vào một tài khoản còn trống, mô-đun **Trang chủ** đưa ra một **danh sách kiểm tra gồm sáu bước** — mỗi bước tự động được đánh dấu hoàn thành khi điều kiện của nó đã đủ (dấu ✓ màu xanh), hoặc được đánh dấu là đang chặn tiến trình (dấu ✗ màu đỏ) chừng nào chưa có dữ liệu nào được nhập. Các bước được sắp theo một trình tự hợp lý và rất nên tuân theo, nhưng bạn luôn có thể bỏ qua một bước rồi quay lại sau. Sớm hay muộn cũng sẽ thiếu một dữ liệu nào đó buộc bạn phải quay lại bước trước. Trang trợ giúp này trình bày chi tiết đúng trình tự đó, từng bước một; phần **hướng dẫn làm quen có thể bấm** ở cuối trang tóm tắt lại toàn bộ. #### Tổng quan — thông báo chào mừng > Chào mừng bạn đến Omniscol, phần mềm quản lý thời khóa biểu trực tuyến thế hệ mới ! Nếu bạn thấy thông báo này, đây là kết nối đầu tiên của bạn hoặc bạn chưa tạo một thời khóa biểu nào. Hãy thực hiện theo các bước dưới đây để bắt đầu với phần mềm. Trình tự các bước trình bày là một trong những cách làm, nhưng bạn có thể trở lại vào bất cứ bước nào, vào bất cứ lúc nào. > **Mẹo tổ chức công việc**: mô-đun Trang chủ tự ẩn đi ngay khi > **thời khóa biểu đầu tiên của bạn được công bố**. Chừng nào nó còn > hiển thị, đó chính là kim chỉ nam của bạn. Liên kết > hiển thị lại sẽ đưa nó trở lại nếu cần, > sau khi đã công bố: > > > Tài khoản của bạn đã được kích hoạt. Bạn có thể sửa lại các thông tin nếu cần thiết. #### Bước 1 — Nhập thông tin người dùng > Đầu tiên bạn nhập dữ liệu của tất cả người dùng: Giáo viên và học sinh. Dữ liệu học sinh là tùy chọn, sau đó bạn có thể tạo ra thời khóa biểu bằng cách xác định chỉ số học sinh trong lớp và các nhóm. Bạn cũng có thể nhập vào, sau đó giao cho các lớp và các nhóm. > Gợi ý: bạn có thể nhập rất nhiều dữ liệu với copy-paste từ một bảng dữ liệu Excel hoặc tương tự, bằng cách nhấn vào biểu tượng. **Thao tác**: - Nhập thông tin giáo viên *(bắt buộc — dấu chéo đỏ khi chưa có giáo viên nào được tạo)* - Nhập thông tin học sinh *(tùy chọn — không có dấu chéo đỏ, chỉ là một vòng tròn nếu chưa điền)* Xem [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) để biết chi tiết (tạo từng người hay nhập hàng loạt, thư mời qua e-mail, mật khẩu ban đầu, các thao tác hàng loạt). #### Bước 2 — Điền các thông số > Bạn hãy cài đặt các thông số của trường, bao gồm thông số các tiết học. **Thao tác**: Nhập các thông số Xem [Thông số chung](#page-admin.parameters). Những mục nên chỉnh trước tiên: khối lớp, cách nhập thời gian rảnh, ngày đầu tuần (với các quốc gia bắt đầu tuần vào Chủ nhật), cú pháp tên đăng nhập. Phần lớn các giá trị còn lại đã được điền sẵn theo quốc gia của bạn. #### Bước 3 — Tạo năm học đầu tiên > Năm học là khoảng thời gian giữa ngày bắt đầu và ngày kết thúc, bao gồm các kỳ nghỉ, trong đó thời khóa biểu sẽ được công bố. Đây là điều kiện cần để truy cập các mô-đun sử dụng hàng ngày (xem thời khóa biểu, bảng điều khiển, quản lý vắng mặt…). **Thao tác**: Tạo năm học đầu tiên Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). Hãy đặt cho nó một tên (“2025-2026”), ngày bắt đầu và ngày kết thúc, rồi nhập các ngày nghỉ lễ đã có sẵn cho quốc gia của bạn nếu được đề xuất. Đây chính là bước mở khóa quyền công bố trong mô-đun Quản lý thời khóa biểu. #### Bước 4 — Tạo các môn học tùy chỉnh (tùy chọn) > Xác định môn học đặc biệt mà không có bên trong cơ sở dữ liệu mặc định thông thường. Bước này là tùy chọn. **Thao tác**: Tạo môn học tùy chỉnh Xem [Quản lý môn học](#page-admin.subjects). Danh mục môn học chung theo từng quốc gia đã được điền sẵn; ở đây bạn chỉ tạo những môn học **riêng của trường mình** mà danh mục chung không có. #### Bước 5 — Tạo (rồi cấu hình) một thời khóa biểu Bước 5 có hai biến thể tùy theo trạng thái của tài khoản: ##### 5a — Khi chưa có thời khóa biểu nào > Tạo một thời khóa biểu mới. Chúng tôi khuyên bạn nên tiến hành từng bước bằng cách nhập mỗi tab từ trái sang phải. Để hoàn tất, nhấn vào nút tạo thời khóa biểu. **Thao tác**: Tạo một thời khóa biểu Hãy bấm Tạo mới thời khóa biểu trong mô-đun [Quản lý thời khóa biểu](#page-timetables.overview). Nếu tài khoản của bạn có nhiều chế độ, hãy chọn [chế độ thời khóa biểu](#page-overview.timetable-modes) (theo tuần, theo chu kỳ, theo lịch). ##### 5b — Khi thời khóa biểu đã tạo xong và đang được cấu hình > Một thời khóa biểu đã được cấu hình nhưng chưa tạo ra. Chúng tôi tư vấn cho bạn để hoàn thành các bước cấu hình bước bằng cách nhập mỗi tab từ trái sang phải. Để hoàn tất, nhấn vào nút tạo thời khóa biểu. **Thao tác**: Tiếp tục cấu hình thời khóa biểu Hãy đi qua các tab của thời khóa biểu **từ trái sang phải**: [Tổng quan](#page-timetables.general-settings) → [Cơ sở](#page-timetables.sites-rooms) → [Giáo viên](#page-timetables.assigning-teachers) → [Lớp](#page-timetables.creating-classes) → [Căn chỉnh nhóm](#page-timetables.alignments-and-groups-of-groups) → [Phân bổ thời gian](#page-timetables.hour-distribution) → [Tạo thời khóa biểu](#page-timetables.generation). #### Bước 6 — Phân bổ (công bố) thời khóa biểu > Một khi thời khóa biểu được cấu hình hoàn toàn và tạo ra, nó phải được phân bố trên một số hoặc tất cả các tuần trong năm học. Nhấn vào nút phân bố trong màn hình quản lý. Màn hình này cũng cho phép bạn tìm được thời khóa biểu hoặc cấu hình đã được tạo ra. **Thao tác**: Quản lý thời khóa biểu Xem [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication). Đây là bước hay bị quên nhất: chừng nào thời khóa biểu chưa được phân bổ trên các tuần của năm học, nó vẫn chỉ là một bản nháp mà người dùng cuối không nhìn thấy. Việc công bố là điều kiện cần để các mô-đun dùng hằng ngày (xem thời khóa biểu, trang tổng quan, quản lý vắng mặt) hoạt động đầy đủ. Nó cũng kích hoạt các luồng xuất dữ liệu thời gian thực ra bên ngoài ứng dụng nếu có: iCal, phần mềm ngoài đã kết nối, v.v. #### Tiếp theo là gì Khi danh sách kiểm tra đã xanh từ đầu đến cuối, với một thời khóa biểu được cấu hình đầy đủ và đã công bố: - **Phân công học sinh** vào lớp / nhóm của họ (xem [Mời và kích hoạt người dùng](#page-getting-started.inviting-users)). - **Mời người dùng** qua e-mail (Mời người dùng). - **Cấu hình các bảng thông tin** đặt trong khuôn viên trường (xem [Bảng thông tin](#page-panels.lobby-panel)). - **Thiết lập đăng ký iCal** cho giáo viên và học sinh (xem [iCal](#page-integrations.ical)). - **Thử truy cập ở vai trò học sinh** từ một tài khoản thử nghiệm. - **Cấu hình các tích hợp** (phần mềm quản lý học vụ, ERP…) nếu có (xem [Tổng quan về các tích hợp](#page-integrations.overview)). #### Xem thêm - [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) - [Đăng nhập lần đầu](#page-getting-started.first-login) - [Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) --- ## 2. Khái niệm cốt lõi ### 2.1 Tổ chức dữ liệu: môn học, giáo viên, lớp, thời khóa biểu *Source: `help/vi/core-concepts/data-model.md` · id: core-concepts.data-model · Audience: admin · Updated: 2026-06-13* Omniscol phân biệt hai cấp tổ chức: **dữ liệu gốc của trường** do mô-đun Quản trị nắm giữ (môn học, người dùng, năm học…), mô tả nhà trường một cách lâu dài, và các **thời khóa biểu** lấy lại một phần dữ liệu đó để dựng nên một kế hoạch nhất quán trong một khoảng thời gian nhất định. Hiểu rõ sự phân đôi này là chìa khóa để bạn xử lý các thay đổi một cách nhẹ nhàng (đổi tên một môn học, cập nhật hồ sơ một giáo viên, lưu trữ một thời khóa biểu) mà không phá vỡ lịch sử. #### Tổng quan: hai cấp, hai logic ```mermaid flowchart LR subgraph A["Cấp trường — mô-đun Quản trị"] AS["Môn học"] AU["Người dùng là giáo viên"] end subgraph E["Cấp thời khóa biểu — lập kế hoạch"] C["Lớp"] G["Nhóm
(tùy chọn)"] M["Khóa học
= môn học của lớp
(bản sao cục bộ, có loại)"] T["Giáo viên của thời khóa biểu
bản sao một phần"] S["Tiết học
thời lượng, lớp, nhóm tùy chọn,
giáo viên, phòng học, vị trí"] end AS -.->|làm khuôn mẫu| M AU -.->|làm khuôn mẫu| T C -->|chứa| G C -->|môn học được gán| M T -->|giáo viên được phân công| M M -->|môn học được dạy| S C -->|lớp liên quan| S G -.->|nhóm tùy chọn| S T -->|giáo viên của tiết học| S ``` **Cấp trường**: một tập dữ liệu gốc tổng thể, có vòng đời dài, được quản lý trong mô-đun Quản trị. Nó chứa những gì đúng với nhà trường bất kể là thời khóa biểu nào — lịch các năm học, danh mục môn học (môn học chung của quốc gia + môn học tùy chỉnh của trường) và danh bạ người dùng (kèm vai trò của họ). **Cấp thời khóa biểu**: một kế hoạch nhất quán trên một khoảng thời gian. Mỗi thời khóa biểu có danh sách giáo viên, lớp, nhóm, môn học gắn với lớp và tiết học của riêng nó. Những đối tượng này không phải là các tham chiếu đơn thuần tới dữ liệu gốc của trường: đó là những **bản sao cục bộ**, có thể được bổ sung mà không làm thay đổi dữ liệu gốc. Ngược lại, dữ liệu gốc ở cấp trường vẫn có thể thay đổi (xóa môn học, xóa giáo viên) mà không phá vỡ những thời khóa biểu đã qua. Phần tiếp theo trình bày chi tiết từng loại liên kết. #### Năm học: khung thời gian **Năm học** xác định khoảng `ngày bắt đầu → ngày kết thúc` và danh sách ngày nghỉ lễ (xem [Năm học](#page-core-concepts.school-year)). Năm học không “chứa” trực tiếp các thời khóa biểu: chính các thời khóa biểu mới **trải ra** trên các tuần (chế độ theo tuần / theo chu kỳ) hoặc các ngày (chế độ lịch) thuộc một năm học. Nhờ đó có nhiều cách cấu hình: - **Một thời khóa biểu duy nhất cho mỗi năm học** (trường hợp chuẩn): thời khóa biểu phủ hết các tuần học của năm. - **Nhiều thời khóa biểu nối tiếp nhau** trong cùng một năm: ví dụ mỗi học kỳ một thời khóa biểu, chúng chuyển giao cho nhau vào các ngày chuyển tiếp. - **Nhiều thời khóa biểu song song** trên cùng một khoảng thời gian (chức năng có sẵn trong bản Premium; trên một số tài khoản Standard, chức năng này có thể được bật theo một thỏa thuận hợp đồng phù hợp), ví dụ: - một thời khóa biểu cho phần chương trình chung lặp lại - một thời khóa biểu dạng lịch cho các masterclass, được gộp lại khi xem. Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). Vì vậy năm học vẫn là một khung — không phải một vật chứa. Việc thay đổi các mốc ngày hoặc danh sách ngày nghỉ lễ sẽ cập nhật lịch mà các thời khóa biểu gắn với năm đó sử dụng, nhưng không làm thay đổi nội dung của chúng. #### Môn học: từ danh mục của trường đến tiết học của một lớp ```mermaid flowchart TD CatM["Danh mục môn học
ví dụ Toán"] CatT["Loại tiết học
ví dụ Lý thuyết, Bài tập, Thực hành"] Classe["Lớp trong thời khóa biểu
ví dụ 9A1"] Prof["Giáo viên của thời khóa biểu
ví dụ cô Lan"] MC["Môn học của lớp (= khóa học)
Toán [Bài tập]
khối lượng giờ, giáo viên,
ràng buộc, phòng học chuyên ngành"] S["Tiết học
thời lượng, ngày/khung giờ,
nhóm nếu có, phòng học,
giáo viên"] CatM -->|môn học được chọn| MC CatT -->|loại nếu có| MC Classe -->|lớp liên quan| MC Prof -->|giáo viên được phân công| MC MC -->|dùng để tạo| S Prof -->|có thể điều chỉnh trên| S ``` ##### Cấp 1 — Danh mục trong mô-đun Quản trị Ở cấp trường có hai nguồn gốc cùng tồn tại: - **Môn học chung**: dữ liệu gốc của Omniscol cho quốc gia đã cấu hình (mã chính thức, tên gọi chuẩn hóa). Danh mục này chỉ đọc đối với nhà trường. - **Môn học tùy chỉnh**: những gì nhà trường tự tạo, được quản lý từ [màn hình Môn học](#page-admin.subjects). Mỗi môn học tùy chỉnh có một tên, một mã (ngắn) và tùy chọn thêm: tên ngắn, màu riêng, môn học cha, nhóm môn học. Danh mục này không nói gì về việc lớp nào học các môn học đó — nó chỉ nói rằng chúng tồn tại. Nhóm môn học cũng có thể đến từ một tập dữ liệu gốc dùng chung theo quốc gia, ở chế độ chỉ đọc, hoặc từ một tập dữ liệu gốc tùy chỉnh, riêng của trường. ##### Cấp 2 — Gán vào một lớp (có hoặc không có loại) Khi bạn **gán một môn học cho một lớp** trong một thời khóa biểu, một **bản sao cục bộ** của môn học được tạo ra trong lớp, kèm thêm những trường riêng của việc lập kế hoạch (khối lượng giờ dự kiến, trọng số sư phạm, các điểm không tương thích, giáo viên mặc định, chuyên ngành phòng học…). Nếu bạn gán môn học **kèm một loại tiết học** (`Lý thuyết`, `Bài tập`, `Thực hành`, `Thi` — xem [Loại tiết học](#page-admin.lesson-types)), mỗi loại sẽ tạo một **mục riêng** trong lớp: | Môn học trong lớp | Nguồn gốc | Loại | | --- | --- | --- | | Toán | Toán | không có | | Toán [Lý thuyết] | Toán | Lý thuyết | | Toán [Bài tập] | Toán | Bài tập | Đây là chủ ý: mỗi biến thể (Toán lý thuyết, Toán bài tập) trở thành một bản sao cục bộ riêng, với khối lượng giờ riêng, giáo viên riêng và các điểm không tương thích riêng. Liên kết với danh mục không phải là một sự phụ thuộc chặt chẽ: bản sao cục bộ giữ lại nguồn gốc của môn học nếu môn học đó vẫn còn trong danh mục. Nếu môn học bị xóa khỏi danh mục, các bản sao cục bộ trong các thời khóa biểu vẫn còn hiệu lực. ##### Cấp 3 — Từ thông số của khóa học đến các tiết học Trong Omniscol, cái mà người ta thường gọi là một [khóa học](#page-glossary.course) nói chung ứng với một môn học được gán cho một lớp, có thể kèm theo một loại tiết học (Lý thuyết, Bài tập, Thực hành…), rồi được bổ sung thông tin lập kế hoạch: khối lượng giờ, giáo viên, nhóm, ràng buộc về vị trí, phòng học hoặc tài nguyên. Định nghĩa này cho biết cái gì cần được xếp lịch. **Tiết học** là những lần xuất hiện thực sự được đặt vào thời khóa biểu, trong một tuần hoặc vào một ngày cụ thể. Ví dụ: một môn học của lớp như **Toán [Bài tập]** có thể xác định khối lượng giờ, giáo viên, nhóm, ràng buộc về vị trí và phòng học ưu tiên. Sau đó các tiết học được tạo ra từ định nghĩa này. Xem [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types). #### Giáo viên: dữ liệu gốc của trường → bản sao được bổ sung trong thời khóa biểu ```mermaid flowchart LR U["Người dùng (mô-đun Quản trị)
vai trò giáo viên
tên · tên đăng nhập · e-mail · thời gian rảnh tổng thể"] Aff{Phân công vào một thời khóa biểu} T["Giáo viên trong thời khóa biểu
tên (đã sao chép) · mã số giáo viên
giờ làm việc (đã sao chép, ghi đè được)
thời gian rảnh riêng của thời khóa biểu · phòng học ưu tiên"] Se["Tiết học được phân công"] U --> Aff Aff -->|bản sao một phần có bổ sung| T T --> Se ``` ##### Giáo viên ở cấp trường Ở cấp trường, một giáo viên là một **người dùng** mang vai trò `teacher` (cùng một người dùng có thể kiêm nhiều vai trò — xem [Người dùng và vai trò](#page-admin.users-and-roles)). Được quản lý từ [màn hình Giáo viên](#page-admin.teachers), hồ sơ này mang những thông tin định danh lâu dài: họ, tên, tên đăng nhập, e-mail, mã số giáo viên, cùng với **thời gian rảnh tổng thể** (lặp lại) và giờ làm việc tham chiếu. ##### Giáo viên được phân công vào một thời khóa biểu Khi bạn phân công giáo viên này vào một thời khóa biểu, Omniscol tạo trong thời khóa biểu đó một **bản sao một phần có bổ sung**. Bản sao chỉ lấy lại một số trường của dữ liệu gốc cấp trường và thêm vào đó những trường riêng của việc lập kế hoạch: | Trường | Cấp trường (dữ liệu gốc) | Cấp thời khóa biểu (bản sao) | | --- | --- | --- | | Mã định danh | mã định danh của người dùng | giống hệt (liên kết ngầm) | | Họ, tên, tên đệm | nguồn | sao chép khi phân công | | Mã số giáo viên | nguồn | sao chép khi phân công | | E-mail, điện thoại, tên đăng nhập | nguồn | **không sao chép** (chỉ nằm trong mô-đun Quản trị) | | Giờ làm việc tham chiếu | nguồn | sao chép, **ghi đè được theo từng thời khóa biểu** | | Phòng học ưu tiên | không quản lý ở dữ liệu gốc | riêng của thời khóa biểu | | Thời gian rảnh | “thời gian rảnh tổng thể” của người dùng | chế độ lặp lại: bản sao cục bộ đã được duyệt hoặc đã nới lỏng; chế độ lịch: nguồn dùng chung, xem và sửa được từ mô-đun Quản trị hoặc từ các thời khóa biểu liên quan | Sự phân đôi này rất quan trọng: **cùng một giáo viên** có thể có **giờ làm việc khác nhau** tùy theo phạm vi được xếp lịch, hoặc **phòng học ưu tiên khác nhau** vào một thời điểm nhất định (ví dụ vì bị hạn chế vận động tạm thời). Với thời gian rảnh, cách vận hành phụ thuộc vào chế độ lập kế hoạch: - ở chế độ lặp lại, thời gian rảnh do giáo viên nhập vào phải qua một bước duyệt của bộ phận quản trị. Sau đó chúng có thể được điều chỉnh cục bộ trong thời khóa biểu, ví dụ chuyển một khoảng bận tuyệt đối thành một khung giờ không mong muốn; - ở chế độ lịch, thời gian rảnh của giáo viên được coi là nguồn thông tin duy nhất, nhất là với giảng viên thỉnh giảng. Chúng xem và sửa được từ hồ sơ người dùng hoặc từ bất kỳ thời khóa biểu dạng lịch nào mà giáo viên được phân công. Trong cả hai trường hợp, một số thông số vẫn thuộc riêng thời khóa biểu và có thể bổ sung cục bộ cho thời gian rảnh đó. ##### Giáo viên ảo Một biến thể: trong một thời khóa biểu, bạn có thể tạo một **giáo viên ảo** — một vị trí còn trống, phía sau không có người dùng thật (“giáo viên toán sắp tuyển”). Giáo viên ảo không có đối tượng tương ứng ở cấp trường. Đến khi tuyển được người, bạn có thể thay giáo viên ảo này bằng một người dùng giáo viên thật (xem [Phân công giáo viên vào một thời khóa biểu](#page-timetables.assigning-teachers)). #### Nguyên tắc bản sao cục bộ, tóm lại Cùng một logic chi phối môn học trong một lớp và giáo viên trong một thời khóa biểu: **một bản sao cục bộ được tạo ra ngay lúc gán**, và chính bản sao cục bộ đó mang những trường riêng của thời khóa biểu. Vì sao lại thiết kế như vậy: - **Độc lập theo thời gian.** Một thời khóa biểu đã kết thúc từ năm ngoái không được thay đổi khi năm nay bạn đổi tên một môn học hay một giáo viên. Các bản sao cục bộ bảo đảm **tính toàn vẹn của lịch sử**: những gì đã được xếp lịch vẫn giữ nguyên đúng như lúc đó. - **Bổ sung theo ngữ cảnh.** Một giáo viên không có cùng thời gian rảnh và cùng giờ làm việc ở mọi phạm vi được xếp lịch; một môn học không có cùng trọng số và cùng các điểm không tương thích tùy theo lớp nào học môn đó. Bản sao cục bộ là nơi tự nhiên để mang những khác biệt ấy. - **Dọn dẹp mà không gây hỏng.** Việc xóa hay tổ chức lại một môn học ở cấp trường không xóa những thời khóa biểu đã dùng môn học đó — các bản sao cục bộ của chúng vẫn còn hiệu lực. Đổi lại, việc đổi tên ở phía trường không âm thầm lan ra khắp nơi. Đó là nội dung của phần tiếp theo. #### Hệ quả thực tế: đổi tên, xóa, lịch sử Khi bạn sửa một thực thể ở cấp trường, Omniscol áp dụng một quy tắc lan truyền rõ ràng: | Thao tác ở cấp trường | Thời khóa biểu đã qua (đã kết thúc) | Thời khóa biểu đang chạy / sắp tới | | --- | --- | --- | | Đổi tên một môn học tùy chỉnh (tên, mã ngắn, mã) | **Không đổi** — lịch sử được giữ nguyên | Tên được lan sang các bản sao cục bộ tương ứng | | Đổi màu một môn học tùy chỉnh | **Không đổi** | Màu được cập nhật nếu màu trước đó chưa bị ghi đè cục bộ | | Đổi tên một giáo viên (họ, tên) | **Không đổi** | Tên được lan sang các bản sao cục bộ | | Sửa e-mail hoặc điện thoại của một giáo viên | Không tác động (không sao chép) | Không tác động (không sao chép) | | Sửa thời gian rảnh tổng thể của một giáo viên | Không tác động | Chế độ lặp lại: hiện chỉ báo cập nhật nếu thời gian rảnh đã được duyệt trước đó; chế độ lịch: nguồn thời gian rảnh dùng chung được cập nhật | | Xóa một môn học tùy chỉnh | Bản sao cục bộ được giữ nguyên | Bản sao cục bộ được giữ nguyên; môn học chỉ biến mất khỏi danh mục | | Tắt vai trò `teacher` của một người dùng | Không đổi | Các bản sao trong thời khóa biểu vẫn giữ nguyên | Việc phân biệt “đã qua” / “đang chạy hoặc sắp tới” được xác định theo **ngày hôm nay**: một thời khóa biểu đã công bố mà tuần hoạt động cuối cùng nằm trước hôm nay thì được coi là đã qua và không còn bị các thao tác đổi tên tác động nữa. ##### Khi nào phải cập nhật thủ công Việc lan truyền tự động được giữ **hẹp một cách có chủ ý**: tên, mã và màu của môn học; tên và mã định danh của giáo viên. Tên và mã của một môn học đã sao chép cục bộ thì không sửa được trong thời khóa biểu; chỉ có màu của nó là định nghĩa lại được ở cục bộ. Các trường còn lại (các điểm không tương thích, trọng số sư phạm, giờ làm việc, thời gian rảnh theo từng thời khóa biểu…) không được đồng bộ, vì **về bản chất chúng thuộc riêng từng thời khóa biểu**. Nếu một thay đổi sâu hơn phải được áp dụng cho nhiều thời khóa biểu đang tồn tại (ví dụ: xem lại giờ làm việc của một giáo viên trên tất cả các thời khóa biểu đang hoạt động, hoặc thêm một điểm không tương thích mới của môn học ở khắp nơi), bạn phải làm lần lượt trên từng thời khóa biểu. Với các thao tác hàng loạt, công cụ nhanh nhất vẫn là **nhập bằng cách sao chép và dán từ bảng tính** trên màn hình tương ứng của mỗi thời khóa biểu. #### Xem thêm - [Năm học](#page-core-concepts.school-year) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Khóa học (định nghĩa trong bảng thuật ngữ)](#page-glossary.course) - [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types) - [Quản lý môn học](#page-admin.subjects) - [Quản lý giáo viên](#page-admin.teachers) - [Loại tiết học](#page-admin.lesson-types) - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) ### 2.2 Lớp, nhóm, nhóm con *Source: `help/vi/core-concepts/classes-and-groups.md` · id: core-concepts.classes-and-groups · Updated: 2026-05-20* Lớp là những tập hợp học sinh khác nhau cùng theo một chương trình học và thường học chung với nhau (cùng môn học, cùng giáo viên và cùng phòng học); ngoại lệ duy nhất là việc chia nhóm, tức là những tập hợp con được tùy chỉnh với chương trình học được điều chỉnh đôi chút (chia theo môn tự chọn, theo trình độ, theo giới tính, theo thứ tự bảng chữ cái…). Hai lớp khác nhau không bao giờ có chung học sinh. Trong Omniscol, bạn luôn bắt đầu từ **lớp**, rồi trong mỗi lớp, bạn tạo các **nhóm** khi cả lớp không cùng học một tiết học. Các **nhóm con** dùng để chia nhỏ thêm khi bản thân một nhóm phải được phân chia tiếp: một nhóm được gắn vào một nhóm khác, theo quan hệ cha – con, sẽ trở thành nhóm con. **Phân vùng**, **căn chỉnh nhóm** và **nhóm của nhóm** không phải là những cấp bổ sung trong hệ thống phân cấp. Đó là các cách tổ chức hoặc liên kết các nhóm tùy theo trường hợp sử dụng. #### Tổng quan ```mermaid %%{init: {"flowchart": {"defaultRenderer": "elk"}}}%% flowchart TB subgraph C1["Lớp 10A1"] direction TB A1["Nhóm Ngoại ngữ 2 tiếng Hàn"] A2["Nhóm Ngoại ngữ 2 tiếng Nhật"] P["Nhóm Thực hành A"] Q["Nhóm Thực hành B"] P1["Nhóm con Thực hành A1"] P2["Nhóm con Thực hành A2"] P --> P1 P --> P2 end subgraph C2["Lớp 10A2"] direction TB B1["Nhóm Ngoại ngữ 2 tiếng Nhật"] B2["Nhóm Ngoại ngữ 2 tiếng Trung"] B4["Nhóm Công nghệ 1 (20 học sinh)"] B5["Nhóm Công nghệ 2 (10 học sinh)"] B3["Nhóm Mỹ thuật"] end subgraph C3["Lớp 10A3"] direction TB C4G["Nhóm Ngoại ngữ 2 tiếng Hàn"] C5G["Nhóm Ngoại ngữ 2 tiếng Trung"] C2G["Nhóm Công nghệ 1 (20 học sinh)"] C3G["Nhóm Công nghệ 2 (10 học sinh)"] C1G["Nhóm Mỹ thuật"] end A1 -. "phân vùng" .- A2 P -. "phân vùng" .- Q B1 -. "phân vùng" .- B2 B4 -. "phân vùng" .- B5 C2G -. "phân vùng" .- C3G C4G -. "phân vùng" .- C5G A2 <== "căn chỉnh nhóm" ==> B1 B5 <== "căn chỉnh nhóm" ==> C3G B3 <== "căn chỉnh nhóm" ==> C1G linkStyle 0,1 stroke:#475569,stroke-width:1.5px linkStyle 2,3,4,5,6,7 stroke:#15803d,stroke-width:1.8px linkStyle 8,9,10 stroke:#1d4ed8,stroke-width:2.8px ``` Cách đọc sơ đồ: - một **lớp** chứa các nhóm; - một **nhóm** có thể chứa các **nhóm con**; - một **phân vùng** tổ chức các nhóm của cùng một lớp cùng chia nhau học sinh; - một **căn chỉnh nhóm** liên kết các nhóm thuộc những lớp khác nhau để có một tiết học chung; - một **nhóm của nhóm** dùng để xây dựng một tập hợp tường minh và dùng lại được, nhất là khi tập hợp đó có thể thay đổi. Trên sơ đồ này, bạn thấy nhiều lớp, mỗi lớp có nhiều nhóm, có nhóm nằm trong một phân vùng, có nhóm được căn chỉnh, đôi khi cả hai. Ngoại ngữ 2 là một môn tự chọn loại trừ nhau: mỗi học sinh chỉ học tiết tiếng Nhật, hoặc tiếng Hàn, hoặc tiếng Trung. Vì vậy các lựa chọn ngoại ngữ được khai báo trong cùng một phân vùng: có thể xếp chúng vào cùng một khung giờ (với điều kiện mỗi thứ tiếng do một giáo viên khác nhau dạy). Ở lớp 10A1 và 10A2 chỉ có ít học sinh học tiếng Nhật: nhà trường gom các em lại để cùng học chung, đó chính là mục đích của căn chỉnh nhóm; các tiết học được tạo đối xứng ở từng lớp để chúng được xếp vào cùng một thời điểm. Nhóm mỹ thuật của lớp 10A2 và 10A3 cũng vậy. Sơ đồ này còn minh họa một cách làm quen thuộc để tiết kiệm nguồn lực, **“3 nhóm cho 2 lớp”**: lớp 10A2 và 10A3 mỗi lớp được phân vùng thành Công nghệ 1 (20 học sinh) và Công nghệ 2 (10 học sinh). Bằng cách **căn chỉnh** hai nhóm Công nghệ 2, nhà trường gộp hai nhóm nhỏ lại và chỉ phải tổ chức **ba tiết công nghệ** thay vì bốn — tất cả đều có sĩ số tương đương (20 học sinh), đỡ được một giáo viên và một phòng học. #### Lớp: cấp cơ sở [Lớp](#page-glossary.class) là thực thể tham chiếu mặc định. Tùy theo bối cảnh, lớp có thể là: - một lớp ở trường phổ thông, - một khóa, - một nhóm cùng niên khóa, - một đợt học, - một lộ trình đào tạo. Khi một tiết học dành cho **cả lớp**, bạn không cần thêm nhóm nào: tiết học được gắn thẳng vào lớp. #### Nhóm: phần chia nhỏ của một lớp [Nhóm](#page-glossary.group) luôn là **phần chia nhỏ của cùng một lớp**. Mọi học sinh của nhóm vẫn là học sinh của lớp cha. Các ví dụ thường gặp: - `Nhóm A` / `Nhóm B` để chia theo thứ tự bảng chữ cái; - `Thực hành A` / `Thực hành B` cho hai nửa lớp làm thực hành; - `Ngoại ngữ 2 tiếng Nhật` / `Ngoại ngữ 2 tiếng Hàn` / `Ngoại ngữ 2 tiếng Trung` cho các môn tự chọn loại trừ nhau; - `Tiếng Anh nâng cao` / `Tiếng Anh khá` / `Tiếng Anh cơ bản` nếu nhà trường tổ chức các nhóm theo trình độ; - `Nam` / `Nữ` ở những nơi có cách chia này; - `Chuyên đề Marketing`, `Chuyên đề Tài chính`, `Chuyên đề Dữ liệu` trong một cụm môn tự chọn ở bậc đại học. **Khuyến nghị quan trọng**: hãy tạo một nhóm cho mỗi mục đích sư phạm rõ ràng, ngay cả khi đôi lúc vẫn là những học sinh đó. Ví dụ, nên có `Mỹ thuật` và `Âm nhạc` thay vì dùng lại một nhóm chung chung tên là `Tự chọn`. Nếu không, việc đọc thời khóa biểu, các chẩn đoán và các tập hợp liên lớp sẽ nhanh chóng trở nên khó hiểu. > _Premium_ #### Nhóm con: phần chia nhỏ của một nhóm **Nhóm con** là một nhóm được gắn vào một nhóm cha. Ví dụ: - lớp được chia thành `Thực hành A` và `Thực hành B`; - rồi `Thực hành A` lại được chia tiếp thành `Thực hành A1` và `Thực hành A2` để luân phiên chi tiết hơn. ```mermaid flowchart TD C["Lớp Cao đẳng 1"] A["Thực hành A"] B["Thực hành B"] A1["Thực hành A1"] A2["Thực hành A2"] B1["Thực hành B1"] B2["Thực hành B2"] B3["Thực hành B3"] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 B --> B3 ``` Những hệ quả quan trọng: - nhóm con vẫn nằm trong phạm vi của lớp; - nhóm con kế thừa logic của nhóm cha; - nhóm con hữu ích khi bạn có nhiều cấp chia nhỏ; - nhóm con chỉ có ý nghĩa nếu cấu trúc vẫn dễ đọc. Nhóm con rất tiện khi được dùng cùng với các phân vùng: - nhóm A và B nằm trong một phân vùng; - nhóm A1 và A2 nằm trong một phân vùng; - nhóm B1, B2 và B3 nằm trong một phân vùng. Khi đó A1 và B3 tự động nằm trong cùng một phân vùng, A2 và B1 cũng vậy, v.v. Quan hệ này được suy ra từ sự kết hợp giữa logic phân vùng và logic cha – con. Nhóm con là những nhóm đã được kéo thả lên một nhóm cha. Trang [Phân cấp nhóm](#page-core-concepts.group-hierarchy) đi sâu hơn về các cách dùng nâng cao: phân vùng kế thừa, ràng buộc thời gian kế thừa và mặt nạ khung giờ. #### Phân vùng: chia một lớp thành các nhóm loại trừ nhau [Phân vùng](#page-glossary.class-division) được dùng giữa các nhóm của **cùng một lớp** khi học sinh được chia vào nhiều nhóm loại trừ nhau. Vì Omniscol là phần mềm lập kế hoạch theo ràng buộc, mặc định hệ thống coi rằng hai nhóm bất kỳ đều có thể có ít nhất một học sinh chung: việc khai báo một phân vùng giữa các nhóm sẽ gỡ bỏ ràng buộc đó. Nói rõ hơn, các nhóm trong cùng một phân vùng không gây lỗi tương thích với nhau. Điều cần nhớ: - mỗi học sinh chỉ được thuộc **một nhóm duy nhất (hoặc không nhóm nào)** trong phân vùng; - khi đó các nhóm này có thể học những tiết học khác nhau song song; - Omniscol biết rằng đây không phải là lỗi tương thích về học sinh. Ví dụ: - `Thực hành A` và `Thực hành B` làm hai bài thực hành khác nhau cùng lúc; - `Ngoại ngữ 2 tiếng Nhật`, `Ngoại ngữ 2 tiếng Hàn` và `Ngoại ngữ 2 tiếng Trung` dùng chung một khung giờ tự chọn; - `Nhóm A` và `Nhóm B` luân phiên các hoạt động diễn ra đồng thời ở hai phòng học; - `Tiếng Anh nâng cao`, `Tiếng Anh khá`, `Tiếng Anh cơ bản` học ba tiết học khác nhau song song. ```mermaid flowchart LR subgraph CL["Lớp 9A1"] E["Ngoại ngữ 2 tiếng Hàn"] A["Ngoại ngữ 2 tiếng Nhật"] I["Ngoại ngữ 2 tiếng Trung"] end E -. "phân vùng" .- A A -. "phân vùng" .- I E -. "phân vùng" .- I ``` Vì vậy, trong phạm vi một lớp, phân vùng là công cụ phù hợp khi bạn muốn nói: “các nhóm này chia nhau học sinh, có thể xếp chúng song song”. Lưu ý: Omniscol có một cách vận hành tùy chọn, trong đó học sinh được phân công trực tiếp vào lớp và nhóm ngay trên thời khóa biểu. Khi đó, các phân vùng có thể được suy ra tự động (hai nhóm không có học sinh chung = một phân vùng). ##### Nhóm con và phân vùng Khi có nhóm con, logic phân vùng lan truyền dọc theo hệ thống phân cấp. Nếu `Thực hành A` và `Thực hành B` nằm trong một phân vùng, thì các nhóm con của `Thực hành A` và của `Thực hành B` kế thừa sự tách biệt giữa hai nhánh đó. Ví dụ: - `Thực hành A` và `Thực hành B` nằm trong một phân vùng; - `Thực hành A1` và `Thực hành A2` là nhóm con của `Thực hành A`. Khi đó Omniscol biết rằng một tiết học của `Thực hành A1` không gây lỗi tương thích với một tiết học của `Thực hành B`, mà bạn không phải khai báo lại từng tổ hợp bằng tay. Ngược lại, nếu bạn muốn chia `Thực hành A` thành nhiều nhánh cũng chia nhau học sinh, bạn phải khai báo rõ cách chia đó trong hệ thống phân cấp và, nếu cần, cả phân vùng riêng của nó. #### Căn chỉnh nhóm: một tiết học chung giữa nhiều lớp [Căn chỉnh nhóm](#page-glossary.alignment) dùng khi nhiều nhóm thuộc **các lớp khác nhau** thực chất học **cùng một tiết học**, vào **cùng một khung giờ**, với **cùng một giáo viên** và trong **cùng một phòng học**. Ví dụ điển hình: nhóm `Mỹ thuật` của `11A1`, `11A2` và `11A3` chỉ có một tiết mỹ thuật chung. ```mermaid flowchart LR subgraph A["Lớp 11A1"] GA["Mỹ thuật"] end subgraph B["Lớp 11A2"] GB["Mỹ thuật"] end subgraph C["Lớp 11A3"] GC["Mỹ thuật"] end LESSON["Một tiết mỹ thuật duy nhất"] GA --> LESSON GB --> LESSON GC --> LESSON ``` Căn chỉnh nhóm rất hữu ích cho các môn tự chọn hoặc chuyên đề liên lớp, nhưng nó cứng nhắc hơn một nhóm thông thường: mọi thứ đã căn chỉnh thì phải đi cùng nhau. Điều kiện quan trọng: các lớp liên quan phải dùng **cùng một môn học**. Nói cách khác, nếu bạn muốn có một tiết học chung giữa nhiều lớp, các lớp đó phải thực sự dùng chung môn học của tiết học ấy. Ví dụ: - `Marketing` dùng chung cho nhiều lớp: được; - `Marketing cử nhân 3` ở lớp này và `Marketing thạc sĩ tự chọn` ở lớp kia: không, nếu đó là hai môn học riêng biệt trong cấu trúc thời khóa biểu. Ở bậc đại học, điều này thường dẫn đến việc tránh những môn học quá riêng cho một chương trình khi biết trước sẽ có các tiết học dùng chung. Tốt hơn là chuẩn bị sẵn một môn học chung cho những lớp cần chia sẻ tiết học. Căn chỉnh nhóm phù hợp hơn với các trường phổ thông: bạn tạo các tiết học đối xứng và khai báo logic gom nhóm động. Nhược điểm là phải tôn trọng sự đối xứng đó: phải tạo số tiết học đúng bằng số nhóm trong căn chỉnh, với đúng nhóm được gán trong từng lớp, và mọi thứ phải đối xứng: giáo viên, phòng học, tài nguyên, v.v. Nếu một tiết học có nhóm nằm trong một căn chỉnh đã được đặt vào thời khóa biểu, thì ở mỗi lớp phải có một tiết học đối xứng tương ứng, với nhóm được căn chỉnh của lớp đó. Ưu điểm là bạn có thể tạo những tiết học phức tạp nhờ căn chỉnh nhóm. Bạn có thể có một tiết mỹ thuật chung vào tuần A, và một tiết học riêng, không gom nhóm, ở từng lớp. Nếu những ràng buộc này không được bù lại bằng các lợi ích, tốt hơn hãy cân nhắc nhóm của nhóm. #### Nhóm của nhóm: tập hợp tường minh và sửa được [Nhóm của nhóm](#page-glossary.groups-of-groups) dùng để tập hợp nhiều nhóm vào một tập hợp có tên, sửa được và dùng lại được. Sau đó, nhóm của nhóm được dùng như bất kỳ nhóm nào khác. Nó đặc biệt hữu ích: - ở bậc đại học và đào tạo thường xuyên; - khi thành phần của một tập hợp có thể thay đổi; - khi bạn muốn giữ một cấu trúc dễ đọc và dễ truy vết. Ví dụ: một hội thảo chung quy tụ người học của `Thạc sĩ Marketing 1`, `Thạc sĩ Tài chính 1` và `Chuyên đề Dữ liệu`. Các tiết học được xếp lịch với nhóm của nhóm; về sau, một nhóm thứ tư tham gia: bạn chỉ cần thêm nhóm đó vào nhóm của nhóm là mọi tiết học đều được gắn cho nhóm mới. Cũng như với căn chỉnh nhóm, các tiết học chung phải dựa trên **một môn học chung** giữa các lớp liên quan. Nhóm của nhóm giúp gom các đối tượng người học lại; nó không thay thế được sự nhất quán của môn học dùng cho tiết học đó. Nếu bạn cần gom **cả lớp**, trước hết hãy tạo trong mỗi lớp một nhóm đại diện cho toàn bộ lớp đó, rồi dùng các nhóm này trong căn chỉnh nhóm hoặc nhóm của nhóm. Không thể căn chỉnh trực tiếp các lớp mà không thông qua nhóm. #### Gán nhiều nhóm trực tiếp cho một tiết học Bạn có thể gán **nhiều nhóm trực tiếp cho một tiết học**, mà không cần tạo trước một nhóm của nhóm có tên. Cách này hữu ích: - cho một nhu cầu nhất thời; - để thử nhanh một cách gom nhóm; - cho một tiết học ngoại lệ, chưa đáng để lập một cấu trúc riêng. Nhưng đây không phải lựa chọn tốt nhất để mô hình hóa lâu dài: - về lâu dài, nó khó đọc hơn; - nó khó truy vết hơn một tập hợp có tên; - nếu cách làm này lặp lại nhiều lần, ý đồ sư phạm sẽ khó hiểu hơn. Trên thực tế: - để dùng lâu dài, hãy chọn một **nhóm của nhóm** tường minh; - cho một nhu cầu nhất thời, việc gán trực tiếp nhiều nhóm rất tiện. ```mermaid flowchart LR subgraph X["Các nhóm hiện có"] G1["Thạc sĩ Marketing 1 - Chuyên đề Dữ liệu"] G2["Thạc sĩ Tài chính 1 - Chuyên đề Dữ liệu"] G3["Thạc sĩ Kế toán quản trị 2 - Chuyên đề Dữ liệu"] end S["Tiết học Dữ liệu đột xuất"] G1 --> S G2 --> S G3 --> S ``` Ngược lại, hãy tránh trộn trong cùng một tiết học một **nhóm cha** và một trong các **nhóm con** của nó: thông thường đó không phải là cách mô hình hóa sạch sẽ cho đối tượng người học. #### Bảng tổng hợp | Khái niệm | Phạm vi áp dụng | Dùng để làm gì | Ví dụ | | --- | --- | --- | --- | | [**Lớp**](#page-glossary.class) | Tập hợp tham chiếu | Mang những tiết học mà tất cả cùng học | `9A1`, `Cao đẳng 1`, `Thạc sĩ Marketing 1` | | [**Nhóm**](#page-glossary.group) | Phần chia nhỏ của một lớp | Tách riêng một tập hợp con học sinh | `Thực hành A`, `Mỹ thuật`, `Ngoại ngữ 2 tiếng Hàn` | | [**Nhóm con**](#page-core-concepts.group-hierarchy) | Phần chia nhỏ của một nhóm | Chia nhỏ thêm một tổ chức đã được chia | `Thực hành A1`, `Thực hành A2` | | [**Phân vùng**](#page-glossary.class-division) | Các nhóm của cùng một lớp | Chia học sinh loại trừ nhau vào các tiết học song song | `Thực hành A` / `Thực hành B`, `Tiếng Nhật` / `Tiếng Hàn` | | [**Căn chỉnh nhóm**](#page-glossary.alignment) | Các nhóm thuộc những lớp khác nhau | Cùng học một tiết học chung duy nhất | `Mỹ thuật` ở nhiều lớp | | [**Nhóm của nhóm**](#page-glossary.groups-of-groups) | Nhiều nhóm, cùng lớp hoặc khác lớp | Xây dựng một tập hợp tường minh và sửa được | Hội thảo chung cho nhiều lộ trình đào tạo | | **Đa nhóm** | Nhiều nhóm, cùng lớp hoặc khác lớp | Gán nhiều nhóm một cách linh hoạt, ngay tại chỗ | Tiết học đột xuất dành cho nhiều đối tượng khác nhau | | [**Nhóm tự do**](#page-glossary.free-group) | Thành phần mở | Quản lý danh sách ghi danh không cố định | Sinh hoạt ngoại khóa, câu lạc bộ, hoạt động mở | #### Xem thêm - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Phân cấp nhóm](#page-core-concepts.group-hierarchy) - [Nhóm tự do](#page-core-concepts.free-groups) - [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) ### 2.3 Phân vùng lớp *Source: `help/vi/core-concepts/class-divisions.md` · id: core-concepts.class-divisions · Updated: 2026-05-20* Một **phân vùng** cho công cụ tạo tự động biết rằng nhiều [nhóm](#page-glossary.group) trong cùng một [lớp](#page-glossary.class) có thể học vào **cùng một khung giờ** mà không gây lỗi tương thích — bởi vì không học sinh nào thuộc về nhiều hơn một trong các nhóm đó. #### Vì sao cần đến phân vùng — nguyên tắc “mặc định mọi thứ đều là lỗi tương thích” Omniscol là phần mềm lập kế hoạch **theo ràng buộc**. Hệ quả trực tiếp: **mọi thứ có thể gây ra lỗi tương thích đều được mặc định coi là như vậy**, trừ khi người dùng nói rõ điều ngược lại. - Giữa **hai lớp khác nhau**: theo giả định là không có học sinh nào chung, nên không có lỗi tương thích nào phải báo. (Các tiết học liên lớp / dùng chung được mô hình hóa riêng bằng [căn chỉnh nhóm](#page-core-concepts.alignments) hoặc [nhóm của nhóm](#page-core-concepts.groups-of-groups).) - Bên trong **cùng một lớp**, công cụ tạo tự động **không có cách nào về mặt logic** để đoán ra những nhóm nào có thể cùng tồn tại trên một khung giờ mà không chồng lấn. Vì vậy nó coi hai nhóm của cùng một lớp là **có khả năng có học sinh chung**. Nếu không khai báo phân vùng, việc xếp hai tiết học vào cùng một khung giờ cho hai nhóm của cùng một lớp sẽ làm phát sinh lỗi tương thích. Chính người lập thời khóa biểu phải **nói cho công cụ tạo tự động biết**: “các nhóm này loại trừ lẫn nhau, có thể xếp chúng cùng lúc”. Phân vùng chính là lời khai báo đó. Công cụ tạo tự động sẽ cố gắng hết mức để đặt song song các tiết học của những nhóm nằm trong một phân vùng, nhưng đôi khi không làm được vì các ràng buộc khác (thiếu phòng học, ràng buộc thời gian của giáo viên hoặc môn học không tương thích với nhau, một thực thể dùng chung giữa các tiết học như phòng học chuyên biệt hay giáo viên chung). Khi đó, công cụ tạo tự động sẽ nhận ra rằng một phần của lớp không có tiết học và áp một mức phạt theo tỷ lệ tương ứng (tùy chọn mặc định: giảm giờ trống cho học sinh), khiến nó đẩy các tiết học này về sát đầu ngày hoặc sát cuối ngày, hoặc vào giờ nghỉ trưa nếu có thể. #### Các trường hợp sử dụng điển hình - **Nửa lớp theo danh sách**: nhóm A và nhóm B (chia theo thứ tự bảng chữ cái hoặc bốc thăm) — mỗi học sinh chỉ thuộc một trong hai nhóm, không bao giờ thuộc cả hai. - **Nửa lớp theo trình độ**: nhóm Tiếng Anh nâng cao và nhóm Tiếng Anh cơ bản; mỗi học sinh chỉ thuộc một trong hai. - **Nửa lớp theo giới tính** (trường hợp riêng ở một số trường, chẳng hạn với môn Giáo dục thể chất). - **Các môn tự chọn loại trừ nhau**: Ngoại ngữ 2 tiếng Nhật / tiếng Hàn / tiếng Trung — mỗi học sinh chỉ chọn **một** trong ba ngoại ngữ. (Hãy điều chỉnh ví dụ theo bối cảnh trường bạn.) - **Gói môn tự chọn xếp cùng lúc**: một danh mục môn tự chọn mà nhà trường quyết định xếp toàn bộ vào cùng một khung giờ đã khóa (`Thứ Sáu 14h–16h = khung giờ tự chọn`), rồi học sinh chọn môn của mình trong danh mục đó — tất cả đều loại trừ nhau theo nghĩa “mỗi học sinh chỉ theo một môn tự chọn”. - **Thực hành / thí nghiệm theo nửa nhóm**: nhóm Thực hành A và nhóm Thực hành B ở cùng một khung giờ, trong hai phòng học khác nhau, với hai giáo viên. #### Cách tạo Các bước: 1. Hãy vào trang các nhóm của một lớp (thẻ Nhóm). 2. Chọn các nhóm liên quan. 3. Nhấn vào Thêm phân vùng. 4. Xác nhận. Nhiều phân vùng có thể cùng tồn tại trong một lớp: một phân vùng cho các tiết thí nghiệm khoa học (Thí nghiệm A, Thí nghiệm B), một phân vùng cho ngoại ngữ 2 (tiếng Nhật, tiếng Hàn), một phân vùng cho các môn tự chọn (Vật lý, Hóa học, Sinh học). Mỗi phân vùng độc lập với những phân vùng còn lại. Khi một nhóm nằm trong một phân vùng, nhóm đó hiển thị trên tất cả các màn hình liên quan kèm biểu tượng [link-slash]. #### Bảo vệ mặc định: mỗi nhóm chỉ nằm trong một phân vùng Theo mặc định, giao diện áp dụng một biện pháp bảo vệ đơn giản: mỗi nhóm chỉ thuộc về một phân vùng duy nhất. Đây là trường hợp phổ biến nhất và giúp tránh được rất nhiều sai sót. Tuy nhiên, bộ lọc này có thể được gỡ bỏ khi thành phần học sinh thực tế đòi hỏi như vậy. Ví dụ: - chỉ những học sinh học `Tiếng Nhật` mới học thêm `Mỹ thuật`; - những học sinh học `Tiếng Hàn` không học `Mỹ thuật`. Khi đó bạn có thể tạo: - một phân vùng `Tiếng Nhật` / `Tiếng Hàn`; - một phân vùng `Mỹ thuật` / `Tiếng Hàn`. Lợi ích là cho công cụ tạo tự động thêm tự do để xếp một số tiết học song song với nhau và giảm giờ trống cho một phần của lớp. Hãy dùng cách này thật chặt chẽ: bạn phải nắm chắc hoàn toàn cách phân bổ học sinh trên thực tế. #### Tiêu chí hợp lệ **Không học sinh nào được thuộc về hai nhóm trong cùng một phân vùng.** Đó chính là điều mà toán học gọi là một phép phân hoạch — các tập hợp rời nhau. Nếu một học sinh xuất hiện trong hai nhóm của cùng một phân vùng, Omniscol sẽ đưa ra một chẩn đoán về tính nhất quán (công cụ tạo tự động không thể xếp học sinh đó ở hai nơi cùng một lúc). #### Tác động lên thuật toán Khi một phân vùng đã được khai báo, công cụ tạo tự động sẽ: - **cho phép** xếp song song các nhóm của phân vùng (trong khi nếu không có phân vùng thì đó sẽ là một lỗi tương thích), - **vẫn kiểm tra các tài nguyên khác**: cần có số phòng học khác nhau bằng số nhóm học cùng lúc, và cũng ngần ấy giáo viên khác nhau. Phân vùng chỉ gỡ bỏ lỗi tương thích về học sinh — chứ không gỡ lỗi tương thích về phòng học hay giáo viên, những ràng buộc này vẫn nghiêm ngặt. #### Lỗi thường gặp — ba tiết học cùng một khung giờ trong một lớp Nếu bạn muốn có **ba tiết học khác nhau diễn ra cùng lúc** trong một lớp (Vật lý, Hóa học, Sinh học) vì học sinh của bạn theo những môn tự chọn loại trừ nhau, hãy tạo **ba nhóm** (Vật lý, Hóa học, Sinh học) rồi đưa chúng vào cùng một phân vùng. Đừng tạo ba tiết học không gắn nhóm — nếu không, công cụ tạo tự động sẽ không có thông tin nào về ràng buộc xếp cùng lúc, và mỗi tiết học sẽ được đặt riêng rẽ, vào những giờ khác nhau. #### Phân biệt với các cấu trúc khác | Bạn muốn… | Hãy dùng | | --- | --- | | Nhiều nhóm của **cùng một lớp** vào cùng một khung giờ (các tiết học khác nhau, học sinh không trùng nhau) | **Phân vùng** (trang này) | | Nhiều nhóm thuộc **các lớp khác nhau** vào cùng một khung giờ (cùng một tiết học, cùng giáo viên, cùng phòng học) bằng một cơ chế liên kết các nhóm đơn giản | [Căn chỉnh nhóm](#page-core-concepts.alignments) | | Giống căn chỉnh nhóm, nhưng dễ chỉnh sửa về sau, bằng cách tạo một thực thể gom nhóm độc lập | [Nhóm của nhóm](#page-core-concepts.groups-of-groups) | | Một nhóm có thành phần không cố định (câu lạc bộ, ghi danh tự do) | [Nhóm tự do](#page-core-concepts.free-groups) | #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Nhóm tự do](#page-core-concepts.free-groups) - [Phân vùng lớp](#page-glossary.class-division) ### 2.4 Căn chỉnh nhóm *Source: `help/vi/core-concepts/alignments.md` · id: core-concepts.alignments · Updated: 2026-05-20* Một **căn chỉnh nhóm** liên kết nhiều [nhóm](#page-glossary.group) thuộc **các lớp khác nhau**: các nhóm này phải học **cùng một tiết học**, vào **cùng một khung giờ**, trong **cùng một phòng học**, với **cùng một giáo viên**. Điều kiện quan trọng: căn chỉnh này phải dựa trên **cùng một môn học** ở các lớp khác nhau. Nếu hai lớp có hai môn học riêng biệt, dù rất gần nhau về mặt sư phạm, thì căn chỉnh nhóm không phải là cách mô hình hóa tốt. Cụ thể, trong khi một [phân vùng](#page-glossary.class-division) chỉ nằm bên trong một lớp, thì căn chỉnh nhóm trải rộng qua nhiều lớp. #### Trường hợp sử dụng Căn chỉnh nhóm dùng để tạo các khóa học liên lớp, khi nhiều lớp cùng có một số ít học sinh cần gom lại (căn chỉnh) cho một khóa học chung cụ thể mà các học sinh này sẽ học cùng nhau. Ví dụ: - **Học sinh học tiếng Nhật** ở các lớp 10A1, 10A2 và 10A3 cùng học chung giờ tiếng Nhật. - **Môn tự chọn liên lớp** ở bậc trung học phổ thông: giáo dục kinh tế và pháp luật, mỹ thuật, ngoại ngữ 2, v.v. - **Các chuyên đề học tập**. - **Khối kiến thức chung cho nhiều chương trình** ở bậc đại học: một khóa học nhập môn dùng chung cho nhiều chương trình thạc sĩ. Nếu bạn cần căn chỉnh **cả lớp**, trước hết hãy tạo trong mỗi lớp một nhóm đại diện cho toàn bộ lớp đó, rồi căn chỉnh các nhóm này với nhau. #### Cách tạo 1. Trước hết, trong mỗi lớp liên quan, hãy tạo **một nhóm**, tốt nhất là đặt cùng một tên (ví dụ: “Tiếng Nhật” trong 10A1, trong 10A2 và trong 10A3). 2. Hãy vào thẻ Căn chỉnh nhóm. 3. Nhấn vào Thêm căn chỉnh nhóm rồi chọn các nhóm của những lớp khác nhau. Khi một nhóm nằm trong một căn chỉnh, nhóm đó hiển thị trên tất cả các màn hình liên quan, kèm biểu tượng liên kết [link]. #### Hệ quả Sau khi được căn chỉnh, nhóm của mỗi lớp được **gắn** với khóa học chung. Cụ thể: - Các tiết học phải được tạo song song ở các lớp, đặc biệt là với **cùng thời lượng**, **cùng giáo viên** và nếu có thì **cùng phòng học**. - Nếu một tiết học của một lớp có nhóm được căn chỉnh đã được đặt vào một ngày và một giờ, thì tất cả các lớp còn lại trong căn chỉnh cũng phải có tiết học tương ứng, mỗi lớp với nhóm được căn chỉnh của mình, ở đúng vị trí đó. - Tổng số giờ và cách chia thành các tiết học cho các nhóm được căn chỉnh phải **hoàn toàn giống nhau** ở môn học liên quan — nếu không, Omniscol sẽ báo một chẩn đoán về sự sai lệch. - Mọi thay đổi (di chuyển, đổi phòng học, đổi giáo viên, thêm ghi chú) thực hiện trên một tiết học **đều phải được áp dụng lại** cho tất cả các lớp được căn chỉnh (hệ thống cố gắng đoán ra những tiết học nào tương ứng với nhau để việc này diễn ra tự động nhất có thể). #### Chẩn đoán — các sai lệch thường gặp Căn chỉnh nhóm rất nhạy với những khác biệt. Các chẩn đoán điển hình: - **Số giờ không khớp**: nhóm “Tiếng Nhật” của lớp 11A1 có 3 tiết tiếng Nhật, mỗi tiết một giờ, còn nhóm của 11A2 chỉ có 2. Hoặc bạn đồng bộ lại (3 tiết ở mọi lớp), hoặc bạn bỏ căn chỉnh (2 giờ được căn chỉnh, một giờ còn lại đặt trên một nhóm tiếng Nhật khác không căn chỉnh). - **Phòng học khác nhau trên một tiết học được căn chỉnh**: một căn chỉnh chỉ cho phép duy nhất một phòng học. Nếu bạn tự tay ép một phòng học khác cho tiết học của một lớp, chẩn đoán sẽ báo lên. - **Giáo viên khác nhau**: tương tự. #### Mẹo — mỗi khóa học/môn học một nhóm riêng Vì căn chỉnh nhóm rất nhạy với yêu cầu phải tạo song song hoàn toàn giống nhau, rất nên tạo một nhóm riêng cho mỗi môn học hoặc mỗi khóa học liên quan trong từng lớp cần căn chỉnh. Nói cách khác: đừng dùng lại một nhóm chung chung (thường là nhóm A/B) cho những môn học khác nhau khi có logic căn chỉnh chặt chẽ. Nếu không, bạn sẽ có những căn chỉnh nhập nhằng mà công cụ tạo tự động không thể phân định được. Thay vào đó, hãy tạo các nhóm chuyên biệt để có thể liên kết chúng với nhau mà không lo những tác động phụ ngoài ý muốn. #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng](#page-core-concepts.class-divisions) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Căn chỉnh nhóm](#page-glossary.alignment) ### 2.5 Nhóm của nhóm *Source: `help/vi/core-concepts/groups-of-groups.md` · id: core-concepts.groups-of-groups · Updated: 2026-05-20* Một **nhóm của nhóm** là một siêu nhóm tập hợp nhiều [nhóm](#page-glossary.group) — có thể đến từ **cùng một lớp** hoặc từ **các lớp khác nhau**. Đây là cách bạn **gom nhiều nhóm lại để cùng học chung một tiết học** — hợp các nhóm học sinh khác nhau thành một tập thể duy nhất trên khung giờ đó. Một số phần mềm lập kế hoạch khác gọi khái niệm này là “gom nhóm”. Cũng như với căn chỉnh nhóm, các tiết học chung phải dựa trên một **môn học chung** giữa các lớp liên quan. Khác với căn chỉnh nhóm vốn chỉ diễn tả một mối liên hệ giữa các nhóm, nhóm của nhóm là một thực thể độc lập và dùng được như một nhóm bình thường. Bạn có thể xem nó như một vùng chứa nhóm có tên gọi và linh hoạt. #### Vì sao linh hoạt hơn căn chỉnh nhóm | Khía cạnh | [Căn chỉnh nhóm](#page-core-concepts.alignments) | **Nhóm của nhóm** | | --- | --- | --- | | Thành phần | Sửa được về sau, nhưng phải tạo các tiết học đối xứng ở mọi lớp | Sửa được về sau rất dễ dàng | | Chế độ thời khóa biểu | Rất phù hợp với chế độ hằng tuần và theo chu kỳ ở bậc trung học | Dùng được trong mọi loại thời khóa biểu; đặc biệt tiện khi thành phần gom nhóm hay thay đổi | | Tách một tiết học ra | Cần một bản sao của nhóm nằm ngoài căn chỉnh | Sửa trực tiếp tiết học, quyền sở hữu sau đó được gắn về một lớp; phải tạo lại các tiết học của những lớp còn lại | | Trường hợp sử dụng | Khóa học chung lặp lại, cho chương trình của các lớp song song | Khóa học liên lớp, các lần gom nhóm không thường xuyên | Nhóm của nhóm được thiết kế cho bậc đại học và đào tạo thường xuyên, nơi: - thành phần của các lần gom nhóm thay đổi thường xuyên (một chương trình gộp vào một chương trình khác, một nhóm con tách ra làm dự án), - các tiết học chung được đặt ngày riêng lẻ thay vì lặp lại đều đặn, - các diễn giả hoặc giáo viên thỉnh giảng đứng lớp cho một tập thể hỗn hợp vào những ngày ấn định. Nhóm của nhóm linh hoạt và dễ theo dõi hơn căn chỉnh nhóm. Hạn chế của nó nằm ở các tiết học phức hợp, với những tuần luân phiên không đối xứng. Điều duy nhất nó đòi hỏi là đặt tên có cấu trúc rõ ràng (ví dụ: “Marketing liên lớp bậc Thạc sĩ”). #### Tạo và sử dụng Việc tạo được thực hiện từ thẻ Nhóm của nhóm của thời khóa biểu. Nhóm của nhóm có thể được gán cho một tiết học **như thể đó là một nhóm thông thường** — khác biệt duy nhất là nó tập hợp nhiều nhóm thành viên. Nếu bạn muốn gom **cả lớp**, trước hết hãy tạo trong mỗi lớp một nhóm đại diện cho toàn bộ lớp đó, rồi đưa các nhóm này vào nhóm của nhóm. Một tiết học được gán cho một nhóm của nhóm sẽ xuất hiện trong **tất cả** các lớp cha của những nhóm thành viên. Và bạn có thể sửa tiết học đó từ bất kỳ lớp nào trong số đó. Nhóm của nhóm hiển thị trên tất cả các màn hình liên quan kèm một biểu tượng riêng [sitemap]. #### Thay đổi thành phần về sau Có thể thêm hoặc bỏ nhóm thành viên bất cứ lúc nào. Các tiết học đã gán sẽ tự động điều chỉnh (phạm vi mở rộng hoặc thu hẹp tùy theo các nhóm được thêm vào / bỏ ra). Đó chính là giá trị của khái niệm này: bạn có thể bắt đầu một học kỳ với một thành phần nhất định, rồi điều chỉnh dọc đường mà không phá vỡ cấu trúc. #### Một số điểm kỹ thuật Về mặt kỹ thuật, một tiết học có nhóm của nhóm chỉ được lưu một lần duy nhất, nằm ngang qua các lớp, nên không thuộc về một lớp cụ thể nào. Trong khi đó, một tiết học không có nhóm của nhóm (kể cả khi có các nhóm được căn chỉnh) được lưu bên trong lớp của nó. Với một căn chỉnh trên 3 nhóm, có 3 tiết học được lưu, mỗi lớp một tiết; với một nhóm của nhóm, chỉ một tiết học được lưu tách khỏi các lớp, nhưng vẫn hiển thị trong từng lớp. Khi một nhóm của nhóm bị gỡ khỏi một tiết học, hệ thống sẽ tự đoán hoặc hỏi bạn tiết học đó thuộc về lớp nào. Sửa các trường khác của một tiết học có nhóm của nhóm dễ hơn so với một căn chỉnh: nhờ chỉ lưu một bản duy nhất, bạn đổi phòng học hay giáo viên là có hiệu lực ngay, không phải lặp lại thao tác “đối xứng” ở nơi khác. #### Hợp nhất các khoảng không rảnh Một nhóm của nhóm **hợp nhất các khoảng không rảnh** của tất cả các nhóm thành viên. Một khoảng không rảnh đặt trên **bất kỳ** nhóm thành viên nào — hoặc trên lớp của nhóm đó — đều áp dụng cho tiết học chung. Quy tắc này có hiệu lực cả khi tạo tự động lẫn trên màn hình trong lúc bạn chỉnh sửa. Các mức mềm (Không mong muốn, màu đỏ) cũng hợp nhất theo cách đó; và khi nhiều mức gặp nhau trên cùng một khung giờ, **mức mạnh nhất thắng** — mức Bận (màu đen) lấn át mức Không mong muốn (màu đỏ). Xem [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) để biết về trình chỉnh sửa và các mức. Vì một nhóm của nhóm thường trải qua nhiều lớp, việc hợp nhất này gộp cả các khoảng không rảnh của **từng lớp được bao phủ**: một lớp đóng chiều thứ Sáu sẽ đóng khung giờ đó cho mọi tiết học của nhóm của nhóm có chứa lớp ấy, ngay cả khi các lớp còn lại vẫn rảnh. ```mermaid flowchart TD CX["Lớp X — không rảnh chiều thứ Hai"] --> GA["Nhóm A (lớp X)"] CY["Lớp Y — không rảnh sáng thứ Sáu"] --> GB["Nhóm B (lớp Y)"] GA --> GG["Nhóm của nhóm"] GB --> GG GG --> SE["Tiết học: không rảnh chiều thứ Hai VÀ sáng thứ Sáu"] ``` Trên chính nhóm của nhóm, ứng dụng hiển thị một **bản xem tổng hợp, chỉ đọc** của các khoảng không rảnh này: bạn thấy ngay toàn bộ ràng buộc của mọi thành viên. Bạn **sửa chúng trên các nhóm thành viên** (hoặc trên lớp của chúng), nơi chúng mang ý nghĩa riêng — nhóm của nhóm không có trình chỉnh sửa ràng buộc riêng. > _Premium_ Mỗi nhóm thành viên mang theo các ràng buộc nhóm **của riêng mình**, cùng với những ràng buộc mà nó **thừa hưởng** từ lớp và từ các nhóm cha (xem [Phân cấp nhóm](#page-core-concepts.group-hierarchy)). Việc hợp nhất tiếp nhận tất cả: nhóm của nhóm càng tập hợp nhiều thành viên thì cửa sổ đặt tiết học càng hẹp lại. Để mở lại một khung giờ bất chấp một ràng buộc thừa hưởng, mức **Tiết học được phép** cho phép khung giờ đó trở lại tại chỗ, mà không thay đổi nguồn. Trên màn hình, các ràng buộc hợp nhất này hiện ra **lúc đặt tiết học**: các khung giờ ứng viên và bảng chẩn đoán báo lỗi tương thích, đồng thời nêu rõ **nhóm thành viên** và **lớp** gây ra lỗi, để bạn truy ngược thẳng về nguồn (xem [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts)). #### Hướng dẫn — Tạo một nhóm liên lớp cho bài giảng của khách mời 1. **Một bài giảng của khách mời cho một tập thể hỗn hợp** (học sinh của ba khóa, hai hướng tự chọn): khái niệm Omniscol tương ứng chính là **nhóm của nhóm**. 2. **Điều kiện trước**: các nhóm thành viên đã tồn tại sẵn trong lớp của mình. Hãy xác định các nhóm cần tập hợp (`Thạc sĩ 1 Marketing`, `Thạc sĩ 1 Tài chính`, `Tự chọn Khởi nghiệp`). 3. **Mở thẻ** Nhóm của nhóm của thời khóa biểu. Nhấn nút Thêm nhóm các nhóm. Hãy đặt cho nó một cái tên dễ hiểu: `Bài giảng khách mời GS. Nguyễn Minh Hà — Thạc sĩ 1 + tự chọn`. 4. **Thêm các nhóm thành viên**: chọn trong danh sách các nhóm của ba lớp / hướng tự chọn. Không giới hạn số lượng thành viên. Các nhóm thành viên cũng không bắt buộc phải loại trừ lẫn nhau (trường hợp xấu nhất là một học sinh thuộc cả hai nhóm sẽ chỉ thấy tiết học một lần). 5. **Tạo tiết học** (bài giảng) từ một trong các lớp liên quan, rồi **gán cho nó nhóm của nhóm** như thể đó là một nhóm thông thường. Chỉ cần nhập một lần, tiết học xuất hiện trong **tất cả các lớp cha** của những nhóm thành viên. 6. **Sửa đổi về sau**: nếu thành phần thay đổi (một nhóm rút ra, một nhóm khác gia nhập), hãy sửa thành phần của nhóm của nhóm — các tiết học đã gán sẽ tự động điều chỉnh (phạm vi mở rộng hoặc thu hẹp). Đây chính là điểm phân biệt khái niệm này với một căn chỉnh nhóm cổ điển (thành phần cố định). Xem thêm [Căn chỉnh nhóm](#page-core-concepts.alignments) cho trường hợp hằng tuần. #### Cách linh hoạt hơn: gán trực tiếp nhiều nhóm Đôi khi, với những tiết học chỉ diễn ra một lần, việc tạo hẳn một nhóm của nhóm riêng lại hóa ra là một thao tác phiền phức. Trong trường hợp đó, nếu việc dữ liệu kém cấu trúc không phải là trở ngại, bạn có thể gán thẳng nhiều nhóm của một hoặc nhiều lớp vào một tiết học. Bên trong, cách xử lý tương tự một nhóm của nhóm không tên, với một bản lưu duy nhất nằm ngang qua các lớp, nhưng bạn không cần bận tâm đến điều đó. #### Xem thêm - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Chế độ lịch](#page-glossary.calendar-mode) - [Nhóm của nhóm](#page-glossary.groups-of-groups) ### 2.6 Phân cấp nhóm: nhóm cha, nhóm con, ràng buộc kế thừa *Source: `help/vi/core-concepts/group-hierarchy.md` · id: core-concepts.group-hierarchy · Audience: admin · Plan: premium · Updated: 2026-05-20* > **Premium** > **Tính năng Premium.** Phân cấp nhóm và các ràng buộc thời gian của > nhóm đều nằm trong các tính năng Premium. > _Premium_ Vượt ra ngoài mô hình phẳng “lớp → nhóm”, Omniscol cho phép sắp xếp các nhóm của một lớp thành một **phân cấp nhóm cha / nhóm con** và gắn vào đó những **ràng buộc thời gian** lan truyền theo kế thừa. Cách làm này hữu ích khi lớp được tổ chức thành nhiều cấp chia nhỏ nối tiếp nhau. #### Tạo một phân cấp bằng kéo thả Trên trang các nhóm của một lớp, thao tác kéo thả xác định phân cấp: - **Kéo một nhóm lên một nhóm khác** → nhóm con được gắn vào nhóm cha. - **Kéo một nhóm con lên đầu danh sách các nhóm** → nhóm con được đưa ra khỏi phân cấp và trở lại thành nhóm trực thuộc lớp. Không có giới hạn về độ sâu. Bạn có thể có những chuỗi nhóm cha → nhóm con → nhóm cháu nếu cách chia nhỏ lớp của bạn đòi hỏi như vậy. #### Ví dụ chuẩn Một phân cấp điển hình: ```mermaid flowchart TD C[Lớp 8A] A[A — nhóm cha] A1[A1 — nhóm con của A] A2[A2 — nhóm con của A] B[B — nhóm cha] B1[B1 — nhóm con của B] B2[B2 — nhóm con của B] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 ``` Các phân vùng đã khai báo: - `(A, B)` — A và B loại trừ nhau ở cấp nhóm cha. - `(A1, A2)` — dưới A, A1 và A2 loại trừ nhau. - `(B1, B2)` — dưới B, B1 và B2 loại trừ nhau. **Hệ quả tự động**: Omniscol cho phép xếp lịch cùng lúc những nhóm thuộc các nhánh khác nhau — ví dụ `A1` và `B2` có thể ở cùng một khung giờ, bởi vì không học sinh nào thuộc cả hai nhóm (A1 ⊂ A, B2 ⊂ B, và A ∩ B = ∅). Không cần khai báo lại phân vùng `(A1, B2)`: cơ chế kế thừa tự tính ra. #### Kế thừa ràng buộc thời gian Ngoài các phân vùng, bạn có thể gắn **ràng buộc thời gian** (thời gian rảnh, các điểm không tương thích) vào một nhóm. Với phân cấp, những ràng buộc đó **được kế thừa** từ nhóm cha xuống nhóm con — qua một cơ chế **mặt nạ** mà nhóm con có thể ghi đè. ##### Ví dụ: khung giờ dành riêng cho thể dục thể thao Trường hợp điển hình: - Lớp `8A` **không rảnh vào chiều thứ Hai** (khung giờ chung bị khóa cho các hoạt động tập thể). - Theo cơ chế kế thừa, **mọi nhóm** của lớp đều không rảnh vào chiều thứ Hai. - **Ngoại trừ** nhóm `Thể thao`: bạn **đảo ngược** mặt nạ của nhóm này để cho phép chiều thứ Hai và cấm toàn bộ phần còn lại. Khi đó mọi hoạt động thể thao của nhóm sẽ tự động rơi vào đúng khung giờ được giữ riêng này. Cơ chế này rất mạnh: **một mặt nạ ở nhóm cha + một ngoại lệ ở nhóm con** là đủ để mô hình hóa gọn gàng các khung giờ dành riêng, mà không phải lặp lại ràng buộc trên từng tiết học. ##### Ví dụ khác: một nhóm cha `Học phần tự chọn` mang các khung giờ được phép Một trường hợp rất hữu ích khác: nhà trường muốn mọi học phần tự chọn chỉ rơi vào một vài khung giờ dành riêng, ví dụ: - sáng thứ Hai, - thứ Tư trước 10h, - sáng thứ Sáu. Khi đó bạn có thể: - tạo một nhóm cha `Học phần tự chọn` mà bản thân nhóm này sẽ không được phân công tiết học nào; - thể hiện trên nhóm cha đó các khung giờ được phép bằng cách tô các ràng buộc thời gian; - tạo bên dưới bao nhiêu nhóm con tùy nhu cầu: `Tự chọn Marketing`, `Tự chọn Tài chính`, `Tự chọn Dữ liệu`, v.v. Tất cả các nhóm con đó đều kế thừa cùng những khung giờ được phép. Nếu quy định thay đổi, bạn chỉ sửa ở một chỗ duy nhất: nhóm cha `Học phần tự chọn`. ```mermaid flowchart TD E["Học phần tự chọn — nhóm cha"] E1["Tự chọn Marketing"] E2["Tự chọn Tài chính"] E3["Tự chọn Dữ liệu"] S["Khung giờ được phép: sáng thứ Hai, thứ Tư trước 10h, sáng thứ Sáu"] S --> E E --> E1 E --> E2 E --> E3 ``` ##### Quy tắc kế thừa - Một nhóm con **mặc định kế thừa** các ràng buộc thời gian của nhóm cha. - Nhóm con có thể **ghi đè** những ràng buộc đó: thêm ràng buộc riêng hoặc đảo ngược mặt nạ. - **Các phân vùng của nhóm cha** tự động áp dụng cho nhóm con: nếu A và B nằm trong một phân vùng thì các nhóm con của A loại trừ với các nhóm con của B mà không cần khai báo tường minh. ##### Ràng buộc kế thừa và nhóm của nhóm Một nhóm cũng có thể là thành viên của một **nhóm của nhóm**. Khi đó các ràng buộc của nó — cả ràng buộc riêng lẫn ràng buộc kế thừa từ lớp và từ các nhóm cha — được **hợp nhất** với ràng buộc của những nhóm thành viên khác: tiết học của nhóm của nhóm tôn trọng toàn bộ các khoảng không rảnh đã gộp lại đó. Kế thừa đi xuống theo phân cấp, rồi việc hợp nhất mới gom các thành viên của nhóm của nhóm lại. ```mermaid flowchart TD C["Lớp — không rảnh chiều thứ Hai"] --> P["Nhóm cha"] P --> E["Nhóm con — kế thừa từ nhóm cha"] E --> GG["Nhóm của nhóm"] M["Nhóm thành viên khác (thuộc lớp khác)"] --> GG GG --> SE["Tiết học: các khoảng không rảnh đã hợp nhất"] ``` Xem [Nhóm của nhóm](#page-core-concepts.groups-of-groups) để biết chi tiết về cách hợp nhất. #### Khi nào nên dùng phân cấp - **Gói môn tự chọn**: một lớp có các ngoại ngữ được tổ chức theo trình độ (Tiếng Anh nâng cao > A1-Giao tiếp, A1-Văn hóa, A2-…). - **Giờ thực hành có vòng luân phiên con**: hai nửa lớp cho giờ thực hành, mỗi nửa lại chia thành các nhóm con cho từng bài thí nghiệm. - **Lộ trình phân hóa**: một lộ trình chính kèm những mô-đun tự chọn riêng biệt, được xếp lịch ngay bên trong lộ trình đó. - **Thể thao**: một nhóm tổng thể gom toàn bộ học sinh, với một mặt nạ dành riêng cho các khung giờ thể thao. - **Học phần tự chọn trên khung giờ dành riêng**: một nhóm cha `Học phần tự chọn` mang các khung giờ được phép, còn các nhóm con tương ứng với từng học phần tự chọn thực tế. #### Khi nào không nên dùng - Với những lớp đơn giản, không có chia nhỏ theo cấp — phân cấp chỉ làm mọi thứ phức tạp thêm. - Để trộn học sinh của các lớp khác nhau — đó là việc của [căn chỉnh nhóm](#page-core-concepts.alignments) hoặc [nhóm của nhóm](#page-core-concepts.groups-of-groups), chứ không phải của phân cấp trong nội bộ một lớp. - Với ghi danh tự do — hãy dùng [nhóm tự do](#page-core-concepts.free-groups). #### Hướng dẫn — Xây dựng một phân cấp nhóm cha/nhóm con 1. **Phân cấp nhóm** sắp xếp các nhóm của một lớp thành nhóm cha và nhóm con, với **cơ chế kế thừa** các ràng buộc thời gian. 2. **Trước hết hãy tạo các nhóm ở dạng phẳng** trên trang các nhóm của lớp: `A`, `A1`, `A2`, `B`, `B1`, `B2`, cộng thêm một nhóm bao trùm cả lớp là `Thể thao`. Ở bước này, tất cả đều ở cùng một cấp, gắn trực tiếp vào lớp. 3. **Kéo thả để phân cấp**: hãy kéo `A1` lên `A` → `A1` trở thành nhóm con của `A`. Làm tương tự với `A2`, `B1`, `B2`. Bạn thu được hai nhánh `A → A1, A2` và `B → B1, B2`. Không có giới hạn về độ sâu. Để đưa một nhóm con ra ngoài: hãy kéo nó lên **đầu danh sách** các nhóm của lớp. 4. **Hãy khai báo các phân vùng**: `(A, B)` ở cấp nhóm cha (loại trừ nhau), `(A1, A2)` dưới A, `(B1, B2)` dưới B. Không cần khai báo lại `(A1, B2)`: Omniscol suy ra theo kế thừa rằng `A1 ⊂ A` và `B2 ⊂ B` tương thích với nhau (xếp được vào cùng một khung giờ). 5. **Hãy đặt mặt nạ ở nhóm cha**: trên lớp, hãy đánh dấu **chiều thứ Hai không rảnh**. Mọi nhóm đều tự động kế thừa. Hãy kiểm tra bằng cách xem lưới thời gian của từng nhóm: khung giờ đó bị khóa ở khắp nơi. 6. **Hãy đảo ngược mặt nạ trên nhóm `Thể thao`**: trong hồ sơ của nhóm Thể thao, hãy đảo ngược ràng buộc thời gian — cho phép chiều thứ Hai, cấm toàn bộ phần còn lại. Mọi hoạt động thể thao sẽ tự động rơi vào khung giờ dành riêng này, mà không phải khai báo lại trên từng tiết học. 7. **Giờ bạn đã có một phân cấp đang hoạt động**, với kế thừa phân vùng và mặt nạ thời gian dành riêng. Công cụ tạo tự động sẽ dùng đến nó khi tạo thời khóa biểu, còn các lỗi tương thích kế thừa thì được báo theo thời gian thực. #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Nhóm tự do](#page-core-concepts.free-groups) - [Thời gian rảnh, ràng buộc thời gian và các điểm không tương thích](#page-core-concepts.wishes-and-availability) ### 2.7 Nhóm tự do *Source: `help/vi/core-concepts/free-groups.md` · id: core-concepts.free-groups · Plan: premium · Updated: 2026-05-12* > **Premium** > _Premium_ Một **nhóm tự do** là một **nhóm làm việc bán tự chủ**: một phần của lớp tiếp tục công việc riêng của mình song song với tiết học chính, thường trong cùng phòng học và với cùng giáo viên — một **nhóm vệ tinh** của tiết học chính. Nhóm này được đặt lên lưới thời gian mà không sinh ra lỗi tương thích, và thành phần của nhóm không bắt buộc phải cố định từ trước. Đây là **quân bài vạn năng** của Omniscol: hãy dùng khi mô hình chặt chẽ lớp + nhóm con trong một phân vùng không phù hợp. Rất thường gặp ở: - các **trường nghệ thuật** (xưởng thực hành ghi danh tự do, dự án liên ngành), - các **dự án bán tự chủ** — một nhóm nhỏ học sinh cùng làm việc dưới sự giám sát **nhẹ nhàng** của một giáo viên chủ yếu đang phụ trách lớp của mình ở ngay bên cạnh và thường xuyên ghé qua xem nhóm đã làm đến đâu, - các **bài giảng chung liên lớp**, masterclass, hội thảo có diễn giả khách mời, - các hoạt động **phụ đạo** và **câu lạc bộ** tham gia tự nguyện, - các **đồ án nghiên cứu và kỳ thực tập ngắn hạn** có ghi danh tự do. #### Cách hoạt động Nhóm tự do được **gắn với một lớp** như mọi nhóm khác, có sĩ số và, tùy theo cấu hình của tài khoản, có cả danh sách học sinh. Điểm khác biệt nằm ở cách Omniscol kiểm tra lỗi tương thích. Trên một tiết học của nhóm tự do, Omniscol **tắt ba loại kiểm tra**: - lỗi tương thích với phần còn lại của lớp trên cùng khung giờ, - lỗi tương thích với một tiết học khác của cùng giáo viên, - lỗi tương thích với một phòng học đã bị chiếm dụng. Chính điều đó cho phép nhóm tự do hoạt động như một **nhóm vệ tinh** trên lưới thời gian của lớp chính: tiết học chính vẫn diễn ra, còn tiết học của nhóm tự do được đặt song song mà không làm bật lên cảnh báo nào. Các tiết học của một nhóm tự do **hiện ra rõ ràng** trong thời khóa biểu của những học sinh liên quan, giống như mọi tiết học khác. #### Khi nào dùng nhóm tự do, khi nào dùng nhóm thông thường | Tình huống | Nhóm thông thường | Nhóm tự do | | --- | --- | --- | | Thành phần cố định từ trước | ✓ | ✓ (như một nhóm bình thường: sĩ số, danh sách học sinh không bắt buộc) | | Phát hiện lỗi tương thích lớp / giáo viên / phòng học | ✓ nghiêm ngặt | — đã tắt | | Mô hình hóa môn tự chọn trong một phân vùng lớp | ✓ | — không | | Tiết học vệ tinh, song song với tiết học chính | — | ✓ | #### Lưu ý khi sử dụng — giới hạn thực tế > **Trước hết: hãy ưu tiên những nhóm con thật sự trong một > [phân vùng](#page-core-concepts.class-divisions)** mỗi khi có thể. > Nhóm tự do là một **quân bài vạn năng chỉ nên dùng thật hạn chế**, > dành riêng cho các trường hợp không còn giải pháp gọn gàng nào khác. Lý do: trên thực tế, việc xếp song song phải **do người lập thời khóa biểu tự đảm nhiệm**. Thuật toán tạo tự động không có cách nào biết được rằng một nhóm bán tự chủ nào đó phải được xếp **song song với đúng một tiết học chính cụ thể của lớp**. Nếu bạn cứ để nó chạy, các tiết học của nhóm tự do có thể rơi vào bất kỳ lúc nào — không ăn khớp với những gì phần còn lại của lớp đang làm. **Cách làm tốt**: đặt thủ công tiết học của nhóm tự do **vào đúng khung giờ của** tiết học chính đang nhắm tới, rồi **khóa vị trí của nó** để việc tạo tự động không đụng vào nữa. Xem [Khóa một tiết học](#page-timetables.lesson-lock). #### Cách tạo Khi tạo nhóm (trên Thêm nhóm), hãy tích vào tùy chọn Nhóm tự do. Sau đó một biểu tượng [right-left] sẽ đánh dấu các nhóm này trong các danh sách để không nhầm lẫn với nhóm thông thường. #### Hệ quả của việc tắt kiểm tra lỗi tương thích Cụ thể, trên một tiết học của nhóm tự do: - nếu Alice (một học sinh của lớp) tham dự tiết học này trong khi một tiết học chính khác đang diễn ra cho phần còn lại của lớp vào cùng khung giờ, Omniscol **không đưa ra cảnh báo nào** (dù trên lý thuyết học sinh này phải có mặt ở hai nơi cùng một lúc); - giáo viên cũng có thể được phân công cho một tiết học khác vào cùng khung giờ mà không có cảnh báo; - phòng học có thể đã bị tiết học chính chiếm dụng mà vẫn không có cảnh báo. Việc nới lỏng này là **có chủ đích**. Bạn (người lập thời khóa biểu) có trách nhiệm bảo đảm rằng sự cùng tồn tại đó có ý nghĩa về mặt sư phạm (điển hình là: giáo viên chỉ thỉnh thoảng ghé qua xem nhóm bán tự chủ làm đến đâu; học sinh của nhóm rời tiết học chính mà không gây trở ngại; phòng học đủ chỗ cho cả hai hoạt động). #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Khóa một tiết học](#page-timetables.lesson-lock) - [Nhóm tự do](#page-glossary.free-group) ### 2.8 Khóa học, tiết học, loại tiết học *Source: `help/vi/core-concepts/lessons-and-types.md` · id: core-concepts.lessons-and-types · Updated: 2026-06-13* Ba đối tượng có liên quan với nhau nhưng khác biệt, cần phân biệt rõ trong Omniscol: **khóa học** (đơn vị giảng dạy trừu tượng), **tiết học** (một lần xuất hiện cụ thể của khóa học, vào một ngày xác định) và **loại tiết học** (cách phân loại: Lý thuyết, Bài tập, Thực hành…). #### Khóa học Một **khóa học** là đơn vị giảng dạy nhỏ nhất: một môn học, một lớp hoặc một nhóm, một giáo viên, một phòng học, một thời lượng, số lần diễn ra mỗi tuần (hoặc một danh sách ngày cụ thể ở chế độ lịch). Ví dụ: *“Toán ở lớp 6A1, do thầy Nam phụ trách, 4 giờ mỗi tuần tại phòng B204”.* Khóa học mang **logic sư phạm**: ai học gì với ai. Đó là những gì bạn xây dựng trong mô-đun Quản lý thời khóa biểu. Xem thêm định nghĩa trong bảng thuật ngữ: [Khóa học](#page-glossary.course). #### Tiết học Một **tiết học** là một **lần xuất hiện** cụ thể của khóa học, có ngày và giờ xác định. Dựa trên khóa học *Toán ở lớp 6A1, 4 giờ/tuần*, Omniscol tạo ra 4 tiết học mỗi tuần trong các tuần hoạt động (ví dụ thứ Hai 8h-9h, thứ Ba 10h-11h, thứ Tư 14h-15h, thứ Sáu 9h-10h). Chính tiết học là thứ hiển thị trong mô-đun Thời khóa biểu, trên các cổng thông tin và trong các bản xuất iCal. Những thay đổi đơn lẻ (dời, hủy, thay thế) cũng được áp dụng trên chính tiết học. Đây là từ mà giao diện dùng cho đơn vị được đặt lên lưới thời gian: thứ bạn đặt, dời, khóa, chỉnh sửa, hủy hoặc thay thế là một **tiết học** (hoặc “tiết học của khóa học” khi cần nói rõ hơn). #### Loại tiết học **Loại tiết học** phân loại mỗi khóa học ngoài môn học của nó: Lý thuyết, Bài tập, Thực hành, Thi, Trực tuyến, Đi thực tế. Loại được dùng cho: - **logic nghiệp vụ** (một kỳ thi không được xử lý giống một tiết bài tập), - **thống kê** (số giờ bài tập so với số giờ lý thuyết của mỗi giáo viên), - **tính dễ đọc** (cách hiển thị trong thời khóa biểu). Xem [Loại tiết học (Bài tập, Thực hành, Thi, Lý thuyết, v.v.)](#page-admin.lesson-types) để biết cách quản lý chi tiết các loại. #### Khóa học nằm ở đâu trong cấu trúc Tùy theo mức độ phức tạp của cấu trúc lớp, khóa học được gắn **vào lớp của nó** (trường hợp chuẩn), hoặc **theo cách liên lớp** (khi có sử dụng nhóm của nhóm, hoặc khi một tiết học có nhiều nhóm cùng lúc). Người dùng không phải bận tâm về điều này — Omniscol tự động chuyển đổi theo cấu trúc. Xem [Nhóm của nhóm](#page-core-concepts.groups-of-groups). #### Khóa học đơn giản và phức hợp Một khóa học có thể **đơn giản** (một giáo viên, một lớp, một môn học, một phòng học, lặp lại đều đặn) hoặc **phức hợp**: luân phiên tuần A/B, nối tiếp (tiết học kép), liên kết (luân chuyển giữa các nhóm), đồng giảng (nhiều giáo viên). Xem [Tiết học phức hợp](#page-core-concepts.complex-lessons). #### Xem thêm - [Tiết học / Giờ học](#page-glossary.lesson) - [Loại tiết học](#page-glossary.lesson-type) - [Loại tiết học (Bài tập, Thực hành, Thi, Lý thuyết, v.v.)](#page-admin.lesson-types) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) ### 2.9 Tiết học phức hợp: luân phiên, nối tiếp, liên kết, đồng giảng *Source: `help/vi/core-concepts/complex-lessons.md` · id: core-concepts.complex-lessons · Updated: 2026-06-13* Nhiều tiết học rất đơn giản: một nhóm người học, một giáo viên, một phòng học, một khung giờ lặp lại. Nhưng Omniscol còn xử lý được những cấu hình tinh vi hơn, và có thể phối hợp chúng với nhau. Tiết học phức hợp là những tiết học của cùng một lớp được gắn với nhau bằng một cấu hình đặc biệt. Có nhiều kiểu như vậy. #### 1. Tiết học luân phiên (tuần A/B/...) Những tiết học **không lặp lại hằng tuần** mà luân phiên với nhau. Trường hợp kinh điển: một tiết học ở tuần A, một tiết học khác ở tuần B, trên cùng một khung giờ. Cấu hình này rất phổ biến ở Pháp và ở các hệ thống giáo dục chịu ảnh hưởng từ Pháp, nhưng rất hiếm gặp ở nơi khác. **Điều kiện cần**: bật tuần luân phiên trong Thông số (mô-đun Quản trị). Bạn có thể chọn cách đặt tên (chữ cái A/B/C hoặc chữ số 1/2/3). **Dịch nhịp do ngày nghỉ lễ**: sau một đợt nghỉ lễ, nhịp luân phiên có thể được căn lại. Thiết lập này nằm trên dải luân phiên của màn hình [năm học](#page-admin.school-year). **Cách tạo**: 1. Hãy rê chuột lên tiết học cần cho luân phiên. Một biểu tượng [plus] xuất hiện ở góc trên bên phải của tiết học, hãy nhấn vào đó. 2. Một ô trống được thêm vào cho tuần luân phiên. 3. Hãy tạo tiết học tương ứng với ô trống mới này. 4. Định vị nó bằng nút ghim [thumbtack], rồi nhấn vào khung giờ ngày/giờ mong muốn trong số các chấm màu. Bạn có thể lặp lại thao tác này để thêm những tuần khác (luân phiên trên 3, 4 tuần hoặc hơn). #### 2. Tiết học nối tiếp (liền nhau) Hai tiết học bắt buộc phải **nối nhau trong cùng một ngày**, không có gì xen vào giữa. Các trường hợp điển hình: - hai tiết thực hành nối tiếp của hai nhóm khác nhau (giáo viên chắc chắn có mặt trọn nửa ngày), - một tiết lý thuyết rồi đến một tiết bài tập (lý thuyết nhập môn, rồi bài tập vận dụng), - một bài kiểm tra kéo dài hai tiết. **Cách tạo**: hãy kéo và thả một tiết học xuống dưới một tiết học khác trong màn hình phân bổ thời gian. Hai tiết học khi đó dính liền nhau và được coi như một khối duy nhất. Bạn có thể nối tiếp bao nhiêu tiết học tùy ý, nhưng dĩ nhiên khối đó có thể không còn vừa với lưới thời gian, nếu tổng thời lượng quá lớn. **Tách rời**: một nút “kéo cắt” xuất hiện khi rê chuột lên ranh giới giữa hai tiết học nối tiếp. Nút này gỡ bỏ sự nối tiếp. **Vì sao không dùng một tiết học duy nhất, dài hơn?** Bởi vì hai tiết học có thể có: - **loại tiết học** khác nhau (lý thuyết rồi bài tập), - **giáo viên** khác nhau (giáo viên phụ trách chính cho tiết lý thuyết, một trợ giảng cho tiết bài tập), - **phòng học** khác nhau. Nếu mọi thuộc tính đều giống nhau thì kéo dài một tiết học duy nhất sẽ đơn giản hơn — nối tiếp mang lại sự linh hoạt trong những trường hợp còn lại. #### 3. Tiết học liên kết (luân phiên nửa nhóm) Hai tiết học diễn ra đồng thời với **hai nửa nhóm đổi chỗ cho nhau**, để thành bốn tiết học. Trường hợp mẫu mực: ``` Khung giờ 1: nhóm A — Sinh học, nhóm B — Vật lí Khung giờ 2: nhóm A — Vật lí, nhóm B — Sinh học ``` Sau hai khung giờ, cả hai nửa nhóm đều đã học hai môn học, chỉ khác nhau về thứ tự. Vì vậy việc đổi chỗ đòi hỏi hai giáo viên (một dạy Sinh học, một dạy Vật lí) “luân chuyển” giữa hai nhóm. Cấu hình này khá phổ biến ở cấp trung học cơ sở tại Pháp và rất phổ biến tại các nước nói tiếng Pháp ở châu Phi. Ở nơi khác thì có vẻ hiếm hơn nhiều, tuy vậy vẫn có thể gặp, chẳng hạn ở Brazil. **Cách tạo**: 1. Hãy tạo hai tiết học [nối tiếp](#2-tiet-hoc-noi-tiep-lien-nhau) (tiết này dưới tiết kia). 2. Hãy rê chuột lên ranh giới giữa hai tiết học: một nút Kết nối giữa các tiết học xuất hiện. 3. Hãy nhấn vào đó và chỉ định **hai nhóm** phải luân phiên với nhau. Lý tưởng nhất là hai nhóm này đã được khai báo thành một [phân vùng](#page-core-concepts.class-divisions) trong lớp. Có thể đi xa hơn hai tiết học / hai nhóm, nhưng trường hợp đó nặng tính lý thuyết hơn là gặp trong thực tế. #### 4. Đồng giảng dạy Hai giáo viên trở lên đảm nhiệm **cùng một tiết học**, trong **cùng một phòng học**, **cùng lúc**. Các trường hợp điển hình: - tăng cường kèm cặp (giáo viên phụ trách chính + trợ giảng), - *giáo sư thỉnh giảng* dạy cặp với giáo viên phụ trách chính trong vài tiết học, - học phần liên ngành (một bác sĩ + một chuyên gia tin học cho môn “tin học y tế”), - hai giáo viên cùng phụ trách chính suốt một học kỳ. **Cách tạo**: trên màn hình phân công giáo viên cho khóa học, hãy chọn **nhiều người dạy**. Mỗi người đều được tính tiết học đó vào thống kê và vào giờ làm việc của mình. #### 5. Kết hợp Những cấu hình phức hợp này có thể **kết hợp** với nhau. Ví dụ: - **Luân phiên + nối tiếp** — tiết học của tuần A là một khối kép nối tiếp, còn tuần B là một khối kép khác. - **Luân phiên + đồng giảng** — tuần A với giáo viên phụ trách chính, tuần B với giáo sư thỉnh giảng (luân phiên người dạy). - **Nối tiếp + liên kết** — nửa nhóm luân phiên trên một khung giờ kép (trường hợp phổ biến nhất: tiết thực hành khoa học theo nửa lớp). Ở Pháp, đây là cách quen thuộc để khai báo nửa giờ bổ sung cho tiếng Pháp và Toán, đồng thời giải quyết bài toán ba giờ thể dục (đạt trung bình 1 giờ bằng cách xếp 2 giờ cứ hai tuần một lần, cộng thêm 2 giờ mỗi tuần). | Tuần A | Tuần B | | --- | --- | | Tiếng Pháp | Thể dục | | Toán | Thể dục | #### Trường hợp ngoại lệ Nếu nhu cầu của bạn không thuộc bất kỳ nhóm nào ở trên, hãy liên hệ bộ phận hỗ trợ của Omniscol — nhiều khả năng vẫn mô hình hóa được, nhưng có thể cần một chút trợ giúp để tìm ra cách tiếp cận tốt nhất. #### Hướng dẫn — Tạo tiết thực hành theo nửa nhóm liên kết 1. **Trường hợp mẫu mực**: một tiết thực hành khoa học trải trên hai khung giờ, trong đó nửa nhóm A học môn Sinh học rồi môn Vật lí, còn nửa nhóm B học môn Vật lí rồi môn Sinh học. Nối tiếp + liên kết. 2. **Điều kiện cần**: trên lớp liên quan, hãy khai báo hai nửa nhóm thành một **phân vùng**, ví dụ `(A, B)`. Xem [Phân vùng lớp](#page-core-concepts.class-divisions). Chính điều này cho phép Omniscol coi chúng là loại trừ nhau và do đó có thể đổi chỗ cho nhau. 3. **Hãy tạo tiết học đầu tiên** (ví dụ môn Sinh học cho nửa nhóm A) trên khung giờ thứ nhất, trong màn hình phân bổ thời gian. Giáo viên và phòng học Sinh học. 4. **Hãy kéo và thả tiết học thứ hai** (môn Vật lí cho nửa nhóm B) **ngay bên dưới tiết đầu tiên** (một vị trí hiện ra khi bạn nhả tiết học, và tiết học đó được dính liền vào tiết trước). 5. **Hãy rê chuột lên ranh giới** giữa hai tiết học nối tiếp: một nút Kết nối giữa các tiết học xuất hiện. Hãy nhấn vào đó. Chỉ định hai nhóm (`A` và `B`) phải luân phiên với nhau. Omniscol tự động tạo ra **vòng luân chuyển**: khung giờ 1 → A học Sinh học + B học Vật lí; khung giờ 2 → A học Vật lí + B học Sinh học. Hai giáo viên cùng lúc, hai phòng học, hai nửa nhóm luân chuyển, tổng cộng bốn tiết học. 6. **Để điều chỉnh**: nút kéo cắt giữa hai tiết học nối tiếp sẽ gỡ bỏ liên kết. Bạn cũng có thể kết hợp với **luân phiên A/B** (tiết thực hành khác nhau ở tuần A và tuần B) hoặc **đồng giảng dạy** (hai giáo viên trên cùng một tiết học). Xem [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) để có bối cảnh đầy đủ. #### Xem thêm - [Tiết học luân phiên](#page-glossary.alternate-lessons) - [Tiết học nối tiếp](#page-glossary.concatenated-lessons) - [Tiết học liên hệ](#page-glossary.associated-lessons) - [Đồng giảng dạy](#page-glossary.co-teaching) - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) ### 2.10 Đơn vị, cơ sở, phòng học, tài nguyên, đa phòng học *Source: `help/vi/core-concepts/sites-rooms-resources.md` · id: core-concepts.sites-rooms-resources · Updated: 2026-06-13* Trang này tập hợp cách mô hình hóa **tổ chức và vật chất** của một trường trong Omniscol: những đơn vị nào cấu trúc nên các lớp, các tiết học diễn ra ở đâu, trong phòng học nào, với những thiết bị di động nào. > _Premium_ #### Đơn vị — tầng tổ chức Một [đơn vị](#page-glossary.campus) (campus) cho phép phân biệt nhiều địa bàn, nhiều khoa hoặc nhiều khối trong cùng một tài khoản. Đây là một khái niệm tổ chức nội bộ: nó dùng để gom các lớp theo cấu trúc của trường và giúp một số thao tác lọc dễ dàng hơn. Khái niệm này là **tùy chọn**. Nó trở nên hữu ích nhất khi khái niệm cơ sở không phản ánh tốt cách tổ chức logic của trường, hoặc khi bạn muốn giữ song song cả hai. Đơn vị cắt ngang cơ sở. Cơ sở thì thiên về mô tả một thực tế địa lý hoặc vật lý: vị trí, lưới thời gian, phòng học, thời gian di chuyển. Hai khái niệm không nhất thiết trùng khớp với nhau. Chính trong trường hợp đó chúng lại hữu ích nhất. Ví dụ: - một khoa có thể sử dụng nhiều cơ sở; - một cơ sở vật lý có thể chứa nhiều đơn vị hoặc nhiều khối; - nhiều khoa có thể dùng chung cùng những tòa nhà; - nhiều trường trong cùng một tập đoàn giáo dục có thể dùng chung nhiều cơ sở theo kiểu đan xen; - một đơn vị có thể chỉ dùng làm bộ lọc phân tích, mà không làm thay đổi thời gian di chuyển. Ngay cả khi đơn vị và cơ sở gần như trùng khớp hoàn toàn, việc giữ cả hai vẫn có ích cho các bộ lọc, cho việc gom nhóm và cho một số phân tích. Đơn vị được tạo trong [thông số chung](#page-admin.parameters), bên dưới các khối lớp. Sau đó bạn có thể điền đơn vị trên từng lớp. Phần chẩn đoán lỗi tương thích có thể dùng thông tin này để lọc cảnh báo theo phạm vi tổ chức. #### Cơ sở — tầng địa lý Mỗi [cơ sở](#page-glossary.site) đại diện cho một địa điểm vật lý hoặc địa lý riêng biệt. Bắt buộc phải có ít nhất một cơ sở. Nếu mọi tiết học đều diễn ra ở cùng một nơi, hãy tạo một cơ sở duy nhất. Nếu trường của bạn có nhiều cơ sở với giáo viên hoặc học sinh phải di chuyển, hãy tạo đủ số cơ sở cần thiết **và khai báo thời gian di chuyển** giữa chúng. Mỗi cơ sở mang **lưới thời gian** riêng (giờ bắt đầu và kết thúc của các khung giờ, giờ nghỉ, giờ ăn trưa, thời gian đóng cửa) — các cơ sở có thể có lưới khác nhau (ví dụ một tòa nhà chính và một cơ sở phụ với giờ giấc khác). Việc dùng nhiều cơ sở là chuyện thường gặp trong **giáo dục đại học** (nhiều đơn vị, phân hiệu ở các tỉnh), nhưng cũng gặp trong **giáo dục phổ thông** (trường THCS và trường THPT trong cùng một khu trường học nhưng ở các tòa nhà tách biệt, trường tiểu học có điểm trường mầm non, v.v.). > Việc dùng nhiều cơ sở không nằm trong gói **Lite**. Chức năng này có > từ gói Standard trở lên. #### Nhiều cơ sở: quy tắc và thời gian di chuyển Trường hợp điển hình: một giáo viên kết thúc một tiết học ở cơ sở A lúc 10 giờ, phải có mặt ở cơ sở B lúc 10 giờ 30, quãng đường mất 15 phút. Với lưới thời gian có 30 phút nghỉ giữa hai tiết, việc này ổn. Nhưng nếu chỉ nghỉ 10 phút thì không kịp. ##### Khai báo thời gian di chuyển Trên màn hình **Cơ sở** của mô-đun Quản lý thời khóa biểu, nút Khoảng cách giữa các cơ sở mở ra một cửa sổ trình bày thời gian di chuyển dưới dạng **nửa ma trận tam giác**: N cơ sở = N×(N−1)/2 ô cần điền (không có đường chéo, không có ô trùng lặp — ma trận đối xứng). Hãy nhập số phút cho từng cặp, rồi xác nhận bằng Lưu. Nếu không nhập, thuật toán sẽ coi như không cần di chuyển giữa các cơ sở — nó có thể “dịch chuyển tức thời” giáo viên, điều hiển nhiên không khả thi trên thực tế. ##### Quy tắc với giáo viên: tự động đổi cơ sở Một **giáo viên** có thể tự động đổi cơ sở từ tiết học này sang tiết học kế tiếp — thuật toán tự lo việc đó. Bạn không phải khai báo gì ở phía giáo viên: chỉ cần thời gian di chuyển giữa các cơ sở đã được điền. ##### Quy tắc với lớp: cơ sở mặc định + chỉ định thủ công Một **lớp** mặc định gắn với một cơ sở (cơ sở nơi lớp được ghi danh). Theo mặc định, mọi tiết học của lớp đều diễn ra tại cơ sở đó. Nhưng bạn có thể **gán thủ công một phòng học thuộc cơ sở khác** cho một tiết học của lớp — ví dụ “giờ thể dục tại nhà thi đấu của cơ sở phụ”. Khi đó: - **phòng học đã gán trước** được thuật toán giữ nguyên (nó không tìm cách thay bằng một phòng học của cơ sở mặc định); - thuật toán tính **thời gian di chuyển** so với các tiết học liền trước và liền sau (theo cơ sở của chúng: mặc định là cơ sở của lớp, nếu không thì là cơ sở của phòng học được áp đặt trên các tiết đó). Nếu **không chỉ định phòng học nào** trên một tiết học, thuật toán sẽ chọn một phòng học thuộc **cơ sở của lớp**. Đó là giá trị mặc định. ##### Ràng buộc chặn, chính xác đến từng phút Ràng buộc giữa các cơ sở là ràng buộc **chặn** trong thuật toán tạo tự động. Nếu thiếu dù chỉ một phút giữa lúc kết thúc một tiết học ở cơ sở này và lúc bắt đầu một tiết học ở cơ sở khác, vị trí xếp sẽ bị **từ chối** — không có nới lỏng tự động. Việc kiểm tra dựa chính xác trên **lưới thời gian thực tế**: nếu hai khung giờ nối tiếp nhau với 15 phút ra chơi mà chỉ cần 10 phút di chuyển thì được; nếu cần tới 16 phút thì không. ##### Giờ nghỉ trưa khi đổi cơ sở Khi việc đổi cơ sở rơi vào giờ nghỉ trưa, thời gian di chuyển được **trừ vào thời gian ăn trưa thực tế** còn lại. Thuật toán có tính đến thời lượng nghỉ trưa tối thiểu cho giáo viên và cho học sinh (đặt theo từng cơ sở); nếu việc di chuyển làm thời gian này xuống dưới mức tối thiểu, vị trí xếp sẽ bị từ chối. Hệ quả thực tế: khai báo đúng thời gian di chuyển và thời lượng nghỉ trưa của từng cơ sở giúp tránh những thời khóa biểu hợp lệ về lý thuyết nhưng không thể thực hiện trên thực tế. ##### Ảnh hưởng đến phần chẩn đoán Nếu bạn thấy báo “không thể” trên những vị trí xếp liên quan đến nhiều cơ sở, hãy kiểm tra trước hết: - **thời gian di chuyển** đã khai báo (không dịch chuyển tức thời, cũng không phóng đại đến mức vô lý), - **giờ nghỉ giữa các tiết** trên lưới thời gian, - **giờ nghỉ trưa** nếu rơi vào khung giờ liên quan, - **các phòng học đã gán trước**: nếu một lớp bị áp đặt một phòng học ở cơ sở khác, chính phòng đó đặt ra ràng buộc. Khi xếp thủ công, ràng buộc hiện lên màu cam và bạn vẫn luôn có thể ép đặt. Nhưng trừ khi các tiết học đã được khóa, việc chạy thuật toán tạo tự động sau đó sẽ khiến một hoặc nhiều tiết học bị dời đi để giải quyết lỗi tương thích này. ##### Trường hợp sử dụng: hoạt động bên ngoài Ngoài các đơn vị cố định, cơ chế nhiều cơ sở cũng bao phủ một cách tự nhiên các **hoạt động bên ngoài lặp lại định kỳ**: - **tham quan khách sạn hoặc nhà hàng** với một trường nghiệp vụ khách sạn – nhà hàng; - **tham quan bảo tàng** hoặc xưởng nghề với một trường mỹ thuật hoặc thiết kế; - **đi thực tế tại doanh nghiệp** theo định kỳ (các chuyến tham quan trong chương trình vừa học vừa làm); - **thực tập thực địa** tại một địa điểm bên ngoài (công trường, trang trại, phòng thí nghiệm đối tác). Hãy tạo một cơ sở riêng cho mỗi địa điểm bên ngoài lặp lại định kỳ, kèm thời gian di chuyển từ cơ sở chính của bạn. Ràng buộc chặn vẫn áp dụng như bình thường: nếu chuyến đi không nằm gọn trong khoảng thời gian trống giữa hai tiết học, vị trí xếp sẽ bị từ chối. ##### Tìm hiểu thêm: giáo dục đại học Việc dùng nhiều cơ sở đặc biệt phổ biến ở bậc đại học (nhiều đơn vị, phân hiệu ở các tỉnh, giáo viên phải di chuyển liên tục). Các trường hợp đặc thù (mỗi cơ sở một thời khóa biểu nhờ nhiều thời khóa biểu cùng hoạt động — có trong gói Premium —, cơ sở ảo dành cho hội nghị truyền hình, v.v.) được trình bày trong [Đa cơ sở trong giáo dục đại học](#page-higher-ed.multi-site). #### Phòng học — không gian giảng dạy [Phòng học](#page-glossary.classroom) gắn với một cơ sở, và chính cơ sở mang thực tế vật lý của chúng: vị trí, lưới thời gian, thời gian di chuyển. Mỗi phòng học có: - một **tên**, - một **sức chứa** (số học sinh; trường thông tin then chốt đối với thuật toán), - có thể có một **[chuyên ngành](#page-glossary.classroom-specialization)** (nhãn tự do: hóa học, tin học, thể dục…), - có thể có một **số lớp tối đa cùng lúc**, dành cho những **[phòng lớn](#page-glossary.large-room)** có khả năng chứa nhiều tiết học song song (phòng thi, nhà thi đấu, bể bơi, khu vực ngoài trời); trường này chỉ xuất hiện sau khi đã đặt một chuyên ngành, - có thể có các **thẻ** hoặc ghi chú tự do, - có thể có một **tòa nhà**, - có thể có **giờ mở cửa** riêng. ##### Đa phòng học: một tiết học trong nhiều phòng Omniscol **hỗ trợ** việc gán nhiều phòng học cho cùng một tiết học. Các trường hợp sử dụng: - **Kỳ thi tách ra nhiều giảng đường** — một kỳ thi 200 thí sinh chia vào ba giảng đường (sức chứa 70 + 60 + 80) với một người phụ trách duy nhất. Tổng sức chứa được tính bằng **tổng** sức chứa của các phòng học đã gán. - **Bài giảng lớn được truyền đi** — một bài giảng ở giảng đường chính, truyền trực tuyến sang một phòng học vệ tinh (ở một cơ sở khác, thậm chí cho cả một khóa theo học hoàn toàn từ xa). - **Giờ thực hành chia đôi** — một tiết thực hành 30 học sinh chia vào hai phòng học cạnh nhau (15 + 15) với cùng một giáo viên đi lại giữa hai phòng. Hạn chế: nếu tổng sức chứa vẫn **nhỏ hơn** sĩ số của nhóm, Omniscol báo một lỗi tương thích. Quản trị viên là người quyết định cách xử lý (thêm một phòng học, giảm sĩ số nhóm, hoặc chấp nhận lỗi tương thích nếu đó là chủ ý — ví dụ khi bạn biết chắc không phải học sinh nào đã đăng ký cũng sẽ đến). ##### Chuyên ngành của phòng học **[Chuyên ngành](#page-glossary.classroom-specialization)** (hóa học, tin học, thể dục, nhà thi đấu, đa phương tiện, phòng tự học có giám sát) là những nhãn **tự do** tùy chọn do nhà trường tự định nghĩa. Bạn tạo những chuyên ngành phù hợp với cách gọi của trường mình, để tách riêng một số phòng học dành cho các tiết học đặc thù (nhà thi đấu cho thể dục, bể bơi cho môn bơi, phòng thí nghiệm cho một tiết thực hành hóa học, v.v.). Thuật toán tuân thủ nghiêm ngặt các chuyên ngành: nếu một môn học yêu cầu “hóa học”, chỉ những phòng học mang đúng chuyên ngành đó mới được sử dụng. Mỗi phòng học mang **nhiều nhất một chuyên ngành**. Với một phòng đa năng phục vụ hai mục đích chuyên biệt, hãy dùng một nhãn bao trùm (ví dụ “tin-học-đa-phương-tiện”) và gán chính nhãn đó cho các môn học liên quan. Xem [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations). ##### Phòng học dành riêng cho một lớp Nhiều trường tiểu học và trung học gán cho mỗi lớp một phòng học cố định (các tiết học mặc định diễn ra tại đó, chỉ giáo viên là phải di chuyển). Thiết lập này nằm trên lớp — khi đó thuật toán ưu tiên phòng học này cho các tiết học của lớp (với mức ưu tiên cao hơn phòng học ưa thích của giáo viên, nếu có khai báo). ##### Phòng học trong hai cơ sở ảo Nếu bạn có hai cơ sở ảo cho cùng một địa điểm vật lý (điển hình là trường THCS và trường THPT dùng chung khu nhà), một phòng học chỉ có thể thuộc về một cơ sở duy nhất. Để dùng được phòng đó trong cả hai bối cảnh, hãy tạo bản sao của nó ở cả hai cơ sở và khai báo giờ mở cửa loại trừ nhau (“sáng dành cho trường THCS, chiều dành cho trường THPT”) để tránh việc gán trùng. #### Tài nguyên — thiết bị di động Một [tài nguyên](#page-glossary.resource) là một thiết bị **di động** không gắn với một phòng học cụ thể nào: ba máy chiếu xách tay, một va li máy tính bảng, một bộ micro, v.v. Mỗi tài nguyên có: - một **tên**, - một **số lượng khả dụng** (va li tính là 1, không phải 30 — hãy nhập số va li chứ không phải số máy tính bảng lẻ). Thuật toán bảo đảm rằng trong cùng một khung giờ, số tiết học cần dùng tài nguyên không vượt quá số lượng khả dụng. Không cần mô hình hóa những tài nguyên mà bạn “lúc nào cũng đủ dùng” — chỉ nên làm điều đó với những giới hạn dùng chung có thật. #### Trường hợp đặc biệt — hội nghị truyền hình và liên kết theo từng tiết học Cách thức diễn ra của một tiết học — trực tiếp, từ xa, kết hợp hay tự học — được thể hiện qua **[hình thức](#page-glossary.lesson-modality)** của tiết học đó (Premium): chính nó xác định tiết học có cần đến một phòng học vật lý hay không. Với một tiết học từ xa hoặc kết hợp, bạn có thể gắn một **liên kết hội nghị truyền hình** vào tiết học đó (Zoom, Teams, Meet…). Xem [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links). Cách này chi tiết hơn liên kết hội nghị truyền hình đặt trên lớp, vốn là một liên kết chung mặc định cho tất cả các tiết học của lớp. #### Xem thêm - [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [Kỳ thi đa phòng học ở bậc đại học](#page-higher-ed.multi-room-exams) - [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links) - [Hình thức](#page-glossary.lesson-modality) ### 2.11 Lưới thời gian, khung giờ và thời lượng *Source: `help/vi/core-concepts/timetable-grid.md` · id: core-concepts.timetable-grid · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-07-17* **Lưới thời gian** mô tả các khung giờ của một cơ sở: giờ bắt đầu, giờ kết thúc, các giờ giải lao, giờ nghỉ trưa và các khoảng đóng cửa. Lưới này phục vụ đồng thời cho việc hiển thị, cho việc kiểm tra thời gian rảnh và cho việc tạo tự động. #### Cách lưu trữ tiêu chuẩn: khung giờ, không phải giờ ghi cứng Theo mặc định, một tiết học đã được xếp lịch sẽ gắn với một **khung giờ của lưới**. Omniscol lưu lại vị trí trong lưới, rồi tính lại các giờ hiển thị từ lưới thời gian của cơ sở. Hệ quả có ích: nếu một ngày nào đó tiếng chuông vào học chuyển từ `08:15` sang `08:10`, các tiết học đã đặt trên khung giờ đó sẽ đi theo lưới mới mà không cần sửa từng tiết học một. #### Chế độ hiển thị của lưới **Chế độ hiển thị** quyết định cách trình bày cột giờ, mà không thay đổi gì đến vị trí của các tiết học: - **Giờ học** — mỗi dòng mang giờ thực của khung giờ (8h15 – 9h10, 9h15 – 10h15…), đúng như lưới thời gian của cơ sở quy định. - **Khoảng thời gian** — mỗi dòng mang số thứ tự của khung giờ (P0, P1, P2…), quy ước phổ biến ở các trường theo hệ Anh – Mỹ. - **Lịch** — hiển thị dạng lịch theo giờ tròn (8h, 9h, 10h…), độc lập với lưới: mỗi tiết học nằm đúng ở giờ thực của nó trên một nền thời gian liên tục. #### Thời lượng khung giờ **thời lượng khung giờ** là thời lượng tham chiếu của một khung giờ. Thời lượng này có thể bao gồm cả thời gian chuyển tiết nếu nhà trường tính như vậy. Ví dụ: - tiết học 55 phút cộng 5 phút chuyển tiết: thời lượng khung giờ là `60` phút; - tiết học 1 giờ 30 phút đều đặn: thời lượng khung giờ là `90` phút; - phần lớn tiết học kéo dài một giờ, xen kẽ vài tiết 1 giờ 30 phút: thời lượng khung giờ là `60` phút cùng mức phân chia phù hợp. Thời lượng này được dùng cho số giờ đã cấu hình và cho việc tạo tự động. Giờ bắt đầu và giờ kết thúc thực tế vẫn có thể thay đổi trong lưới: một giờ ra chơi có thể khiến một khung giờ hiển thị chỉ dài 55 phút trong khi vẫn gắn với thời lượng tham chiếu 60 phút. Thiết lập này được đặt ở thẻ **Tổng quan** trong màn hình chỉnh sửa thời khóa biểu (xem [Thông số chung](#page-timetables.general-settings)). Các thời lượng thông dụng, xếp theo mức độ phổ biến, là: 60, 45, 50, 120, 90, 30, 180. Đôi khi, ở các cơ sở giáo dục đại học, tiết học luôn kéo dài nhiều giờ, nhưng lại có thể bắt đầu lúc 8h hoặc 9h tùy trường hợp, hoặc kéo dài 6 giờ, có khi 5 giờ. Khi đó, ước chung lớn nhất là thứ quyết định, và thường sẽ ra thời lượng khung giờ 60 phút. #### Phân chia khung giờ **phân chia khung giờ** cho biết thời lượng khung giờ có thể được cắt thành bao nhiêu phần nhỏ. Đó là bước thời gian nhỏ nhất. Vài ví dụ: - `1`: chỉ có những tiết học dài đúng bằng cả khung giờ; - `1/2`: bước 30 phút nếu thời lượng khung giờ là 60 phút; - `1/4`: bước 15 phút nếu thời lượng khung giờ là 60 phút. Hãy chọn mức chia đơn giản nhất mà vẫn đáp ứng được nhu cầu thực tế. Chia càng nhỏ thì càng linh hoạt, nhưng cũng làm tăng số khả năng phải thử khi tạo tự động. Trong giao diện, thiết lập này được chỉnh ở thẻ **Tổng quan** qua Phân chia khung giờ. Ở phần lớn hệ thống giáo dục trên thế giới, lưới thời gian không được chia nhỏ. Tại Pháp, bậc trung học thường dùng 1/2 (một số tiết học kéo dài 1 giờ 30 phút). Ở một số cơ sở đào tạo, độ chính xác có thể xuống tới 10 phút: khi đó thời lượng khung giờ là 60 phút còn mức phân chia là 1/6. #### Vị trí và thời lượng: lưu trữ theo bước thời gian Một tiết học không được ghi lại bằng giờ “cứng” mà bằng **số bước thời gian** trên lưới. **Bước** là thời lượng khung giờ chia cho mức phân chia: thời lượng khung giờ 60 phút với mức phân chia 1/2 cho ra bước 30 phút. Khi đó một tiết học 1 giờ chiếm 2 bước, một tiết học 1 giờ 30 phút chiếm 3 bước. Ba khái niệm cùng tồn tại mà không lẫn vào nhau: - **thời lượng tham chiếu** (thời lượng khung giờ) dùng để đếm số giờ và để **hiển thị thời lượng** của một tiết học; - **giờ thực** được hiển thị (bắt đầu và kết thúc) đến từ **lưới thời gian của cơ sở**, theo từng khung giờ; - **việc lưu trữ** diễn ra theo **bước thời gian**, ở độ mịn của mức phân chia. Vì vậy cùng một khung giờ có thể hiển thị 8h15 – 9h10 (giờ thực) mà vẫn được tính là 1 giờ (thời lượng tham chiếu). #### Cấm khung giờ trên toàn trường Một số khung giờ phải luôn **bị cấm với cả trường**: chiều thứ Bảy, khung giờ họp, khoảng thời gian đã giữ chỗ sẵn. Những lệnh cấm này được đặt **trực tiếp trên lưới thời gian của cơ sở**, bằng cách đánh dấu khung giờ là **bận**: sẽ không có tiết học nào được xếp vào đó, cả khi hiển thị lẫn khi tạo tự động. Đây là một **ràng buộc thời gian do chính lưới mang theo**. Trên các tài khoản Premium, cùng cơ chế đó còn cho phép đặt ràng buộc mềm (khung giờ nên tránh mà không đóng hẳn). Xem [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints). #### Giờ nghỉ trưa và các độ lệch Giờ nghỉ trưa được mô tả bằng một **khoảng thời gian** (ví dụ 12h00 – 14h00) và một **thời lượng** ăn trưa cần giữ lại. Khi thời lượng cần giữ **ngắn hơn** khoảng thời gian đó, Omniscol cho phép xếp một tiết học **trên một phần** giờ nghỉ, miễn là thời lượng ăn trưa vẫn còn chỗ — trước hoặc sau tiết học chen vào. Rất thường gặp trường hợp giờ nghỉ trưa kéo dài hai giờ nhưng vẫn được phép xếp vào đó một tiết học một giờ, thường là các môn tự chọn mà cả lớp không cùng có mặt, hoặc các tiết học liên lớp khó đồng bộ nhiều lớp cùng lúc. Những học sinh của lớp không có tiết học vào lúc đó sẽ không bị coi là đang trong giờ tự học có giám sát (với thuật toán, đó không phải là giờ trống). Giờ nghỉ trưa cũng là trường hợp duy nhất mà một khung giờ không đều được xử lý như một tập hợp bước thời gian riêng. Với bước thời gian 30 phút, thời lượng khung giờ 1 giờ và khoảng nghỉ từ 12h00 đến 13h30, phần mềm coi đó là 3 × 30 phút. Bạn có thể khai báo một khung giờ duy nhất dài 1 giờ 30 phút, hoặc 1 giờ + 30 phút, hoặc 30 phút + 1 giờ, cách nào cũng được. Trong trường hợp này, các tiết học buổi chiều bị đẩy lùi nửa giờ. Nếu sau đó bạn khai báo thời lượng ăn trưa tối thiểu là nửa giờ, vẫn còn chỗ để đặt một tiết học một giờ lên giờ nghỉ, để học sinh liên quan ăn trưa trước hoặc sau tiết học đó. Bạn cũng có thể khai báo rằng **nhà ăn mở cửa ngay trước** giờ nghỉ chính thức: khi đó một “giờ trống” trên khung giờ ấy không bị tính là thời gian lãng phí của học sinh. Điều quan trọng là mô hình hóa đúng quy định mong muốn: khung giờ mở, khung giờ đóng, giờ nghỉ trưa linh hoạt, thời gian rảnh hay thời gian bận. Lưới thời gian phải phản ánh đúng những gì nhà trường thực sự chấp nhận. ##### Lệch giờ ăn theo khối để giảm tải nhà ăn Khi nhà ăn không thể phục vụ cả trường cùng một lúc, bạn chia các khối thành **hai ca** nối tiếp nhau. Lưới thời gian chỉ mang **một** giờ nghỉ trưa chung duy nhất; độ lệch sau đó được đặt **theo từng lớp** bằng ràng buộc thời gian. 1. Trên lưới thời gian của cơ sở, hãy khai báo giờ nghỉ trưa trên **toàn bộ** khoảng — ví dụ **12h – 14h** — với **thời lượng ăn trưa cần giữ là một giờ**. Xét riêng lẻ, mỗi lớp khi đó có thể ăn trưa trong 12h – 13h hoặc trong 13h – 14h. 2. Để **cố định** ca ăn của từng khối, hãy mở ràng buộc thời gian của lớp (Ràng buộc thời gian của lớp) và tô màu **Bận** (đen) lên nửa khung giờ dành cho bữa ăn của lớp đó. Công cụ tạo tự động sẽ không đặt tiết học nào vào đó: khoảng thời gian ấy được bảo đảm cho bữa trưa, còn các tiết học của lớp dồn sang nửa khung giờ còn lại. Với hai ca: - **Khối 6 và khối 7** — bận trong **12h – 13h**: các lớp này ăn trưa ở ca đầu, tiết học được xếp vào 13h – 14h. - **Khối 8 và khối 9** — bận trong **13h – 14h**: các lớp này ăn trưa ở ca sau, tiết học được xếp vào 12h – 13h. Nhờ vậy nhà ăn đón hai luồng riêng biệt thay vì một. Nguyên tắc này mở rộng được cho ba ca trở lên: nới rộng khoảng nghỉ trưa, rồi tô cho mỗi khối nửa khung giờ ăn thuộc về khối đó. Trình chỉnh sửa ràng buộc thời gian được trình bày chi tiết trong [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints). > _Premium_ #### Giờ tùy chỉnh trên một tiết học Một tiết học có thể nhận **giờ tùy chỉnh**: giờ bắt đầu và giờ kết thúc chính xác, không nhất thiết trùng với các mốc của một khung giờ. Trường hợp này có ở mọi loại thời khóa biểu. Tiết học hiển thị ngoài khung giờ, với giờ thực của nó: nó có thể bắt đầu hoặc kết thúc bên ngoài các mốc của khung giờ đang hiển thị. Omniscol dùng các giờ tùy chỉnh này để tính phần chồng lấn thực tế. Mọi thực thể được phân công cho tiết học — giáo viên, phòng học, lớp, nhóm hay tài nguyên — đều được coi là bận ngay khi giờ tùy chỉnh lấn sang một khung giờ. Với việc tạo tự động, một tiết học có giờ tùy chỉnh được xử lý như không thể di chuyển: vị trí của nó được khóa tự động. > _Premium_ #### Lớp ngoài khung giờ **Lớp ngoài khung giờ** là một trường hợp khác: các tiết học của lớp được lưu với giờ giấc chính xác, độc lập với lưới thời gian của cơ sở. Chức năng này chỉ liên quan đến thời khóa biểu dạng lịch. Nó phục vụ chủ yếu cho các chương trình đào tạo thường xuyên hoặc các chương trình rất linh hoạt, vốn dùng chung cơ sở vật chất và giáo viên với chương trình chính quy mà không theo cùng một lưới thời gian. Khi đó nhà trường chọn một bước thời gian mặc định, ví dụ mười lăm phút, và các tiết học được lưu kèm giờ bắt đầu và giờ kết thúc của chúng. > _Premium_ #### Thời lượng tùy chỉnh Một tiết học cũng có thể mang **thời lượng tùy chỉnh**: - **Thời lượng tính toán**: thời lượng suy ra từ giờ tùy chỉnh của tiết học; - **Thời lượng thực tế**: thời lượng được ưu tiên dùng trong các trang tổng quan; - **Thời lượng được tính**: thời lượng dùng để lập hóa đơn hoặc trả lương cho giáo viên. Ví dụ: một kỳ thi chiếm một phòng học từ `08:30` đến `11:30` vì phải chuẩn bị phòng trước và dọn trả phòng sau. Trang tổng quan có thể chỉ tính 2 giờ thi là thời lượng thực tế, còn thời lượng được tính của giáo viên coi thi có thể cao hơn nếu nhà trường gộp thêm phần bù cho việc chấm bài. #### Xem thêm - [Thông số chung](#page-timetables.general-settings) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) ### 2.12 Chuyên ngành phòng học *Source: `help/vi/core-concepts/classroom-specializations.md` · id: core-concepts.classroom-specializations · Updated: 2026-06-13* Không phải phòng học nào cũng như nhau: phòng thí nghiệm hóa học không thể dùng cho một tiết học thể dục, phòng máy tính chỉ có ý nghĩa với những môn học cần dùng đến máy, còn nhà thi đấu thì dành riêng cho thể dục thể thao. **Chuyên ngành phòng học** trong Omniscol cho phép bạn khai báo những mối liên hệ này để việc tạo tự động và các chẩn đoán tuân thủ các ràng buộc vật chất. #### Cách hoạt động: một nhãn dùng chung giữa phòng học và môn học Chuyên ngành dựa trên một **nhãn tự do**, do nhà trường tự đặt theo cách gọi của mình, nối hai khai báo với nhau: - **Về phía phòng học** — mỗi phòng học mang **nhiều nhất một chuyên ngành** (“hóa học”, “tin học”, “nhà thi đấu”…). Phần lớn phòng học không mang chuyên ngành nào. - **Về phía môn học** — một môn học đã gán cho một lớp có thể yêu cầu một phòng học chuyên biệt qua trường Phòng chuyên môn. Giá trị phải khớp **chính xác** với nhãn mà ít nhất một phòng học đang mang. Liên kết này chặt theo cả hai chiều: một môn học yêu cầu “hóa học” chỉ được xếp vào phòng học mang nhãn đó, và ngược lại một phòng học chuyên biệt được **dành riêng** cho những môn học yêu cầu nhãn của nó — phòng đó không dùng cho các tiết học thông thường. **Sức chứa** của phòng học vẫn là một kiểm tra riêng: dù chuyên ngành là gì, sĩ số dự kiến cũng phải vừa với phòng. #### Ảnh hưởng đến việc tạo tự động Khi tạo tự động, với mỗi tiết học thuật toán chỉ xét những phòng học **phù hợp**: đúng nhãn chuyên ngành mà môn học yêu cầu (nếu có) và đủ sức chứa cho sĩ số. Nếu không còn phòng học phù hợp nào trống, việc tạo tự động sẽ báo lại và phần chẩn đoán chỉ rõ môn học, lớp và chuyên ngành liên quan. Quyền quyết định thuộc về bạn: thêm nhãn đó cho một phòng học khác, bỏ yêu cầu đặt trên môn học, hoặc xem lại sĩ số. #### Phòng học đa năng Một phòng học chỉ mang **một** nhãn chuyên ngành. Với phòng phải phục vụ hai mục đích chuyên biệt — chẳng hạn tin học và đa phương tiện — hãy tạo một nhãn bao trùm (“tin-học-đa-phương-tiện”) và ghi đúng nhãn đó trên tất cả các môn học liên quan. #### Phòng học thông thường Phòng học **thông thường** (không có chuyên ngành) dùng được cho mọi môn học không đòi hỏi phòng chuyên biệt. Đây là trường hợp phổ biến nhất; chỉ thêm chuyên ngành khi bạn muốn giới hạn. #### Phòng lớn: nhiều tiết học cùng lúc Một phòng học chuyên biệt thường chỉ xếp được **một tiết học tại một thời điểm**. Bạn có thể biến nó thành **[phòng lớn](#page-glossary.large-room)** bằng cách điền **số lớp tối đa cùng lúc**: khi đó phòng có thể xếp song song nhiều tiết học khác nhau (giáo viên và nhóm riêng biệt), miễn là tổng sĩ số vẫn nằm trong sức chứa. Đây là trường hợp của phòng thi, nhà thi đấu, bể bơi hay khu vực ngoài trời. Thiết lập này chỉ xuất hiện **sau khi** phòng học đã được gán một chuyên ngành. #### Khuyến nghị sử dụng - **Bắt đầu rộng rãi** — khi thiết lập ban đầu, đừng đặt quá nhiều ràng buộc, bạn có nguy cơ làm nghẽn việc tạo tự động. - **Tinh chỉnh sau lần chẩn đoán đầu tiên** — khi đã thấy kết quả tạo tự động, bạn sẽ nhận ra những trường hợp mà một chuyên ngành còn thiếu lẽ ra đã tránh được một vị trí xếp sai. - **Ghi lại cho cả tập thể** — giáo viên và nhân viên phụ trách phòng học cần hiểu vì sao một phòng bị giới hạn; nếu không, họ sẽ tự lách bằng tay. #### Hướng dẫn — Thiết lập phòng thí nghiệm Sinh học 1. **Thiết lập một phòng học chuyên biệt** (phòng thí nghiệm sinh học, phòng máy tính, nhà thi đấu) để việc tạo tự động không xếp nhầm. 2. **Mở phòng học** trong màn hình Cơ sở / Phòng học / Tài nguyên của thời khóa biểu. Điền **chuyên ngành** của phòng: chọn một nhãn có sẵn hoặc tạo nhãn mới (ví dụ `SINH`). Mỗi phòng học chỉ mang một nhãn. 3. **Sức chứa**: số chỗ ngồi. Việc tạo tự động kiểm tra rằng sĩ số của nhóm được xếp vào luôn ≤ sức chứa. ⚠ Hãy đặt con số thực tế — quá chặt sẽ làm nghẽn việc tạo tự động, quá rộng sẽ dẫn đến đặt phòng vượt mức. 4. **Về phía môn học**: trên môn học (hoặc các môn học) liên quan của từng lớp (Sinh học, Khoa học tự nhiên…), hãy điền trường Phòng chuyên môn bằng đúng nhãn `SINH`. Phải khớp chính xác — chính điều đó dành riêng phòng học cho những môn học này. 5. **Bắt đầu rộng rãi** khi thiết lập ban đầu — càng ít ràng buộc thì càng ít nguy cơ làm nghẽn việc tạo tự động. Bạn sẽ **tinh chỉnh sau lần chẩn đoán đầu tiên**, khi thấy những trường hợp mà một chuyên ngành còn thiếu lẽ ra đã tránh được một vị trí xếp sai. 6. **Với một phòng học không bị giới hạn** (thông thường), đừng điền chuyên ngành nào: khi đó phòng dùng được cho mọi môn học không có yêu cầu đặc biệt. Đây là mặc định đơn giản nhất — chỉ thêm chuyên ngành khi bạn muốn giới hạn. #### Xem thêm - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) - [Phòng lớn](#page-glossary.large-room) - [Cơ sở, phòng học, tài nguyên, đa phòng học](#page-core-concepts.sites-rooms-resources) - [Quản lý môn học](#page-admin.subjects) ### 2.13 Thời gian rảnh và ràng buộc thời gian của giáo viên *Source: `help/vi/core-concepts/wishes-and-availability.md` · id: core-concepts.wishes-and-availability · Updated: 2026-06-21* **Thời gian rảnh** của một giáo viên cho phần mềm biết những khung giờ nào là **không thể**, **không mong muốn** hay **được ưu tiên** đối với người đó. Công cụ tạo tự động tuân thủ nghiêm ngặt những khung giờ không thể và tìm cách tối ưu các mong muốn còn lại. Ở bậc trung học, người ta còn gọi đây là **nguyện vọng** của giáo viên — vẫn là cùng một khái niệm. #### Bốn mức | Màu | Ý nghĩa | Ảnh hưởng | | --- | --- | --- | | **Đen** | Không thể | Ràng buộc cứng: công cụ tạo tự động không bao giờ đặt tiết học vào đó | | **Đỏ** | Không mong muốn | Ràng buộc mềm: công cụ tạo tự động tránh nếu có thể | | **Xanh lá** | Ưu tiên | Công cụ tạo tự động ưu ái khung giờ này khi có nhiều khung giờ đều hợp lệ | Khung giờ không được tô là **trung tính** — rảnh nhưng không có mong muốn riêng. #### Bật việc nhập thời gian rảnh Chế độ nhập được chọn trong [thông số chung](#page-admin.parameters), ở thiết lập Thời gian rảnh của giáo viên với các lựa chọn sau: - **Vô hiệu hóa** — giáo viên không nhập thời gian rảnh. - **Thời khóa biểu hàng tuần** — thời gian rảnh được nhập trên một tuần mẫu. Dành cho thời khóa biểu hàng tuần và theo chu kỳ. - **Lịch** — thời gian rảnh được nhập theo từng ngày. Dành cho thời khóa biểu dạng lịch, trên các tài khoản Premium. - **Lịch + Thời khóa biểu hàng tuần** — cả hai cách nhập cùng tồn tại, trên các tài khoản Premium, khi thời khóa biểu lặp lại và thời khóa biểu dạng lịch song song với nhau, hoặc đơn giản là để giáo viên có cách khai báo dễ hơn rằng họ không bao giờ rảnh vào một ngày nào đó trong tuần, bất kể ngày tháng (dù vậy vẫn có thể khai báo ngoại lệ). #### Giáo viên tự nhập Giáo viên có thể tự nhập thời gian rảnh của mình từ tài khoản [heart]. Tiết kiệm thời gian đáng kể cho bộ phận quản trị. Nếu nhà trường không muốn giáo viên phải đăng nhập, bạn cũng có thể **gửi cho họ một liên kết chia sẻ** trực tiếp tới chính màn hình thời gian rảnh của họ, ở chế độ chỉnh sửa, được tạo từ Tải xuống kèm ngày hết hạn. Giáo viên nhập thời gian rảnh mà thậm chí không cần có quyền đăng nhập vào tài khoản của mình. Trên thực tế, liên kết này thường được gửi trong một thư soạn riêng nêu rõ các môn học dự kiến, số giờ, việc di chuyển hay những ràng buộc đặc biệt, cùng một hạn chót rõ ràng. Omniscol không có chức năng trộn thư dành riêng cho trường hợp này: mỗi liên kết được chèn vào nội dung liên lạc mà bạn đã soạn sẵn cho giáo viên tương ứng. #### Xác nhận của quản trị viên trong thời khóa biểu Trong một thời khóa biểu hàng tuần: - Thời gian rảnh do giáo viên nhập mặc định ở trạng thái **chờ xác nhận**. - Người lập thời khóa biểu kiểm tra rồi **xác nhận** (có thể sau khi chỉnh sửa — ví dụ xóa một khai báo thời gian rảnh quá gò bó, hoặc đổi màu đen thành đỏ). - Mọi thay đổi về sau của giáo viên lại chuyển về trạng thái chờ. Ở bậc trung học, việc nhập thời gian rảnh có thể được mở từ nhiều tuần trước khi lập thời khóa biểu. Khi đó giáo viên nhập trên một lưới thời gian chung, còn bước xác nhận sẽ chuyển các khai báo đó sang đúng lưới thời gian thực tế của thời khóa biểu: bước xác nhận cũng phục vụ việc chuyển đổi này cho chuẩn. Thời gian rảnh của giáo viên ảo được lưu trực tiếp. Nhờ vậy có thể, ví dụ, mặc định để trống ngày thứ Bảy. Ở chế độ lịch ([Premium](#page-overview.plans-and-options)): - Thời gian rảnh được **hợp nhất theo thời gian thực**. - Các lỗi tương thích được phát hiện ngay. Thật vậy, ở chế độ lịch, lưới thời gian được xem là ít ràng buộc hơn (vì có rất nhiều ngày khả dĩ), còn giáo viên thì tự chủ, thậm chí ở ngoài trường, kiêm nhiệm nhiều vị trí và trách nhiệm: đây không phải là một nguyện vọng mà là thời gian rảnh thực tế. Vì thế, một cách ngoại lệ, dữ liệu thời gian rảnh của giáo viên ở chế độ lịch có thể sửa được cả từ màn hình của mô-đun Quản trị lẫn từ một thời khóa biểu. #### Lỗi tương thích về thời gian rảnh khi tạo tự động Nếu thời gian rảnh của một giáo viên **quá hạn chế** đến mức không thể xếp được các tiết học của họ, quá trình tạo tự động sẽ thất bại kèm một chẩn đoán rõ ràng. Xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). Cách xử lý: - Nới lỏng thời gian rảnh (chuyển một khung giờ sang màu đỏ thay vì đen). - Phân công lại các tiết học (một giáo viên có 18 giờ mà chỉ còn 12 khung giờ trống thì không thể xoay xở được). - Tuyển thêm giáo viên (trường hợp cực đoan — nhưng đôi khi đó đúng là chẩn đoán chính xác). #### Hướng dẫn — Thu thập và xác nhận thời gian rảnh của giáo viên 1. **Thời gian rảnh** cho công cụ tạo tự động biết những khung giờ nào là **không thể** (đen — ràng buộc cứng), **không mong muốn** (đỏ — mềm) hay **được ưu tiên** (xanh lá). Công cụ tạo tự động tuân thủ nghiêm ngặt màu đen và tối ưu phần còn lại. 2. **Bật chế độ nhập** trong các thông số chung (thiết lập Thời gian rảnh của giáo viên): **vô hiệu hóa**, **hàng tuần** (thời gian rảnh trên tuần mẫu, chế độ cổ điển), hoặc **lịch** (trên các tài khoản Premium, thời gian rảnh theo từng ngày — có thể dùng chung với chế độ hàng tuần). Hãy chọn theo loại thời khóa biểu của bạn. 3. **Mở việc nhập** cho giáo viên. Hai lựa chọn: - họ đăng nhập và nhập từ tài khoản của mình [heart]; - bạn tạo một **liên kết chia sẻ trực tiếp** qua Tải xuống kèm ngày hết hạn — giáo viên không cần đăng nhập vào tài khoản của mình — rồi gửi cho từng người liên quan. 4. **Về phía giáo viên**: họ đăng nhập hoặc bấm vào liên kết, thấy lưới thời gian của mình, tô các khung giờ thành đen (không thể), đỏ (không mong muốn), xanh lá (ưu tiên). Lưu ngay lập tức. Thao tác rất nhanh. 5. **Xác nhận ở phía quản trị viên (chế độ hàng tuần)**: thời gian rảnh đã nhập sẽ ở trạng thái **chờ xác nhận**. Hãy kiểm tra rồi xác nhận — bạn có thể chỉnh sửa ngay lúc đó. Mọi thay đổi về sau của giáo viên lại chuyển về trạng thái chờ. Ở chế độ lịch, mọi thứ được hợp nhất theo thời gian thực. ⚠ Nếu một giáo viên tô quá nhiều màu đen, công cụ tạo tự động sẽ không xếp được các tiết học của họ — chẩn đoán sẽ báo điều đó (xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation)). #### Xem thêm - [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) - [Thời gian rảnh của giáo viên (nguyện vọng)](#page-glossary.wishes) - [Không tương thích (giữa các môn học)](#page-glossary.incompatibility) - [Công cụ tạo tự động](#page-glossary.solver) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) ### 2.14 Ràng buộc thời gian: lớp, môn học, nhóm, phòng học và lưới thời gian *Source: `help/vi/core-concepts/time-constraints.md` · id: core-concepts.time-constraints · Audience: admin · Updated: 2026-06-27* **Ràng buộc thời gian** cho công cụ tạo tự động biết những khung giờ cần **tránh** hoặc cần **ưu tiên**. Cùng một trình chỉnh sửa được dùng cho **thời gian rảnh của một giáo viên** và cho những ràng buộc gắn với một **lớp**, một **môn học**, một **nhóm**, một **phòng học** hay chính **lưới thời gian**. Mỗi nơi chỉ mở ra những mức có ý nghĩa với nó. Để biết chi tiết về trường hợp giáo viên (giáo viên tự nhập, liên kết chia sẻ, việc duyệt), xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability). #### Bốn mức Mỗi khung giờ được tô bằng một trong các mức sau, mỗi mức một màu: | Màu | Mức | Ảnh hưởng khi tạo tự động | | --- | --- | --- | | ⚫ **Đen** | Bận | Ràng buộc cứng: công cụ tạo tự động không bao giờ đặt tiết học vào đó | | 🔴 **Đỏ** | Không mong muốn | Ràng buộc mềm mạnh: công cụ tạo tự động tránh tối đa có thể | | 🟠 **Cam** | Ít mong muốn | Ràng buộc mềm nhẹ: nên tránh nếu phần còn lại cho phép | | 🟢 **Xanh lá** | Ưu tiên | Mong muốn tích cực: công cụ tạo tự động ưu ái khung giờ này | Khung giờ không được tô là **trung tính**. Công cụ [eraser] Xóa gỡ bỏ mức đã đặt và đưa khung giờ về trung tính. #### Thực thể nào mang những mức nào Không phải thực thể nào cũng mở cả bốn mức: - **Giáo viên** — Bận, Không mong muốn, Ưu tiên (đen, đỏ, xanh lá). Đó chính là **thời gian rảnh** của giáo viên. - **Lớp** (Ràng buộc thời gian của lớp), **môn học** ([clock]), **phòng học** (Thời gian rảnh) — Bận và Không mong muốn (đen, đỏ). Ở đây bạn mô tả những khung giờ mà bạn không muốn, hoặc không thực sự muốn, lớp phải học / môn học được xếp vào / phòng học bị sử dụng. - **Nhóm** (Thời gian rảnh) — cũng hai mức đen và đỏ, là tính năng Premium (xem bên dưới). - **Lưới thời gian** (của cơ sở) — đây là nơi **duy nhất** có mức **cam** (Ít mong muốn). Xem bên dưới. Ở mọi nơi, bạn mở phần này bằng **biểu tượng đồng hồ nhỏ** [clock] đặt trên thực thể (trên từng lớp, từng môn học của lớp, từng phòng học…). Đồng hồ **đổi màu** khi đã có ràng buộc được nhập. #### Ràng buộc đặt trên lưới thời gian Trên lưới thời gian của một cơ sở, bạn tô trực tiếp các **ràng buộc chung**, có hiệu lực với **toàn trường**: - tô một khung giờ thành **đen** sẽ **đóng** khung giờ đó với tất cả mọi người — đây là cách cấm một khung giờ trên toàn trường (giờ chào cờ sáng thứ Hai, giờ nghỉ trưa, khung giờ họp hội đồng…). > _Premium_ Với bản Premium, lưới thời gian còn nhận thêm các ràng buộc **mềm**: **đỏ** (Không mong muốn) và **cam** (Ít mong muốn), để hạn chế một khung giờ mà không đóng hẳn khung giờ đó. Xem [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) để biết cấu trúc của lưới thời gian (các khung giờ, thời lượng, giờ nghỉ). #### Trình chỉnh sửa ràng buộc Trình chỉnh sửa dùng chung cho mọi thực thể, và mọi thao tác đều làm bằng cách nhấn chuột. **Trước hết hãy chọn một mức** trên thanh công cụ ở phía trên (các mức có sẵn tùy theo thực thể). Mức đó trở thành “cây cọ” đang hoạt động và được áp dụng cho mọi khung giờ bạn chạm tới: - **Nhấn vào một ô** để tô riêng khung giờ đó; **nhấn rồi kéo** qua nhiều ô để tô tất cả trong một thao tác. - **Nhấn vào tiêu đề của một ngày** để tô **cả cột** (trọn ngày hôm đó); **nhấn vào tiêu đề của một giờ** để tô **cả hàng** (khung giờ đó trên mọi ngày). Đây là cách nhanh nhất để phủ những khoảng thời gian rộng. - Công cụ [eraser] Xóa cũng là một cây cọ như những cây cọ khác: hãy chọn nó, rồi nhấn hoặc kéo để đưa về trung tính. ##### Tuần mẫu và chế độ xem theo lịch Với thời khóa biểu theo tuần hoặc theo chu kỳ, các ràng buộc được nhập trên một **tuần mẫu**. > _Premium_ Với thời khóa biểu dạng lịch (Premium), một thanh điều hướng cho phép chuyển giữa **tuần**, **tháng**, **cả năm học** và **tuần mẫu**: bạn nhập những ràng buộc gắn với ngày cụ thể, và cũng có thể khai báo một ràng buộc lặp lại trên tuần mẫu. Ngoài ra, [cửa sổ ngày](#page-timetables.date-windows) còn giới hạn những giai đoạn mà một số tiết học được phép xếp lịch. Trên **tuần mẫu**, mỗi khung giờ **hợp nhất** ràng buộc của tất cả những ngày tương ứng trong giai đoạn đó (ví dụ mọi thứ Hai lúc 8 giờ). Khi các ngày này khác nhau, khung giờ hiển thị một **dải màu theo tỷ lệ** — bề rộng của mỗi màu phản ánh số ngày liên quan — và **chú giải** hiện ra khi di chuột cho biết số ngày ở từng mức (bao nhiêu ngày bận, bao nhiêu ngày không mong muốn, v.v.). **Nhấn vào khung giờ đó sẽ áp đặt mức đã chọn cho toàn bộ những ngày này** cùng lúc: đây là cách chung để quyết định cho cả ngày trong tuần mẫu. #### Các tùy chọn bổ sung > _Premium_ Ngay dưới trình chỉnh sửa, ràng buộc của một lớp hoặc một nhóm có thể mang thêm các **giới hạn** (Premium): - Số giờ tiết học tối đa trong ngày — theo định dạng `HH:MM`; - Số giờ tiết học tối đa trong tuần — ở chế độ lịch. Công cụ tạo tự động tôn trọng những giới hạn này như các ràng buộc tối ưu hóa. Về phía giáo viên, một ô **nhận xét** tự do cho phép truyền đạt lưu ý về thời gian rảnh của mình (việc di chuyển, một ràng buộc riêng). #### Kế thừa giữa các cấp > _Premium_ Một **nhóm** kế thừa ràng buộc của **lớp** và của các **nhóm cha** (xem [Phân cấp nhóm](#page-core-concepts.group-hierarchy)). Khi cần **cho phép** một khung giờ tại chỗ dù có ràng buộc kế thừa, mức **Tiết học được phép** vô hiệu hóa ràng buộc kế thừa **mà không sửa nguồn**. #### Ảnh hưởng khi tạo tự động Ràng buộc **đen** là **chặn cứng**: không bao giờ có tiết học được đặt vào một khung giờ bận. Mức đỏ và mức cam là những **điểm trừ** mà công cụ tạo tự động tìm cách giảm tối đa; màu xanh lá là một **điểm cộng**. Nếu các ràng buộc khiến một tiết học không thể xếp được, quá trình tạo tự động sẽ báo — xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Xem thêm - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Phân cấp nhóm](#page-core-concepts.group-hierarchy) - [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) - [Cửa sổ ngày](#page-timetables.date-windows) - [Thời gian rảnh của giáo viên (nguyện vọng)](#page-glossary.wishes) ### 2.15 Năm học, tuần luân phiên, ngày nghỉ lễ *Source: `help/vi/core-concepts/school-year.md` · id: core-concepts.school-year · Plan: standard · Updated: 2026-05-12* **Năm học** là khung thời gian mà mọi thời khóa biểu diễn ra bên trong đó. Khung thời gian này đặt ra ba câu hỏi mang tính cấu trúc: năm học bắt đầu và kết thúc khi nào, ngày nghỉ lễ rơi vào lúc nào, và — nếu nhà trường có dùng tuần luân phiên — nhịp luân phiên đó khớp với lịch này ra sao. Khái niệm này còn được gọi là niên khóa. #### Năm học và các mốc giới hạn Một năm học có **ngày bắt đầu** và **ngày kết thúc**. Trên khoảng thời gian đó, các tuần được đánh số. Việc công bố một thời khóa biểu áp dụng cho một phần hoặc toàn bộ các tuần này. Một thời khóa biểu dạng lịch thậm chí còn có thể được công bố trên một khoảng dài hơn cả năm học (điển hình là chương trình EMBA 18 tháng), nhưng chỉ những ngày đã khai báo trong các năm học mới được tính đến. Nếu không có năm học nào đang hoạt động, Omniscol sẽ không mở các mô-đun dùng hằng ngày (Thời khóa biểu, Trang tổng quan, Quản lý vắng mặt) — đây là điều kiện tiên quyết. Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). Các năm học không thể dùng chung ngày. Thông thường sẽ có một đợt nghỉ lễ ngăn cách chúng, nhưng bạn hoàn toàn có thể xếp chúng nối tiếp nhau. Một số đơn vị đào tạo không theo chu kỳ niên khóa: khi đó năm học chỉ đơn giản là năm dương lịch, từ ngày 1 tháng 1 đến ngày 31 tháng 12. #### Ngày nghỉ lễ **Ngày nghỉ lễ** là những khoảng thời gian **không hoạt động**: không tiết học, không sự kiện, không tính giờ. Có hai nguồn: - **Ngày nghỉ lễ chung** — lấy từ lịch chính thức của quốc gia (Tết Nguyên đán, Giỗ Tổ Hùng Vương, 30/4 – 1/5, Quốc khánh). Omniscol có thể đề xuất sẵn những ngày này theo quốc gia đã cấu hình, còn chọn nhập ngày nào là tùy ở bạn. - **Ngày nghỉ lễ riêng** — của riêng nhà trường (ngày tập huấn chuyên môn, kỳ thi, ngày nghỉ riêng của địa phương). Bạn tự thêm bằng tay. Hai loại này cộng dồn với nhau, không phân biệt. Tuy nhiên, ngày nghỉ lễ áp dụng cho toàn trường. Nếu việc đó chỉ liên quan đến một số lớp, hãy dùng một trường hợp vắng mặt của lớp, hoặc một khoảng thời gian lớp không khả dụng (có thể dùng lại cho nhiều lớp, chẳng hạn những lớp đang ở nước ngoài). #### Tuần luân phiên (A/B và hơn thế) Một số trường có những tiết học chỉ diễn ra hai tuần một lần (hoặc thưa hơn nữa): thể dục xếp thành tiết đôi, sinh hoạt lớp theo nhịp luân phiên, các môn tự chọn. Omniscol xử lý việc này bằng cách **đếm tuần**: các tuần trong năm không được gán nhãn, chúng được đếm liên tục. Còn mỗi tiết học thì chạy theo chu kỳ riêng của nó — hai tuần một lần (A/B), ba tuần một lần (A/B/C), v.v. Khi đó cùng một khung giờ sẽ có những tiết học khác nhau tùy theo thứ tự của tuần trong chu kỳ, ví dụ một tiết học vào các tuần lẻ và một tiết học khác vào các tuần chẵn, cùng ngày và cùng giờ. Vì phép đếm được tính động, các tiết học theo A/B và các tiết học theo A/B/C có thể cùng tồn tại trong một lớp. Việc **bật** tuần luân phiên và **định dạng hiển thị** của nhịp luân phiên (`A/B`, `1/2`…) được thiết lập trong [thông số chung](#page-admin.parameters). Sau đó, màn hình [năm học](#page-admin.school-year) dùng để **ấn định trên dải luân phiên những điểm mà việc đếm tuần quay lại tuần A** — ví dụ để bắt nhịp lại cho gọn sau một đợt nghỉ lễ; để giữ cho dễ đọc, dải này chỉ hiển thị nhịp luân phiên ở dạng A/B. Để **khai báo các tiết học luân phiên** trên một khung giờ, xem [Tiết học phức hợp](#page-core-concepts.complex-lessons). #### Nhiều năm học song song Omniscol quản lý được **nhiều năm học song song** trong cùng một tài khoản: ví dụ năm học hiện tại 2026-2027 và năm học tiếp theo 2027-2028 đang chuẩn bị. Khái niệm **năm học hiện tại** quyết định những gì người dùng nhìn thấy hằng ngày; các năm còn lại vẫn truy cập được để quản lý / tra cứu hành chính. #### Xem thêm - [Năm học](#page-glossary.school-year) - [Tiết học luân phiên](#page-glossary.alternate-lessons) - [Năm học và ngày nghỉ lễ](#page-admin.school-year) - [Công bố thời khóa biểu](#page-timetables.publication) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) ### 2.16 Dải thời gian và điều hướng theo thời gian *Source: `help/vi/core-concepts/timeline-navigation.md` · id: core-concepts.timeline-navigation · Updated: 2026-05-12* Mọi màn hình Omniscol có hiển thị lịch hoặc số liệu thống kê đều mang một **dải thời gian** (“thanh thời gian”) ở đầu trang. Bạn dùng nó để **di chuyển trong thời gian**: chọn năm học, chọn khoảng thời gian hiển thị và — trên một số màn hình — chuyển từ chế độ xem tuần sang xem tháng hoặc xem năm. Trang này trình bày các nguyên tắc chung; mỗi mô-đun còn có những đặc thù riêng, được nêu trên trang dành cho mô-đun đó. #### Các nút trên dải thời gian Dải thời gian có **mũi tên trái / phải** đặt ở hai đầu đối diện nhau: - **mũi tên trái** ← quay về **năm học trước**, - **mũi tên phải** → tiến tới **năm học sau** (chẳng hạn năm học sau đang được chuẩn bị). Năm (hoặc khoảng thời gian) **đang hiển thị** thường được ghi rõ ngay phía trên dải thời gian. #### Điều hay bị quên nhất: mũi tên phải > Mô-đun **Quản lý thời khóa biểu** **mặc định hiển thị năm học hiện > tại**. Khi người lập thời khóa biểu chuẩn bị cho năm học sau, họ > phải **bấm hẳn vào mũi tên phải** của dải thời gian để chuyển sang > năm học sau, trước khi có thể phân bổ / công bố thời khóa biểu trên > năm học đó. Riêng ở màn hình này, bạn còn có thể chuyển từ năm này > sang năm khác bằng cách bấm trực tiếp vào năm học. Năm hiện tại có > màu xanh lá, năm sau có màu cam. #### Các chế độ xem thời gian theo từng mô-đun Không phải mô-đun nào cũng cho cùng mức chi tiết: | Mô-đun | Chế độ xem mặc định | Các chế độ xem khác | | --- | --- | --- | | **Thời khóa biểu** | Tuần | Ngày, tháng | | **Trang tổng quan** | Tuần | Tháng, năm, khoảng ngày tự chọn từ ngày đến ngày | | **Quản lý vắng mặt** | Tuần | Tháng, năm, khoảng ngày tự chọn từ ngày đến ngày | | **Quản lý nhân sự** | Tuần | Ngày | | **Quản lý thời khóa biểu** | Trọn năm học | | | **Chỉnh sửa thời khóa biểu dạng lịch** | Tuần | Tháng | | **Thời gian rảnh theo lịch** | Tuần | Tháng, năm học, tuần mẫu | Các **nút chuyển chế độ xem** nằm cạnh dải thời gian, thường là ở phía trên bên trái. Chế độ xem `năm` và `khoảng ngày tự chọn từ ngày đến ngày` chủ yếu có mặt trong **Trang tổng quan**, nơi chúng phục vụ việc thống kê xuyên nhiều giai đoạn. #### Năm học hiển thị mặc định **Năm học hiện tại** (được thiết lập trong [Quản trị](#page-admin.school-year)) được **hiển thị mặc định** trong mọi mô-đun và với mọi người dùng. - Khi xem thời khóa biểu, các giáo viên và học sinh chỉ thấy **năm học hiện tại**. Bên cổng thông tin, họ không vào được các năm đã qua hay các năm đang chuẩn bị. Đây là chủ ý: với họ, thời khóa biểu là chuyện của hôm nay. - **Vắng mặt** chỉ có thể khai báo **trên năm học hiện tại**. Bạn không thể khai báo lùi một trường hợp vắng mặt cho năm học đã qua, cũng không thể khai báo trước cho năm học sau. - Ngược lại, **quản trị viên** có thể **di chuyển** giữa các năm học bằng dải thời gian — vì vậy mới cần hiểu rõ hai mũi tên. Năm học hiện tại cũng là năm được tính đến khi xuất dữ liệu và đồng bộ với các phần mềm bên ngoài. #### Khi chuyển năm học hiện tại Trình tự thường gặp: 1. **Năm N đang chạy**. Bạn làm song song cho năm N+1 trong [Quản lý thời khóa biểu](#page-timetables.overview), thông qua mũi tên phải. Mọi người dùng vẫn thấy năm N trên cổng thông tin và trong phần vắng mặt của họ. 2. **Chuẩn bị lần cuối** cho đầu năm học N+1: thời khóa biểu N+1 được công bố trên những tuần tương ứng (nhưng năm học hiện tại vẫn là N). 3. **Ngay trước ngày khai giảng**, khi bạn đã sẵn sàng để tất cả chuyển sang N+1: đổi năm học hiện tại trong [Quản trị → Năm học](#page-admin.school-year). 4. **Có hiệu lực ngay**: từ lúc đó mọi người dùng đều thấy N+1 theo mặc định. Các giáo viên và học sinh vào được thời khóa biểu mới. Vắng mặt từ nay khai báo trên N+1. Thời điểm chuyển chính xác tùy vào từng trường — thường là **hôm trước ngày khai giảng**, khi mọi thứ đã được duyệt, đôi khi là **sáng ngày khai giảng** để còn khoảng thời gian kiểm tra lại. Không có gì gấp: bạn vẫn giữ quyền tra cứu năm học đã qua như một phần lịch sử. #### Năm học ≠ năm dương lịch Một **năm học** trong Omniscol không nhất thiết phải chạy từ tháng 9 đến tháng 8. Vài trường hợp riêng thường gặp: - **Các đơn vị giáo dục thường xuyên** — thường bám theo **năm dương lịch** (1 tháng 1 → 31 tháng 12). Hãy khai báo năm học của bạn với các mốc ngày này trong [Quản trị → Năm học](#page-admin.school-year); mọi thứ vận hành y hệt. - **Các trường đại học** có học kỳ lệch nhau hoặc chu kỳ đào tạo dài (chương trình cường độ cao kéo dài 18 tháng) — bạn có thể khai báo những năm học có độ dài không theo chuẩn. #### Xem thêm - [Năm học](#page-core-concepts.school-year) - [Năm học và ngày nghỉ lễ](#page-admin.school-year) - [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) - [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) ### 2.17 Tìm kiếm và lọc trong các danh sách *Source: `help/vi/core-concepts/search-and-filter.md` · id: core-concepts.search-and-filter · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-27* Cùng một thanh tìm kiếm có mặt trong hầu hết các danh sách của Omniscol (phòng học, giáo viên, lớp, môn học, tài nguyên, học sinh…): nó kết hợp tìm kiếm **theo văn bản** và, ở những nơi có sẵn một giá trị số, một điều kiện **theo số**. Với **phòng học**, điều kiện này xét đến **sức chứa** — đây là cách dùng đầy đủ nhất, được trình bày chi tiết ở đây. Bạn gặp lại thanh này ở tab Phòng học của mô-đun Trang tổng quan cũng như trong **bộ chọn phòng học** của một tiết học, khi bạn gán hoặc đổi phòng học trong thời khóa biểu (Chỉ định phòng học). #### Tìm kiếm theo văn bản Tìm kiếm theo văn bản hoạt động trên **tất cả các danh sách này**. Với phòng học, nó xét tên phòng, cơ sở, tòa nhà, chuyên ngành hoặc các thẻ đã khai báo trong Omniscol; với các danh sách khác, nó xét những trường đang hiển thị (tên, mã, v.v.). Ví dụ: - `bắc` hiển thị những phòng học có thông tin chứa `bắc`. - `thí nghiệm hóa` hiển thị những phòng học khớp với tất cả các từ này. - `giảng đường, nhà thi đấu` hiển thị những phòng học khớp với `giảng đường` hoặc `nhà thi đấu`. #### Bộ lọc sức chứa (phòng học) Trên các danh sách phòng học, những toán tử so sánh số lọc theo sức chứa của phòng: - `>50`: sức chứa lớn hơn 50; - `>=50`: sức chứa từ 50 trở lên; - `<25`: sức chứa nhỏ hơn 25; - `<=100`: sức chứa từ 100 trở xuống; - `=30`: sức chứa đúng bằng 30; - `50-100`: sức chứa từ 50 đến 100; - `50-`: sức chứa bằng hoặc lớn hơn 50; - `-25`: sức chứa bằng hoặc nhỏ hơn 25. #### Những cách kết hợp hữu ích Dấu cách thêm các tiêu chí phải cùng thỏa mãn. Dấu phẩy tách các khả năng khác nhau. - `>50 cơ sở bắc`: phòng học trên 50 chỗ gắn với cơ sở phía bắc. - `<=30 thí nghiệm`: phòng học nhỏ thuộc loại phòng thí nghiệm. - `giảng đường, >100`: phòng học có chứa `giảng đường` hoặc phòng học trên 100 chỗ. - `tòa A tin học`: phòng học gắn với tòa A và với tin học. #### Vì sao nên khai báo đầy đủ cho phòng học Bộ lọc trở nên chính xác hơn khi các cơ sở, tòa nhà, chuyên ngành và thẻ luôn được cập nhật. Những thông tin này cải thiện việc tìm kiếm trong thời khóa biểu, thống kê phòng học và các phân tích mức độ sử dụng tòa nhà. #### Xem thêm - [Thống kê phòng học](#page-dashboard.classrooms) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) - [Cơ sở, phòng học và tài nguyên](#page-timetables.sites-rooms) ### 2.18 Cộng tác giữa các quản trị viên *Source: `help/vi/core-concepts/collaboration.md` · id: core-concepts.collaboration · Audience: admin · Feature: collab · Updated: 2026-06-13* > **Premium** Tùy chọn **Cộng tác thời gian thực** cho phép nhiều quản trị viên làm việc đồng thời trên cùng một tài khoản Omniscol: mỗi người thấy sự hiện diện của những người khác theo thời gian thực, và máy chủ hợp nhất các thao tác diễn ra song song. #### Hiện diện theo thời gian thực Ở phía trên màn hình, một chỉ báo **hình tròn mang chữ cái viết tắt** xuất hiện cho mỗi quản trị viên khác đang đăng nhập vào tài khoản cùng lúc với bạn (chỉ báo của bạn có màu xanh dương nhạt, và các hình tròn xếp chồng lên nhau khi có đông người). Hãy rê chuột lên chúng: một chú giải cho biết tên của từng người và **màn hình mà người đó đang mở**. Một chỉ báo chuyển sang **màu đỏ** khi một quản trị viên khác mở **cùng một màn hình chỉnh sửa** với bạn — xây dựng thời khóa biểu (cơ sở, lớp, nhóm, phân bổ thời gian), tổ chức lại, quản lý nhân sự, người dùng, môn học hoặc thông số. Đó là dấu hiệu của **nguy cơ chỉnh sửa đồng thời**. Tuy vậy, không có gì ngăn cản bạn: máy chủ **hợp nhất các thao tác song song** trong khả năng có thể, để mỗi người đều giữ được thay đổi của mình mà không bị ghi đè âm thầm. Tuy nhiên, việc sửa đúng cùng một trường của một người dùng hay của một tiết học, hoặc việc nhập dữ liệu hàng loạt, chắc chắn sẽ dẫn đến lỗi tương thích: thay đổi của người sửa sau cùng sẽ được giữ lại. Chỉ báo màu đỏ là lời mời bạn phối hợp với nhau để không cùng làm việc song song ở cùng một chỗ, trên cùng một dữ liệu, vào cùng một lúc. #### Khi nào nên dùng - **Trường lớn có nhiều người quản lý** — mỗi người phụ trách một khoa, một khối lớp hoặc một cơ sở, nhưng tất cả cùng làm việc trong Omniscol vào cùng một lúc. - **Giai đoạn cao điểm** — chuẩn bị đầu năm học, chuyển sang một kỳ thi, xử lý một đợt vắng mặt hàng loạt. - **Phối hợp trong cuộc họp** — cả đội ngũ cùng bàn về một quyết định và nhiều người cùng chỉnh sửa trên máy của mình: các hình tròn hiện diện giúp phân chia khu vực làm việc. #### Giới hạn của việc đồng bộ Các hình tròn hiện diện được truyền theo thời gian thực. Ngược lại, màn hình nghiệp vụ mà một người dùng khác đang mở không nhất thiết được làm mới tự động sau khi bạn lưu. Nếu một đồng nghiệp vừa sửa một dữ liệu mà bạn đang xem, hãy tải lại màn hình đó hoặc mở lại đối tượng trước khi ra quyết định dựa trên nó. #### Thực hành tốt - **Xác định phạm vi phụ trách**: ai làm việc gì. Phạm vi này có thể mang tính không chính thức (qua e-mail), hoặc được cụ thể hóa bằng [vai trò tùy chỉnh](#page-admin.customroles). - **Trao đổi bên ngoài ứng dụng** — hãy duy trì một kênh phối hợp riêng cho các quyết định nghiệp vụ; các chỉ báo hiện diện không thay thế được một chỉ dẫn công việc. - **Tránh chỉnh sửa cùng một cấu trúc vào cùng một lúc**: nếu hai người cùng động vào danh sách học sinh của một lớp tại cùng thời điểm, nguy cơ xảy ra lỗi tương thích sẽ tăng lên. Hãy chia nhỏ công việc theo phạm vi phụ trách. #### Hướng dẫn — Phối hợp chuẩn bị đầu năm học với ba quản trị viên 1. **Ở các trường lớn**, việc chuẩn bị đầu năm học huy động nhiều quản trị viên làm song song. Tùy chọn **Cộng tác thời gian thực** bổ sung khả năng hiện diện theo thời gian thực và việc hợp nhất các thao tác song song. 2. **Hãy xác định phạm vi phụ trách** từ trước (trong cuộc họp hoặc qua e-mail): ai quản lý khoa / khối lớp / cơ sở nào. Bạn có thể bổ sung cho cách tổ chức này bằng [vai trò tùy chỉnh](#page-admin.customroles), vốn giới hạn các mô-đun và thao tác mà mỗi tài khoản truy cập được; còn việc phân chia theo khoa hay theo cơ sở vẫn là một quy ước của đội ngũ. 3. **Mọi người cùng đăng nhập** vào tài khoản Omniscol. Ở phía trên màn hình, **các chỉ báo mang chữ cái viết tắt** của những quản trị viên khác đang kết nối sẽ hiện ra theo thời gian thực. Khi rê chuột lên, bạn thấy tên và màn hình hiện tại của từng người. 4. **Tín hiệu lỗi tương thích**: một chỉ báo chuyển sang **màu đỏ** khi hai quản trị viên mở cùng một màn hình chỉnh sửa (cùng các lớp, cùng một màn hình tổ chức lại…). Đó là dấu hiệu của nguy cơ chỉnh sửa đồng thời, và tất cả các quản trị viên liên quan đều nhìn thấy. 5. **Máy chủ hợp nhất** các thao tác song song: không có gì ngăn cản bạn trong khi chỉnh sửa và mỗi người đều giữ được thay đổi của mình, trong khả năng có thể. Chỉ báo màu đỏ mời bạn phối hợp với nhau trước khi cùng động vào một chỗ. 6. **Thực hành tốt**: hãy duy trì một kênh phối hợp riêng và chia nhỏ công việc theo phạm vi phụ trách (mỗi khoa một quản trị viên). Tránh để hai người cùng chỉnh sửa một cấu trúc (ví dụ danh sách học sinh của một lớp) vào cùng một thời điểm. Sau khi một đồng nghiệp thực hiện thay đổi, hãy tải lại màn hình liên quan trước khi coi dữ liệu đang hiển thị là mới nhất. #### Xem thêm - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Vai trò tùy chỉnh](#page-admin.customroles) --- ## 3. Xây dựng thời khóa biểu (mô-đun Quản lý thời khóa biểu) ### 3.1 Tổng quan về mô-đun Quản lý thời khóa biểu *Source: `help/vi/timetables/overview.md` · id: timetables.overview · Audience: admin · Updated: 2026-06-13* Mô-đun **Quản lý thời khóa biểu** là trái tim của Omniscol: đây là nơi bạn tạo mới thời khóa biểu, cấu hình, chạy tạo rồi công bố chúng. Với một thời khóa biểu lặp lại (hằng tuần / theo chu kỳ), mô-đun này chỉ **thỉnh thoảng** mới dùng đến (thường là trước ngày khai giảng, khi cần tạo một quý hay một học kỳ khác, và khi có thay đổi về cấu trúc), chứ không phải hằng ngày (việc hằng ngày thuộc về mô-đun [Thời khóa biểu](#page-schedules.consult-and-filter)). Ngược lại, với một thời khóa biểu dạng lịch trong giáo dục đại học, đây là màn hình làm việc chính của cả đội ngũ lập kế hoạch, mỗi ngày. #### Luồng lập kế hoạch Dựng một thời khóa biểu không phải là một đường thẳng: sau khi tạo mới và cấu hình, phần cốt lõi là một **chu trình** — xếp vài tiết học, chạy tạo thời khóa biểu, phân tích, điều chỉnh, lặp lại — trước một trục thời gian tuyến tính bắt đầu từ lúc **công bố** (đầu năm học). ```mermaid flowchart LR A["Tạo mới"] --> B["Cấu hình
cơ sở, phòng học, giáo viên,
lớp, nhóm, khóa học"] B --> M["Xếp thủ công
điểm neo, khóa"] M --> G["Tạo thời khóa biểu
tự động/thủ công,
một phần hoặc toàn bộ"] G --> J["Phân tích,
điều chỉnh đúng chỗ"] J -->|lặp lại| G J --> P["Công bố
= đầu năm học"] P --> E["Vận hành"] E --> Mod["Thay đổi
trong suốt năm học"] Mod -.->|ngoại lệ| J ``` Bạn quay lui được bất cứ lúc nào, lưu lại giữa chừng, nhân bản một thời khóa biểu để tạo ra một phương án khác. Phần cốt lõi của chu trình được trình bày chi tiết trong [Tạo tự động](#page-timetables.generation) và [Xếp thủ công](#page-timetables.manual-placement); sau ngày khai giảng, các chỉnh sửa đi qua [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes). #### Nhiều thời khóa biểu song song Bạn có thể có nhiều thời khóa biểu trong tài khoản của mình: - các **bản nháp** chưa công bố (để chuẩn bị cho năm học mới trong khi năm học hiện tại vẫn đang chạy), - các thời khóa biểu cho những **giai đoạn** khác nhau (HK1, HK2…), - với gói Premium, các thời khóa biểu **cùng hoạt động một lúc** trên cùng những tuần (ví dụ, một thời khóa biểu hằng tuần cho buổi sáng + một thời khóa biểu dạng lịch cho buổi chiều) — xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). Khả năng này cũng có thể được mở theo hợp đồng trên một số tài khoản Standard. #### Các bước chi tiết Mỗi bước đều có một trang riêng: **Điều kiện tiên quyết**: [Điều kiện tiên quyết để tạo thời khóa biểu](#page-timetables.prerequisites). Sau đó là tám bước: 1. [Thông số chung](#page-timetables.general-settings) 2. [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) 3. [Phân công giáo viên](#page-timetables.assigning-teachers) 4. [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) 5. [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) 6. [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) 7. [Tạo tự động](#page-timetables.generation) 8. [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) Bất cứ lúc nào, bạn cũng có thể: - **Hiển thị** một thời khóa biểu (chế độ chỉ đọc), để kiểm tra. - **Tổ chức lại** một thời khóa biểu (chế độ sửa nhanh), để điều chỉnh vị trí các tiết học. - **Nhân bản** một thời khóa biểu (tạo một bản nháp từ một thời khóa biểu có sẵn). - **Nhập** hoặc **xuất** cấu hình các khóa học dưới dạng bảng tính (xem [Nhập hàng loạt](#page-timetables.mass-import)). #### Bắt đầu nhanh Nếu đây là thời khóa biểu đầu tiên của bạn: 1. Trước hết, kiểm tra xem [tài khoản của bạn đã được cấu hình](#page-getting-started.setup-school) chưa (thông số, năm học, môn học, người dùng). 2. Nhấn vào Tạo mới thời khóa biểu ở góc trên bên phải. 3. Chọn [chế độ thời khóa biểu](#page-overview.timetable-modes) (hằng tuần, theo chu kỳ, theo lịch). 4. Làm theo các bước theo đúng thứ tự. Nếu bạn đã có sẵn dữ liệu trong một bảng tính (Excel, Google Sheets, bản xuất từ một phần mềm khác), hãy đi thẳng qua [nhập hàng loạt](#page-timetables.mass-import): Omniscol dựng sẵn cấu trúc cho bạn, phần hoàn thiện còn lại là của bạn. #### Xem thêm - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) - [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) ### 3.2 Điều kiện tiên quyết để tạo thời khóa biểu *Source: `help/vi/timetables/prerequisites.md` · id: timetables.prerequisites · Audience: admin · Updated: 2026-05-10* Trước khi tạo một thời khóa biểu, ba yếu tố phải tồn tại ở cấp trường: #### 1. Ít nhất một năm học Không có năm học thì không có trục thời gian, do đó cũng không thể công bố. Tạo trong Năm học. Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). #### 2. Các môn học được sử dụng Omniscol điền sẵn danh mục môn học chung cho quốc gia của bạn. Với những môn đặc thù, hãy tạo các **môn học tùy chỉnh** trong Tạo mới. ⚠ Hãy chú ý chính tả: Omniscol tạo một bản sao nội bộ vào lúc môn học được gán vào một thời khóa biểu, và một chỉnh sửa về sau sẽ không lan sang những thời khóa biểu đã công bố ở hiện tại hay trong quá khứ. Xem [Quản lý môn học](#page-admin.subjects). #### 3. Giáo viên Hãy tạo toàn bộ giáo viên trong Quản trị > Giáo viên (từng người một hoặc hàng loạt qua [nhập dữ liệu](#page-getting-started.preparing-data)). Điền ít nhất họ, tên và e-mail. Các môn học giảng dạy và giờ làm việc là tùy chọn nhưng hữu ích. Xem [Quản lý giáo viên](#page-admin.teachers). #### Tùy chọn nhưng hữu ích - **Học sinh** — không bắt buộc để tạo thời khóa biểu, nhưng hữu ích cho thời khóa biểu cá nhân sau khi công bố. - **Loại tiết học** (bài tập, thực hành, bài giảng…) — nếu cách phân loại giảng dạy của bạn có dùng, hãy tạo chúng trong Tạo mới. - **Khối lớp** — hãy kiểm tra rằng Quản trị > Thông số chứa các khối lớp mà bạn sẽ dùng. #### Có thể bắt đầu ngay cả khi chưa đủ Omniscol rất **linh hoạt**. Nếu lúc tạo thời khóa biểu bạn chưa có đủ giáo viên hay đủ môn học, bạn vẫn bắt đầu được rồi bổ sung dần trên đường đi. Cách làm này kém tuyến tính hơn, nhưng vẫn hiệu quả. Tuy nhiên, **năm học** thì thực sự không thể thiếu trước khi công bố. #### Bắt đầu Khi các điều kiện tiên quyết này đã (ít nhất là một phần) sẵn sàng: 1. Vào mô-đun Quản lý thời khóa biểu. 2. Nhấn Tạo mới thời khóa biểu. 3. Chọn [chế độ thời khóa biểu](#page-overview.timetable-modes). 4. Bạn sẽ đến trang [thông số chung](#page-timetables.general-settings). 5. Đặt cho nó một tên (ví dụ “Thời khóa biểu 2025-2026”, “HK1 2025”) và một mô tả. #### Hướng dẫn — Kiểm tra các điều kiện tiên quyết trước khi tạo thời khóa biểu 1. **Ba yếu tố phải tồn tại ở cấp trường** trước khi có thể tạo một thời khóa biểu: một năm học, các môn học, các giáo viên. 2. **Năm học**: hãy mở Năm học. Kiểm tra rằng có ít nhất một năm học được định nghĩa, kèm ngày bắt đầu, ngày kết thúc và các ngày nghỉ lễ. Không có năm học thì không có trục thời gian, không có công bố. Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). 3. **Môn học**: Omniscol điền sẵn danh mục cho quốc gia của bạn. Nếu trường bạn có những môn học đặc thù (`Kinh tế gia đình`, `Rô-bốt học`, `Tiếng Trung nâng cao`), hãy tạo chúng qua Tạo mới. ⚠ Hãy chú ý chính tả: Omniscol sao chép tên môn học vào từng thời khóa biểu, một chỉnh sửa sau khi tạo sẽ không lan sang các bản công bố của quá khứ và hiện tại. 4. **Giáo viên**: hãy mở Giáo viên. Với mỗi giáo viên, tối thiểu là họ, tên, e-mail. Các môn học giảng dạy và giờ làm việc là tùy chọn nhưng hữu ích. Khi có nhiều giáo viên: nhập hàng loạt (xem [Chuẩn bị dữ liệu](#page-getting-started.preparing-data)). 5. **Tùy chọn nhưng hữu ích**: loại tiết học (bài tập, thực hành, bài giảng…) qua Tạo mới nếu cách phân loại của bạn có dùng. Khối lớp thì kiểm tra trong thông số chung (Tạo mới). 6. **Bạn đã sẵn sàng**: mô-đun **Quản lý thời khóa biểu**, nút Tạo mới thời khóa biểu. Hãy chọn chế độ ([chế độ thời khóa biểu](#page-overview.timetable-modes)), đặt một tên (`Thời khóa biểu 2026-2027`, `HK1 2026`) và một mô tả. Bước tiếp theo: [thông số chung](#page-timetables.general-settings). #### Xem thêm - [Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [Bước tiếp theo — Thông số chung](#page-timetables.general-settings) ### 3.3 Chế độ lịch — các tùy chọn nâng cao *Source: `help/vi/timetables/calendar-mode.md` · id: timetables.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Chế độ lịch** là một trong ba loại thời khóa biểu mà Omniscol hỗ trợ, bên cạnh chế độ hằng tuần và chế độ theo chu kỳ. Chế độ này dùng khi thời khóa biểu không lặp lại đều đặn: mỗi tiết học có một ngày cụ thể, không theo khuôn mẫu hằng tuần lặp đi lặp lại. Việc tạo một thời khóa biểu theo lịch nằm trong gói Premium, cũng như [thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) và việc công bố [nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables): trên một tài khoản Premium, các chức năng này dùng được ngay mà không cần kích hoạt riêng. #### Những khả năng riêng của chế độ lịch - tạo một thời khóa biểu mà từng tiết học được gắn ngày riêng; - xác định khoảng ngày bắt đầu và ngày kết thúc; - dùng các ràng buộc về ngày khi chúng đã được cấu hình; - chỉ tạo tự động trong một cửa sổ ngày mục tiêu ngắn hơn toàn bộ khoảng ngày của thời khóa biểu; - yêu cầu công cụ tạo tự động dồn nén các tiết học về đầu giai đoạn, về cuối giai đoạn hoặc không ưu tiên vị trí nào; - hiển thị, công bố và tra cứu các tiết học như ở những thời khóa biểu khác, nhưng trên một khoảng ngày; - dùng chế độ ngoài khung giờ cho các lớp theo lịch, với giờ bắt đầu và giờ kết thúc ghi rõ trên từng tiết học. #### Các chức năng bổ trợ Những chức năng khác, được mô tả trên các trang riêng của chúng, bổ sung tự nhiên cho một thời khóa biểu theo lịch: - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) để công bố nhiều thời khóa biểu trên cùng một giai đoạn; - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) để thu thập thời gian rảnh gắn theo ngày; - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) để làm việc với các nhóm liên lớp. #### Khi nào nên chọn chế độ lịch thay vì hằng tuần - **Chương trình đào tạo không lặp lại**: học phần tập trung, hội thảo chuyên đề, các bài giảng vào những ngày không cố định. - **Đào tạo thường xuyên**: các đợt học không xoay vòng theo một năm học đều đặn. - **Giáo viên thỉnh giảng**: mỗi người có lịch riêng, chứ không có khối giờ làm việc hằng tuần cố định. - **Các tiết học cuối chương trình**: đồ án, buổi bảo vệ, hội đồng chấm. Xem [Chế độ lịch](#page-higher-ed.calendar-mode) để biết các trường hợp điển hình của giáo dục đại học. #### Hướng dẫn — Tạo một thời khóa biểu theo lịch 1. **Hãy tạo một thời khóa biểu mới** trong Quản lý thời khóa biểu. Ở màn hình chọn loại thời khóa biểu, chọn **chế độ lịch**. Hãy nhập ngày bắt đầu và ngày kết thúc, rồi xác nhận. 2. **Hãy cấu hình lịch**: nhãn, mô tả, các ngày làm việc và cấu trúc khung giờ. Bạn cũng có thể khai báo các **[cửa sổ ngày](#page-timetables.date-windows)** dùng lại được, áp dụng lên ràng buộc thời gian của phòng học, lớp, môn học và nhóm. 3. **Hãy nhập các tiết học** theo ngày cụ thể: ngày, giờ, nhóm hoặc lớp, giáo viên và phòng học. Nếu một lớp đang ở chế độ ngoài khung giờ, hãy ghi rõ giờ bắt đầu và giờ kết thúc. 4. **Hãy khởi chạy việc tạo tự động** nếu bạn dùng công cụ tạo tự động trên thời khóa biểu này. Các ràng buộc dùng được phụ thuộc vào dữ liệu đã nhập: giáo viên, phòng học, ngày, thời gian rảnh và ràng buộc về lịch. Để chạy thử hoặc để dựng dần từng phần, hãy dùng các tùy chọn nâng cao nhằm giới hạn cửa sổ ngày được tạo; hãy bật dồn nén ngày học nếu bạn không muốn thuật toán trải các tiết học ra suốt cả giai đoạn khả dụng. 5. **Hãy công bố và kết hợp**: bạn có thể công bố lịch này song song với một thời khóa biểu hằng tuần thông thường. Những người liên quan sẽ thấy các tiết học đã được hợp nhất khi tra cứu. Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). #### Xem thêm - [Chế độ lịch](#page-glossary.calendar-mode) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) - [Cửa sổ ngày](#page-timetables.date-windows) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Chế độ lịch cho các chương trình không lặp lại](#page-higher-ed.calendar-mode){append=(giáo dục đại học)} ### 3.4 Thời gian rảnh và ràng buộc thời gian ở chế độ lịch *Source: `help/vi/timetables/calendar-wishes.md` · id: timetables.calendar-wishes · Audience: admin/teacher · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ Ở **chế độ lịch**, việc lập kế hoạch diễn ra trên những **ngày cụ thể** chứ không trên một tuần mẫu lặp lại. Điều đó thay đổi cách thể hiện các **ràng buộc thời gian**, trên hai bình diện khác nhau: - các **ràng buộc nội bộ** của phòng học, lớp, môn học và nhóm; - **thời gian rảnh của giáo viên**. Ở chế độ lịch, ta nói đến **thời gian rảnh**: thuật ngữ *nguyện vọng* vẫn dành riêng cho phần khai báo của giáo viên trên tuần mẫu, trước khi lập kế hoạch, và phải qua bước xác nhận của người lập thời khóa biểu. #### Ràng buộc thời gian của phòng học, lớp, môn học và nhóm Ngay khi một thời khóa biểu thuộc loại lịch, các ràng buộc thời gian **nội bộ** của những đối tượng này tự động được thể hiện **theo từng ngày**, chứ không còn trên một tuần mẫu. Bạn còn có thể khai báo thêm một **quy tắc lặp lại trên tuần mẫu** khi một ràng buộc lặp lại y hệt từ tuần này sang tuần khác. Với những giai đoạn dùng lại được — đợt thi, ngày nghỉ lễ riêng của một số lớp, khung giờ được phép — hãy áp một [cửa sổ ngày](#page-timetables.date-windows) như một lớp phủ lên các ràng buộc đó. #### Thời gian rảnh của giáo viên Trên tuần mẫu, giáo viên khai báo một quy tắc cố định — *“tôi không rảnh chiều thứ Tư”*. Ở chế độ lịch, thời gian rảnh được khai báo **theo từng ngày**, nhờ vậy nắm được những tình huống chi tiết hơn: - *“tôi chỉ bận sáng thứ Tư ngày 12 tháng 3”*, - *“tôi chỉ có thể dạy trong khoảng từ ngày 20 đến ngày 30 tháng 1”*, - *“tôi rảnh 3 buổi mỗi tuần, tùy từng tuần mà chọn”*. Đây là chế độ nên chọn khi thời gian rảnh thay đổi theo từng tuần — điển hình ở giáo dục đại học, với giáo viên thỉnh giảng và trong đào tạo thường xuyên. ##### Chọn chế độ nhập Về phía giáo viên, hãy đặt thiết lập Thời gian rảnh của giáo viên (thông số chung của trường) thành **lịch** hoặc **lịch + hàng tuần** cho khớp với việc lập kế hoạch trên những ngày cụ thể. Chế độ kết hợp còn cho phép giáo viên khai báo đơn giản rằng họ **không bao giờ rảnh vào một ngày nào đó trong tuần**, bất kể ngày tháng (vẫn có thể khai báo ngoại lệ lẻ tẻ) — tương đương, về phía giáo viên, với quy tắc lặp lại trên tuần mẫu của các ràng buộc nội bộ. ##### Các mức thời gian rảnh Màn hình nhập dùng một **chế độ xem lịch**. Người lập thời khóa biểu hoặc giáo viên nhấn vào những ngày liên quan và xác định tính chất của khung giờ: - **Bận**: không rảnh, mang tính chặn — việc tạo tự động sẽ không đặt tiết học nào vào đó; - **Không mong muốn**: ràng buộc mạnh, nên tránh hết mức có thể; - **Ưu tiên**: mong muốn tích cực; - **Xóa**: xóa thời gian rảnh đã đặt trên vùng đã chọn. Việc nhập có thể thực hiện theo ngày, theo buổi (nửa ngày) hay theo khung giờ, tùy mức chi tiết đã cấu hình cho trường. ##### Dành cho ai - **Giáo viên thỉnh giảng và người dạy bên ngoài** — không có khối giờ làm việc hằng tuần cố định. Xem [Giáo viên bên ngoài (thỉnh giảng, giáo sư thỉnh giảng)](#page-higher-ed.external-faculty). - **Giáo viên làm việc bán thời gian vì lý do sức khỏe hoặc có chế độ riêng** — các tuần không giống nhau. - **Các khóa học trong đào tạo thường xuyên** — mỗi đợt học chỉ diễn ra một lần. - **Giáo viên trong năm biệt phái một phần** — chỉ rảnh vào một số tuần. #### Hướng dẫn — Thu thập thời gian rảnh của một giáo viên thỉnh giảng theo lịch 1. **Với một giáo viên thỉnh giảng không có khối giờ làm việc hằng tuần cố định** (chẳng hạn một người dạy bên ngoài), việc nhập trên tuần mẫu là không đủ. Chế độ **lịch** ghi nhận thời gian rảnh theo từng ngày. 2. **Hãy bật chế độ phù hợp**: đặt thiết lập Thời gian rảnh của giáo viên (thông số chung của trường) thành **lịch** hoặc **lịch + hàng tuần**, tùy nhu cầu của tài khoản. 3. **Hãy mở phần nhập** cho giáo viên thỉnh giảng. Hoặc họ đăng nhập bằng tài khoản giáo viên của mình, hoặc bạn tạo một **liên kết chia sẻ trực tiếp** tới màn hình thời gian rảnh của họ (xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability)). Liên kết trực tiếp giúp khỏi phải tạo một tài khoản riêng khi dùng cách này. Bất kỳ quản trị viên nào cũng có thể tự mình nhập thời gian rảnh. 4. **Về phía giáo viên thỉnh giảng**: họ thấy một **lịch cả năm** thay vì một lưới hằng tuần. Họ nhấn vào các ngày (hoặc các buổi, hoặc các khung giờ tùy mức chi tiết của trường) và xác định tính chất của vùng đó bằng những mức thời gian rảnh có sẵn. 5. **Hãy kiểm tra phần tổng hợp** ở phía quản trị. Các màn hình thời khóa biểu và các phần chẩn đoán có tra cứu ràng buộc sẽ đọc lại thời gian rảnh đã ghi nhận. 6. **Hãy khởi chạy việc tạo tự động** trên các tiết học của giáo viên thỉnh giảng: công cụ tạo tự động kết hợp thứ tự ưu tiên của thời gian rảnh với những ràng buộc khác của tiết học. Các trường hợp sử dụng được bao quát: giáo viên thỉnh giảng, làm việc bán thời gian vì lý do sức khỏe, đào tạo thường xuyên, giáo viên biệt phái một phần. #### Xem thêm - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Chế độ lịch](#page-timetables.calendar-mode) - [Cửa sổ ngày](#page-timetables.date-windows) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) ### 3.5 Cửa sổ ngày *Source: `help/vi/timetables/date-windows.md` · id: timetables.date-windows · Audience: admin · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ Một **cửa sổ ngày** là giai đoạn **bao gồm** hoặc **loại trừ** ngày, **có thể dùng lại**, giới hạn những giai đoạn mà một số tiết học có thể được xếp lịch. Bạn xác định nó một lần, rồi áp dụng như một **lớp phủ** lên ràng buộc thời gian của nhiều đối tượng — lớp, nhóm, môn học hoặc phòng học. Chức năng này chỉ liên quan đến **thời khóa biểu theo lịch**. #### Hai loại: cho phép hoặc loại trừ - **Tiết học được phép** — các tiết học **chỉ** có thể được xếp lịch trong những ngày này. - **Tiết học bị loại trừ** — các tiết học **không** thể được xếp lịch trong những ngày đó. #### Cách chúng kết hợp với nhau Nhiều cửa sổ có thể cùng áp dụng cho một đối tượng: - các cửa sổ cho phép cộng dồn với nhau; - các cửa sổ loại trừ cộng dồn với nhau; - khi có chồng lấn, **một cửa sổ loại trừ được ưu tiên hơn một cửa sổ cho phép**. #### Các trường hợp sử dụng điển hình - **Các lớp theo cùng một nhịp vừa học vừa làm** — nhiều lớp chỉ có một số tiết học vào những tuần nhất định (hoặc chỉ vào đầu hay cuối các tuần đó). Một cửa sổ *cho phép* mô tả những tuần này, áp dụng cho toàn bộ các lớp đó, giúp bạn khỏi phải nhập lại nhịp học cho từng lớp. - **Giai đoạn thi** — một cửa sổ *loại trừ* bao trùm đợt thi sẽ tạm thời chặn các phòng học liên quan, hoặc các lớp, để không có tiết học thông thường nào được xếp vào đó. - **Ngày nghỉ lễ riêng của một số lớp** — tại một cơ sở ở nước ngoài, một số lớp theo lịch nghỉ lễ khác với phần còn lại của nhà trường. Một cửa sổ *loại trừ* đặt trên các ngày đó, chỉ áp dụng cho những lớp này, sẽ vô hiệu hóa giai đoạn đó mà không đụng đến các lớp khác. #### Xác định một cửa sổ ngày Trên màn hình chỉnh sửa của một thời khóa biểu theo lịch, trong mục Cửa sổ ngày: 1. Thêm mở bộ chọn ngày. 2. Hãy đặt một **nhãn** và chọn loại — cho phép hoặc loại trừ. 3. Hãy chọn các ngày trên lưới lịch: nhấn giữ và kéo, chọn cả tuần, chọn cột của một ngày trong tuần, dùng lối tắt tuần chẵn / tuần lẻ, hoặc đảo ngược vùng đã chọn. 4. Hãy lưu lại: cửa sổ được thêm vào danh sách dùng lại được của thời khóa biểu. #### Áp dụng một cửa sổ Sau khi được xác định, cửa sổ này có mặt trong ràng buộc thời gian của **lớp, nhóm, môn học và phòng học**: tại đó bạn chọn một hoặc nhiều cửa sổ. Cùng một cửa sổ có thể dùng cho bao nhiêu đối tượng tùy nhu cầu — đó chính là lợi ích của lớp phủ dùng lại được. #### Khi tạo tự động Công cụ tạo tự động xử lý các cửa sổ như những ràng buộc: nó chỉ đặt một tiết học vào các ngày được phép, và không bao giờ vào các ngày bị loại trừ. #### Xem thêm - [Chế độ lịch](#page-timetables.calendar-mode) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Tạo tự động](#page-timetables.generation) - [Xếp thủ công](#page-timetables.manual-placement) ### 3.6 Bước 1 — Thông số chung *Source: `help/vi/timetables/general-settings.md` · id: timetables.general-settings · Audience: admin · Updated: 2026-07-17* Trên tab **Tổng quan**, bạn ấn định các thông số toàn cục định hình thời khóa biểu. Các giá trị điền sẵn lấy từ [thông số chung của trường](#page-admin.parameters), mà bạn cũng có thể điều chỉnh từ trước. #### Các ô cần điền 1. **Tên** — tên của thời khóa biểu (“Thời khóa biểu 2025-2026”, “HK1 2025”…). Hiển thị ở mọi nơi. Có thể sửa. 2. **Mô tả** — văn bản tự do, hữu ích khi bạn có nhiều thời khóa biểu. 3. **Chế độ hiển thị** — mặc định là một dòng cho mỗi khung giờ, với giờ giấc ở bên trái. Bạn có thể chọn kiểu đánh số tiết quen thuộc ở các nước nói tiếng Anh, hoặc kiểu hiển thị lịch theo giờ tròn. 4. **Thời lượng khung giờ** — thời lượng chuẩn của một khung giờ, có thể tính cả thời gian chuyển tiết. Nếu các tiết học của bạn kéo dài 55 phút cộng 5 phút chuyển tiết, hãy nhập **60 phút**. Nếu các tiết học thông thường kéo dài 1 giờ 30, hãy nhập **90 phút**. Thời lượng và cách phân chia được giải thích chi tiết trong [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid--slot-duration). 5. **Phân chia khung giờ** — thời lượng khung giờ có thể được chia thành bao nhiêu phần nhỏ? Để tạo được các tiết học 1 giờ, 1 giờ 30 hoặc 2 giờ với khung giờ 60 phút, hãy chọn **1/2**. Để xuống tới mức 15 phút, hãy chọn **1/4**. - **Lời khuyên**: đừng chia nhỏ hơn mức cần thiết. Cách phân chia càng nhỏ thì công cụ tạo tự động càng tính lâu. 6. **Ngày làm việc** — hãy đánh dấu những ngày có tiết học. Mặc định là từ thứ Hai đến thứ Sáu (trừ khi thiết lập theo quốc gia khác đi — các nước Ả Rập, Israel…). 7. **Với thời khóa biểu theo chu kỳ** — số ngày của chu kỳ. 8. **Với thời khóa biểu dạng lịch** — ngày bắt đầu và ngày kết thúc (về sau vẫn sửa được) và nếu cần thì cửa sổ ngày. #### Lưu lại Nút Lưu ở phía dưới sẽ lưu lại cấu hình. #### Tiếp theo là gì Khi các thông số này đã được xác nhận, bạn hãy chuyển sang bước tiếp theo: [Cơ sở, phòng học và tài nguyên](#page-timetables.sites-rooms). > **Mẹo.** Nếu bạn đang chuyển từ một hệ thống khác sang, hoặc chỉ muốn > thử nhanh Omniscol, thì với những đợt tạo tiết học hàng loạt lớn > (hàng trăm tiết cùng lúc), [Nhập hàng loạt qua bảng tính](#page-timetables.mass-import) > nhanh hơn nhập liệu từng màn hình một. Tuy nhiên, bạn càng khai báo > nhiều dữ liệu cấu trúc từ trước thì việc nhập càng cho kết quả tốt. #### Hướng dẫn — Cấu hình các thông số chung của một thời khóa biểu 1. **Bước 1 của việc tạo thời khóa biểu**: ấn định tên, thời lượng khung giờ, cách phân chia, ngày làm việc. Những lựa chọn này định hình thời khóa biểu lâu dài — nên đặt cho đúng ngay từ đầu. 2. **Tên và mô tả**: một cái tên dễ hiểu (`Thời khóa biểu 2026-2027`, `HK1 2026 — cao học Quản trị kinh doanh`) và một mô tả tự do. Hiển thị ở khắp giao diện. Có thể sửa, nhưng hãy tránh đổi tên khi đã đưa vào sử dụng thật. 3. **Chế độ hiển thị**: một dòng cho mỗi khung giờ (mặc định), hoặc tiết được đánh số (kiểu các nước nói tiếng Anh), hoặc lịch theo giờ tròn. Hãy theo tập quán của trường bạn. 4. **Thời lượng khung giờ**: thời lượng chuẩn của một khung giờ. Tiết học 55 phút cộng 5 phút chuyển tiết → **60 phút**. Tiết học thông thường 1 giờ 30 → **90 phút**. Nếu bạn giữ khung giờ 60 phút, cách phân chia vẫn cho phép có tiết học 1 giờ 30. 5. **Phân chia khung giờ**: thời lượng khung giờ có thể chia thành bao nhiêu phần nhỏ? **1/2** cho bước 30 phút với khung giờ 60 phút, **1/4** cho bước 15 phút. Càng chia nhỏ thì công cụ tạo tự động càng có nhiều phương án phải thử. 6. **Ngày làm việc**: hãy đánh dấu từ thứ Hai đến thứ Sáu (mặc định). Các nước Ả Rập, Israel: từ Chủ nhật đến thứ Năm. Với thời khóa biểu **theo chu kỳ**: số ngày của chu kỳ. Với thời khóa biểu **dạng lịch**: ngày bắt đầu và ngày kết thúc (sau đó vẫn sửa được). 7. **Hãy lưu lại** bằng Lưu. Bước tiếp theo: [Cơ sở, phòng học và tài nguyên](#page-timetables.sites-rooms). Với những đợt tạo hàng loạt lớn, xem [Nhập hàng loạt qua bảng tính](#page-timetables.mass-import). #### Xem thêm - [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) - [Bước trước — Điều kiện cần](#page-timetables.prerequisites) - [Bước tiếp theo — Cơ sở](#page-timetables.sites-rooms) - [Thông số chung của trường](#page-admin.parameters) ### 3.7 Bước 2 — Cơ sở, lưới thời gian, phòng học, tài nguyên *Source: `help/vi/timetables/sites-rooms.md` · id: timetables.sites-rooms · Audience: admin · Updated: 2026-08-08* Trên tab **Cơ sở**, bạn mô hình hóa mặt vật chất của trường mình. #### Tạo các cơ sở Nếu mọi tiết học đều diễn ra ở cùng một nơi: một cơ sở là đủ. Hãy bấm Tạo Cơ sở và đặt tên cho nó. Nếu trường bạn có nhiều cơ sở: hãy tạo một cơ sở cho mỗi địa điểm vật lý riêng biệt. Hãy khai báo **thời gian di chuyển** giữa các cơ sở (ma trận thời lượng). Đây là điều thiết yếu — thiếu những khoảng thời gian đó, công cụ tạo tự động có thể xếp một giáo viên dạy từ 9 giờ đến 10 giờ ở cơ sở A rồi 10 giờ 05 ở cơ sở B cách đó 5 km, một điều không thể xảy ra trên thực tế. Đừng nhầm cơ sở với đơn vị: [đơn vị](#page-glossary.campus) (campus) là một cách gom nhóm mang tính tổ chức, được cấu hình trong thông số chung; còn cơ sở mang lưới thời gian, các phòng học và thời gian di chuyển. Xem [Cơ sở](#page-glossary.site) để biết các tình huống sử dụng và giới hạn (hai cơ sở ảo cho cùng một địa điểm, chọn giữa nhiều cơ sở và nhiều tài khoản, v.v.). #### Cấu hình lưới thời gian Mỗi cơ sở mang **lưới thời gian** của riêng mình: - giờ bắt đầu / kết thúc của các khung giờ, - các giờ nghỉ, - giờ nghỉ trưa, - thời gian đóng cửa (chiều thứ Bảy, Chủ nhật…). Các tiết học thông thường được gắn vào các khung giờ của lưới này. Nếu sau đó bạn sửa giờ của một khung giờ, những tiết học đã xếp trên đó sẽ theo lưới mới. Giờ giấc tùy chỉnh và các lớp ngoài khung giờ là những trường hợp riêng, được mô tả trong [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid). Omniscol tự đoán lưới này từ những thông tin bạn đã nhập, nhưng hãy đọc lại và tùy chỉnh nó — điều đó quan trọng cho cách hiển thị và cho thuật toán. Các khung giờ nên khớp với [thời lượng khung giờ](#page-core-concepts.timetable-grid--slot-duration) đã nhập ở [màn hình trước](#page-timetables.general-settings). Ví dụ, nếu bạn khai 60 phút cho một tiết học thông thường thì mỗi khung giờ sẽ được coi là dài 1 giờ, bất kể giờ giấc thực tế đã nhập — đôi khi 50 hoặc 55 phút, con số này có thể xê dịch đôi chút vì các giờ nghỉ. Nếu khoảng cách giữa lý thuyết và thực tế quá lớn trên một khung giờ nào đó, giờ giấc có thể chuyển sang màu đỏ để cảnh báo bạn về một cấu hình sai. Đừng khai các giờ nghỉ như những khung giờ! Mọi khung giờ đều có thể chứa tiết học (trừ khi bạn đánh dấu khoảng thời gian đó là không khả dụng). Một nhầm lẫn thường gặp là tin rằng giờ giấc có tác động trực tiếp: không phải vậy — Omniscol xếp các tiết học vào các khung giờ, rồi hiển thị chúng với giờ giấc đã nhập cho từng khung giờ tương ứng. #### Nhập các phòng học Với mỗi cơ sở, hãy tạo các [phòng học](#page-glossary.classroom). Các trường: - **Tên** (bắt buộc), - **Sức chứa** (bắt buộc — thiếu trường này, công cụ tạo tự động không thể kiểm tra được chỗ ngồi có đủ hay không), - **[Chuyên ngành](#page-glossary.classroom-specialization)** (hóa học, tin học, thể thao… tự do), - Số lớp tối đa cho một **[phòng lớn](#page-glossary.large-room)** (phòng thi, nhà hát, nhà thi đấu, bể bơi, khu vực ngoài trời). Trường này chỉ xuất hiện khi phòng học đã có chuyên ngành, - **Tòa nhà** (tùy chọn), - **Ràng buộc thời gian** (hữu ích với những phòng học dùng chung với một trường khác, hoặc các sân thể thao ngoài trời), - **Thẻ / ghi chú** (bảng lật, ổ điện, máy tính… tự do). Bạn có thể tạo phòng học **hàng loạt** bằng cách sao chép và dán từ một bảng tính. ##### Đơn vị > _Plan: standard_ Ô đơn vị của một phòng học cho biết **phòng đó phục vụ bộ phận nào của trường**: một khoa, một ngành, một trường trong tập đoàn giáo dục, một chương trình đào tạo thường xuyên. Phòng học nào mang một đơn vị như vậy sẽ được xếp lên đầu với những lớp đã chọn đơn vị đó trong phòng học cần ưu tiên của mình, và có thể lọc theo tên đó trong các màn hình phòng học. Khái niệm này đến từ giáo dục đại học, nơi nó phổ biến nhất. Nó cũng hữu ích ngay khi một trường có nhiều khối dưới cùng một mái nhà — một trường liên cấp mà mỗi khối giữ phòng học riêng, một cơ sở tiếp nhận cả tiểu học lẫn trung học. Một phòng học có thể mang **nhiều đơn vị** trong khi vẫn chỉ thuộc về **một cơ sở duy nhất**. Đó là trường hợp một không gian dùng chung giữa nhiều khoa hoặc nhiều trường trong cùng một tập đoàn giáo dục. Hai khái niệm trả lời hai câu hỏi khác nhau và bổ sung cho nhau: đơn vị mô tả cách tổ chức, còn cơ sở mô tả vị trí và mang các ràng buộc vật lý — lưới thời gian, tính tương thích tại chỗ, thời gian di chuyển. Danh sách các đơn vị khả dụng được quản lý trong [thông số của tài khoản](#page-admin.parameters). > _Premium_ ##### Nhiều phòng học Omniscol cho phép gán nhiều phòng học cho cùng một tiết học, với tổng sức chứa = tổng sức chứa của các phòng. Xem [Nhiều phòng học](#page-glossary.multi-room) để biết các tình huống sử dụng điển hình (kỳ thi chia ra nhiều giảng đường, bài giảng lý thuyết được truyền trực tiếp, tiết thực hành tách phòng, v.v.). ##### Chuyên ngành **Chuyên ngành** (trường tự do) dùng để chỉ ra rằng một môn học đòi hỏi một loại phòng học riêng. Công cụ tạo tự động tuân thủ nghiêm ngặt. ##### Phòng lớn Một phòng học có chuyên ngành có thể trở thành **[phòng lớn](#page-glossary.large-room)**: hãy điền Số lớp tối đa của nó để phòng chứa được nhiều tiết học khác nhau vào cùng một thời điểm (với giáo viên và nhóm riêng biệt), trong giới hạn con số đó và sức chứa của phòng. Đó là trường hợp của các phòng thi, nhà hát, nhà thi đấu, bể bơi hay khu vực ngoài trời. Trường này chỉ xuất hiện sau khi bạn đã gán chuyên ngành cho phòng học. #### Nhập các tài nguyên [Tài nguyên](#page-glossary.resource) là những thiết bị di động không gắn với một phòng học cụ thể nào (máy chiếu xách tay, va li máy tính bảng, bộ dụng cụ…). Với mỗi tài nguyên: - **Tên**, - **Số lượng khả dụng**. Một va li chứa 30 máy tính bảng được tính là 1 (chứ không phải 30) — bạn nhập số va li. Không cần mô hình hóa những tài nguyên mà bạn “luôn có đủ” — chỉ làm việc đó với những giới hạn dùng chung thật sự. > _Premium_ **Cơ sở**, **phòng học** và **tài nguyên** có thể được đồng bộ từ một hệ thống bên ngoài — khi đó mỗi danh sách đều có nút đồng bộ riêng (Đồng bộ hóa, Đồng bộ hóa, Đồng bộ hóa). Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Tiếp theo là gì Bước tiếp theo: [Phân công giáo viên](#page-timetables.assigning-teachers). #### Hướng dẫn — Tạo một cơ sở và lưới thời gian của nó 1. **Một cơ sở** mô hình hóa một địa điểm vật lý riêng biệt, với lưới thời gian của riêng nó (khung giờ, giờ nghỉ, giờ ăn trưa). Bắt buộc phải có ít nhất một cơ sở. Quy trình này mô tả việc tạo một cơ sở và những phần phụ thuộc tối thiểu của nó (phòng học, tài nguyên). 2. **Hãy bấm Tạo Cơ sở** và đặt cho nó một cái tên (`Tòa nhà chính`, `Phân hiệu Hà Nội`…). Nếu bạn khởi đầu với một cơ sở duy nhất thì một cơ sở là đủ. Với trường nhiều cơ sở, hãy tạo đủ số cơ sở tương ứng với số địa điểm vật lý cần phân biệt. 3. **Hãy cấu hình lưới thời gian**: giờ bắt đầu / kết thúc của các khung giờ, giờ nghỉ chuyển tiết, giờ nghỉ trưa, thời gian đóng cửa (chiều thứ Bảy, Chủ nhật…). 4. **Hãy nhập các phòng học**: tên, sức chứa (trường then chốt với công cụ tạo tự động), chuyên ngành (hóa học, tin học, thể thao…), giờ mở cửa, đơn vị nếu tổ chức của bạn có dùng. Đơn vị đặt trên một phòng học dùng để ưu tiên phòng đó cho một số lớp, mà không chặn những phòng học tương thích khác. Cùng một phòng học có thể thuộc nhiều đơn vị. Một phòng học chỉ thuộc về một cơ sở duy nhất — với phòng học được nhiều cơ sở ảo cùng dùng, xem [Cơ sở, phòng học, tài nguyên — khái niệm](#page-core-concepts.sites-rooms-resources). 5. **Hãy nhập các tài nguyên** (thiết bị di động): tên + số lượng khả dụng. Chỉ mô hình hóa những tài nguyên có giới hạn dùng chung thật sự (máy chiếu xách tay, va li máy tính bảng, bộ micro), chứ không phải những thứ bạn “luôn có đủ”. 6. **Nếu có nhiều cơ sở, hãy khai báo thời gian di chuyển** qua cửa sổ khoảng cách (nửa ma trận tam giác). Thiếu những khoảng thời gian đó, công cụ tạo tự động sẽ “dịch chuyển tức thời” — xem [Nhiều cơ sở: quy tắc và thời gian di chuyển](#page-core-concepts.sites-rooms-resources) để biết các sắc thái. #### Xem thêm - [Cơ sở, phòng học, tài nguyên — khái niệm](#page-core-concepts.sites-rooms-resources) - [Đơn vị](#page-glossary.campus) - [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) - [Nhiều phòng học](#page-glossary.multi-room) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) ### 3.8 Bước 3 — Phân công giáo viên *Source: `help/vi/timetables/assigning-teachers.md` · id: timetables.assigning-teachers · Audience: admin · Updated: 2026-06-13* Trên thẻ **Giáo viên**, bạn cho biết những giáo viên nào được **huy động** cho thời khóa biểu này — khác với những người chỉ được khai báo ở cấp trường. #### Phân công Hãy nhấn Giao cho giáo viên. Danh sách giáo viên hiện có sẽ mở ra. Hãy chọn những người liên quan. Bạn có thể **phân công theo từng đợt**: bắt đầu với những giáo viên đã được tuyển dụng chính thức, rồi bổ sung người mới theo tiến độ tuyển dụng. > _Premium_ Giáo viên có thể được đồng bộ từ một hệ thống bên ngoài: Đồng bộ hóa mở phần đối chiếu. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Giáo viên ảo Nút Giáo viên ảo tạo một **giáo viên ảo** để tạm thời đại diện cho một vị trí còn trống. Tiện cho việc chuẩn bị đầu năm học mà không phải chờ tuyển dụng hoàn tất. Một biểu tượng [ghost] xuất hiện bên cạnh tên. Khi việc tuyển dụng hoàn tất, nút Biến đổi ở cuối dòng sẽ biến giáo viên ảo thành người thật: hãy chọn giáo viên thật trong danh sách, và mọi tham chiếu đến người ảo sẽ chuyển sang người đó — từ việc phân công môn học trong các lớp cho đến toàn bộ tiết học. Giáo viên ảo khi đó biến mất vĩnh viễn. **Thao tác này không thể hoàn tác.** #### Thay thế vĩnh viễn một giáo viên Cũng chính nút Biến đổi đó áp dụng được cho một giáo viên **thật**: nó chuyển toàn bộ tiết học của người đó sang một giáo viên khác trong danh sách — người đã được phân công vào thời khóa biểu này, hoặc chỉ được khai báo ở cấp trường — rồi gỡ giáo viên ban đầu khỏi thời khóa biểu. Đây là thao tác **thay thế vĩnh viễn**, hữu ích khi một giáo viên đã dự kiến không nhận việc, được điều chuyển hoặc buộc phải bỏ các tiết học của mình: mọi tiết học và phân công chuyển sang người thay thế chỉ trong một thao tác. **Thao tác này không thể hoàn tác.** #### Thời gian rảnh Nếu bạn đã bật việc nhập thời gian rảnh qua thông số Thời gian rảnh của giáo viên (xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability)), thì đây là nơi bạn **kiểm tra và phê duyệt** thời gian rảnh do giáo viên nhập vào. Bạn còn có thể: - sửa **giờ làm việc** (số giờ dự kiến mỗi tuần, được chuyển tiếp sang các thời khóa biểu mới), - gán một **phòng học ưu tiên** (được công cụ tạo tự động ưu tiên dùng cho các tiết học của giáo viên, trừ khi lớp đã có phòng học riêng). #### Phân biệt cấp trường / cấp thời khóa biểu Điều quan trọng: hồ sơ giáo viên **ở cấp trường** mang các thông tin định danh (họ tên, e-mail, tên đăng nhập) và luôn ổn định. Hồ sơ giáo viên **ở cấp thời khóa biểu** mang các thông tin *gắn với thời khóa biểu này* (thời gian rảnh, phòng học ưu tiên, giờ làm việc). Hệ quả: nếu bạn sửa tên một giáo viên trong Giáo viên sau khi đã tạo thời khóa biểu, thời khóa biểu vẫn giữ tên cũ. Đây là lựa chọn có chủ đích nhằm bảo đảm khả năng truy vết, nhưng điều đó đòi hỏi tên phải được viết đúng ngay tại thời điểm tạo thời khóa biểu. #### Giáo viên thỉnh giảng (giảng viên bên ngoài) Với giáo viên thỉnh giảng, xem [bảng thuật ngữ](#page-glossary.external-teacher). Họ được tạo như giáo viên bình thường. > _Premium_ Dấu hiệu **Giáo viên bên ngoài** trong hồ sơ người dùng thêm một biểu tượng nhỏ [user-tie] giúp phân biệt giáo viên thỉnh giảng với đội ngũ cơ hữu trên một số màn hình. Với các giáo sư thỉnh giảng chỉ tham gia giảng dạy không thường xuyên (một hoặc hai tiết học), tùy trường hợp bạn có thể: - thêm họ làm người đồng giảng của một tiết học (xem [Đồng giảng dạy](#page-glossary.co-teaching)), - tạo một khóa học riêng cho phần giảng dạy của họ (nhất là ở chế độ lịch). #### Tiếp theo là gì Bước tiếp theo: [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes). #### Hướng dẫn — Phân công giáo viên cho một thời khóa biểu 1. **Bước 3 của việc tạo thời khóa biểu**: hãy cho biết những giáo viên nào được **huy động** cho thời khóa biểu này (khác với tất cả những người đã khai báo ở cấp trường). 2. **Hãy phân công những giáo viên đã được tuyển dụng chính thức** qua Giao cho giáo viên. Danh sách giáo viên đã khai báo ở cấp trường sẽ mở ra. Hãy chọn những người liên quan đến thời khóa biểu này. Bạn có thể **phân công theo từng đợt**: bắt đầu với đội ngũ cơ hữu, bổ sung người mới theo tiến độ tuyển dụng. 3. **Với mọi vị trí còn trống**, hãy tạo một **giáo viên ảo** qua Giáo viên ảo. Một biểu tượng [ghost] giúp nhận ra người đó. Tiện cho việc chuẩn bị đầu năm học mà không bị kẹt vì tuyển dụng. Khi việc tuyển dụng hoàn tất, nút Biến đổi ở cuối dòng sẽ chuyển mọi tham chiếu sang giáo viên thật được chọn trong danh sách. Các tiết học đã xếp chỗ vẫn được giữ nguyên. Cũng chính nút đó dùng cho việc **thay thế vĩnh viễn** một giáo viên thật bằng người khác (điều chuyển, rút lui…). **Hãy nêu rõ các môn học giảng dạy** của giáo viên ảo trên thời khóa biểu này: người đó sẽ được ưu tiên đề xuất cho những môn học ấy khi phân công. 4. **Thời gian rảnh**: với thời khóa biểu hằng tuần, bạn **kiểm tra và phê duyệt** phần đã nhập. Với mọi loại thời khóa biểu, bạn đều có thể **xem và điền** toàn bộ thời gian rảnh. Xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability). 5. **Phòng học ưu tiên** (tùy chọn): nếu giáo viên có phòng học riêng, hãy gán tại đây qua [location-pin]. Công cụ tạo tự động sẽ ưu tiên phòng đó cho các tiết học của họ, trừ khi lớp đã có phòng học riêng (ưu tiên của lớp > ưu tiên của giáo viên). 6. **Bước tiếp theo**: [tạo các lớp và nhóm của lớp](#page-timetables.creating-classes). #### Xem thêm - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Quản lý giáo viên ở cấp trường](#page-admin.teachers) - [Giáo viên](#page-glossary.teacher) - [Giáo viên bên ngoài](#page-glossary.external-teacher) ### 3.9 Bước 4 — Tạo các lớp và nhóm của lớp *Source: `help/vi/timetables/creating-classes.md` · id: timetables.creating-classes · Audience: admin · Updated: 2026-08-08* Đây là bước định hình cấu trúc nhiều nhất. Trên tab **Lớp**, bạn tạo các lớp, các nhóm của lớp và nhập số giờ theo từng môn học. #### 1. Tạo các lớp Hãy nhấn vào Tạo lớp. Với mỗi lớp: - **Tên** (bắt buộc), - **Trình độ** (chọn trong các trình độ đã có; hãy nhấn vào Tạo mới để thêm một trình độ mới), - **Đơn vị** nếu trường bạn tổ chức theo mô hình đó, - **Cơ sở** mặc định (công cụ tạo tự động chỉ tìm trong các phòng học của cơ sở này, trừ khi một tiết học được gán tường minh sang một cơ sở khác), - **Phòng học dành riêng** (tùy chọn — các tiết học sẽ diễn ra ở đó theo mặc định), - **Phòng học cần ưu tiên** (tùy chọn — hãy chỉ ra Đơn vị và/hoặc các thẻ của những phòng học cần thử trước tiên cho lớp này), - **Sĩ số dự kiến** (tùy chọn nhưng nên có, để chọn phòng học đúng kích cỡ). Ô Đơn vị và ô Cơ sở trả lời hai câu hỏi khác nhau: ô Đơn vị cho biết lớp trực thuộc bộ phận nào của trường (phân hiệu, khoa, ngành); còn ô Cơ sở cho biết lớp nằm ở đâu về mặt vật lý và những phòng học nào được dùng theo mặc định. ##### Phòng học cần ưu tiên Ô **Phòng học cần ưu tiên** mô tả những phòng học mà lớp này quen dùng, mà không cần liệt kê từng phòng một: bạn chỉ định các [đơn vị](#page-timetables.sites-rooms--campus), các thẻ của phòng học, hoặc cả hai, và mọi phòng học mang một trong những dấu hiệu đó đều thuộc tập hợp này. Một khoa làm việc trong các phòng học riêng của mình, một chương trình đào tạo thường xuyên giữ hai giảng đường của mình, một lộ trình học trải trên nhiều cơ sở: sự ưu tiên chỉ gói gọn trong một hoặc hai lựa chọn, và theo sát những phòng học mà bạn thêm vào sau này. Tập hợp này được thử trước tiên, cả khi gán tự động lẫn khi chọn thủ công. Khi không phòng học nào trong số đó còn trống, Omniscol sẽ chọn một phòng học phù hợp khác. Còn **Đơn vị** của lớp thì phục vụ việc phân loại và lọc. Hai ô này bổ sung cho nhau — một bên mô tả lớp trực thuộc bộ phận nào của trường, bên kia mô tả lớp thường làm việc ở đâu. ⚠ Nếu bạn quên gán cơ sở, các tiết học sẽ không thể được xếp lịch (vì thiếu phòng học và lưới thời gian). Một cảnh báo sẽ nhắc bạn điều đó. #### 2. Tạo các nhóm cho từng lớp Hãy nhấn vào nút Thêm nhóm của một lớp. Hãy tạo số nhóm bằng đúng số khóa học mà học sinh không học theo cả lớp. Với mỗi nhóm: - **Tên** và **mã số** (hãy dùng cả hai để nhận diện cho dễ), - **Sĩ số dự kiến**, - Nếu nhiều nhóm phải hoặc có thể ở **cùng một khung giờ** (Thực hành A và Thực hành B, hoặc tiếng Pháp và tiếng Nhật ở ngoại ngữ hai), hãy tạo một [phân vùng](#page-core-concepts.class-divisions) bằng Thêm phân vùng. Mẹo: nếu các nhóm của một lớp (gần như) giống hệt các nhóm của một lớp khác, hãy dùng nút Tải từ lớp khác để nhập cấu hình đó rồi điều chỉnh lại. > _Premium_ **Lớp** và **nhóm** có thể được đồng bộ hóa từ một hệ thống bên ngoài: Đồng bộ hóa và Đồng bộ hóa mở màn hình đối chiếu. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### 3. Cấu hình các môn học theo lớp (các khóa học) Hãy vào tab **Môn học** (hoặc nút Khóa học của một lớp). Mỗi môn học mà bạn gán cho một lớp theo cách này — cùng với số giờ và, nếu cần, loại tiết học của nó (bài tập, thực hành, bài giảng…) — tạo thành một **[khóa học](#page-glossary.course)**: đơn vị cơ bản trong chương trình đào tạo của bạn (“môn Toán ở lớp 9A, 4 giờ mỗi tuần, dạng bài tập”). Ở chỗ này giao diện nói “môn học”, nhưng cái bạn đang dựng lên chính là khái niệm khóa học; toàn bộ các khóa học của một lớp hợp thành **chương trình** của lớp đó (khung chương trình, bản mô tả). Các [tiết học](#page-glossary.lesson) mà sau đó bạn xếp lên lưới thời gian chính là những lần diễn ra của chúng. Với mỗi khóa học, hãy nêu rõ: - **Số giờ** mỗi tuần, - **Loại tiết học** nếu có (bài tập, thực hành, bài giảng…), - **Giáo viên** được phân công, - **Trọng số giảng dạy** (công cụ tạo tự động cố gắng cân bằng môn học giữa các ngày), - **Phòng chuyên môn** cần thiết (chọn trong các [chuyên ngành](#page-glossary.classroom-specialization) của cơ sở), - **Ưu tiên khi xếp lịch** (tránh xếp môn Toán vào cuối ngày, môn Thể dục vào những giờ nắng nóng…). Mẹo: hãy dùng Tải từ lớp khác để tái sử dụng cấu hình môn học của một lớp khác. Hộp thoại này còn cho phép nhập một lớp từ một thời khóa biểu khác, và bạn có thể mở rộng phạm vi: có hoặc không thay thế danh sách hiện có, và có hoặc không kèm theo các giáo viên liên quan, các nhóm, các quy tắc không tương thích, các ràng buộc thời gian của lớp. Bạn thậm chí có thể nhân bản cả phần phân bổ thành tiết học, cũng vẫn bằng cách chọn mức mở rộng của việc nhập. Còn về vị trí của các tiết học, trên một thời khóa biểu dạng lịch, bạn có thể dịch chuyển các ngày (khi đó trình tự sẽ được tính lại theo các ngày làm việc của nguồn và của đích). Cách này rất tiện cho những tổ chức đào tạo có các đợt học trọn vẹn lặp lại, ví dụ sáu hoặc tám tuần liên tiếp, nhiều lần trong năm. #### 4. Không tương thích giữa các môn học Một quy tắc [không tương thích](#page-glossary.incompatibility) cấm một môn học **đi sau** một môn học khác. Quy tắc này có **chiều**: “không xếp môn B sau môn A” không giống với chiều ngược lại. Trường hợp điển hình: “không xếp môn Toán ngay sau môn Thể dục”. Hãy khai báo chúng trên tab **Không tương thích** của lớp. Khi tạo quy tắc, hãy chọn **cửa sổ thời gian** áp dụng: - **Liên tiếp** — không ở tiết học kế ngay sau, trong cùng một ngày. Ví dụ: tránh xếp một môn đòi hỏi tập trung cao ngay sau một môn hao sức, “không xếp môn Toán ngay sau môn Thể dục”. - **Nửa ngày** — không muộn hơn trong cùng một buổi. Ví dụ: xen kẽ các ngoại ngữ, “không xếp tiếng Pháp sau tiếng Anh” — và, để loại trừ lẫn nhau, hãy thêm quy tắc ngược lại “không xếp tiếng Anh sau tiếng Pháp”. - **Ngày** — không muộn hơn trong cùng một ngày. Ví dụ: giãn cách các môn nghệ thuật, “không xếp môn Mỹ thuật sau môn Âm nhạc trong cùng một ngày”. Với kiểu cân bằng này, **trọng số giảng dạy** của môn học thường là lựa chọn đơn giản hơn. - **Tuần** — không muộn hơn trong cùng một tuần. Ví dụ: giữ đúng thứ tự bài giảng trước rồi mới đến thực hành, “không xếp thực hành Hóa học trước bài giảng Hóa học”. - **Luôn luôn** *(thời khóa biểu dạng lịch)* — không bao giờ đi sau, trong suốt cả giai đoạn: công cụ **sắp thứ tự** các điều kiện tiên quyết. Ví dụ: “không xếp C++ trước C”, “không xếp tài chính trước kế toán”. Vài điểm cần lưu ý để không chọn nhầm cách thiết lập: - **Một môn học không được xếp vào một thời điểm cụ thể** (“không xếp môn Toán vào tiết đầu tiên”, “không xếp môn Thể dục vào giữa ngày”) **không** phải là một quy tắc không tương thích: hãy dùng **ràng buộc thời gian của môn học** ([clock]), vốn tác động đến vị trí tuyệt đối của một môn học duy nhất. - **Ngăn một môn học xuất hiện hai lần trong cùng một ngày** được giải quyết đơn giản hơn bằng tùy chọn toàn cục **tự không tương thích** so với các quy tắc từng cặp. - Không tương thích là một ràng buộc **mềm** (một điểm trừ mà công cụ tạo tự động tìm cách xóa bỏ), chứ không phải một rào cản: nó vẫn có thể còn lại trong thời khóa biểu đã tạo, nơi [chẩn đoán](#page-glossary.diagnostic) chỉ ra nó. Hãy tránh chồng chất chúng — mỗi quy tắc lại thu hẹp sự tự do của công cụ tạo tự động. #### Tiếp theo là gì Bước tiếp theo: [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups), nếu bạn có các khóa học dùng chung giữa nhiều lớp ([khóa học liên lớp](#page-glossary.transverse-course)). Nếu không, hãy chuyển thẳng sang [Phân bổ thời gian](#page-timetables.hour-distribution). #### Hướng dẫn — Tạo một lớp cùng các nhóm và phân vùng của lớp 1. **Một lớp** tập hợp các học sinh cùng một chương trình đào tạo. Lớp được chia thành các **nhóm** (nửa lớp, môn tự chọn, trình độ), cùng với các **phân vùng** để khai báo những nhóm loại trừ lẫn nhau bên trong lớp. 2. **Hãy nhấn vào Tạo lớp.** Hãy nhập tên (`9A`, `K65-CNTT`…), trình độ (trong số đã cấu hình), đơn vị nếu bạn dùng đến, cơ sở mặc định, và nếu cần thì phòng học dành riêng + sĩ số dự kiến. Không có cơ sở, các tiết học sẽ không thể được xếp lịch — có cảnh báo rõ ràng. 3. **Hãy tạo các nhóm** của lớp. Mỗi mục đích giảng dạy khác nhau là một nhóm: `Thực hành A`, `Thực hành B` (nửa lớp ở phòng thí nghiệm), `Tiếng Pháp`, `Tiếng Nhật` (ngoại ngữ hai tự chọn), `Tiếng Anh nâng cao`, `Tiếng Anh cơ bản` (theo trình độ). Khuyến nghị mạnh: **một nhóm cho mỗi khóa học riêng biệt**, kể cả khi vẫn là những học sinh đó. 4. **Hãy khai báo các phân vùng** — những nhóm loại trừ lẫn nhau. Hãy chọn các nhóm (ví dụ `Tiếng Pháp` + `Tiếng Nhật`), nhấn Thêm phân vùng. Không có phân vùng, công cụ tạo tự động coi hai nhóm của cùng một lớp là có khả năng xung đột. 5. **Hãy cấu hình các môn học theo lớp**: số giờ mỗi tuần, giáo viên được phân công, loại tiết học mặc định. Các môn học được chọn từ danh mục của trường (chính thức hoặc tùy chỉnh). 6. **Bước tiếp theo**: [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) nếu bạn có các khóa học dùng chung giữa nhiều lớp, nếu không thì chuyển thẳng sang [Phân bổ thời gian](#page-timetables.hour-distribution). #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng](#page-core-concepts.class-divisions) - [Đơn vị](#page-glossary.campus) - [Lớp](#page-glossary.class) - [Nhóm](#page-glossary.group) ### 3.10 Bước 5 — Căn chỉnh nhóm và nhóm của nhóm *Source: `help/vi/timetables/alignments-and-groups-of-groups.md` · id: timetables.alignments-and-groups-of-groups · Audience: admin · Updated: 2026-05-10* Bước này là **tùy chọn** — hãy bỏ qua nếu trường bạn không có khóa học chung liên lớp. Bước này cần thiết ngay khi học sinh của các lớp khác nhau phải **cùng học chung một khóa học** (học sinh học tiếng Nhật ở nhiều lớp, môn tự chọn liên lớp, các chuyên đề học tập, v.v.). #### Căn chỉnh nhóm Dùng được trong **mọi** loại thời khóa biểu, nhưng phù hợp nhất với các thời khóa biểu **lặp lại** (hằng tuần / theo chu kỳ) có những lớp song song cùng cấu trúc. Xem trang tham chiếu: [Căn chỉnh nhóm](#page-core-concepts.alignments). Tóm tắt: - Trước hết, trong mỗi lớp liên quan, hãy tạo một **nhóm** có tên giống hệt nhau (“Tiếng Nhật” trong 10A1, trong 10A2, trong 10A3). - Sau đó, trên thẻ **Căn chỉnh nhóm**, hãy nhấn vào Thêm căn chỉnh nhóm rồi liên kết các nhóm của ba lớp. - Hãy kiểm tra rằng **số giờ giống hệt nhau** giữa các nhóm được căn chỉnh (nếu không, Omniscol sẽ báo một chẩn đoán về sự sai lệch). #### Nhóm của nhóm Xem trang tham chiếu: [Nhóm của nhóm](#page-core-concepts.groups-of-groups). Tóm tắt: - Thẻ **Nhóm của nhóm**. - Hãy tạo nhóm của nhóm bằng cách chọn các nhóm thành viên (thuộc cùng một lớp hoặc thuộc các lớp khác nhau). - Sau đó hãy gán các tiết học cho nhóm của nhóm — chúng sẽ xuất hiện trong tất cả các lớp cha. - Sửa được bất cứ lúc nào (thêm / bỏ nhóm thành viên). #### Gán trực tiếp nhiều nhóm cho một tiết học Còn có một cách làm tắt để **gán nhiều nhóm trực tiếp cho một tiết học**, mà không cần tạo một nhóm của nhóm có tên. Cách này tiện cho một nhu cầu **nhất thời** hoặc để thử nghiệm: - bạn đánh dấu chọn nhiều nhóm trong bộ chọn nhóm của tiết học; - tiết học khi đó được chia sẻ giữa các nhóm này mà không tạo ra một thực thể riêng có tên; - sau này bạn có thể quay lại một nhóm đơn lẻ, hoặc chính thức hóa trường hợp đó thành nhóm của nhóm nếu nhu cầu trở nên lâu dài. Ngược lại, cách này **kém rõ ràng hơn** và **khó tái sử dụng hơn** so với một nhóm của nhóm có tên: bạn mất đi ý đồ nghiệp vụ được nêu rõ, và cũng khó tìm lại, sửa lại hay áp dụng lại cùng một cách gom nhóm cho nhiều tiết học. #### Khi nào dùng cái nào | Tình huống | Công cụ | | --- | --- | | Khóa học chung lặp lại ở chế độ hằng tuần / theo chu kỳ | **Căn chỉnh nhóm** | | Khóa học chung nhất thời hoặc hay thay đổi | **Nhóm của nhóm** | | Thành phần có khả năng thay đổi | **Nhóm của nhóm** | | Nhu cầu nhất thời, không cần cấu trúc có tên | **Gán trực tiếp nhiều nhóm** | | Cấu hình đã cố định dứt khoát | **Căn chỉnh nhóm** hoặc **nhóm của nhóm** | #### Những cạm bẫy thường gặp - **Số giờ khác nhau giữa các nhóm được căn chỉnh.** Nếu một nhóm có 3 giờ tiếng Nhật còn nhóm kia chỉ có 2 giờ, căn chỉnh sẽ báo một chẩn đoán. Hoặc bạn đồng bộ lại, hoặc bạn bỏ căn chỉnh. - **Khóa học chung chỉ dành cho 2 lớp** trong số 3 lớp được căn chỉnh. Để một trong các lớp có tiết học riêng vào khung giờ đó, bạn phải nhân bản nhóm của lớp ấy rồi bỏ căn chỉnh cho bản sao. - **Học sinh ghi danh ở hai lớp** (ví dụ một học sinh học tiếng Nhật ở lớp 10A1 nhưng thuộc biên chế lớp 10A2). Cách xử lý: tạo một nhóm “Tiếng Nhật” trong 10A1 *và* trong 10A2 với cùng học sinh đó ở cả hai nhóm, rồi căn chỉnh. #### Tiếp theo là gì Bước tiếp theo: [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution). #### Hướng dẫn — Tạo một căn chỉnh nhóm liên lớp 1. **Một căn chỉnh nhóm** khai báo rằng nhiều nhóm thuộc **các lớp khác nhau** phải học cùng một tiết học, vào cùng một khung giờ, trong cùng một phòng học, với cùng một giáo viên. Trường hợp điển hình: các học sinh học tiếng Nhật ở các lớp 10A1, 10A2, 10A3. 2. **Điều kiện cần**: trước hết hãy tạo, **trong mỗi lớp liên quan**, một nhóm có **cùng một tên gọi hợp lý** (`Tiếng Nhật` trong 10A1, trong 10A2, trong 10A3). Xem [Tạo một lớp cùng các nhóm của lớp](#page-timetables.creating-classes). 3. **Thẻ Căn chỉnh nhóm** → hãy nhấn vào Thêm căn chỉnh nhóm. Chọn các nhóm của những lớp liên quan (`Tiếng Nhật 10A1`, `Tiếng Nhật 10A2`, `Tiếng Nhật 10A3`). Xác nhận. 4. **Hãy kiểm tra số giờ**: chúng phải giống hệt nhau giữa các nhóm được căn chỉnh (ví dụ 3 giờ tiếng Nhật ở mọi lớp). Nếu không, Omniscol sẽ báo một chẩn đoán về sự sai lệch. 5. **Chế độ lịch**: hãy ưu tiên [nhóm của nhóm](#page-core-concepts.groups-of-groups) vì linh hoạt hơn (sửa được về sau, thêm / bỏ nhóm mà không phải nhân bản). Nút Thêm nhóm các nhóm trên thẻ dành riêng. Nếu nhu cầu chỉ là **nhất thời**, bạn cũng có thể gán nhiều nhóm trực tiếp cho tiết học từ bộ chọn nhóm, mà không cần tạo một nhóm của nhóm có tên. 6. **Bước tiếp theo**: [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution). #### Xem thêm - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Nhóm của nhóm](#page-glossary.groups-of-groups) ### 3.11 Bước 6 — Phân bổ thời gian và tạo các tiết học *Source: `help/vi/timetables/hour-distribution.md` · id: timetables.hour-distribution · Audience: admin · Updated: 2026-06-25* Bạn đã khai báo khối lượng giờ theo môn học trên từng lớp (bước 4). Đây là nơi khối lượng đó được chia nhỏ thành **từng tiết học riêng lẻ**. Màn hình chia làm hai phần: - **Bên trái**: danh sách các lớp và các **khóa học** của chúng (các môn học của lớp, có thể tách theo loại), kèm bộ đếm động số giờ đã tạo cho từng khóa học. - **Bên phải**: các tiết học đã tạo cho lớp đang chọn. #### Ba chế độ hiển thị Bảng bên phải làm việc theo **ba chế độ**, chuyển qua lại bằng bộ chọn ở góc trên bên trái của bảng. Mỗi chế độ có lý do tồn tại riêng, và bạn chuyển từ chế độ này sang chế độ kia **mà không mất phần việc đang làm**. ##### Thẻ post-it (mặc định) Các tiết học hiện ra dưới dạng **thẻ**, sắp theo môn học hoặc theo ngày (với thời khóa biểu dạng lịch). Đây là chế độ được mô tả chi tiết trong toàn bộ phần còn lại của trang này: nhấp đúp để tạo, kéo viền để đổi thời lượng, các biểu tượng trên thẻ để đặt thuộc tính. - **Ưu điểm**: rất trực quan; lý tưởng để **tạo** tiết học, chia nhỏ khối lượng giờ, chỉnh thời lượng bằng thao tác kéo và xử lý các tiết học phức hợp (luân phiên, nối tiếp…) ngay trên thẻ. - **Nhược điểm**: ít tiện khi cần tác động lên **nhiều** tiết học cùng lúc, khi muốn một cái nhìn tổng thể được lọc kỹ, khi cần thấy vị trí đã xếp và xếp tiết học thật nhanh. ##### Thời khóa biểu (tổ chức lại) Các tiết học hiển thị theo bố cục gần giống thời khóa biểu, sẵn sàng để **tổ chức lại hàng loạt**. - **Chọn**: một cú nhấp sẽ chọn một tiết học và mở một phiếu tương tác. - **Chọn nhiều**: **Shift+nhấp** mở rộng vùng chọn thành một **dải**. Khi đó các tiết học đã chọn được sửa **cùng nhau** trên một phiếu chung (đổi thời lượng hàng loạt, các thuộc tính chung…). - **Bộ lọc động** và **lựa chọn ngày cần hiển thị** thu hẹp màn hình về đúng phần bạn đang xử lý. - **Bộ lọc “đang chờ”**: hãy tách riêng các tiết học **đang chờ phòng học** hoặc **đang chờ giáo viên** để hoàn tất những phân công còn thiếu; các chấm cảnh báo cho biết phần nào chưa xong. - Một **nút chuyển ngày / thực thể** đổi trục của bảng lịch tùy theo điều bạn đang so sánh. - **Ưu điểm**: xếp thủ công rất hiệu quả, xem chéo (ví dụ lớp + giáo viên), tổ chức lại nhiều tiết học, lọc có trọng điểm để xử lý chỗ còn thiếu, sửa **hàng loạt** thật nhanh ngay trên lịch. - **Nhược điểm**: kém trực tiếp hơn thẻ post-it khi tạo mới ban đầu, không tạo được tiết học phức hợp, ít bộ lọc tinh hơn cho việc quan sát và sửa hàng loạt. ##### Chế độ xem bảng Một **bảng** liệt kê các tiết học: mỗi tiết học **một dòng**, mỗi thông tin **một cột** (trạng thái, lớp, môn học, thời lượng, vị trí, tuần luân phiên, giáo viên, nhóm, phòng học, sĩ số, tài nguyên, ghi chú). - **Sắp xếp**: **mọi cột** đều sắp xếp được — hãy nhấp vào tiêu đề cột để sắp theo cột đó, nhấp lần nữa để đảo chiều (tăng dần / giảm dần). - **Lọc theo cột**: dưới mỗi tiêu đề có một **menu thả xuống chọn nhiều giá trị** để lọc cột đó (đôi khi là **hai** menu cho một cột ghép như ngày + giờ; một ô nhập khoảng `>=10, <5, 10-20` cho sĩ số). Nhiều giá trị trong **cùng một menu** kết hợp theo **HOẶC**, trừ khi chúng thuộc các loại khác nhau (ví dụ với phòng học: giữa các thẻ nhãn, hội nghị truyền hình, sức chứa và tên), khi đó là **VÀ**; các bộ lọc đặt trên **nhiều cột** cộng dồn theo **VÀ**. Một nút bấm đặt lại toàn bộ bộ lọc. - **Phân trang**: với khối lượng lớn, danh sách được chia trang; kích thước trang **tự điều chỉnh** (từ vài trăm đến vài nghìn dòng) để giữ độ mượt. - **Sửa hàng loạt đơn giản**: hãy đánh dấu các tiết học cần sửa (cột chọn), rồi dùng **nút thao tác trên tiêu đề** của cột (thời lượng, giáo viên, nhóm, phòng học…) để áp dụng **một lần** cho toàn bộ phần đã chọn. - **Phân bổ phòng học tự động**: hãy chọn một **tập tiết học** và một **tập phòng học**; thuật toán đề xuất một **phương án chỉ định tối ưu** (sĩ số, ràng buộc của phòng học, tình trạng còn trống), và bạn **điều chỉnh từng dòng** trước khi xác nhận. Xem [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment). - **Ưu điểm**: cái nhìn tổng thể sắp xếp được, **lọc tinh theo từng cột**, sửa và chỉ định phòng học **hàng loạt**. - **Nhược điểm**: ít bối cảnh thời gian trực quan hơn hai chế độ kia, không tạo được tiết học phức hợp. #### Tạo một tiết học Một *tiết học* là một lần diễn ra cụ thể của một **khóa học** (môn học của nó, một thời lượng, đôi khi một nhóm, thường là một giáo viên và một phòng học), sau đó được xếp lên thời khóa biểu. Hãy chọn một lớp, rồi **nhấp đúp vào một khóa học**: một tiết học của môn đó được tạo với các giá trị mặc định (thời lượng = đơn vị thời gian của lớp, (các) giáo viên của khóa học, phòng học mặc định nếu có). Nó xuất hiện ở trạng thái **chưa có vị trí** và nhập vào nhóm **tiết học chưa được xếp**, sẵn sàng để thuật toán hoặc chính bạn xếp chỗ. Nhấp đúp dùng được ở cả ba chế độ; chỉ có chỗ đặt danh sách khóa học là khác nhau: ở giữa với thẻ post-it, **dưới mỗi lớp trong bảng bên trái** ở chế độ thời khóa biểu và chế độ xem bảng. Để sau đó **chỉnh** tiết học (thời lượng, nhóm, giáo viên, phòng học, tài nguyên), giao diện thay đổi tùy theo cách nó đang hiển thị: - **Khi nó còn là một thẻ** — với thẻ post-it, hoặc chưa được xếp trong chế độ thời khóa biểu — hãy kéo **viền dưới** để đổi thời lượng và nhấp các **biểu tượng** trên thẻ để đặt thuộc tính. - **Khi đã đặt lên lịch, hoặc ở chế độ xem bảng**, các thiết lập đi qua một **menu thả xuống**: phiếu *Thay đổi tiết học* (nhấp vào tiết học trên lịch), hoặc menu dòng và menu cột của bảng — những menu này còn cho phép sửa **hàng loạt**. #### Chia nhỏ một khối lượng giờ Ví dụ: 4 giờ mỗi tuần của một khóa học Toán có thể thành: - 4 tiết học 1 giờ, hoặc - 2 tiết học 2 giờ, hoặc - 1 tiết học 2 giờ + 2 tiết học 1 giờ. Tùy bạn chọn theo nhịp giảng dạy của mình. Bộ đếm của khóa học theo dõi tiến độ của bạn liên tục (xem bên dưới). ##### Phân bổ tự động Menu Thao tác có mục **Phân bổ tự động**, lấp một lần cho xong **phần giờ còn thiếu** của từng khóa học: nó thêm các tiết học có thời lượng bạn chọn (1 hoặc 2 khung giờ của lưới, 3 và 4 với dạng lịch — nên giá trị quy ra giờ phụ thuộc thời lượng khung giờ của thời khóa biểu) và kết thúc bằng một tiết học ngắn hơn nếu phần dư không tròn. Nó tôn trọng các tiết học đã tạo, đặt sẵn giáo viên và phòng học mặc định, và để tất cả ở trạng thái **chưa xếp**. Nó chỉ tác động lên các **khóa học đang hiển thị**: hãy kết hợp với **bộ lọc** (Lọc) theo môn học hoặc theo loại để chỉ phân bổ, chẳng hạn, những khóa học “lý thuyết”. Ở **chế độ xem bảng**, nó xử lý **tất cả các lớp** cùng lúc; ở nơi khác, chỉ **lớp đang chọn**. #### Bộ đếm giờ của từng khóa học Mỗi khóa học ở bên trái mang một bộ đếm đặt **số giờ đã tạo** đối chiếu với **khối lượng mục tiêu** khai báo ở bước 4 (ví dụ `3 h / 4 h`). Chính **vẻ ngoài của thẻ** cho bạn biết tiến độ: - **Dưới mức mục tiêu**: vẻ ngoài bình thường — vẫn còn giờ phải tạo. - **Đúng bằng mục tiêu**: thẻ **mờ đi** (giảm độ đậm), dấu hiệu cho biết đã xong. - **Vượt mục tiêu**: **viền đỏ** — bạn đã tạo quá nhiều giờ. Còn chấm màu của bộ đếm thì chỉ lấy **màu của môn học** (nên nó có thể xanh lá, xanh lam… chẳng liên quan gì tới tiến độ); khi rê chuột, thẻ được gạch chân bằng màu nhấn của giao diện. Rê chuột cũng hiện một bong bóng nêu chi tiết **thành phần** các tiết học đã tạo (thời lượng, loại, tuần luân phiên, bản nháp / đã hủy). ##### Nhóm con và chỉ báo cân bằng Khi một khóa học được tách thành **phân vùng** (nhiều nhóm con học **cùng một lúc**, điển hình là chia đôi lớp), bộ đếm **không nhân** với số nhóm: một phân vùng chỉ tính **một lần** — nếu không, tổng số sẽ hiện `n × khối lượng`, điều chẳng có ý nghĩa gì. Việc còn lại là kiểm tra xem mọi nhóm con có thật sự nhận cùng một khối lượng hay không: đó là vai trò của biểu tượng [scale-balanced] khi ấy xuất hiện bên phải khóa học. - **Cân màu xanh lá** — *Nhóm trong phân vùng ở trạng thái cân bằng*: mọi nhóm con có cùng số giờ. - **Cân màu cam** — *Nhóm trong phân vùng mất cân bằng*: một nhóm con có nhiều hoặc ít giờ hơn các nhóm khác. Rê chuột lên biểu tượng sẽ liệt kê **chi tiết theo từng nhóm** (số giờ của mỗi nhóm con), để bạn nhận ra ngay nhóm nào cần bù. #### Nhân bản một tiết học Có hai mức nhân bản cùng tồn tại. **Nhân bản nhanh.** Biểu tượng Tạo bản sao — có mặt trên thẻ post-it cũng như trên mỗi dòng của bảng — tạo **một bản sao** của tiết học trong **vùng tạm thời** (chưa xếp), kèm cả thuộc tính. Lý tưởng để làm liền một loạt tiết học giống nhau. **Nhân bản nâng cao.** Trong phiếu của tiết học (cửa sổ *Thay đổi tiết học*), nút sao chép có mũi tên nhỏ mở ra một menu phong phú hơn nhiều, dùng nhiều nhất ở chế độ **thời khóa biểu / lịch**. Trước hết bạn chọn **bao nhiêu** bản sao (1 đến 999) — hoặc, trên thời khóa biểu dạng lịch, **cho tới một ngày** — rồi chọn **cách** đặt chúng: - **Tiết học mới trong vùng tạm thời** — các bản sao được để lại chưa xếp. - **Cùng khung giờ** — lặp lại tiết học trên đúng khung giờ đó. - **Khung giờ trống tiếp theo** — tự động tìm những khung giờ hợp với thời lượng. - **Ngày tiếp theo** / **ngày trước đó** — dịch sang các ngày liền kề. - **Tuần tiếp theo** / **tuần trước đó** — *(chỉ với dạng lịch)* chuyển từ tuần này sang tuần khác. - **Chọn khung giờ** — chính bạn chỉ ra những khung giờ trống trên bảng lịch. Ở các tùy chọn theo ngày hoặc theo tuần, một nút **“trống”** giới hạn việc tìm kiếm chỉ trong những khung giờ chưa bị chiếm. Với dạng lịch, việc tìm kiếm này còn có thể vượt ra ngoài thời khóa biểu hiện hành khi đang bật so sánh giữa nhiều thời khóa biểu. #### Ghi chú Bạn có thể gắn một **ghi chú** (nhận xét tự do) vào một tiết học qua biểu tượng Nhận xét. Có thể có nhiều ghi chú, với các **mức hiển thị** khác nhau: - chỉ quản trị viên, - quản trị viên + giáo viên, - tất cả mọi người (học sinh nhìn thấy, và hiện trên bảng thông tin). Các ghi chú xuất hiện trong bong bóng khi rê chuột lên tiết học trên thời khóa biểu. #### Tiết học phức hợp Với những cấu hình tinh vi hơn, xem trang chuyên biệt: [Tiết học phức hợp](#page-core-concepts.complex-lessons). Tóm tắt: - **Luân phiên** (tuần A/B) — Thêm tuần ở góc trên bên phải của tiết học, thêm một tuần luân phiên. - **Nối tiếp** (liền nhau) — kéo thả một tiết học xuống dưới một tiết học khác. - **Liên kết** (nửa nhóm luân phiên) — nút xuất hiện giữa hai tiết học nối tiếp. - **Đồng giảng** (nhiều giáo viên trên cùng một tiết học) — chọn nhiều giáo viên trên Phân công giáo viên. #### Thao tác hàng loạt Menu Thao tác ở góc trên bên phải mở ra các thao tác hàng loạt: - **Hủy bỏ vị trí** của tất cả các tiết học (trừ những tiết học đã khóa), - **Mở khóa** các vị trí đã khóa, - **Xóa các phòng học đã chỉ định**, - **Gán các phòng học đã cấu hình sẵn** (phòng mặc định của lớp hoặc của giáo viên, trừ các phòng chuyên biệt), - **Phân bổ tự động** các tiết học trên 1 hoặc 2 khung giờ, - **Nhập / xuất qua bảng tính** (xem [Nhập hàng loạt](#page-timetables.mass-import)), - **Xóa tất cả các tiết học** của một lớp ⚠. #### Phát hiện lỗi theo thời gian thực Mỗi lần bạn thay đổi, Omniscol kiểm tra tính nhất quán và hiển thị cảnh báo ở đầu màn hình cũng như trên các lớp / tiết học liên quan. Xem [Chẩn đoán](#page-glossary.diagnostic). #### Lưu lại ⚠ Việc xóa một tiết học là **tức thì và vĩnh viễn** (trừ khi bạn chưa lưu lại). Hãy lưu thường xuyên bằng Lưu. Màn hình này không có chức năng Hoàn tác / Làm lại toàn cục. Trước khi lưu, hãy đọc lại các thao tác xóa và các thao tác hàng loạt. #### Tiếp theo là gì Bước tiếp theo: [Tạo tự động](#page-timetables.generation). #### Hướng dẫn — Phân bổ thời gian của một khóa học 1. **Bạn đã khai báo khối lượng giờ của từng khóa học** trên các lớp của nó ở bước 4. Bước này **chia nhỏ** khối lượng đó thành từng tiết học riêng lẻ (một tiết học = một khung giờ, về sau được thuật toán hoặc chính bạn xếp chỗ). 2. **Hãy chọn một lớp ở bên trái.** Bảng bên phải hiện các tiết học đã tạo cho lớp đó, gom theo khóa học. Bộ đếm của mỗi khóa học đặt số giờ đã tạo đối chiếu với khối lượng mục tiêu (`3 h / 4 h`): thẻ mờ đi khi đạt đúng khối lượng, chuyển sang viền đỏ nếu vượt quá. 3. **Hãy nhấp đúp vào một khóa học** để thêm một tiết học với các thông số mặc định (thời lượng, loại). Hãy kéo **viền dưới** của tiết học để chỉnh thời lượng. Hãy nhấp các **biểu tượng** trên thẻ để đổi nhóm, giáo viên, phòng học, tài nguyên. 4. **Hãy chia nhỏ khối lượng theo ý bạn**: một khóa học 4 giờ = 4 tiết học 1 giờ, hoặc 2 tiết học 2 giờ, hoặc kết hợp cả hai. Thẻ của khóa học mờ đi ngay khi bạn đạt đúng khối lượng mục tiêu. Khi có phân vùng (nhóm con học cùng lúc), biểu tượng [scale-balanced] màu xanh lá / màu cam cho biết mọi nhóm con có nhận cùng một khối lượng hay không. 5. **Với một loạt tiết học giống hệt nhau**, hãy tạo tiết học đầu tiên rồi **nhân bản**: nhân bản nhanh vào vùng tạm thời bằng Tạo bản sao, hoặc nhân bản nâng cao từ phiếu (cùng khung giờ, ngày / tuần liền kề, khung giờ trống…), nhất là ở chế độ lịch. 6. **Tiết học phức hợp** (luân phiên A/B, nối tiếp thành khối kép, liên kết có xoay vòng, đồng giảng nhiều giáo viên): xem các biểu tượng chuyên dụng trên thẻ của tiết học và trang [Tiết học phức hợp](#page-core-concepts.complex-lessons). 7. **Bước tiếp theo**: [Tạo tự động](#page-timetables.generation). #### Xem thêm - [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [Khóa học](#page-glossary.course) - [Tiết học / Giờ học](#page-glossary.lesson) ### 3.12 Phân bổ phòng học tự động *Source: `help/vi/timetables/auto-room-assignment.md` · id: timetables.auto-room-assignment · Audience: admin · Updated: 2026-08-08* **Phân bổ phòng học tự động** gán phòng học cho cả một loạt tiết học đã chọn **chỉ trong một lần**. Bạn chọn một **tập hợp phòng học ứng viên**, thuật toán đề xuất phương án tối ưu, còn bạn **duyệt lại rồi xác nhận** — từng dòng một nếu cần. Đây là công cụ **chỉ dành cho việc phân bổ phòng học**. Nó không dời tiết học sang thời điểm khác, không đổi thời lượng, không gán tài nguyên và cũng không chạy lại toàn bộ việc tạo thời khóa biểu. Nếu bạn muốn phòng học được đặt **ngay trong lúc** tạo tự động, hãy xem [Tạo tự động](#page-timetables.generation). #### Tìm công cụ này ở đâu Công cụ này nằm trong **chế độ xem bảng** của màn hình [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) (mỗi dòng là một tiết học). 1. Hiển thị các tiết học ở **chế độ xem bảng**. 2. **Đánh dấu** ít nhất hai tiết học (cột chọn). Khi cần, hãy dùng **sắp xếp** và **bộ lọc theo cột** để khoanh vùng những tiết học cần xử lý — chẳng hạn những tiết **đang chờ phòng học**. 3. Mở thao tác phòng học theo nhóm ở dòng tiêu đề, Chỉ định phòng học. 4. Trong bộ chọn phòng học, hãy bật chế độ Phân bổ phòng học tự động. Những tiết học **từ xa** hoặc **tự học** (tùy theo [hình thức](#page-glossary.lesson-modality) của chúng) sẽ bị bỏ qua: chúng không cần phòng học thực tế. Tiết học **kết hợp** thì vẫn được tính đến. Hãy để **ngoài vùng chọn** những tiết học có phòng học đang bị **khóa**: công cụ sẽ không ghi đè lên khóa đó. #### Chọn tập hợp phòng học ứng viên Ở chế độ tự động, bộ chọn hiển thị phòng học được nhóm theo **cơ sở** rồi theo **tòa nhà**, với ô đánh dấu ở ba cấp: - đánh dấu một **cơ sở** sẽ lấy toàn bộ phòng học đủ điều kiện của cơ sở đó; - đánh dấu một **tòa nhà** sẽ lấy toàn bộ phòng học của tòa nhà đó; - đánh dấu một **phòng học** sẽ thêm riêng phòng đó. Những phòng học đã được phân bổ cho các tiết học đang chọn sẽ **được đánh dấu sẵn**. Phòng học có **chuyên ngành** không khớp với bất kỳ tiết học nào đang chọn, hoặc **quá nhỏ** so với mọi tiết học phù hợp, sẽ **bị vô hiệu hóa**. Sức chứa chuyển sang màu **đỏ** khi phòng học không đủ chỗ cho bất kỳ tiết học phù hợp nào, và sang màu **cam** khi phòng chỉ đủ chỗ cho một phần trong số đó. Hãy xác nhận tập hợp này để bắt đầu tính toán. #### Thuật toán làm gì Từ tập hợp đã chọn, thuật toán phân bổ **một phòng học cho mỗi tiết học**, tuân thủ những **quy tắc bắt buộc** và tối ưu phần còn lại: - **chuyên ngành** mà môn học của tiết học yêu cầu; - **sức chứa** của phòng học so với sĩ số của tiết học; - **tình trạng sử dụng hiện có** của phòng học trên khung giờ đó — tiết học của các thời khóa biểu khác hoặc của các tài khoản liên kết khác, sự kiện, ràng buộc thời gian của phòng học, [phòng lớn](#page-glossary.large-room) dùng chung; - **phòng học cần ưu tiên** của lớp — tức những phòng học thuộc một trong các [đơn vị](#page-timetables.sites-rooms--campus) hoặc mang một trong các thẻ đã chọn trong hồ sơ của lớp — sẽ được thử trước; khi tất cả đều đã kín, thuật toán chuyển sang một phòng học phù hợp khác; - **ưu tiên cơ sở** tham chiếu của tiết học; - **tuần luân phiên**: hai tiết học không bao giờ rơi vào cùng một tuần có thể dùng chung một phòng học. Thuật toán có thể **sắp xếp lại phòng học giữa các tiết học đang chọn** để bố trí tốt hơn, và ưu tiên **phòng học nhỏ nhất còn phù hợp**. Khi phòng học hiện tại đã phù hợp mà phòng khác chỉ mang lại lợi ích không đáng kể, thuật toán **giữ nguyên** thay vì tạo ra một thay đổi vô ích. Nếu **không có** phòng học nào trong tập hợp phù hợp, tiết học sẽ được để lại ở trạng thái **không có giải pháp**. #### Duyệt lại, điều chỉnh, áp dụng Việc tính toán mở ra một **cửa sổ xem trước**: chừng nào cửa sổ còn mở, thời khóa biểu thực tế **vẫn không bị thay đổi**. Mỗi dòng ở đó mang một **trạng thái** — đã phân bổ, không đổi, không có giải pháp, hoặc đã điều chỉnh thủ công — cùng với phòng học **trước đó** và phòng học **được đề xuất**. - **Điều chỉnh một dòng**: hãy nhấn vào phòng học được đề xuất của dòng đó để mở bộ chọn thông thường. Lựa chọn thủ công **không bị giới hạn** trong tập hợp ứng viên ban đầu; dòng chuyển sang trạng thái “đã điều chỉnh” và mọi lỗi tương thích được tính lại ngay trên toàn bộ các dòng. - **Cài đặt lại**: một nút khôi phục đề xuất của thuật toán trên những dòng đã điều chỉnh. - **Bỏ đánh dấu** một dòng sẽ **loại** dòng đó khỏi việc áp dụng. - **Xác nhận** áp dụng những dòng đã đánh dấu vào thời khóa biểu; **Hủy** đóng cửa sổ mà không thay đổi gì. Sau khi áp dụng, những tiết học đã thay đổi sẽ **nhấp nháy** và một bản tóm tắt cho biết **số tiết học đã thay đổi, số tiết không đổi và số tiết không có giải pháp**. #### Cần lưu ý - Một tiết học vốn mang **nhiều phòng học** có thể bị rút xuống còn **một phòng duy nhất** sau khi phân bổ tự động. - Một tiết học **chưa được đặt vào khung giờ nào** vẫn có thể nhận được phòng học (theo tập hợp, chuyên ngành, sức chứa và cơ sở), nhưng khi đó không thể kiểm tra lỗi tương thích về thời gian cho tiết học ấy. - Nếu chỉ muốn **đặt phòng học mặc định** (của lớp hoặc của giáo viên, không tính phòng chuyên biệt) hoặc **xóa** các phân bổ, menu Thao tác có sẵn những thao tác hàng loạt riêng — xem [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution). #### Xem thêm - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations) - [Phòng lớn](#page-glossary.large-room) ### 3.13 Bước 6b — Nhập hàng loạt khóa học từ bảng tính *Source: `help/vi/timetables/mass-import.md` · id: timetables.mass-import · Audience: admin · Updated: 2026-06-02* Nếu bạn đã có sẵn danh sách các khóa học trong một bảng tính — bản xuất từ hệ thống thông tin trường học (SIS) của bạn, một bảng lịch đã chuẩn bị sẵn trên Excel, hay cả bản xuất từ một phần mềm khác như Hyperplanning hoặc Aurion — bạn có thể **sao chép rồi dán** thẳng vào Omniscol. #### Vào màn hình nhập Trong menu Thao tác (trên màn hình phân bổ thời gian), hãy chọn **“Bảng tính - nhập và xuất dữ liệu”**. Nếu chưa có lớp nào được tạo, bạn cũng có một liên kết trực tiếp. Việc nhập diễn ra theo **bốn bước**. #### Bước 1 — Dán bảng Một vùng soạn thảo mở ra cùng **khung cột đã định sẵn** của Omniscol. Các cột được định kiểu theo vị trí (cột thứ ba = môn học, v.v.); bạn có thể **sắp xếp lại các cột của khung** cho khớp với thứ tự trong bảng tính nguồn — nhờ vậy việc sao chép rồi dán từ Excel hay Google Sheets cho kết quả sạch, không phải viết lại tệp của bạn. Các trường được nhận diện: - **Lớp** + **môn học** (tối thiểu, để một khóa học hợp lệ), - **Thời lượng**, hoặc **giờ bắt đầu + giờ kết thúc** (và **ngày** cho các tiết học đã đặt sẵn vị trí), - **Nhóm** (dấu phân cách tự do khi có nhiều nhóm), - **Loại tiết học** (Bài tập, Thực hành, Lý thuyết…), - **Giáo viên** (dấu phân cách tự do), - **Cơ sở** + **Phòng học** (một tiết học có thể dùng nhiều phòng học, xem [nhiều phòng học](#page-glossary.multi-room)), - **Tài nguyên**, - **Tuần luân phiên** (dạng `A/B`, `1/2`…), - **Ghi chú**. Bạn cũng có thể nhập **danh sách các khóa học đã tạo** (đó chính là kết quả của việc xuất dữ liệu) nếu muốn chỉnh lại chúng trong Excel rồi nhập lại. #### Bước 2 — Kiểm tra bảng lịch và các cơ sở Omniscol hiển thị các giờ đã nhận diện (vẫn còn chỉnh được). Nếu có nhiều cơ sở được suy đoán, bạn có thể **kéo thả** những lớp, phòng học và tài nguyên bị gán nhầm sang đúng cơ sở. Nếu một cơ sở thừa đã được tạo, hãy dọn trống cơ sở đó và nó sẽ biến mất. #### Bước 3 — Phân định các trường hợp nhập nhằng Sau khi phân tích các giá trị đã nhập, bảng hiện lại với các **menu thả xuống** trên những trường còn nhập nhằng. Hãy kiểm tra và sửa các cặp tương ứng được đề xuất. Đây là nơi bạn quyết định, chẳng hạn: - “Toán” = chính xác là môn học nào (có kèm loại hay không)? - “Nguyễn Văn Minh” = ai trong ba giáo viên trùng tên? - “A102” = phòng học A102 của cơ sở Hà Nội, của cơ sở Đà Nẵng, hay của một cơ sở khác? #### Bước 4 — Tạo các thực thể chưa có Nếu việc nhập phát hiện những thực thể chưa có trong dữ liệu (lớp, nhóm, nhóm của nhóm, giáo viên, môn học tùy chỉnh, loại tiết học, cơ sở, phòng học, tài nguyên…), một bước cuối cùng sẽ đề nghị bạn: - **xác nhận việc tạo** trong thời khóa biểu, - với **môn học tùy chỉnh** và một số **giáo viên**, yêu cầu tạo bên phía **Quản trị** nếu cần, để chúng dùng được trong toàn trường. #### Giới hạn Việc nhập giúp tự động hóa khâu chuẩn bị, nhưng không thay cho một lần kiểm tra của con người: - **Tiết học phức hợp** (nhiều luân phiên, nối tiếp, liên kết) đôi khi được dựng lại chưa trọn vẹn — hãy tính đến một lượt hoàn thiện thủ công. - Với những cách đặt tên nội bộ rất riêng, một số cột vẫn còn nhập nhằng — bạn sẽ quyết định ở bước 3. - Với việc **chuyển đổi chuyên biệt** từ một phần mềm cụ thể (Aurion, ASC…), đã có sẵn [bộ chuyển đổi chuyên dụng](#page-migration.overview). #### Hướng dẫn — Chuẩn bị rồi nhập các khóa học 1. **Trước khi bấm Nhập**, hãy dành 10 phút chuẩn bị tệp nguồn. Một tệp sạch = một lần nhập không phải làm đi làm lại. Trong Excel hoặc Google Sheets, hãy xóa các dòng gộp ô, các tiêu đề nhiều dòng và các dòng tổng phụ. **Một dòng = một tiết học.** Hãy giữ nhãn nhất quán cho lớp, môn học, giáo viên, nhóm, cơ sở, phòng học và tài nguyên. 2. **Hãy mở màn hình nhập** từ màn hình phân bổ thời gian, menu *Thao tác → Bảng tính - nhập và xuất dữ liệu*. Hãy sắp xếp lại các cột của khung cho khớp với thứ tự trong bảng tính của bạn, rồi **dán bảng** vào vùng soạn thảo. Đó là bước 1. 3. **Bước 2 — kiểm tra bảng lịch và các cơ sở.** Omniscol hiển thị các giờ đã nhận diện và các cơ sở đã suy đoán. Nếu cần, hãy kéo thả các lớp, phòng học và tài nguyên sang đúng cơ sở, hoặc dọn trống một cơ sở thừa để nó biến mất. 4. **Bước 3 — phân định các trường hợp nhập nhằng.** Bảng hiện lại với các menu thả xuống trên những trường còn nhập nhằng: môn học chính xác, giáo viên trùng tên, phòng học trùng tên, v.v. Bạn quyết định ở đây. 5. **Bước 4 — tạo các thực thể chưa có.** Hãy xác nhận những mục được đề xuất tạo theo tệp của bạn: lớp, nhóm, nhóm của nhóm, giáo viên, môn học và loại tiết học, cơ sở, phòng học, tài nguyên. Với môn học tùy chỉnh và một số giáo viên, bạn cũng có thể yêu cầu tạo bên phía Quản trị. Các khóa học sau đó được đưa vào thời khóa biểu. 6. **Khi kết thúc**, bạn có một thời khóa biểu đã cấu hình một phần. Hãy tính đến một lượt hoàn thiện thủ công cho những trường hợp phức hợp (nhiều luân phiên, nối tiếp, liên kết) mà việc nhập không phải lúc nào cũng dựng lại đầy đủ. Với việc chuyển đổi từ một phần mềm khác, xem [Chuyển đổi từ một phần mềm khác](#page-migration.overview). #### Xem thêm - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Chuyển đổi từ một phần mềm khác](#page-migration.overview) - [Bước trước — Phân bổ thời gian](#page-timetables.hour-distribution) - Bước tiếp theo — [Tạo tự động](#page-timetables.generation) ### 3.14 Bước 7 — Tạo tự động *Source: `help/vi/timetables/generation.md` · id: timetables.generation · Audience: admin · Updated: 2026-06-24* Khi các tiết học đã được tạo, bạn xếp chúng lên lưới thời gian. Trên thực tế, dựng một thời khóa biểu là một **chu trình**, không phải một thao tác duy nhất: 1. bạn **xếp tay một vài tiết học** — để cố định những gì không được xê dịch hoặc khóa các ràng buộc mạnh (tiết học đã ấn định ngày, kỳ thi, các điểm neo thủ công); 2. bạn **chạy tạo tự động** (toàn bộ hoặc một phần) để thuật toán xếp phần còn lại theo các ràng buộc; 3. bạn **điều chỉnh nhỏ lẻ** — sửa một trường hợp riêng, dời một tiết học, đổi ý; 4. và việc này **có thể lặp lại**: bạn chạy lại theo tiến độ (khi có thêm tiết học, hoặc — ở chế độ lịch — theo từng khoảng ngày, theo từng đợt lớp hay cơ sở). Bạn cũng có thể làm **100% bằng tay**, không dùng công cụ tạo tự động. Việc xếp thủ công (đặt, dời, khóa, từng tiết một hay theo lô) có trang riêng: [Xếp thủ công](#page-timetables.manual-placement). Để nắm luồng tổng thể, xem [Tổng quan về mô-đun](#page-timetables.overview). Trang này nói về việc **tạo tự động**. #### Việc tạo tự động xếp các tiết học chứ không tạo ra chúng Công cụ tạo tự động chỉ làm việc với những tiết học đã tồn tại. Nó tìm cho mỗi tiết học một khung giờ và một phòng học. Còn giáo viên thì vẫn là những người bạn đã phân công cho khóa học: công cụ tạo tự động không thay thế họ, cũng không chỉ định người khác, nó chỉ loại bỏ những khung giờ mà họ không rảnh. Từ đó là thứ tự cần tuân theo: 1. **khai báo môn học và khối lượng giờ** cho từng lớp: đó chính là *khóa học*, một dòng khối lượng giờ; 2. **tạo các tiết học** từ khối lượng giờ đó, ở bước [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) — đây mới là thứ mà công cụ tạo tự động xếp; 3. **rồi mới chạy tạo tự động**. Mở thẻ tạo thời khóa biểu khi chưa tạo tiết học nào thì chỉ gặp một nút bất động: không có gì để xếp, và màn hình kiểm tra hiển thị **Không có tiết học nào được xác định**. #### Vì sao nút tạo thời khóa biểu bị làm mờ Nút này phản ánh phần chẩn đoán hiển thị ngay phía trên, ở thẻ Đang kiểm tra. Có ba tình huống: - **Không có cảnh báo gây chặn nào, hoặc chỉ có cảnh báo màu vàng** — nút vẫn hoạt động, chỉ trông nhạt hơn. Một cảnh báo (màu vàng) báo hiệu một rủi ro, chứ không phải một điều bất khả; màu xanh dương chỉ mang tính thông tin. - **Một cảnh báo gây chặn (màu đỏ)** — nút chính bị vô hiệu hóa. Bạn vẫn khởi chạy được phép tính qua Thêm tùy chọn, và tự chịu rủi ro: công cụ tạo tự động sẽ không thấy vấn đề mà cảnh báo nêu ra, nó vẫn cho ra một thời khóa biểu, và bạn là người gánh kết quả ấy. Sửa cảnh báo vẫn hơn. - **Một cảnh báo chặn hoàn toàn** — cả nút **lẫn** menu tùy chọn đều bị vô hiệu hóa. Thiếu một dữ liệu mà không có nó thì phép tính chẳng còn ý nghĩa gì: không có tiết học nào, không có lớp nào dùng được (một lớp chỉ dùng được khi nó có cơ sở *và* có tiết học), hoặc một cơ sở đang được dùng mà lưới thời gian chưa được xác định. Một trường chưa tạo cơ sở nào rơi đúng vào trường hợp này: không có cơ sở thì không lớp nào dùng được. Trong trường hợp cuối này, thống kê **Số lớp đã cấu hình** chuyển sang màu đỏ. Mỗi cảnh báo đều được nêu rõ bằng lời trong danh sách, kèm lớp, cơ sở hay giáo viên liên quan. Về thang mức độ nghiêm trọng và cách đọc nó, xem [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts); còn về cách gỡ rối một lượt tạo không thành, xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Khả dụng Việc tạo tự động khả dụng trên thời khóa biểu [theo tuần](#page-glossary.weekly-timetable), [theo chu kỳ](#page-glossary.cyclic-timetable) và [theo lịch](#page-glossary.calendar-mode). Ở chế độ lịch, các tiết học được xếp vào ngày thực và các tùy chọn có thể giới hạn khoảng ngày cần tạo. #### Chuẩn bị Trước khi nhấn Tạo thời khóa biểu: - hãy mở thẻ **Tạo thời khóa biểu** (mang nhãn Đang kiểm tra trên thời khóa biểu theo lịch) để xem các thống kê tổng thể, - hãy sửa các **cảnh báo gây chặn** (màu đỏ) — xem mục trước về nút bị làm mờ, - hãy đọc lại các **cảnh báo** (màu vàng) — chúng không chặn nhưng báo hiệu một rủi ro (thời gian rảnh quá gò bó, sức chứa sát ngưỡng, v.v.). Màn hình còn cho biết: - số tiết học đã tạo so với số tiết học đã xếp, - khối lượng giờ đã nhập so với giờ làm việc của giáo viên, - các nhóm đã được gán ít nhất một khóa học (để phát hiện những nhóm bị bỏ quên hoặc không dùng đến). #### Khởi chạy Hãy nhấn Tạo thời khóa biểu. Omniscol khởi động một môi trường tính toán riêng, chạy song song. Thời lượng phụ thuộc vào quy mô thời khóa biểu, số lượng ràng buộc và các tùy chọn đã chọn. Phía nhà trường không có hàng đợi nào phải quản lý; phần khởi tạo thường mất khoảng mười giây trước khi việc tính toán thật sự bắt đầu. Phép tính bị **giới hạn ở hai mươi phút**, nhưng trên thực tế mức đó vượt xa nhu cầu: một thời khóa biểu khoảng 200 khóa học thường trả kết quả trong chừng hai mươi giây — thuật toán gần như tức thời, phần nặng chủ yếu nằm ở lúc khởi động máy — và ~600 khóa học trong khoảng một phút. Với một trường rất lớn tiệm cận mức giới hạn này, đội ngũ Omniscol có thể tăng công suất của máy tính toán, theo yêu cầu. #### Các tùy chọn tạo tự động Theo mặc định, việc tạo tự động xếp mọi tiết học đã tạo mà chưa được đặt vị trí. Nó cũng có thể dời những tiết học đã đặt nếu việc đó làm thời khóa biểu tốt hơn. Các tiết học đã khóa thì giữ nguyên vị trí. Menu tùy chọn cho phép làm nhiều việc, trong đó có: - quản lý phòng học với ba lựa chọn: gán tối ưu (mặc định), chỉ kiểm tra, hoặc bỏ qua hoàn toàn phòng học; - chỉ chọn một số lớp hoặc một số môn học; - giới hạn một thời khóa biểu theo lịch trong một cửa sổ ngày mục tiêu; - bỏ qua những phòng học đã gán hoặc những vị trí hiện tại; - chỉ gán phòng học mà không tính lại toàn bộ việc xếp lịch; - chạy một lượt tạo nhanh, không tối ưu hóa; - cho phép xếp linh hoạt trên các khung giờ con của lưới thời gian khi thời khóa biểu có dùng khung giờ con. Các thông số tối ưu hóa nâng cao còn cho phép giảm giờ trống, tránh xếp hai tiết học cùng một môn học trong cùng một ngày, dàn đều các tiết học, đặt số giờ tối thiểu hoặc tối đa, hoặc chọn số ngày có mặt của giáo viên. Thông lệ khác nhau tùy từng nước: ở Pháp, một số trường tìm cách giảm số ngày có mặt của giáo viên; trong bối cảnh khác, người ta lại có thể muốn dàn những ngày ấy ra, chẳng hạn để bố trí các nhiệm vụ khác tại chỗ. #### Các tùy chọn riêng của chế độ lịch Ở chế độ lịch, các tùy chọn nâng cao có thể giới hạn việc tạo tự động trong một **cửa sổ ngày mục tiêu** ngắn hơn khoảng ngày tổng thể của thời khóa biểu. Cách này hữu ích khi chỉ cần tạo một phần của năm học: thử nghiệm trên một tháng, dựng dần một học kỳ, hoặc làm lại một giai đoạn đã chuẩn bị từ trước. Tùy chọn quan trọng còn lại là **nén các ngày học** cho các lớp. Theo mặc định, công cụ tạo tự động thiên về tìm sự cân đối trên các ngày sẵn có; nếu bạn chỉ tạo một phần các tiết học của cả năm, cách xử lý ấy có thể dàn các tiết học ra một cách giả tạo. Việc nén cho phép bạn yêu cầu gom lại: - vào đầu cửa sổ; - vào cuối cửa sổ; - không ưu tiên đầu hay cuối, nhưng vẫn giữ các ngày học gọn nhất có thể. #### Việc tạo tự động làm việc như thế nào Hiểu được lô-gic của công cụ tạo tự động giúp bạn đoán trước nó sẽ xếp gì, sẽ hy sinh gì, và điều hướng nó ra sao. Nó theo đuổi **hai mục tiêu, theo đúng thứ tự này**: 1. **Xếp vừa tất cả** — ưu tiên tuyệt đối: đặt được vị trí cho *mọi* tiết học trong khi vẫn tuân thủ các ràng buộc cứng. 2. **Tối ưu hóa chất lượng** — khi mọi thứ đã vừa, giảm giờ trống, làm mượt các ngày học, đáp ứng các ưu tiên. Nó xuất phát từ một trạng thái sạch (các tiết học **đã khóa** giữ nguyên chỗ, những tiết còn lại được xếp lại từ đầu) và xử lý **từ tiết học khó nhất đến tiết học dễ nhất**. Độ khó chủ yếu đến từ **sự chật hẹp của các ràng buộc**: một khóa học mà giáo viên chỉ rảnh một buổi chiều mỗi tuần, hay một **khối bốn giờ** phải xếp liền mạch, sẽ được đưa lên đầu. Khi độ khó ngang nhau, nó luân phiên các môn học và xử lý **những môn hiếm trước những môn phổ biến**, để chia đều cơ hội cho mỗi môn. ##### Khi không phải mọi thứ đều vừa: sự hy sinh Nếu thời khóa biểu bị ràng buộc quá chặt để xếp vừa tất cả, công cụ tạo tự động **không bỏ cuộc**: nó chọn ra tập hợp nhỏ nhất các tiết học phải **để sang một bên** sao cho phần còn lại vẫn vừa, rồi tối ưu hóa thời khóa biểu chưa đầy đủ đó. Những tiết học bị hy sinh vẫn nằm trong thanh post-it các tiết học cần xếp. Vì việc sắp thứ tự đã ưu tiên cái khó nhất và cái hiếm nhất, nên thường chính những tiết học **dễ xếp và có số lượng lớn** mới là bên nhường bước: giờ thứ 5 của một môn học nhiều giờ sẽ bị bỏ lại trước giờ duy nhất của một môn học hiếm. Bạn vẫn nắm quyền quyết định trong những đánh đổi này: hãy **khóa** những tiết học không bao giờ được xê dịch — được xếp trước tiên, chúng sẽ không bị hy sinh — và hãy **nới bớt tình trạng quá nhiều ràng buộc** (mở thêm khung giờ, nới rộng thời gian rảnh) ở những chỗ có thể, để tổng thể xếp vừa. ##### Ràng buộc cứng và ràng buộc mềm Không phải ràng buộc nào cũng như nhau: - **Cứng** — không bao giờ bị vi phạm: **sự chiếm dụng** (một giáo viên, một lớp, một nhóm, một phòng học hay một tài nguyên không thể được dùng vào hai việc cùng một lúc), những khoảng được đánh dấu **Bận** (màu đen) trên một giáo viên, một lớp, một phòng học, một môn học hay một nhóm, việc **không còn phòng học hay tài nguyên nào trống** vào khung giờ đó, các **ngày đóng cửa**, các **vị trí đã khóa** và các **căn chỉnh nhóm**. - **Mềm** — tất cả phần còn lại, những gì công cụ tạo tự động có thể **vi phạm** với cái giá là một điểm trừ để xếp vừa được tất cả: những khoảng được đánh dấu **Không mong muốn** (màu đỏ — nên tránh, chứ không bị cấm) và các ưu tiên tối ưu hóa (độ gọn, độ dàn trải, gom theo ngày…). Một ràng buộc ưu tiên *cao* có sức nặng lớn hơn một ràng buộc ưu tiên *thấp*, nhưng không ràng buộc nào gây chặn. Công cụ tạo tự động cũng thử nới lỏng ở vài chỗ cụ thể (xếp vào các khung giờ con của lưới thời gian…) khi đó là cái giá phải trả để không phải hy sinh tiết học nào. ##### Kiểm tra mà không tối ưu hóa Tùy chọn **tạo nhanh** (không tối ưu hóa) chạy một lượt rút gọn, chủ yếu để trả lời một câu hỏi: *liệu mọi thứ có vừa không?* Hữu ích để thử tính khả thi của một cấu hình trước khi bỏ thời gian cho một lượt tối ưu hóa đầy đủ. #### Kết quả - **Dải thông báo màu xanh lá**: việc tạo tự động thành công. Các tiết học trong phạm vi đã yêu cầu đều xếp được và bạn có thể xem xét kết quả. - **Dải thông báo màu đỏ**: không tìm được lời giải đầy đủ nào. Thời khóa biểu tốt nhất đã tính được vẫn xem được, còn những tiết học chưa xếp thì hiện trong thanh post-it để bạn chẩn đoán. Xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Hợp nhất hay tạo bản sao Sau một lượt tạo tự động thành công, Omniscol đưa ra hai lựa chọn: - **Hợp nhất** vào thời khóa biểu hiện tại (kết quả xếp lịch thay thế cái đang có). - **Tạo một bản sao** (thời khóa biểu hiện tại giữ nguyên, kết quả đã tối ưu trở thành một thời khóa biểu mới). Nếu bạn dự định chạy lại về sau (vì bạn dựng dần từng phần chẳng hạn), **đừng hợp nhất**: nếu không, những tiết học đã xếp sẽ trở thành điểm xuất phát cho lượt tạo mới. #### Khóa một tiết học trước khi chạy lại việc tạo tự động Trên một tiết học đã được xếp, hãy dùng **ổ khóa** vị trí để khóa nó lại. Lượt tạo tiếp theo sẽ không dời tiết học ấy mà điều chỉnh những tiết học khác xung quanh. Cách này tiện để cố định những tiết học “không thể xê dịch” (chuyên gia bên ngoài đã ấn định lịch, kỳ thi đã định ngày, các điểm neo thủ công…). Chi tiết đầy đủ ở [Khóa một tiết học](#page-timetables.lesson-lock): khóa hàng loạt, tác động lên phần chẩn đoán (đỏ → cam), cách hành xử của thuật toán. #### Xuất một thời khóa biểu ra JSON Nút [download] chỉ xuất **thời khóa biểu hiện tại** dưới định dạng JSON. Đây không phải bản xuất đầy đủ của tài khoản, vốn được mô tả trong [Nhập và xuất dữ liệu](#page-admin.import-export). Các trường hợp thường gặp: - giữ lại dấu vết của một bản nháp hay một kịch bản trước khi xóa; - lưu trữ một trạng thái trung gian trước một đợt sắp xếp lại lớn; - gửi đúng thời khóa biểu này cho đội ngũ Omniscol trong khuôn khổ hỗ trợ. Cũng như với bản xuất JSON đầy đủ của tài khoản nhà trường, việc nhập ngược trở lại không phải là một thao tác chuẩn mà phía nhà trường tự do dùng được. #### Bước tiếp theo Bước cuối cùng: [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication). #### Hướng dẫn — Chạy một lượt tạo tự động 1. **Việc tạo tự động** xếp các tiết học lên lưới thời gian trong khi vẫn tuân thủ hàng chục ràng buộc (thời gian rảnh, sức chứa, căn chỉnh nhóm, chuyên ngành, tuần luân phiên). Khả dụng trên thời khóa biểu theo tuần, theo chu kỳ và theo lịch. 2. **Hãy kiểm tra thẻ Tạo thời khóa biểu.** Các thống kê tổng thể hiện ra ở đó: số tiết học đã tạo so với số đã xếp, khối lượng giờ đã nhập so với giờ làm việc của giáo viên, cảnh báo gây chặn (màu đỏ), cảnh báo màu vàng (báo trước nhưng không chặn). 3. **Hãy sửa các cảnh báo màu đỏ** trước khi khởi chạy. Chừng nào còn cảnh báo đỏ, việc tạo tự động không thể bắt đầu — trừ khi bạn ép chạy qua menu “Thêm tùy chọn”, nhưng cách đó không được khuyến nghị. Các cảnh báo màu vàng cần bạn cân nhắc nhưng không ngăn việc tạo tự động. 4. **Hãy chỉnh các tùy chọn tạo tự động** nếu cần: phòng học cần gán, chỉ kiểm tra hay bỏ qua; lớp hoặc môn học được nhắm tới; tạo nhanh không tối ưu hóa; bỏ qua những phòng học đã gán hoặc những vị trí hiện tại. Ở chế độ lịch, các tùy chọn nâng cao còn cho phép giới hạn cửa sổ ngày được tạo và nén các tiết học vào đầu giai đoạn, cuối giai đoạn hoặc không ưu tiên đầu cuối. 5. **Hãy nhấn Tạo thời khóa biểu.** Quá trình xử lý chạy ở chế độ nền; màn hình cho biết trạng thái của lượt tạo và cho phép xem xét kết quả khi đã có. 6. **Hãy lưu lại** khi điểm số đã vừa ý bạn. Thời khóa biểu đã được xếp xong. Bước tiếp theo: rà soát các lỗi tương thích nếu có, chỉnh tay những trường hợp riêng (xem [Xếp thủ công](#page-timetables.manual-placement)), rồi công bố. 7. **Bước tiếp theo**: [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication). #### Xem thêm - [Xếp thủ công](#page-timetables.manual-placement) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) - [Công cụ tạo tự động](#page-glossary.solver) - [Phát hiện và xử lý lỗi tương thích](#page-timetables.conflicts) ### 3.15 Bước 8 — Công bố (kích hoạt) một thời khóa biểu *Source: `help/vi/timetables/publication.md` · id: timetables.publication · Audience: admin · Plan: standard · Updated: 2026-06-13* ⚠ Bước **hay bị bỏ quên**: một thời khóa biểu vừa được tạo **không tự động được công bố**. Chừng nào chưa công bố, nó vẫn là bản nháp — chỉ hiển thị trong mô-đun Quản lý thời khóa biểu, và chỉ với các quản trị viên. Chỉ sau khi công bố, thời khóa biểu mới xuất hiện trong mô-đun [Thời khóa biểu](#page-schedules.consult-and-filter) mà mọi người dùng được phép đều tra cứu. #### Cách công bố Trên trang chính của mô-đun Quản lý thời khóa biểu: 1. Chọn **năm học** liên quan trên **dải thời gian ở đầu trang**. Mặc định, **năm học hiện tại** được hiển thị. Nếu bạn đang chuẩn bị cho đầu năm học tiếp theo, hãy nhấn **mũi tên phải của dải thời gian** để chuyển sang năm N+1 — nếu không, bạn sẽ công bố nhầm vào các tuần của năm hiện tại, nơi các tuần đã được gán cho thời khóa biểu đang dùng. Xem [Dải thời gian và điều hướng theo thời gian](#page-core-concepts.timeline-navigation) để hiểu khái niệm chung. 2. Nhấn vào Phân bổ thời khóa biểu (Phân bổ thời khóa biểu). 3. Một lưới hiện ra: các thời khóa biểu theo hàng, các tuần theo cột. 4. Với từng thời khóa biểu, **chọn những tuần** mà nó áp dụng (nhấn hoặc kéo trên dải tuần). Nút Thêm kì học thêm một khoảng tuần nữa cho một thời khóa biểu. 5. Lưu lại bằng Lưu. #### Tài khoản Standard: mỗi tuần một thời khóa biểu Với tài khoản Standard, mỗi tuần chỉ được phép có **một lần công bố**. Nếu bạn muốn công bố hai thời khóa biểu khác nhau, chúng phải nằm trên những khoảng tuần không chồng lên nhau (ví dụ học kỳ 1 và học kỳ 2). > _Option: Nhiều thời khóa biểu cùng hoạt động song song_ #### Công bố đồng thời Khi tài khoản của bạn có khả năng này (bao gồm sẵn trong Premium), bạn có thể công bố **nhiều thời khóa biểu song song** trên cùng những tuần đó. Bộ máy hợp nhất động các khung nhìn: nếu hai thời khóa biểu đã công bố dùng chung một giáo viên hay một phòng học, thời khóa biểu hợp nhất của người (hoặc phòng) đó hiển thị các tiết học của cả hai thời khóa biểu. Trường hợp sử dụng điển hình: một thời khóa biểu hằng tuần cho các tiết học lặp lại của khối kiến thức chung + một thời khóa biểu theo lịch cho các bài giảng chuyên đề đơn lẻ. #### Thời khóa biểu theo lịch: công bố hoặc không Thời khóa biểu ở chế độ [lịch](#page-glossary.calendar-mode) không được công bố theo khoảng tuần (mỗi tiết học đã được ấn định ngày riêng). Việc công bố chỉ có hai trạng thái — thời khóa biểu đã công bố, hoặc chưa công bố. #### Thời khóa biểu hằng tuần / theo chu kỳ: công bố theo khoảng tuần Với thời khóa biểu hằng tuần và theo chu kỳ, bạn thêm **một hoặc nhiều khoảng tuần** công bố, rồi lưu lại. Những thay đổi đang chờ lưu hiện ra như sau: phần thêm vào có gạch chéo, phần gỡ bỏ hiện mờ đi. #### Tuần luân phiên: tiết học nào vào ngày nào Khi một thời khóa biểu có tuần luân phiên đi vào vận hành, mỗi tuần thực tế chỉ giữ lại tiết học có thứ tự trong chu kỳ khớp với **phép đếm tuần**. Ngày nghỉ lễ có thể làm lệch phép đếm này: **dải luân phiên** trên màn hình [năm học](#page-admin.school-year) cho phép ấn định những điểm mà chu kỳ bắt đầu lại từ tuần A, để mỗi ngày đều giữ lại đúng những tiết học luân phiên. #### Phân công học sinh sau khi công bố Sau khi thời khóa biểu đã được công bố cho năm học hiện tại, bạn có thể **phân công học sinh vào lớp và nhóm của họ**: 1. Mô-đun Học sinh. 2. Chọn những học sinh liên quan. 3. Phân công vào lớp. Học sinh chỉ nhìn thấy thời khóa biểu riêng của mình sau khi việc phân công này hoàn tất — và sau khi năm học hiện tại được đổi sang năm mới, nếu bạn đang chuẩn bị cho năm tiếp theo. #### Hướng dẫn — Công bố một thời khóa biểu trong 5 bước 1. **Công bố làm cho thời khóa biểu hiển thị** trong mô-đun Thời khóa biểu của mọi người dùng được phép. Chừng nào chưa công bố, thời khóa biểu vẫn là bản nháp chỉ các quản trị viên nhìn thấy. 2. **Hãy kiểm tra năm học đang hiển thị** trên dải thời gian ở đầu trang. Mặc định là năm học hiện tại. Để công bố cho năm sau, hãy nhấn **mũi tên phải của dải thời gian** để chuyển sang năm N+1 trước khi tiếp tục. 3. **Hãy nhấn vào Phân bổ thời khóa biểu.** Một lưới hiện ra với các thời khóa biểu theo hàng và các tuần của năm học theo cột. 4. **Hãy chọn những tuần** mà thời khóa biểu sẽ áp dụng. Nhấn hoặc kéo trên dải tuần. Những tuần được chọn hiện lên có màu; những tuần còn lại vẫn để trắng. 5. **Hãy lưu lại việc công bố.** Thời khóa biểu chuyển sang vận hành ngay lập tức: nó hiển thị trong mô-đun Thời khóa biểu của mọi người dùng được phép. 6. **Bước tiếp theo: phân công học sinh** vào lớp và nhóm của họ. Việc phân công này chỉ làm được sau lần công bố đầu tiên. Khi đó học sinh sẽ nhìn thấy thời khóa biểu riêng của mình. #### Xem thêm - [Công bố / Kích hoạt thời khóa biểu](#page-glossary.publication) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) ### 3.16 Nhiều thời khóa biểu cùng hoạt động song song *Source: `help/vi/timetables/multiple-active-timetables.md` · id: timetables.multiple-active-timetables · Audience: admin · Options: multiple-active-timetables · Updated: 2026-06-13* > **Option: Nhiều thời khóa biểu cùng hoạt động song song** Ở gói Standard, trên một giai đoạn nhất định chỉ có thể công bố **một thời khóa biểu duy nhất**. Mức đó đủ cho cách vận hành thông thường của một trường trung học cơ sở hay trung học phổ thông. Trong một số bối cảnh — điển hình là giáo dục đại học, các chương trình đào tạo theo học phần, các trường có nhiều lộ trình học — nhu cầu **công bố song song nhiều thời khóa biểu** bổ sung cho nhau bắt đầu xuất hiện. Khả năng này có sẵn mặc định trong các tài khoản Premium. Ở một số tài khoản trường liên cấp, ví dụ trường có cả trung học cơ sở và trung học phổ thông, hoặc cả tiểu học, trung học cơ sở và trung học phổ thông với nhiều thời khóa biểu thực sự tách rời, Omniscol có thể bật riêng khả năng này. Khi đó khuôn khổ áp dụng và cách tính phí được điều chỉnh theo nhu cầu thực tế. #### Vì sao cần nhiều thời khóa biểu song song Một vài tình huống điển hình: - **Khối kiến thức chung + các chuyên ngành** — một thời khóa biểu hằng tuần phụ trách khối kiến thức chung (những môn học dùng chung cho tất cả các khóa), bên trên đó là các thời khóa biểu theo từng chuyên ngành hoặc từng lộ trình học, với ràng buộc riêng của chúng. - **Đều đặn + lịch theo từng đợt** — một thời khóa biểu hằng tuần đều đặn chứa phần lớn các tiết học, một thời khóa biểu theo lịch chứa các tiết học gắn ngày (bài giảng chuyên đề, kỳ thi, hội đồng chấm). - **Nhiều cơ sở** — mỗi cơ sở một thời khóa biểu do nơi đó tự quản lý, hợp nhất khi tra cứu cho những học sinh di chuyển giữa các cơ sở. - **Các chương trình có độ dài khác nhau** — ví dụ một chương trình EMBA kéo dài 18 tháng, một chương trình chính quy chia thành các học kỳ theo lịch và một khóa dự bị hằng tuần, dùng chung giáo viên và phòng học. Nếu không có tùy chọn này, những trường hợp trên buộc bạn phải dồn toàn bộ độ phức tạp vào một thời khóa biểu duy nhất, và điều đó nhanh chóng trở nên không thể quản lý nổi. #### Cách hoạt động Bạn tạo nhiều thời khóa biểu trong mô-đun Quản lý thời khóa biểu như thường lệ. Đến lúc **công bố** trên các tuần, màn hình phân bổ thời khóa biểu chấp nhận nhiều thời khóa biểu trên cùng những tuần đó chứ không chỉ một. Về phía sử dụng dữ liệu (cổng thông tin, bảng thông tin, iCal, API), các thời khóa biểu đã công bố trên một tuần được **hợp nhất động**: một học sinh nhìn thấy toàn bộ các tiết học liên quan đến mình, bất kể chúng đến từ thời khóa biểu nào. Trong cùng một tài khoản, các thời khóa biểu cùng hoạt động song song chia sẻ tình trạng chiếm dụng của những tài nguyên liên quan: phòng học, giáo viên và, ở những trường hợp phù hợp, lớp. Nhờ vậy tránh được việc cùng một giáo viên hay cùng một phòng học bị hai thời khóa biểu đang hoạt động đặt chỗ hai lần. Trường hợp lớp dùng chung giữa nhiều thời khóa biểu cũng có, nhưng ít gặp hơn và phụ thuộc nhiều vào cách tổ chức dạy học. #### Phát hiện lỗi tương thích giữa các thời khóa biểu Hai cơ chế bổ sung cho nhau, tùy theo nơi bạn đang làm việc. ##### Trong lúc xây dựng thời khóa biểu Khi bạn xây dựng hoặc sắp xếp lại một thời khóa biểu trong Quản lý thời khóa biểu, nút Đồng bộ hóa (trên thanh công cụ của chế độ sắp xếp lại cũng như của việc chỉnh sửa một thời khóa biểu theo lịch, trên các **ngày dùng chung**) đối chiếu công việc của bạn với **những thời khóa biểu khác đã công bố**. Nó tự động tính đến những thời khóa biểu có **ngày chồng lấn** với ngày của thời khóa biểu đang mở và dùng chung ít nhất một **giáo viên**, một **phòng học** hay một **lớp** — cả tại chỗ (cùng một tài khoản) lẫn với các **[tài khoản liên kết](#page-integrations.linked-accounts)**. Vì vậy nút này tự bật ngay khi có tài nguyên dùng chung (màu cam = đang bật). Cơ chế ghép nối tự động này nối các thời khóa biểu **gắn ngày (theo lịch)** với nhau. Một ngoại lệ đáng mừng: nó **bỏ qua bản sao đơn thuần** của thời khóa biểu đang mở (cùng những tiết học đó). Nhờ vậy bạn có thể làm việc trên một **bản nháp nhân đôi** mà không tự tạo ra lỗi tương thích với chính mình. Tình trạng chiếm dụng của các thời khóa biểu đó khi ấy được đưa vào bộ máy phát hiện lỗi tương thích: - các **khung giờ khả dĩ** để xếp chỗ (các chấm màu) chuyển sang cam hoặc đỏ nếu giáo viên hay phòng học đã bận ở nơi khác; - phần **chẩn đoán** báo những trường hợp đặt trùng lịch giữa các thời khóa biểu. Lỗi tương thích được báo lên khi đó nói rõ rằng nó đến từ một thời khóa biểu bên ngoài, kèm tham chiếu chính xác. Menu thả xuống của nút liệt kê các thời khóa biểu và tài khoản đang được tính đến: hãy bỏ chọn những mục bạn không muốn theo dõi, ví dụ khi bạn chấp nhận một sự chồng lấn. ##### Khi tra cứu (thời khóa biểu vận hành) Sau khi đã công bố, các thời khóa biểu **hợp nhất** thành một thời khóa biểu **vận hành** duy nhất — màn hình tra cứu trong Omniscol (mô-đun Thời khóa biểu) và mọi thứ sử dụng thời khóa biểu (cổng thông tin, bảng thông tin, iCal, API). Lỗi tương thích giữa các thời khóa biểu đọc được ngay tại đó: nếu hai tiết học diễn ra cùng lúc, đến từ hai thời khóa biểu đã công bố, cùng chiếm chỗ một giáo viên (hay một phòng học), chúng hiện chồng lên nhau trên lưới đã hợp nhất. Đó chính là ý nghĩa của việc hợp nhất: nó tạo nên thời khóa biểu thực tế diễn ra, **gộp mọi loại** (kể cả một thời khóa biểu hằng tuần và một thời khóa biểu theo lịch). Ở chế độ xem sắp xếp lại, tình huống này tạo ra một lỗi tương thích. Trong cả hai trường hợp, việc xử lý vẫn là một thao tác lập kế hoạch: dời chỗ, điều chỉnh hoặc chấp nhận lỗi tương thích tùy tình huống. #### Hướng dẫn — Công bố song song một thời khóa biểu đều đặn và một thời khóa biểu theo lịch 1. **Trường hợp lai điển hình**: một thời khóa biểu **hằng tuần** đều đặn cho phần lớn các tiết học, cộng thêm một thời khóa biểu **theo lịch** cho các tiết học gắn ngày (bài giảng của khách mời, kỳ thi, hội đồng chấm). 2. **Điều kiện trước**: hai thời khóa biểu đã được tạo trong Quản lý thời khóa biểu — một cái hằng tuần với các tiết học đều đặn, một cái theo lịch với các tiết học gắn ngày. Hãy cấu hình chúng độc lập với nhau. Xem thêm [Chế độ lịch](#page-timetables.calendar-mode). 3. **Hãy khởi chạy việc tạo tự động** trên từng thời khóa biểu riêng biệt nếu bạn dùng công cụ tạo tự động. Trước hết hãy kiểm tra các lỗi tương thích của riêng từng thời khóa biểu. 4. **Hãy công bố thời khóa biểu hằng tuần** trên những tuần mong muốn (thường là cả năm học). Xem [Công bố](#page-timetables.publication). Sau đó **hãy công bố thời khóa biểu thứ hai** (theo lịch) trên **chính những tuần đó**. Màn hình phân bổ thời khóa biểu chấp nhận nhiều thời khóa biểu song song (so với chỉ một ở gói Standard). 5. **Hãy kiểm tra kết quả hợp nhất**: hãy mở cổng thông tin học sinh hoặc giáo viên — các tiết học của cả hai thời khóa biểu cùng hiện trên một lưới, được hợp nhất động. iCal, API và bảng thông tin cũng thấy y như vậy. 6. **Lỗi tương thích giữa các thời khóa biểu**: giữa một thời khóa biểu hằng tuần và một thời khóa biểu theo lịch, phần trùng nhau chủ yếu lộ ra trên **thời khóa biểu vận hành đã hợp nhất** (màn hình tra cứu, cổng thông tin) — nếu một bài giảng chuyên đề (theo lịch) rơi đúng vào khung giờ của một tiết học đều đặn (hằng tuần) với cùng giáo viên hoặc cùng phòng học, hai tiết học đó chồng lên nhau ở đây. Cách xử lý như với một lỗi tương thích thông thường: dời chỗ, điều chỉnh hoặc chấp nhận. #### Xem thêm - [Công bố một thời khóa biểu](#page-timetables.publication) - [Chế độ lịch](#page-timetables.calendar-mode) - [Tài khoản liên kết và tài nguyên dùng chung](#page-integrations.linked-accounts) - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) ### 3.17 Xếp tiết học thủ công *Source: `help/vi/timetables/manual-placement.md` · id: timetables.manual-placement · Audience: admin · Updated: 2026-06-23* Xếp một tiết học **bằng tay** nghĩa là chính bạn chọn khung giờ cho nó, thay vì để thuật toán quyết định. Việc này gần như luôn đi kèm với [Tạo tự động](#page-timetables.generation): dựng một thời khóa biểu là một **chu trình** (xếp vài tiết học → tạo tự động → điều chỉnh), được mô tả trong [Tổng quan về mô-đun](#page-timetables.overview). #### Khi nào nên xếp bằng tay - **Cố định những gì không được xê dịch trước khi tạo tự động** — một tiết học đã ấn định ngày, một kỳ thi, một điểm neo bị áp đặt: bạn xếp nó (và thường **khóa** nó lại, xem [Khóa một tiết học](#page-timetables.lesson-lock)) để việc tạo tự động dựng phần còn lại *xung quanh* nó. - **Sửa ở phần rìa sau một lần tạo tự động** — dời một tiết học, xử lý một trường hợp riêng, đổi ý về một khung giờ. - **Dựng hoàn toàn bằng tay** — với một thời khóa biểu nhỏ, hoặc khi bạn muốn tự mình kiểm soát từ đầu đến cuối (xem phần dưới). #### Thao tác: ghim rồi chọn khung giờ đã tô màu Xếp một tiết học **không bao giờ là kéo thả**. Hãy nhấn nút định vị của tiết học (ghim, Định thời điểm trên thời khóa biểu) — trên thẻ post-it, trên dòng danh sách, hoặc trong biểu mẫu tiết học (Định thời điểm trên thời khóa biểu) nếu nó đã được xếp. Omniscol khi đó hiển thị **mọi khung giờ khả dĩ**, được tô màu theo mức lỗi tương thích: - **xanh lá** — không có lỗi tương thích; - **vàng** rồi **cam** — lỗi tương thích từ nhẹ đến vừa (lý do được hiển thị); - **đỏ** — lỗi tương thích gây chặn. Chi tiết từng mức và danh sách đầy đủ các phát hiện nằm ở [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts). Các khung giờ hiện ra trên lớp **và** trên (những) giáo viên liên quan, kèm các tiết học đã xếp khác để bạn dễ chọn. **Hãy nhấn vào khung giờ bạn chọn** để đặt tiết học vào đó. Muốn gỡ nó ra, hãy nhấn đúp vào một tiết học đã được xếp (nó quay về khu vực các tiết học chưa xếp, chứ không bị xóa). #### Xếp hàng loạt — chế độ xem lưới Hãy nhấn vào Lưới: lưới thời khóa biểu của các lớp / giáo viên hiện ra, tiện cho việc xếp liên tiếp nhiều tiết học. Thao tác vẫn như cũ — ghim [thumbtack] của một tiết học, rồi nhấn vào một khung giờ đã tô màu. Cách này hữu ích ở chế độ lịch để chốt những ngày bị áp đặt hoặc để chỉnh sửa cục bộ kết quả của một lần tạo tự động. #### Khóa để cố định một vị trí xếp bằng tay Theo mặc định, một tiết học được xếp bằng tay vẫn có thể bị lần tạo tự động kế tiếp dời đi. Để nó **không xê dịch nữa**, hãy khóa vị trí của nó (ổ khóa): khi đó việc tạo tự động sẽ dựng xung quanh nó. Chi tiết (khóa hàng loạt, ảnh hưởng tới phần chẩn đoán): [Khóa một tiết học](#page-timetables.lesson-lock). #### Làm tất cả bằng tay (không dùng tạo tự động) Không có gì bắt buộc bạn phải chạy công cụ tạo tự động. Với một thời khóa biểu tuần cỡ nhỏ, hoặc khi việc xếp bị ràng buộc rất chặt bởi các quyết định của con người, bạn có thể xếp **từng tiết học** một (hoặc hàng loạt trong chế độ xem lưới) và không bao giờ dùng tạo tự động. Phần chẩn đoán theo thời gian thực vẫn hoạt động: các lỗi tương thích (giáo viên, phòng học, lớp, tài nguyên) được báo ngay khi phát sinh, giống như khi tạo tự động. Sau đó bạn công bố như bình thường. Với những tiết học nằm ngoài khung giờ của lưới thời gian (giờ giấc ghi rõ, kỳ thi kéo dài), xem [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons). #### Tiếp theo là gì Khi thời khóa biểu đã được xếp xong — bằng tay, bằng tạo tự động, hoặc cả hai — [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication). #### Xem thêm - [Tạo tự động](#page-timetables.generation) - [Khóa một tiết học](#page-timetables.lesson-lock) - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) ### 3.18 Chỉnh sửa một tiết học *Source: `help/vi/timetables/lesson-edit.md` · id: timetables.lesson-edit · Audience: admin · Updated: 2026-06-12* Sau khi tiết học đã được tạo (xem [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution)), bạn lần lượt điều chỉnh từng **trường** của nó: môn học, nhóm, giáo viên, phòng học, tài nguyên, thời lượng, ghi chú, và — tùy theo gói của bạn — trạng thái và hình thức. Trang này tổng hợp **toàn bộ các trường** của một tiết học và cách thay đổi chúng. #### Chỉnh sửa một tiết học ở đâu Vẫn những trường ấy, nhưng đặt được theo **ba cách**, tùy theo chế độ hiển thị của phần phân bổ thời gian (xem [Ba chế độ hiển thị](#page-timetables.hour-distribution)): - **Post-it**: mỗi thẻ tiết học mang một hàng **biểu tượng** (mỗi trường một biểu tượng); nhấn vào sẽ mở bộ chọn tương ứng. - **Tổ chức lại**: nhấn vào một tiết học sẽ mở **biểu mẫu tiết học** gom đúng những trường ấy; chọn nhiều tiết học thì sửa được cả loạt. - **Chế độ xem bảng**: mỗi trường một **cột**, chỉnh sửa hàng loạt từ tiêu đề cột trên những tiết học đã tích chọn. Dù đi theo đường nào, bạn vẫn đang sửa **cùng một tiết học**: các giá trị nhất quán giữa các chế độ, và không gì được áp dụng chừng nào bạn chưa lưu. #### Các trường tiêu chuẩn Có trên mọi gói: - **Môn học** Chỉnh sửa — môn học gắn với tiết học, chọn trong số các môn đã khai báo trên lớp. - **Nhóm** Phân nhóm — nhóm hoặc nhóm con liên quan khi lớp có phân vùng. - **Giáo viên** Phân công giáo viên — một hoặc nhiều giáo viên. Chọn **nhiều** giáo viên trên cùng một tiết học chính là **đồng giảng dạy** (xem [Tiết học phức hợp](#page-core-concepts.complex-lessons)). - **Phòng học** Chỉ định phòng học — hãy chọn phòng học chính của tiết học; các biến thể nâng cao được trình bày ở phần dưới, tùy theo những chức năng đang bật trên tài khoản. - **Tài nguyên** Phân bổ tài nguyên — thiết bị được huy động (máy chiếu, máy tính bảng…), có kiểm tra tình trạng sẵn có. - **Thời lượng** — hãy kéo **viền dưới** của thẻ (chế độ post-it) để kéo dài hoặc rút ngắn tiết học. - **Vị trí và khóa** Định thời điểm trên thời khóa biểu — hãy ghim một tiết học để việc tạo tự động không dời nó đi (xem [Khóa một tiết học](#page-timetables.lesson-lock)). - **Ghi chú** Nhận xét — một nhận xét tự do, với nhiều mức hiển thị (xem [Ghi chú](#page-timetables.hour-distribution)). #### Phòng học và việc phân công Việc phân công phòng học Chỉ định phòng học có trên mọi gói: hãy chọn một phòng học trong danh sách, hoặc để **chế độ tự động** đề xuất một phòng học phù hợp (sức chứa, thẻ, tình trạng sẵn có). Danh sách giữ **thứ tự ổn định** — những phòng học bạn đã đánh dấu yêu thích lên đầu, rồi đến thứ tự chữ cái — và chỉ ra các ứng viên tốt mà không dời chỗ chúng: - **ngôi sao** đánh dấu phòng học tốt nhất ở thời điểm đó; **nửa ngôi sao** đánh dấu những phòng kế tiếp. Hãy rê chuột lên để đọc điều làm nên khác biệt giữa chúng: cơ sở, tỷ lệ lấp đầy, chuyên ngành, và ưu tiên của lớp nếu có; - một **chấm xanh lá** trên một trong các [đơn vị](#page-timetables.sites-rooms--campus) hoặc một trong các thẻ của phòng học cho biết phòng đó khớp với phòng học cần ưu tiên của lớp. Đây cũng chính là quy ước màu của chuyên ngành, chuyển xanh lá khi nó khớp với tiết học; - **sức chứa** chuyển sang màu cam rồi màu đỏ khi phòng học ngày càng trở nên quá nhỏ so với sĩ số. Ngôi sao luôn nằm trong số các phòng học mà lớp ưu tiên. Nửa ngôi sao thì có thể ra khỏi nhóm đó khi một phòng học khác vừa vặn với sĩ số hơn hẳn: một phòng 60 chỗ được giữ cho 25 học sinh sẽ khiến nửa ngôi sao trỏ sang phòng 30 chỗ vẫn còn trống. > _Premium_ #### Các chức năng nâng cao của tiết học ##### Trạng thái của tiết học **Trạng thái** Trạng thái cho biết một tiết học đang ở đâu trong chu trình xếp lịch. Có bốn giá trị: - **Đã lên kế hoạch** — trạng thái thông thường của một tiết học đã được đặt. - **Bản nháp** — tiết học **bị ẩn** và **bị việc tạo tự động bỏ qua**: tiện khi bạn muốn chuẩn bị một tiết học mà chưa áp đặt nó lên thời khóa biểu. - **Đã hủy** — tiết học **hiển thị là đã hủy** nhưng vẫn được giữ lại để lưu vết; nó **bị việc tạo tự động bỏ qua**. - **Đã thực hiện** — tiết học **đã thực hiện**, được tính vào trang tổng quan và vào việc lập hóa đơn. Trạng thái này có trên những thời khóa biểu kiểu lịch, nơi việc theo dõi các tiết học thực tế mới có ý nghĩa. Trạng thái do **cả tiết học** mang (chứ không phải một biến thể của tuần luân phiên). Bạn đổi nó theo từng tiết học, hoặc **hàng loạt** từ chế độ xem bảng. ##### Hình thức **Hình thức** nói rõ tiết học diễn ra theo cách nào: - **Trực tiếp**; - **Từ xa**; - **Kết hợp**; - **Tự học**. Hình thức được chọn trong bộ chọn phòng học, ngay cạnh phần phân công phòng học. Nó có tác dụng cụ thể: một tiết học **từ xa** hoặc **tự học** thì **không cần phòng học**, và việc tạo tự động cũng không đòi phòng cho nó. Biểu tượng của tiết học phản ánh hình thức đã chọn. ##### Nhiều phòng học Cùng một tiết học có thể nhận **nhiều phòng học**: hãy giữ **Shift ⇧** khi nhấn để mở rộng vùng chọn. Tiện khi sĩ số một tiết học phải trải ra hai phòng học liền kề, hoặc khi một tiết học chiếm một không gian được ghép đôi. Các phòng học đã chọn đều được đặt chỗ và đều được tính vào lỗi tương thích. ##### Thời lượng và giờ giấc tùy chỉnh Ngoài thời lượng đọc được từ lưới thời gian, một tiết học còn có thể mang **thời lượng tùy chỉnh** (thời lượng thực tế dùng cho trang tổng quan, thời lượng được tính dùng cho việc lập hóa đơn) và một **giờ giấc ngoài khung giờ** (giờ bắt đầu và giờ kết thúc ghi rõ). Những thiết lập này, cùng với các lớp ngoài khung giờ, được trình bày trên trang riêng của chúng: [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons). #### Chỉnh sửa nhiều tiết học cùng lúc Để áp dụng cùng một giá trị cho cả một loạt tiết học: - ở chế độ **Tổ chức lại**, **Shift + nhấn** mở rộng vùng chọn thành một khoảng; biểu mẫu chung khi đó sửa toàn bộ các tiết học cùng lúc; - ở **chế độ xem bảng**, hãy tích chọn những tiết học cần xử lý rồi dùng **nút thao tác trên tiêu đề** của cột (thời lượng, giáo viên, nhóm, phòng học, trạng thái…). Đây là cách nhanh để, chẳng hạn, chuyển cả một loạt tiết học sang **Bản nháp** hoặc gán cho chúng một phòng học chung. #### Xóa một tiết học Biểu tượng Xóa gỡ tiết học đi. Việc xóa trở thành **vĩnh viễn** khi bạn lưu: trước khi lưu, hãy rà lại các thao tác xóa, vì màn hình này không có chức năng hoàn tác tổng thể. #### Hướng dẫn — Thay đổi trạng thái của một tiết học 1. Hãy mở phần phân bổ thời gian của lớp ([Bước 6](#page-timetables.hour-distribution)). 2. Nhấn vào biểu tượng **trạng thái** Trạng thái của tiết học (hoặc mở biểu mẫu của nó ở chế độ Tổ chức lại). 3. Hãy chọn trạng thái mong muốn — ví dụ **Bản nháp** để ẩn tiết học khỏi việc tạo tự động. 4. Để xử lý cả một loạt, hãy chuyển sang **chế độ xem bảng**, tích chọn các tiết học rồi áp dụng trạng thái từ tiêu đề cột. 5. **Lưu** để áp dụng các thay đổi. #### Xem thêm - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) - [Khóa một tiết học](#page-timetables.lesson-lock) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [Phát hiện và xử lý lỗi tương thích](#page-timetables.conflicts) ### 3.19 Tiết học và lớp ngoài khung giờ *Source: `help/vi/timetables/off-grid-lessons.md` · id: timetables.off-grid-lessons · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Tiết học ngoài khung giờ** là tiết học được xếp với giờ bắt đầu và giờ kết thúc ghi rõ, thay vì theo đúng các mốc của một khung giờ trên lưới. Khả năng này có ở thời khóa biểu hằng tuần, theo chu kỳ và dạng lịch. **Lớp ngoài khung giờ** là một thiết lập khác: đó là một thuộc tính của lớp, chỉ dùng được ở thời khóa biểu dạng lịch. #### Tiết học có giờ tùy chỉnh Hãy dùng giờ tùy chỉnh khi một tiết học đơn lẻ không rơi đúng vào lưới: kỳ thi bắt đầu lúc `08:30`, tiết học vào buổi tối, tiết học lấn sang giờ nghỉ, lượt đặt phòng bắt đầu trước khi tiết học thật sự diễn ra. Tiết học vẫn hiển thị trong thời khóa biểu và vẫn được tính vào việc phát hiện lỗi tương thích. Mọi thực thể mà tiết học sử dụng — giáo viên, phòng học, lớp, nhóm hay tài nguyên — đều được coi là bận ngay khi giờ tùy chỉnh lấn sang một khung giờ. Với việc tạo tự động, tiết học được xử lý như không thể di chuyển: vị trí của nó được khóa tự động. #### Khi nào nên dùng sự kiện thay vì tiết học Thay vào đó, hãy dùng [sự kiện đơn lẻ](#page-schedules.events) nếu nhu cầu không phải là một tiết học của thời khóa biểu: cuộc họp, lượt đặt phòng đơn giản, việc bảo trì phòng học, một ngày đặc biệt không có khối lượng giảng dạy phải tính vào. Hãy giữ một tiết học khi khối lượng giảng dạy phải gắn với một khóa học, một môn học, một lớp, một giáo viên, một nhóm hay một trang tổng quan về giảng dạy. #### Lớp ngoài khung giờ Lớp ngoài khung giờ phục vụ các chương trình đào tạo mà mọi tiết học đều phải được lưu với giờ giấc chính xác, độc lập với lưới thời gian của cơ sở. Nó được cấu hình khi tạo hoặc khi sửa lớp, và chỉ ở thời khóa biểu dạng lịch. Trường hợp điển hình: một chương trình đào tạo thường xuyên dùng chung phòng học và giáo viên với chương trình chính quy, nhưng lại chạy theo giờ giấc rất khác. Khi đó lớp có thể được cấu hình ngoài khung giờ, với một bước thời gian mặc định, ví dụ 15 phút. Ở chế độ này, các tiết học của lớp mang trực tiếp giờ bắt đầu và giờ kết thúc của mình. Chúng **đặt chỗ** cho giáo viên, phòng học, lớp, nhóm và tài nguyên liên quan: việc chồng lấn với một tiết học khác được báo là **lỗi tương thích** — không chặn việc xếp thủ công, nhưng việc tạo tự động thì sẽ không đặt gì lên một khung giờ đang có lỗi tương thích. #### Thời lượng tùy chỉnh Một tiết học còn có thể mang các thời lượng tùy chỉnh: - **Thời lượng tính toán**: thời lượng suy ra từ giờ bắt đầu và giờ kết thúc; - **Thời lượng thực tế**: thời lượng được ưu tiên dùng trong các trang tổng quan; - **Thời lượng được tính**: thời lượng dùng cho việc lập hóa đơn hoặc trả lương cho giáo viên. Ví dụ: với một kỳ thi, bạn có thể đặt chỗ phòng học trước và sau bài thi, mà chỉ tính riêng thời lượng thực tế của kỳ thi trong Trang tổng quan. Với một giám thị, thời lượng được tính có thể cao hơn nếu nhà trường bù thêm cho cả việc chấm bài. #### Những điểm cần lưu ý - Một tiết học có giờ tùy chỉnh có thể chồng lên một giờ nghỉ hoặc một khung giờ vốn thường để trống; hãy kiểm tra xem đó có đúng là chủ ý hay không. - Vì tiết học bị khóa đối với việc tạo tự động, nó có thể ràng buộc rất chặt các vị trí tự động xung quanh nó. - Lớp ngoài khung giờ là một lựa chọn có tính cấu trúc: phải chọn trước khi tạo hàng loạt các tiết học của lớp. - **Tiết học phức hợp** (luân phiên, nối tiếp, liên kết) bị **tắt** ngay khi có giờ giấc ghi rõ hoặc có lớp ngoài khung giờ: chức năng này không dùng được trong trường hợp đó. #### Hướng dẫn — Tạo một tiết học có giờ tùy chỉnh 1. Hãy xếp hoặc mở tiết học trong thời khóa biểu. 2. Hãy mở phần chỉnh sửa giờ tùy chỉnh của tiết học. 3. Hãy nhập giờ bắt đầu và giờ kết thúc. 4. Hãy kiểm tra lỗi tương thích trên các giáo viên, phòng học, lớp, nhóm và tài nguyên liên quan. 5. Hãy chạy lại việc tạo tự động nếu cần: tiết học sẽ vẫn bị khóa và thuật toán sẽ xếp phần còn lại xung quanh nó. #### Xem thêm - [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) - [Thông số chung](#page-timetables.general-settings) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) - [Tạo tự động](#page-timetables.generation) - [Sự kiện đơn lẻ](#page-schedules.events) ### 3.20 Khóa vị trí của một tiết học *Source: `help/vi/timetables/lesson-lock.md` · id: timetables.lesson-lock · Audience: admin · Updated: 2026-06-13* **Khóa một tiết học** nghĩa là khóa **vị trí** của nó trong thời khóa biểu. Tiết học vẫn được công cụ tạo tự động tính đến, nhưng việc tạo tự động không còn dời nó đi được nữa. Dấu hiệu trực quan cần tìm là một **ổ khóa đóng** [lock]. Ngược lại, một **ổ khóa mở** [unlock] cho biết vị trí vẫn có thể bị dời đi bởi một lần tạo tự động hoặc bởi một thao tác tổ chức lại. Đừng nhầm lẫn: biểu tượng **định vị** [thumbtack] dùng để xếp một tiết học lên thời khóa biểu. Nó mở hoặc kích hoạt việc xếp chỗ; nó không phải là dấu khóa. #### Khi nào nên khóa một tiết học Các trường hợp thường gặp: - **Giáo viên bên ngoài** có giờ giấc bị ấn định sẵn. - **Kỳ thi đã ấn định ngày** mà khung giờ hoặc phòng học đã được chốt. - **Chuyến đi ngoại khóa hoặc tham quan** được xếp vào đúng một khung giờ cụ thể. - **Phòng học bên ngoài có giờ giấc ấn định** (nhà thi đấu, bể bơi…): có thể xử lý bằng cách khóa, nhưng thường nên dùng **ràng buộc thời gian của phòng học**, vốn dẫn hướng cho công cụ tạo tự động mà không phải cố định từng tiết học một. - **Tiết học của một [nhóm tự do](#page-core-concepts.free-groups)** được xếp thủ công song song với một tiết học chính. - **Vị trí có được từ một lần tạo tự động trước đó** mà bạn muốn giữ lại trước khi chạy một lần tạo tự động rộng hơn. #### Cách khóa 1. Hãy xếp tiết học lên thời khóa biểu nếu chưa xếp. 2. Hãy mở phần chi tiết vị trí của tiết học. 3. Hãy bật **ổ khóa đóng** để khóa vị trí. 4. Hãy kiểm tra rằng tiết học hiển thị một ổ khóa trên vị trí của nó. Để giải phóng vị trí, hãy dùng **ổ khóa mở**. Khi đó tiết học có thể bị dời bởi một lần tạo tự động hoặc bởi một số thao tác tổ chức lại. #### Thao tác hàng loạt Trong màn hình phân bổ thời gian, trình đơn Thao tác còn cung cấp các lệnh áp dụng trên toàn bộ: - Khóa tất cả các vị trí của tiết học khóa những tiết học đã được xếp; - Mở khóa tất cả các vị trí của tiết học bỏ khóa mà vẫn giữ nguyên vị trí; - Hủy bỏ tất cả các vị trí của tiết học bỏ khóa và gỡ bỏ vị trí. Lựa chọn cuối cùng này hữu ích trước một lần tạo tự động hoàn toàn mới, khi bạn muốn xuất phát lại từ những tiết học chưa được xếp. #### Ảnh hưởng tới việc tạo tự động và phần chẩn đoán Một tiết học đã khóa vẫn là một ràng buộc mạnh đối với công cụ tạo tự động. Các tiết học khác phải xếp xung quanh nó. Hệ quả quan trọng: nếu bạn khóa một tiết học trên một khung giờ rất chặt, Omniscol tôn trọng quyết định đó. Các lỗi tương thích hay cảnh báo vẫn hiển thị, nhưng dấu khóa cho biết vị trí ấy là có chủ đích. Vì vậy trong phần chẩn đoán, một vấn đề nằm trên một tiết học đã khóa được hạ từ mức cảnh báo chặn (đỏ) xuống mức cảnh báo thường (cam): Omniscol vẫn nêu điểm đó nhưng không còn áp đặt nó như một chỗ tắc phải sửa. #### Đừng nhầm lẫn - **Khóa vị trí của một tiết học**: tiết học giữ nguyên khung giờ của nó trong suốt quá trình tạo tự động. - **Khóa cộng tác**: cơ chế gắn với việc nhiều quản trị viên cùng chỉnh sửa một lúc. Xem [Cộng tác theo thời gian thực](#page-core-concepts.collaboration). - **Vị trí khóa ở trạng thái “không phòng học”**: trường hợp riêng khi một tiết học phải giữ nguyên việc không được tự động gán phòng học, qua Khóa. #### Thói quen tốt - Trước khi chạy lại việc tạo tự động, hãy rà lại các tiết học đã khóa: quá nhiều vị trí cố định sẽ thu hẹp dư địa tối ưu hóa. - Sau một giai đoạn thử nghiệm, hãy mở khóa những gì không cần giữ lại. - Với các nhóm tự do, hãy xếp tiết học thủ công rồi khóa vị trí của nó. Xem [Nhóm tự do](#page-core-concepts.free-groups). #### Xem thêm - [Tạo tự động](#page-timetables.generation) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) - [Nhóm tự do](#page-core-concepts.free-groups) - [Phát hiện và xử lý lỗi tương thích](#page-timetables.conflicts) - [Công cụ tạo tự động](#page-glossary.solver) ### 3.21 Phát hiện và xử lý lỗi tương thích (khi tạo thời khóa biểu) *Source: `help/vi/timetables/conflicts.md` · id: timetables.conflicts · Audience: admin · Plan: standard · Updated: 2026-06-23* Omniscol phát hiện lỗi tương thích **liên tục** trong suốt quá trình **chuẩn bị** một thời khóa biểu và ở **mỗi lần xếp thủ công**. Phần chẩn đoán phân biệt **lỗi tương thích gây chặn** với **ràng buộc không được tuân thủ** và với **cảnh báo** cần bạn cân nhắc, đồng thời mã hóa mức độ nghiêm trọng ấy bằng **màu sắc** — trên các khung giờ ứng viên và trên các danh sách chọn khi bạn đặt một tiết học, cũng như trên từng dòng của bảng chẩn đoán. **Tạo tự động** là một phép tính riêng (công cụ tạo tự động xếp tiết học theo các ràng buộc, hoặc để lại một tiết học chưa xếp): phần chẩn đoán của nó được trình bày trong [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Phần chẩn đoán kiểm tra những gì - **Chiếm dụng (đặt trùng lịch)** — một giáo viên, một lớp, một nhóm, một học sinh, một phòng học hay một tài nguyên không thể phục vụ hai tiết học chồng lên nhau, trừ khi bạn đã mô hình hóa rõ ràng (nhóm tương thích, phân vùng lớp, phòng lớn). - **Thời gian rảnh và ràng buộc thời gian** — một khoảng thời gian đã khai báo là không sử dụng được, hoặc một ràng buộc thời gian không được tuân thủ (giáo viên, lớp, nhóm, phòng học, môn học, cơ sở), phân mức theo độ ưu tiên của ràng buộc. Riêng một cửa sổ ngày đã ấn định thì luôn gây chặn. - **Sức chứa và giờ làm việc** — phòng học vượt quá sức chứa, tài nguyên bị dùng nhiều hơn số lượng sẵn có, phòng học không phù hợp (sức chứa, chuyên ngành, cơ sở), hoặc giáo viên vượt quá giờ làm việc. - **Vượt khả năng lưới thời gian** — số giờ cần xếp vượt quá, hoặc sắp chạm, số khung giờ đang mở của lưới thời gian, đối với một giáo viên hoặc đối với cả một lớp. - **Vị trí và di chuyển** — thời gian di chuyển giữa hai cơ sở không đủ cho một giáo viên hay một lớp, hoặc hai môn học đã khai báo là không tương thích lại được xếp vào cùng một lúc. - **Lịch** — tiết học rơi vào một khoảng vắng mặt (của giáo viên hoặc của lớp), vào một ngày đóng cửa / ngày nghỉ lễ, hoặc vào một sự kiện không tương thích. - **Mô hình hóa** — căn chỉnh nhóm bị đứt (các nhóm được căn chỉnh không có tiết học chung), số tiết học khác nhau giữa các nhóm của cùng một phân vùng lớp hay của cùng một căn chỉnh nhóm, thiếu giáo viên hoặc thiếu phòng học, hoặc cấu hình chưa hoàn chỉnh (cơ sở, lưới thời gian, một thông số bắt buộc phải có trước khi tạo tự động). #### Các mức độ nghiêm trọng Cùng một thang mức độ nghiêm trọng — xanh lá, vàng, cam, đỏ — tô màu cho nhiều chỗ trong quá trình chỉnh sửa. **Trên các khung giờ ứng viên**, khi bạn đặt một tiết học (xem [Xếp thủ công](#page-timetables.manual-placement)). **Và trên từng lựa chọn trong các danh sách chọn**: khi bạn chọn một giáo viên, một phòng học, một tài nguyên, một nhóm hay những người tham dự cho một tiết học, mỗi mục đều mang một biểu tượng lịch được tô màu theo mức của nó tại khung giờ đang nhắm tới — xanh lá nếu thực thể còn trống, đỏ nếu đã bận — kèm chi tiết khi rê chuột. Chỉ tình trạng không khả dụng **màu đỏ** (đã bận, khoảng thời gian đóng) mới chặn lựa chọn; một phòng học quá nhỏ hoặc sai chuyên ngành vẫn chọn được, kèm cảnh báo. | Màu | Ý nghĩa | | --- | --- | | **xanh lá** | không có lỗi tương thích — thực thể còn trống (hoặc tài nguyên vẫn dưới giới hạn của nó) | | **vàng** | vướng nhẹ, không gây chặn (ràng buộc thời gian ưu tiên trung bình, vắng mặt đã được thay thế trọn vẹn, phòng học chấp nhận được nhưng chưa lý tưởng) | | **cam** | ràng buộc mạnh (ràng buộc thời gian ưu tiên cao, phòng học lấp tới 110% sức chứa, giờ làm việc tới 110%, thời gian di chuyển giữa các cơ sở quá ngắn, môn học không tương thích, ngày đóng cửa) | | **đỏ** | lỗi tương thích gây chặn (đặt trùng lịch, ràng buộc thời gian bắt buộc hoặc cửa sổ ngày đã ấn định, phòng học vượt quá 110% sức chứa, vắng mặt chưa có người thay, căn chỉnh nhóm bị đứt) | **Trong bảng chẩn đoán.** Mỗi vấn đề được liệt kê đều mang một mức, cũng là mức mà bộ lọc dùng lại. Bảng gộp màu cam với màu vàng thành một mức duy nhất là “quan trọng”, và thêm một mức “lời khuyên” cho những thông tin không gây chặn: | Mức | Ý nghĩa | Màu khung giờ tương ứng | | --- | --- | --- | | **đỏ** | Lỗi tương thích gây chặn | đỏ | | **vàng** | Ràng buộc không được tuân thủ / Cảnh báo | cam + vàng | | **xanh dương** | Lời khuyên / Gần đạt giới hạn | áp lực lưới thời gian, phân vùng lớp | Khi tùy chọn Chặn các lựa chọn xung đột (ràng buộc cứng) đang bật, Omniscol chặn những lựa chọn sẽ tạo ra một ràng buộc mạnh; nếu không, cảnh báo vẫn hiển thị để quản trị viên tự quyết định. ##### Vượt khả năng và áp lực lưới thời gian Omniscol thường xuyên so sánh **số giờ cần xếp** với **số khung giờ đang mở** của lưới thời gian — cho từng giáo viên (theo lớp và theo cơ sở) và cho từng lớp trọn vẹn. Thông báo nêu cả hai giá trị, ví dụ “18 giờ / 16 giờ”. Có ba ngưỡng, tùy mức lấp đầy: | Ngưỡng | Mức lấp đầy | Cách đọc | | --- | --- | --- | | **xanh dương** — áp lực | lưới thời gian lấp đầy 90–100% | các giới hạn sắp bị chạm tới; việc xếp lịch đã căng | | **cam** — vượt nhẹ | 100–110% (số giờ > số khung giờ, tới 110%) | *nhiều khả năng* sẽ không có thời khóa biểu hợp lệ | | **đỏ** — vượt mạnh | trên 110% | *gần như chắc chắn* sẽ không có thời khóa biểu hợp lệ | Phép tính này chỉ chạy khi đã cấu hình ít nhất một cơ sở, và không báo gì chừng nào lưới thời gian còn dưới 90%. Nó đo số giờ cần có so với số khung giờ sẵn có — đừng nhầm với việc **vượt giờ làm việc** của một giáo viên (số giờ đã dạy so với số giờ theo hợp đồng), vốn dùng chung bộ màu nhưng vẫn là một phép phát hiện riêng. ##### Toàn bộ các phép phát hiện | Phép phát hiện | Nhóm bộ lọc | Mức | | --- | --- | --- | | Giáo viên, lớp hoặc nhóm đã bận | Lỗi tương thích | đỏ | | Phòng học đã bị chiếm | Lỗi tương thích | đỏ | | Căn chỉnh nhóm bị đứt (các nhóm được căn chỉnh không có tiết học chung) | Lỗi tương thích | đỏ (cam nếu chỉ khác phòng học hoặc tài nguyên) | | Ràng buộc thời gian không được tuân thủ (giáo viên, lớp, nhóm, phòng học, môn học, cơ sở) | Ràng buộc thời gian | bắt buộc → đỏ, cao → cam, trung bình → vàng (cửa sổ ngày → luôn đỏ) | | Phòng học vượt quá sức chứa | Sức chứa | cam tới 110% sức chứa, đỏ khi vượt quá | | Tài nguyên bị dùng quá số lượng | Sức chứa | cam | | Phòng học không phù hợp (sức chứa, chuyên ngành, cơ sở) | Sức chứa | vàng — vẫn ép chọn được | | Giáo viên vượt quá giờ làm việc | Sức chứa | cam tới 110%, đỏ khi vượt quá | | Vượt khả năng / áp lực lưới thời gian | Vượt khả năng lưới thời gian | xanh dương → cam → đỏ (xem ở trên) | | Thời gian di chuyển giữa các cơ sở không đủ (giáo viên, lớp) | Khoảng cách | cam | | Môn học không tương thích xếp cùng lúc | Tương thích | cam | | Không còn phòng học trống trong số các phòng được phép | Thiếu phòng học | vàng (đỏ nếu không còn phòng nào) | | Thiếu giáo viên (tiết học chưa gán giáo viên) | Thiếu giáo viên | vàng | | Thiếu phòng học (tiết học đã xếp mà chưa có phòng bắt buộc) | Thiếu phòng học | vàng | | Số tiết học khác nhau giữa các nhóm của một phân vùng lớp | Phân vùng lớp | xanh dương (chỉ để tham khảo) | | Số tiết học khác nhau giữa các nhóm được căn chỉnh | Căn chỉnh nhóm | đỏ (cấu hình gây chặn) | | Giáo viên vắng mặt đúng vào tiết học của mình | Vắng mặt | chưa có người thay → đỏ, đã thay thế → vàng, thay thế một phần (đồng giảng dạy) → cam | | Lớp vắng mặt | Vắng mặt | đỏ | | Tiết học vào ngày đóng cửa / ngày nghỉ lễ | Lịch | cam (đôi khi bị đẩy thành đỏ) | | Cấu hình chưa hoàn chỉnh (cơ sở, lưới thời gian, thông số) | — | gây chặn trước khi tạo tự động | ##### Điều hướng từ một cảnh báo Mỗi dòng của bảng chẩn đoán đều **nhấn vào được**: kính lúp [magnifying-glass] đưa bạn thẳng tới tiết học, nhóm hoặc lớp liên quan — cách nhanh nhất để khoanh vùng bối cảnh của một lỗi tương thích. Với lỗi tương thích về **nhóm** (phân vùng lớp, căn chỉnh nhóm), biểu tượng [link] chỉ giữ lại các nhóm có liên quan, nhờ đó ràng buộc lộ rõ khi phần chẩn đoán thô chưa đủ. > _Premium_ #### Lọc phần chẩn đoán Nút Bộ lọc chẩn đoán (tam giác cảnh báo, ở đầu bảng chẩn đoán) mở một trình đơn cho phép chỉ giữ lại những cảnh báo hữu ích cho phân tích hiện tại. Biểu tượng của nút chuyển sang màu cam chừng nào còn một bộ lọc đang bật. Ở đó bạn chỉnh được: - **Các mức** — hiện hoặc ẩn màu đỏ (gây chặn), màu vàng (quan trọng / cần kiểm tra), màu xanh dương (lời khuyên / gần đạt giới hạn). - **Thực thể** — lớp, giáo viên, phòng học, tài nguyên, nhóm, và các loại sự kiện lịch (sự kiện, ngày nghỉ lễ, vắng mặt). - **Khối lớp**, **đơn vị**, **cơ sở** — thu hẹp lại vào một tập hợp nhất định. Đơn vị khoanh vùng theo cách tổ chức của trường (phân hiệu, khoa, khối); cơ sở nói về địa điểm vật lý. - **Lý do** — bật hoặc tắt từng nhóm phép phát hiện: ràng buộc thời gian, lỗi tương thích, sức chứa, khoảng cách, thiếu giáo viên, thiếu phòng học, tương thích, phân vùng lớp, căn chỉnh nhóm. - **Khoảng thời gian** (thời khóa biểu dạng lịch) — chỉ giữ vài tuần hoặc vài tháng tới, và ẩn phần quá khứ. - **Hành vi** — Chặn các lựa chọn xung đột (ràng buộc cứng) chủ động chặn những lần xếp lịch sẽ tạo ra một lỗi tương thích nặng. - **Đặt lại** — hiện lại tất cả. Một bộ lọc không xử lý được lỗi tương thích: nó chỉ giấu đi những gì không giúp cho phân tích hiện tại. #### Xử lý một lỗi tương thích Những cách sửa thường gặp nhất là: - chuyển một tiết học sang chỗ khác; - đổi giáo viên, phòng học hoặc tài nguyên; - nới một ràng buộc quá chặt; - sửa lại một khoảng không khả dụng hoặc một lần vắng mặt nhập nhầm; - tạo hoặc sửa lại các nhóm, phân vùng lớp hay căn chỉnh nhóm; - thêm một phòng học tương thích, một sức chứa hoặc một chuyên ngành; - khóa một tiết học phải giữ nguyên vị trí trước khi chạy lại việc tạo tự động. Nếu việc tạo tự động không tìm được lời giải trọn vẹn, nó có thể trả về một thời khóa biểu chưa đầy đủ: những tiết học chưa xếp vẫn nằm trong thanh post-it các tiết học cần xếp. Hãy sửa những chẩn đoán ưu tiên, rồi chạy lại hoặc tự tay xếp những trường hợp còn lại. #### Những trường hợp cần cân nhắc quyết định Một số tín hiệu ứng với một quyết định nghiệp vụ chứ không phải một lỗi nhập liệu. Ví dụ: - kỳ thi có một phòng chính và một phòng dành cho thí sinh được kéo dài thời gian làm bài; - sức chứa khai báo cao hơn số chỗ đã nhập, khi nhà trường biết rằng một phần những người đã ghi danh sẽ không có mặt; - phòng phụ chưa được mô hình hóa trong Omniscol. Trong những trường hợp đó, tốt hơn hết là mô hình hóa tình huống một cách rõ ràng khi có thể: nhiều phòng học, nhóm phù hợp, sức chứa đã sửa lại hoặc một sự kiện riêng. Việc cố ý để nguyên một cảnh báo phải là một quyết định mà cả đội ngũ đều biết, chứ không phải một thứ nhiễu thường trực. #### Hướng dẫn 1. Hãy mở phần chẩn đoán của thời khóa biểu. 2. Nếu cần, hãy lọc theo mức, đơn vị, cơ sở, thực thể hoặc loại vấn đề. 3. Hãy xử lý các lỗi tương thích gây chặn trước. 4. Hãy mở chi tiết của vấn đề để xác định những tiết học và tài nguyên liên quan. 5. Hãy sửa tiết học, ràng buộc hoặc cách mô hình hóa. 6. Hãy chạy lại phần chẩn đoán hoặc việc tạo tự động để kiểm tra rằng vấn đề đã hết. #### Xem thêm - [Lỗi tương thích](#page-glossary.conflict) - [Chẩn đoán](#page-glossary.diagnostic) - [Đơn vị](#page-glossary.campus) - [Tạo tự động](#page-timetables.generation) - [Xếp thủ công](#page-timetables.manual-placement) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) ### 3.22 Chẩn đoán khi việc tạo thời khóa biểu thất bại *Source: `help/vi/timetables/diagnosing-generation.md` · id: timetables.diagnosing-generation · Audience: admin · Updated: 2026-06-24* Việc tạo thời khóa biểu “thất bại” khi công cụ tạo tự động không **xếp được hết**: nó trả về thời khóa biểu chưa đầy đủ tốt nhất tìm được, còn những tiết học buộc phải **hy sinh** thì vẫn nằm trong thanh post-it các tiết học cần xếp (một dải thông báo đỏ tóm tắt chỗ tắc). Vấn đề gần như luôn là **quá nhiều ràng buộc**: quá nhiều tiết học so với số khung giờ đang mở, hoặc các ràng buộc quá chặt nên không lồng vào nhau được. Cách chữa là **nới** những gì nới được — đó là nội dung của trang này. Để hiểu công cụ tạo tự động ưu tiên ra sao và hy sinh những gì, xem [Tạo tự động](#page-timetables.generation); còn danh mục các lỗi tương thích trên một thời khóa biểu đã dựng xong thì xem [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts). #### Chẩn đoán là một hướng lần tìm, không phải một phán quyết Khi một tiết học không thể đặt được, Omniscol nêu bật **thực thể gây nhiều trở ngại nhất** qua các lượt thử — “giáo viên này không đủ khung giờ”, “lớp này không vừa với lưới thời gian của nó”. **Đây là một quy tắc suy đoán**: thực thể được chỉ ra là thực thể xuất hiện nhiều nhất trong các chỗ tắc, chứ không hẳn là nguyên nhân *duy nhất*. Các ràng buộc đan **chéo** vào nhau — nới ở chỗ khác có thể gỡ được tất cả. Vậy nên hãy xem thông báo như một **hướng lần tìm**: cách chữa thật sự thường là **giảm bớt tình trạng quá nhiều ràng buộc nói chung** (thêm chút khung giờ, thời gian rảnh bớt khắt khe) chứ không phải cố xoay xở mãi với thực thể được chỉ ra. #### Những nguyên nhân thường gặp nhất ##### 1. Thời gian rảnh quá hạn chế Một giáo viên đã đánh dấu quá nhiều khoảng thời gian là **không thể**, đến mức không còn đủ khung giờ để xếp các tiết học của mình. **Chẩn đoán**: hãy xem màn hình thời gian rảnh của giáo viên liên quan. Hãy đếm số khung giờ còn trống và so với số giờ giảng dạy của người đó. **Cách xử lý**: - Nới một số khoảng thời gian (chuyển từ màu đen sang màu đỏ — không mong muốn nhưng không phải là bất khả), - Phân bổ lại các tiết học (giao một phần cho giáo viên khác), - Trao đổi với giáo viên nếu thời gian rảnh còn thương lượng được. ##### 2. Không có phòng học phù hợp Một môn học đòi hỏi một **chuyên ngành** mà chưa có phòng học nào được tạo cho chuyên ngành đó, hoặc mọi phòng học tương ứng đều đã bị chiếm đúng vào những khung giờ khả dĩ duy nhất. **Cách xử lý**: - Tạo chuyên ngành còn thiếu trên một phòng học thích hợp, - Giảm bớt ràng buộc về chuyên ngành, - Thêm một phòng học. ##### 3. Sức chứa không đủ Sĩ số của một nhóm / một lớp vượt quá sức chứa của mọi phòng học ứng viên. **Cách xử lý**: - Gán một phòng học lớn hơn, - Gán [nhiều phòng học](#page-glossary.multi-room) cho cùng một tiết học (sức chứa tổng là tổng của các phòng), - Chia nhỏ lớp / nhóm. ##### 4. Căn chỉnh nhóm bất khả thi về mặt cấu trúc Số giờ của các nhóm được căn chỉnh khác nhau, hoặc các lớp mẹ có lưới thời gian không tương thích, hoặc một giáo viên được căn chỉnh chỉ có thể ở một nơi duy nhất. **Cách xử lý**: - Thống nhất số giờ giữa các nhóm được căn chỉnh, - Bỏ căn chỉnh và tạo một tiết học riêng cho từng lớp, - Kiểm tra rằng cơ sở của các lớp được căn chỉnh dùng chung một lưới thời gian trên khung giờ đang nhắm tới. ##### 5. Quá nhiều tiết học so với lưới thời gian Khi một lớp hay một giáo viên rõ ràng có nhiều giờ hơn số khung giờ đang mở, **một cảnh báo sẽ báo trước** (thẻ **Tạo thời khóa biểu**, các bộ đếm số giờ so với số khung giờ). Trường hợp oái oăm thì khó nhận ra hơn: xét riêng từng phần thì không chỗ nào vượt ngưỡng rõ rệt, nhưng sự **tích tụ** các ràng buộc giữa giáo viên và lớp — cùng những chỗ **đan chéo** của chúng — rốt cuộc làm mọi thứ không còn vừa nữa. **Cách xử lý**: - Giảm số giờ đã nhập, - Mở rộng lưới thời gian (mở thêm buổi sáng thứ Bảy chẳng hạn), - Nới vài khoảng thời gian không khả dụng, nhắm vào **những khoảng mà nhiều thực thể cùng lúc né tránh**: chính sự cộng dồn ấy làm bão hòa lưới thời gian. ##### 6. Quá nhiều điểm không tương thích Chồng chất các ràng buộc “không xếp X sau Y” có thể tạo ra một hệ không có lời giải. **Cách xử lý**: thay một số điểm không tương thích bằng **trọng số sư phạm** mềm dẻo hơn. ##### 7. Không đủ phòng học (nút thắt cổ chai) Rất thường gặp: dù từng phòng học đều phù hợp, **số lượng** phòng vẫn không đủ để đáp ứng nhu cầu vào cùng một thời điểm. Các tiết học dồn lên cùng những khung giờ, và việc thiếu phòng học trở thành **nút thắt** khiến tổng thể không sao vừa được. **Cách xử lý**: - Thêm phòng học (hoặc dùng chung giữa các lớp), - Dàn trải nhu cầu bằng cách mở rộng lưới thời gian, - Giảm bớt những ràng buộc dồn các tiết học vào ít khung giờ. ##### 8. Nhiều cơ sở: việc di chuyển ăn mất giờ Khi có nhiều cơ sở, **thời gian di chuyển** giữa các địa điểm làm giảm số khung giờ mà một giáo viên (hoặc một lớp) thật sự dùng được: đổi cơ sở tốn thời gian, và thời gian ấy không còn để xếp một tiết học nữa. Thời gian rảnh thực tế bị co lại và bài toán càng thêm rối. **Cách xử lý**: - Gom các tiết học của một giáo viên vào cùng một cơ sở trong ngày, - Kiểm tra thời gian di chuyển đã khai báo giữa các cơ sở, - Hạn chế đi lại qua lại giữa các cơ sở trong cùng một ngày. #### Danh sách kiểm tra trước khi chạy lại việc tạo tự động - Mọi lớp đã được gán cơ sở chưa? - Mọi lớp đã có đủ môn học và giáo viên chưa? - Mọi nhóm được dùng trong các tiết học đã có sĩ số lý thuyết hoặc một sức chứa xử lý được chưa? - Thời gian rảnh của tất cả giáo viên đã được xác nhận chưa? - Không còn cảnh báo nghiêm trọng (màu đỏ) nào ở thẻ **Tạo thời khóa biểu** chứ? #### Các công cụ chẩn đoán tích hợp sẵn - **Thẻ Tạo thời khóa biểu** — *trước khi chạy*: thống kê (số tiết học / số giờ theo giáo viên, theo lớp, theo cơ sở) và cảnh báo (số giờ so với số khung giờ, những cảnh báo nghiêm trọng phải sửa trước khi khởi chạy). - **Tiết học chưa xếp** (post-it, ở bên phải) — *sau một lần thất bại*: kết quả của một lượt tạo chưa trọn vẹn. Nút định vị (ghim) trên từng tiết học cho thấy, qua các khung giờ được tô màu, vì sao không chỗ nào hợp. - **Phát hiện nhóm bị bỏ quên**: những nhóm đã khai báo nhưng chưa được gán tiết học nào. #### Hướng dẫn — Chẩn đoán khi việc tạo thời khóa biểu thất bại 1. **Khi việc tạo tự động thất bại**, Omniscol hiển thị một dải thông báo đỏ, giữ nguyên thời khóa biểu chưa đầy đủ trên màn hình, và đưa những tiết học không xếp được vào **thanh post-it**, ở bên phải. 2. **Hãy đọc dải thông báo**: nó cho một **hướng lần tìm** (quy tắc suy đoán, xem ở trên), chứ không phải một phán quyết. 3. **Hãy xuất phát từ các tiết học chưa xếp, chứ không phải từ “lỗi tương thích”.** Việc tạo tự động không bao giờ tạo ra lỗi tương thích: nó chỉ để sang một bên những gì không vừa. Hãy lấy một tiết học trong các post-it rồi nhấn nút định vị của nó (ghim, Định thời điểm trên thời khóa biểu). 4. **Hãy đọc các khung giờ được tô màu.** Omniscol hiển thị mọi khung giờ ứng viên; với một tiết học không thể xếp, tất cả đều bị chặn. Hãy tìm **lý do**, theo thứ tự ba nguyên nhân gây chặn thường gặp: **giáo viên** đã bận hoặc không rảnh, **lớp** (hay nhóm) đã bận, hoặc **không còn phòng học** nào trống và phù hợp. Lý do hiện ra khi bạn rê chuột lên khung giờ. 5. **Hãy nới ràng buộc đang gây chặn** — tùy trường hợp: nới thời gian rảnh, thêm hoặc giải phóng một phòng học, thống nhất một căn chỉnh nhóm, mở rộng lưới thời gian (xem các nguyên nhân ở trên) — rồi chạy lại. 6. **Trước khi chạy lại**, hãy rà lại danh sách kiểm tra ở trên (đã gán cơ sở, đã có môn học và giáo viên, đã nhập sĩ số, đã xác nhận thời gian rảnh, không còn cảnh báo nghiêm trọng ở thẻ **Tạo thời khóa biểu**). #### Xem thêm - [Tạo tự động](#page-timetables.generation) - [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) - [Chẩn đoán](#page-glossary.diagnostic) - [Lỗi tương thích](#page-glossary.conflict) - [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) ### 3.23 Hiển thị, nhân bản, tổ chức lại một thời khóa biểu *Source: `help/vi/timetables/visualize-duplicate.md` · id: timetables.visualize-duplicate · Audience: admin · Updated: 2026-06-25* Một trường học thường có **nhiều thời khóa biểu** ở những giai đoạn khác nhau: thời khóa biểu đang hoạt động của năm học hiện tại, một bản nháp cho đầu năm học tới, một kịch bản thử nghiệm để tìm hiểu một phương án tổ chức lại. Trang này tóm tắt cách quản lý nhiều phiên bản như vậy mà không bị lẫn lộn, và công dụng của hai màn hình **Hiển thị** và **Tổ chức lại** khi thời khóa biểu đã được tạo xong. #### Xem danh sách thời khóa biểu Mô-đun **Quản lý thời khóa biểu** mở ra danh sách các thời khóa biểu của tài khoản: gồm cả thời khóa biểu đang hoạt động lẫn bản nháp. Với mỗi thời khóa biểu, bạn thấy: - **nhãn** của nó (`Năm học 2026-2027`, `Bản nháp đầu năm 2027`, `Kịch bản gộp lớp 6/lớp 7`), - **trạng thái** của nó (đã công bố hay chưa công bố), - **dải tuần** mà nó được công bố (nếu có), - **số liệu nhanh** (số lớp, số tiết học, số giáo viên). Các thao tác sẵn có cho phép mở, nhân bản hoặc xóa một thời khóa biểu, cùng nhiều việc khác. Với thời khóa biểu đã công bố, thao tác xóa bị vô hiệu hóa. #### Hiển thị một thời khóa biểu đã tạo Nút Hiển thị mở thời khóa biểu ở chế độ **chỉ đọc**: bạn xem thời khóa biểu thành phẩm mà không sửa được. Đây là màn hình nên dùng để **rà lại** trước khi công bố, **kiểm tra** một tuần hay một chuỗi tiết học nối tiếp nhau, **trình bày** thời khóa biểu mà không mở quyền vào các chức năng chỉnh sửa, **xuất** hoặc **chia sẻ**. ##### Rà soát an toàn Màn hình này dùng lại bộ máy hiển thị quen thuộc của thời khóa biểu, nhưng ở chế độ **an toàn**: không di chuyển được tiết học, không lưu, không sửa nhầm. Bạn vẫn có các bộ lọc hiển thị, bộ chọn ngày, các cách trình bày khác nhau (lưới, danh sách, bảng, lịch trình, ngày, tháng, cạnh nhau — được nói rõ trong [Hiển thị thời khóa biểu](#page-schedules.schedule-display)) và cách đóng nhanh nhiều lịch đang mở cùng lúc. ##### Tuần luân phiên và các biến thể Điều này đặc biệt hữu ích khi thời khóa biểu có **tuần luân phiên**: bạn mở khung nhìn **Tất cả các tuần**, rồi xem lần lượt từng **biến thể** qua các thẻ riêng (A/B, 1/2, v.v.). Đây thường là cách đơn giản nhất để kiểm tra một thời khóa biểu lặp lại có nhất quán trên toàn bộ các biến thể hay không, mà không bị các công cụ chỉnh sửa làm nhiễu. ##### Chia sẻ ở chế độ chỉ đọc Từ màn hình này, bạn mở chức năng **chia sẻ**: bạn gửi toàn bộ kế hoạch lý thuyết ở chế độ chỉ đọc cho một bên thứ ba (đối tác bên ngoài, ban giám hiệu, người phụ trách cơ sở) qua một liên kết web, mà không phải mở quyền truy cập vào tài khoản Omniscol. Với thời khóa biểu dạng lịch, còn có thêm liên kết **iCal**. Chi tiết trong [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link). ##### Xuất dữ liệu (PDF, Excel, in ấn) Màn hình Hiển thị là nơi tự nhiên để lấy ra một tệp từ thời khóa biểu đang xem: - Xuất dữ liệu dưới định dạng PDF để tạo một tệp **PDF**, - Xuất dữ liệu dưới định dạng Excel để xuất ra **Excel / XLSX**, - In để **in**. Với thời khóa biểu của lớp và của giáo viên, đây thường là cách nhanh gọn nhất để có một tài liệu sạch sẽ đem gửi đi. #### Tổ chức lại nhanh một thời khóa biểu đã hoàn thiện Nút Tổ chức lại mở chính thời khóa biểu đó ở chế độ **sửa nhanh**. Mục đích không phải là dựng lại toàn bộ thời khóa biểu, mà là xử lý nhanh vài trường hợp lẻ trên một kế hoạch đã hoàn chỉnh. Các trường hợp thường gặp: - di chuyển một tiết học đã được tạo, - đổi một phòng học, một khung giờ hay một phân công lẻ, - thêm một tiết học riêng lẻ, - xử lý vài lỗi tương thích còn sót lại mà không phải làm lại cả chuỗi **phân bổ thời gian → tạo tự động**. Trong màn hình này, bạn vẫn có lưới, các bộ lọc, bảng các khung giờ còn trống, nút Thêm và nút Lưu để ghi lại các thay đổi. Nếu thay đổi trở nên **mang tính cấu trúc** (lớp, nhóm, môn học, khối lượng giờ, ràng buộc chung), hãy quay lại các bước dựng thời khóa biểu, hoặc nhân bản thời khóa biểu để làm việc trên một bản nháp. #### Nhân bản một thời khóa biểu Ba trường hợp thường gặp: - **Chuẩn bị năm học tiếp theo** từ thời khóa biểu đang hoạt động — xem [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year). - **Tạo một kịch bản thử nghiệm** từ thời khóa biểu đang hoạt động để thử một thay đổi mang tính cấu trúc mà không có rủi ro (gộp lớp, sắp xếp lại các cơ sở, mở thêm một ngành đào tạo mới). - **Bắt đầu lại từ một thời khóa biểu cũ còn lưu trong tài khoản** — lấy lại cấu trúc của một năm học đã qua làm nền cho năm học mới. Thao tác Tạo bản sao mở ra một hộp thoại. Bản sao tạo ra luôn là một **bản nháp chưa công bố**: nó chỉ trở thành thời khóa biểu đang hoạt động khi bạn công bố nó một cách rõ ràng. Hộp thoại hiện ra một cây các ô đánh dấu **mặc định được tích hết**: để nguyên tất cả sẽ cho ra một bản sao y hệt; bỏ tích một ô sẽ loại phần tương ứng khỏi bản sao. ##### Chọn những gì được lấy lại Cây này đi theo cấu trúc của thời khóa biểu; hãy bỏ tích một nhánh nếu bạn muốn dựng lại nhánh đó từ đầu: - **Cơ sở** — cùng với phòng học và tài nguyên của chúng. Bỏ tích các cơ sở đồng thời gỡ luôn phòng học và tài nguyên gắn trên các tiết học **và cả vị trí của các tiết học**: khi đó bản sao bắt đầu với một lưới cần xếp lại. - **Giáo viên** — danh sách giáo viên của thời khóa biểu. Bỏ tích danh sách này cũng đồng thời gỡ các phân công giáo viên – lớp – môn học và những giáo viên gắn trên các tiết học. - **Lớp** — cùng với các nhóm, ràng buộc thời gian, các quy tắc không tương thích và phần phân bổ thời gian. Mỗi nhánh con bỏ tích được riêng: nhóm, ràng buộc thời gian của lớp, không tương thích, hay phần chi tiết của các tiết học (nhóm, phòng học, tài nguyên, hình thức, ghi chú, vị trí…). - **Vị trí các tiết học** — nếu chỉ bỏ tích riêng mục này, bản sao vẫn giữ nguyên toàn bộ cấu trúc nhưng **lưới trống trơn**: đây là cách sạch sẽ để nhân bản phần đã chuẩn bị rồi chạy lại việc tạo tự động từ con số không. Các phụ thuộc được áp dụng tự động: chẳng hạn bạn không thể vừa giữ một phòng học trên một tiết học vừa gỡ toàn bộ các cơ sở. Và dù bỏ tích ở mức chi tiết nào, Omniscol vẫn dọn sạch những tham chiếu trở thành mồ côi — ví dụ một lớp trỏ tới một cơ sở đã bị gỡ. ##### Chuyển đổi loại thời khóa biểu > _Premium_ Chính hộp thoại đó có thể **chuyển đổi** bản sao sang một loại khác với bản gốc. Bộ chọn chỉ đưa ra hai loại **còn lại**. Việc chuyển đổi sẽ căn lại các tiết học theo cách biểu diễn mới. - **Sang dạng lịch** (từ dạng hằng tuần hoặc theo chu kỳ) — bạn cho biết một **giai đoạn** (ngày bắt đầu và ngày kết thúc). Mỗi tiết học lặp lại được **trải thành một tiết học có ngày cụ thể cho mỗi ngày làm việc tương ứng** trong giai đoạn đó; các ngày nghỉ lễ, ngày đóng cửa và ngày vắng mặt đều được bỏ qua. Khối lượng giờ của từng môn học được điều chỉnh theo số tuần của giai đoạn, còn tuần luân phiên thì được giải quyết theo từng ngày, vào đúng biến thể của nó (A/B, A/B/C…). - **Sang dạng chu kỳ** — bạn cho biết **độ dài của chu kỳ** tính theo ngày làm việc; mỗi vị trí trở thành một số thứ tự ngày trong chu kỳ. - **Sang dạng hằng tuần** (từ dạng theo chu kỳ hoặc theo lịch) — mỗi tiết học rơi trở lại vào **thứ trong tuần** của nó. Việc chuyển sang dạng hằng tuần hay dạng chu kỳ cố ý được đơn giản hóa: nhiều tiết học vốn rơi vào cùng một thứ sẽ gộp lại trên cùng một khung giờ, và thời gian rảnh gắn với ngày cụ thể của một thời khóa biểu dạng lịch không được chuyển theo. Hãy chỉ chuyển sang dạng lịch khi bạn thực sự cần những ngày cụ thể. > _Premium_ ##### Dịch chuyển ngày (thời khóa biểu dạng lịch) Với thời khóa biểu dạng **lịch**, việc nhân bản có thể **căn lại toàn bộ các tiết học** theo một ngày bắt đầu mới — rất tiện khi bạn muốn dùng lại đúng cách tổ chức đó cho năm học sau. Bạn tích chọn tùy chọn dịch chuyển, cho biết ngày bắt đầu mới, rồi Omniscol dịch chuyển giai đoạn và căn lại từng tiết học. Nguyên tắc: Omniscol **giữ nguyên trình tự các ngày học**. Ngày học thứ N của giai đoạn gốc trở thành ngày học thứ N của giai đoạn mới — việc căn lại đi theo các ngày làm việc, chứ không theo ngày trên lịch. Vì vậy một tiết học có thể **đổi sang thứ khác trong tuần**, vì hai lý do. Thứ nhất, ngày bắt đầu mới không nhất thiết rơi vào cùng thứ với ngày bắt đầu cũ: nếu bản gốc bắt đầu vào thứ Hai còn bản đích bắt đầu vào thứ Tư thì mọi thứ dịch đi hai ngày. Thứ hai — và đây là trường hợp hay gặp hơn — vì ngày nghỉ lễ và ngày đóng cửa của hai giai đoạn không trùng nhau. Những tiết học rơi ra ngoài giai đoạn mới sẽ **trở lại trạng thái chưa xếp**: tiết học cùng toàn bộ chi tiết của nó vẫn còn, chỉ mất vị trí đã xếp. #### Tổ chức lại một trường học trong Omniscol Với một đợt tổ chức lại mang tính cấu trúc (chuyển từ cách vận hành theo lớp truyền thống sang cách vận hành theo nhóm, gộp các khối, mở thêm một cơ sở mới), hãy làm việc trên một **thời khóa biểu bản nháp** riêng: 1. Hãy nhân bản thời khóa biểu đang hoạt động thành `Kịch bản tổ chức lại 2027-2028`. 2. Hãy sửa cấu trúc (lớp, nhóm, cơ sở) trong bản nháp. 3. Hãy chạy chẩn đoán và tạo tự động để đo mức độ khả thi. 4. Hãy chỉnh đi chỉnh lại mà không đụng đến tài khoản đang vận hành. 5. Khi kịch bản đã được duyệt, bạn có thể chuyển sang công bố. Ưu điểm: chừng nào kịch bản còn là bản nháp thì người dùng cuối (học sinh, giáo viên) không thấy gì cả. Chỉ quản trị viên mới vào được bản nháp. #### Xóa một bản nháp không còn dùng Thời khóa biểu chưa công bố có thể xóa được từ danh sách. Muốn giữ lại một dấu vết trước khi xóa, trước hết hãy mở thời khóa biểu rồi xuất nó ra JSON bằng [download]. Chi tiết trong [Tạo tự động](#page-timetables.generation). Không nên xóa thẳng một thời khóa biểu đã công bố: nếu thực sự cần đưa nó ra khỏi vận hành, trước hết hãy gỡ công bố của nó trong lưới phân bổ thời khóa biểu. #### Hướng dẫn — Tạo một kịch bản thử nghiệm từ một thời khóa biểu đang hoạt động 1. **Muốn thử một phương án tổ chức lại** (gộp lớp, mở cơ sở mới, chuyển sang vận hành theo nhóm) mà không đụng đến tài khoản đang vận hành: hãy làm việc trên một **bản nháp kịch bản** nhân bản từ thời khóa biểu đang hoạt động. Chừng nào nó còn là bản nháp thì người dùng không thấy gì. 2. **Hãy mở mô-đun Quản lý thời khóa biểu**: danh sách hiện ra các thời khóa biểu của tài khoản cùng trạng thái đã công bố/chưa công bố, dải tuần và số liệu nhanh của chúng (lớp, tiết học, giáo viên). 3. **Hãy nhấn [copy] Tạo bản sao** trên thời khóa biểu đang hoạt động. Hộp thoại: hãy tích những gì được lấy lại — **cơ sở** (phòng học, tài nguyên), **giáo viên**, **lớp** (nhóm, ràng buộc thời gian), **tiết học** và phần chi tiết của chúng. Với một kịch bản, thường nên giữ cấu trúc và các tiết học, đồng thời bỏ tích những phân công giáo viên sẽ phải làm lại. 4. **Hãy đặt một nhãn dễ hiểu**: `HK1 26-27`, `HK hè 2027`, `Thử cơ sở mới Đà Nẵng`, `Tổ chức lại nhóm tự chọn`. Nhãn càng rõ nghĩa, ba tháng sau bạn càng ít nhầm lẫn. 5. **Hãy sửa cấu trúc trong bản nháp**: tạo mới hoặc gộp các lớp, thêm cơ sở, sắp xếp lại các nhóm. **Hãy chạy tạo tự động** để đo mức độ khả thi. Cứ chỉnh đi chỉnh lại thong thả — không ảnh hưởng gì tới thời khóa biểu đang hoạt động. 6. **Nếu kịch bản được duyệt**, hãy chuyển sang công bố (xem [Công bố](#page-timetables.publication)). Nếu không, hãy giữ nó ở dạng bản nháp hoặc xuất ra JSON trước khi xóa. #### Xem thêm - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Hiển thị thời khóa biểu](#page-schedules.schedule-display) - [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) - [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) - [Công bố một thời khóa biểu](#page-timetables.publication) ### 3.24 Chuẩn bị cho năm học tiếp theo *Source: `help/vi/timetables/next-school-year.md` · id: timetables.next-school-year · Audience: admin · Plan: standard · Updated: 2026-06-25* Việc dựng thời khóa biểu cho năm học tiếp theo có thể bắt đầu từ sáu đến chín tháng trước đó, song song với công việc vận hành hằng ngày. Nguyên tắc là nhân bản thời khóa biểu đang hoạt động để tạo ra một bản nháp, rồi làm việc trên bản nháp ấy mà không đụng đến thời khóa biểu đã công bố. #### Ba mảng nội dung cần chuyển sang năm mới Ba mảng dữ liệu cần lấy lại từ năm học hiện tại sang năm học tiếp theo: 1. **Cấu trúc** — cơ sở/phòng học, lớp, nhóm, phân vùng, căn chỉnh nhóm, nhóm của nhóm. Thường dùng lại được 80-90% từ năm này sang năm khác, chỉ phải điều chỉnh nhỏ lẻ. 2. **Tiết học** — danh sách các tiết học cần xếp lịch (môn học, lớp, giáo viên, thời lượng, số lần lặp lại mỗi tuần). Dùng lại được 70-80%, kèm những thay đổi của chương trình đào tạo. 3. **Phân công giáo viên – lớp – môn học** — ai dạy môn gì. Hay biến động hơn (người nghỉ, người mới, thay đổi giờ làm việc). #### Khởi động việc nhân bản Từ mô-đun Quản lý thời khóa biểu, hãy dùng thao tác Tạo bản sao trên thời khóa biểu sẽ dùng làm gốc. Hộp thoại mặc định tích chọn tất cả; hãy bỏ tích những gì bạn muốn dựng lại từ đầu: - **Cơ sở** — cùng với phòng học và tài nguyên của chúng. - **Giáo viên** — việc phân công giáo viên vào thời khóa biểu; thời gian rảnh của họ đi theo. Tùy chính sách của trường, với thời khóa biểu lặp lại, bạn có thể muốn hỏi lại họ thời gian rảnh cho năm học mới thay vì lấy lại dữ liệu cũ. - **Lớp** — cùng với các môn học, nhóm, căn chỉnh nhóm, ràng buộc thời gian và các quy tắc không tương thích. - **Tiết học** (phân bổ thời gian) — kèm phần chi tiết muốn giữ hay không: phân công giáo viên vào từng tiết học, nhóm, phòng học, tài nguyên, vị trí. Thường nên rà lại, vì giáo viên và học sinh sẽ thay đổi. Bản nháp vừa tạo chưa được công bố: nó không đụng đến thời khóa biểu đang hoạt động của năm học hiện tại. Với thời khóa biểu theo tuần hoặc theo chu kỳ, việc công bố trên các tuần của năm học tiếp theo sau đó được thực hiện trong lưới phân bổ thời gian. Nhân tiện, việc nhân bản còn có thể **dịch chuyển ngày** của các tiết học (với thời khóa biểu dạng lịch) hoặc **chuyển đổi loại thời khóa biểu**: hai tùy chọn này và tác động của chúng — nhất là việc căn lại ngày của các tiết học và việc gộp các tiết học vào cùng một khung giờ — được trình bày chi tiết trong [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate). #### Làm việc trên bản nháp Thời khóa biểu vừa chuẩn bị hiện ra trong danh sách dưới dạng bản nháp. Hãy đổi tên nó thành một nhãn rõ nghĩa, ví dụ `HK1 27-28`. Bạn có thể: - mở nó ra để sửa các lớp, thêm giáo viên mới, bỏ giáo viên cũ, - hỏi các giáo viên đang công tác về thời gian rảnh cho năm học mới (gửi hàng loạt qua mô-đun Quản trị), - chạy tạo tự động để kiểm tra tính khả thi, - chỉnh đi chỉnh lại thong thả trong nhiều tháng. #### Công bố vào đầu năm học Khi bản nháp thời khóa biểu đã sẵn sàng và năm học mới đến gần, bạn **công bố** nó trên những tuần mong muốn. Xem [Công bố](#page-timetables.publication). Bản nháp trở thành thời khóa biểu đang hoạt động, còn thời khóa biểu cũ vẫn tra cứu được như phần lịch sử. #### Hướng dẫn — Chuẩn bị đầu năm học N+1 1. **Khởi động năm N+1 song song với công việc vận hành**: Omniscol tách riêng bản nháp khỏi thời khóa biểu hiện hành. Bạn yên tâm chỉnh đi chỉnh lại trong nhiều tháng mà không làm hỏng gì. 2. **Điều kiện tiên quyết**: hãy tạo năm học N+1 trong [Quản trị → Năm học](#page-admin.school-year) cùng với các mốc ngày và ngày nghỉ lễ của nó. Năm học này là bắt buộc khi công bố trên các tuần của chính năm đó. 3. **Trong phần Quản lý thời khóa biểu**, hãy dùng thao tác Tạo bản sao trên thời khóa biểu tham chiếu. Mặc định mọi thứ đều được tích chọn; hãy bỏ tích những gì sẽ được dựng lại: - **Cơ sở**, phòng học và tài nguyên. - **Giáo viên** đã phân công vào thời khóa biểu (thời gian rảnh của họ đi theo) — thường phải rà lại, thậm chí hỏi lại cho năm học mới. - **Lớp**, nhóm và căn chỉnh nhóm — dùng lại được 80-90%. - **Tiết học** và phần chi tiết của chúng (phân công, phòng học, vị trí…) — cần rà lại, vì giáo viên và học sinh sẽ thay đổi. 4. **Bản nháp đã được tạo**. Hãy đổi tên cho rõ ràng, mở nó ra, rồi điều chỉnh các lớp (lớp mới, lớp giải thể, lớp sáp nhập), thêm giáo viên mới và bỏ giáo viên cũ. 5. **Hãy hỏi thời gian rảnh** của các giáo viên đang công tác bằng cách gửi hàng loạt từ Quản trị. **Hãy chạy tạo tự động** để kiểm tra tính khả thi càng sớm càng tốt — rồi chỉnh dần các ràng buộc, khối lượng giờ và đội ngũ giáo viên. 6. **Khi bạn đã sẵn sàng cho đầu năm học**, hãy **công bố** bản nháp trên những tuần mong muốn (xem [Công bố](#page-timetables.publication)). Bản nháp trở thành thời khóa biểu đang hoạt động của năm N+1, còn thời khóa biểu cũ của năm N vẫn tra cứu được như phần lịch sử. ⚠ Đừng quên **mũi tên phải** của dải thời gian, hoặc đổi năm bằng bộ chọn năm, nếu không bạn vẫn ở lại năm N (xem [Dải thời gian và điều hướng theo thời gian](#page-core-concepts.timeline-navigation)). #### Xem thêm - [Năm học và ngày nghỉ lễ](#page-admin.school-year) - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Công bố thời khóa biểu](#page-timetables.publication) - [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate) --- ## 4. Trang tổng quan ### 4.1 Tổng quan về mô-đun Trang tổng quan *Source: `help/vi/dashboard/overview.md` · id: dashboard.overview · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-25* Mô-đun **Trang tổng quan** (biểu tượng [gauge-high] trên thanh menu bên trái) tập hợp các số liệu thống kê được tính trên thời khóa biểu vận hành thực tế (những tiết học đã thực sự được xếp và đã công bố, có tính đến [vắng mặt](#page-glossary.absence) và [thay thế](#page-glossary.substitution)). Đây là công cụ **báo cáo** và **điều hành**: mỗi giáo viên đã dạy bao nhiêu giờ, phòng học được sử dụng đến mức nào, khối lượng giờ theo môn học của từng lớp là bao nhiêu, mỗi học sinh có mặt bao nhiêu ngày. #### Các chỉ số khả dụng Sáu trục phân tích, có thể truy cập qua các tab của mô-đun: - Giáo viên — các môn học đã dạy, số lớp, số giờ được tính, giờ làm thêm, giờ hủy bỏ. - Phòng học — số giờ được sử dụng, số ngày mở cửa, số giờ mỗi ngày, số học sinh được tiếp nhận. - Tài nguyên — số giờ sử dụng, số ngày sử dụng, số lượng mỗi ngày. - Môn học — số giờ giảng dạy, số ngày, số tiết học, chi tiết theo lớp. - Lớp — tổng số giờ (kèm tỷ lệ theo nhóm), số ngày, chi tiết theo môn học và theo giáo viên. - Học sinh — số tiết học, số giờ, số ngày có mặt, chi tiết theo môn học. #### Khoảng thời gian phân tích Có thể lọc theo **tuần**, **tháng**, **năm học** hoặc **khoảng ngày tự chọn**. Dải thời gian ở phía trên dùng để điều hướng theo thời gian. #### Xuất dữ liệu Nút In mở ra một bảng có thể sao chép, in hoặc xuất ra CSV. Để chuyển những con số này cho người khác, xem [Liên kết chia sẻ](#page-glossary.share-link). Liên kết iCal không có ý nghĩa ở đây: Trang tổng quan chỉ chứa số liệu thống kê, không chứa tiết học gắn với ngày cụ thể. #### Chia sẻ Nút Chung tạo một liên kết công khai ở chế độ chỉ đọc tới số liệu thống kê của khoảng thời gian đang xem. Hữu ích cho kiểm toán viên bên ngoài, cán bộ phụ trách đào tạo không có tài khoản Omniscol, v.v. #### Xem thêm - [Trang tổng quan](#page-glossary.dashboard) - [Trạng thái](#page-glossary.lesson-status) - [Tra cứu và lọc](#page-schedules.consult-and-filter) - [Quản lý thời khóa biểu](#page-timetables.overview) ### 4.2 Sử dụng bảng và biểu đồ *Source: `help/vi/dashboard/tools-and-filters.md` · id: dashboard.tools-and-filters · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Các tab của **Trang tổng quan** kết hợp một bảng và các biểu đồ. Bảng dùng để kiểm tra chi tiết; biểu đồ dùng để nhìn nhanh cách phân bổ hoặc những giá trị cao nhất và thấp nhất. #### Tìm kiếm và biểu đồ Ô tìm kiếm lọc các dòng của bảng. Các biểu đồ được tính lại trên những dòng đang hiển thị: nếu bạn tìm một môn học, một cơ sở hay một giáo viên, biểu đồ chỉ phản ánh đúng tập dữ liệu đó. Việc tìm kiếm bỏ qua chữ hoa chữ thường, dấu tiếng Việt và các khoảng trắng thừa. Nhiều từ trong cùng một lần tìm được hiểu là những tiêu chí phải cùng thỏa mãn. Dấu phẩy cho phép tìm nhiều khả năng khác nhau. Ví dụ: - `toán nguyễn` hiển thị những dòng chứa cả `toán` lẫn `nguyễn`. - `giảng đường, thí nghiệm` hiển thị những dòng khớp với từ này hoặc từ kia. - `cơ sở bắc >50` có thể dùng, trong một danh sách phòng học, để tách riêng những phòng học thuộc cơ sở phía bắc có sức chứa trên 50 chỗ. #### Sắp xếp cột Những tiêu đề cột có thể sắp xếp cho phép bạn xếp lại bảng: thứ tự chữ cái với tên, thứ tự số với các cột đếm, thứ tự thời gian với thời lượng. Nhấp lại vào chính tiêu đề đó để đảo chiều sắp xếp. Việc sắp xếp rất hữu ích trước khi xuất dữ liệu: chẳng hạn bạn có thể đưa lên đầu những giáo viên có nhiều giờ làm thêm nhất, những phòng học được dùng nhiều nhất hoặc những lớp có khối lượng giờ lớn nhất. #### Sao chép một biểu đồ Để dùng lại một biểu đồ trong tài liệu, email hay bản trình bày: 1. lọc bảng nếu cần; 2. kiểm tra xem biểu đồ có đang hiển thị đúng tập dữ liệu hay không; 3. nhấp chuột phải vào biểu đồ; 4. chọn **Sao chép hình ảnh** trong trình duyệt. Biểu đồ được sao chép đúng với trạng thái đang hiển thị trên màn hình. #### Xuất hoặc chia sẻ Nút In mở ra các tùy chọn sao chép, in hoặc xuất dữ liệu dành cho bảng đang hiển thị. Tùy theo tab, việc xuất dữ liệu có thể dùng để chuẩn bị một tệp Excel cho bộ phận kế toán, gửi một bản kê cho cán bộ phụ trách đào tạo hoặc lưu lại một dấu vết phục vụ kiểm toán. Nút Chung tạo một liên kết chia sẻ ở chế độ chỉ đọc. Người nhận xem được số liệu thống kê của khoảng thời gian đó mà không thể chỉnh sửa thời khóa biểu. #### Xem thêm - [Tìm kiếm và bộ lọc](#page-core-concepts.search-and-filter) - [Thống kê giáo viên](#page-dashboard.teachers) - [Thống kê phòng học](#page-dashboard.classrooms) ### 4.3 Thống kê giáo viên *Source: `help/vi/dashboard/teachers.md` · id: dashboard.teachers · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Tab Giáo viên tổng hợp số giờ thực sự được tính trong khoảng thời gian đang hiển thị. Tab này dùng để theo dõi giờ làm việc, chuẩn bị việc trả lương, xuất dữ liệu cho kế toán và kiểm soát các lần thay thế. #### Các chỉ số chính - **Số giờ được tính**: khối lượng giờ dùng cho việc theo dõi hành chính và, tùy theo cách tổ chức của nhà trường, cho việc trả lương. - **Giờ làm thêm** (Giờ làm thêm): số giờ phát sinh từ một lần thay thế trong mô-đun Quản lý vắng mặt hoặc từ việc thêm thủ công một tiết học gắn với ngày cụ thể vào thời khóa biểu lặp lại. - **Giờ hủy bỏ** (Giờ hủy bỏ): số giờ bị trừ đi do một lần vắng mặt hoặc do việc xóa thủ công một tiết học gắn với ngày cụ thể khỏi thời khóa biểu lặp lại. - **Lớp và môn học**: toàn bộ phần giảng dạy mà giáo viên đảm nhận trong khoảng thời gian đó. - **Loại tiết học**: chi tiết khối lượng giờ theo từng loại tiết học khi các tiết học đã được gán loại. Giờ làm thêm và giờ hủy bỏ giúp bạn phân biệt giờ làm việc theo kế hoạch với giờ làm việc thực sự đã thực hiện trong khoảng thời gian đó. #### Chi tiết theo loại tiết học Chi tiết theo loại tiết học hữu ích khi cách tính giờ phụ thuộc vào hình thức giảng dạy: lý thuyết, bài tập, thực hành, phụ đạo, chuyên đề, hay bất kỳ cách phân loại nào khác do nhà trường thiết lập. Phần chi tiết này giúp kiểm tra khối lượng giờ được thanh toán, các quy định nội bộ về quy đổi giờ và những minh chứng cần cung cấp cho bộ phận kế toán hoặc cho một cơ quan kiểm toán. #### Xuất dữ liệu, chia sẻ và kế toán Bảng số liệu có thể được sao chép, in ra hoặc xuất ra để xử lý trong Excel hay trong một phần mềm kế toán. Liên kết chia sẻ ở chế độ chỉ đọc cho phép bạn gửi đi một bản kê giờ mà không cấp quyền chỉnh sửa thời khóa biểu. Để kết nối định kỳ với phần mềm kế toán, một luồng ETL hoặc một tích hợp riêng có thể lấy lại các số liệu thống kê này theo định dạng mà nhà trường yêu cầu. > _Premium_ Trên tài khoản **Premium**, bản xuất của bảng này bổ sung hai cột lấy từ phần theo dõi chi tiết các tiết học: **Thời lượng thực tế** (thời lượng thực sự đã dạy, khác với thời lượng được tính) và **Đã thực hiện** (khối lượng giờ của những tiết học được đánh dấu là đã thực hiện). Rất tiện để đối chiếu giờ làm việc theo kế hoạch, giờ được tính và giờ thực sự đã đảm nhận. Ngược lại, những tiết học ở trạng thái **Bản nháp** hoặc **Đã hủy** không được tính vào những con số này. Xem [Trạng thái](#page-glossary.lesson-status). #### Các điểm cần kiểm tra Trước khi dùng những con số này để trả lương, bạn hãy kiểm tra khoảng thời gian đã đúng, các lần vắng mặt đã được duyệt, các lần thay thế đã được ghi nhận đầy đủ và những tiết học gắn với ngày cụ thể được thêm vào hay gỡ bỏ phản ánh đúng thực tế vận hành. #### Xem thêm - [Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics) - [Trạng thái](#page-glossary.lesson-status) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) - [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) ### 4.4 Thống kê phòng học *Source: `help/vi/dashboard/classrooms.md` · id: dashboard.classrooms · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Tab Phòng học phân tích mức sử dụng thực tế của các phòng học trong khoảng thời gian đang hiển thị. Tab này dùng để phát hiện những phòng học ít được dùng đến, những phòng học bị khai thác quá mức và tình trạng mất cân đối giữa các cơ sở hoặc tòa nhà. #### Các chỉ số được theo dõi Bảng số liệu hiển thị các chỉ số như số tiết học, số giờ đã sử dụng, số ngày có sử dụng, số giờ mỗi ngày và số học sinh được tiếp nhận. Khi dữ liệu đã được khai báo, các cột cơ sở, tòa nhà, chuyên ngành và thẻ giúp bạn phân tích theo khu vực hoặc theo loại phòng học. Các biểu đồ giúp bạn hình dung cách phân bổ mức sử dụng, khối lượng giờ và chênh lệch về tần suất sử dụng. #### Sử dụng quá ít và sử dụng quá mức Một phòng học có mức lấp đầy thấp hơn nhiều so với sức chứa có thể cho thấy việc phân công chưa hợp lý, một phòng học chuyên ngành chưa được khai thác đúng mức hoặc khả năng cân đối lại. Những phòng học được sử dụng dưới 25% sức chứa thường đáng được kiểm tra lại. Ngược lại, một phòng học được sử dụng vượt quá sức chứa cho thấy rủi ro vận hành: số học sinh quá đông, phòng học bị phân công sai hoặc dữ liệu sức chứa cần được sửa lại. #### Phân tích theo tòa nhà Tab này giúp bạn trả lời những câu hỏi như: - những tòa nhà nào tập trung phần lớn mức sử dụng; - những phòng học nào vẫn còn ít được sử dụng; - những chuyên ngành phòng học nào còn thiếu hoặc đang dư thừa; - những cơ sở nào có thể được tổ chức lại. Để phân tích chi tiết hơn, ví dụ so sánh số giờ đã sử dụng với giờ mở cửa của một tòa nhà hoặc với các khung giờ có thể xếp tiết học, nhà trường có thể xuất bảng số liệu ra và xử lý tiếp trong một công cụ bên ngoài, hoặc truy vấn tài khoản từ một tác nhân AI bên ngoài được kết nối qua [MCP](#page-integrations.mcp), tùy theo hồ sơ người dùng, quyền hạn và các công cụ được cung cấp. #### Lọc phòng học Thanh tìm kiếm chấp nhận các toán tử so sánh sức chứa (`>50`, `<=100`, v.v.) và các từ khóa về cơ sở, tòa nhà, chuyên ngành hoặc thẻ. Các biểu đồ được tính lại theo những phòng học đã lọc. #### Xem thêm - [Tìm kiếm và bộ lọc](#page-core-concepts.search-and-filter) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) - [Cơ sở, phòng học và tài nguyên](#page-timetables.sites-rooms) ### 4.5 Thống kê môn học *Source: `help/vi/dashboard/subjects.md` · id: dashboard.subjects · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Tab Môn học cho thấy khối lượng giảng dạy được phân bổ ra sao trong khoảng thời gian đang hiển thị: tổng thể, theo lớp, theo giáo viên và theo loại tiết học khi thông tin này đã được khai báo. #### Những gì trang này giúp kiểm tra - tổng khối lượng giờ dành cho mỗi môn học; - cách phân bổ theo lớp; - cách phân bổ theo giáo viên; - tỷ trọng của từng loại tiết học, ví dụ thực hành, bài tập, lý thuyết hoặc chuyên đề; - các hình thức tổ chức giảng dạy mà nhà trường sử dụng, nếu có. #### Phân tích sư phạm Tab này giúp kiểm tra xem khối lượng thực sự được xếp lịch có còn nhất quán với khung chương trình đào tạo, các cam kết đào tạo và tỷ lệ phân bổ dự kiến giữa các loại hình giảng dạy. Thống kê này đặc biệt hữu ích để trả lời những câu hỏi như: đã xếp bao nhiêu giờ thực hành, lớp nào theo học nhiều giờ nhất trong một môn học, hay những giáo viên nào đảm nhận một môn học trong khoảng thời gian đó. #### Biểu đồ và bộ lọc Chức năng tìm kiếm cho phép bạn tách riêng một môn học, một lớp, một giáo viên hoặc một loại tiết học. Các biểu đồ được tính lại trên những dòng đang hiển thị, nhờ đó bạn nhanh chóng có được một bảng số liệu đúng trọng tâm trước khi sao chép hoặc xuất dữ liệu. #### Xem thêm - [Thống kê lớp](#page-dashboard.classes) - [Thống kê giáo viên](#page-dashboard.teachers) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) ### 4.6 Thống kê lớp *Source: `help/vi/dashboard/classes.md` · id: dashboard.classes · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Tab Lớp tổng hợp khối lượng giờ mà mỗi lớp theo học trong khoảng thời gian đang hiển thị. Tab này dùng để kiểm soát khối lượng đào tạo thực tế, cách phân bổ theo môn học và các minh chứng được yêu cầu khi kiểm định hoặc chứng nhận. #### Các chỉ số được theo dõi Trang này cho phép bạn theo dõi những nội dung như: - tổng số giờ của lớp; - số học sinh theo lý thuyết và số học sinh thực tế khi các nhóm đã được khai báo; - các ngày có tiết học; - cách phân bổ theo môn học; - cách phân bổ theo giáo viên; - chi tiết theo loại tiết học; - các nhóm và nhóm con liên quan. #### Kiểm định và chứng nhận Thống kê lớp giúp lập tài liệu minh chứng về khối lượng giảng dạy đã thực hiện trong một chương trình đào tạo. Những số liệu này có thể hữu ích cho các thủ tục như Qualiopi hoặc CTI tại Pháp, hay AMBA, EQUIS và AACSB trên phạm vi quốc tế, khi nhà trường phải chứng minh khối lượng, hình thức và cách phân bổ giảng dạy. #### Chất lượng dữ liệu Độ chính xác phụ thuộc vào chất lượng của các lớp, nhóm, môn học, loại tiết học và việc phân công giáo viên trong thời khóa biểu. Các nhóm được khai báo đầy đủ giúp bạn có được những con số đáng tin cậy hơn về khối lượng mà học sinh liên quan thực sự theo học. #### Xem thêm - [Thống kê môn học](#page-dashboard.subjects) - [Thống kê giáo viên](#page-dashboard.teachers) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) ### 4.7 Thống kê học sinh và tài nguyên *Source: `help/vi/dashboard/students-resources.md` · id: dashboard.students-resources · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Hai tab Học sinh và Tài nguyên bổ sung cho phần phân tích của Trang tổng quan. Chúng tập trung hơn so với các khung nhìn giáo viên, phòng học, môn học hay lớp, nhưng vẫn hữu ích để kiểm tra dữ liệu vận hành. #### Học sinh Tab Học sinh trình bày số tiết học, số giờ và số ngày mà mỗi học sinh theo học trong khoảng thời gian đang hiển thị. Khi các lớp, nhóm và nhóm con được khai báo chính xác, số liệu thống kê phản ánh chính xác hơn khối lượng thực tế liên quan đến từng học sinh. Tình trạng vắng mặt được tính đến qua các cột riêng, trong đó có số giờ, số tiết học và số ngày vắng mặt. Khung nhìn này giúp bạn phát hiện những trường hợp cá nhân cần được kiểm tra hoặc theo dõi về mặt hành chính. #### Tài nguyên Tab Tài nguyên theo dõi mức sử dụng các tài nguyên vật chất: số giờ sử dụng, số ngày sử dụng và số lượng được huy động mỗi ngày. Tab này chủ yếu dùng để kiểm tra xem một thiết bị dùng chung có thực sự được sử dụng hay không và để phát hiện những giai đoạn hoặc tài nguyên ít được dùng đến. #### Sử dụng dữ liệu Giống như ở các tab khác, ô tìm kiếm lọc những dòng đang hiển thị, các biểu đồ điều chỉnh theo phần dữ liệu đang xem, còn dữ liệu có thể được sao chép, in, xuất hoặc chia sẻ ở chế độ chỉ đọc. #### Xem thêm - [Thống kê lớp](#page-dashboard.classes) - [Vắng mặt của lớp và của học sinh](#page-absences.class-and-student-absences) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) --- ## 5. Sử dụng hàng ngày (mô-đun Thời khóa biểu) ### 5.1 Tra cứu và lọc thời khóa biểu *Source: `help/vi/schedules/consult-and-filter.md` · id: schedules.consult-and-filter · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26* Mô-đun **Thời khóa biểu** (biểu tượng [calendar-days] trong menu bên trái) là màn hình tra cứu hằng ngày. Nó hiển thị các thời khóa biểu đã công bố trong khoảng thời gian được chọn, cùng đầy đủ bộ lọc và các chế độ xem hữu ích. #### Các bộ lọc sẵn có - **Lớp**, **giáo viên**, **nhóm** (có hoặc không kèm cả lớp), - **Phòng học**, **tài nguyên**, - **Giáo viên theo môn học**, **đội ngũ giảng dạy** (toàn bộ giáo viên của một lớp), **môn học**, - **Loại tiết học** (thảo luận, thực hành, kiểm tra, giảng lý thuyết…) nếu đã cấu hình, - **Học sinh** (nếu học sinh đã được nhập và phân công vào các lớp). Bạn có thể **xếp chồng nhiều thời khóa biểu nối tiếp nhau**: tiện khi cần nhìn cùng lúc một lớp và một giáo viên cụ thể, hoặc nhiều lớp song song. #### Các chế độ xem Bộ máy hiển thị kết hợp hai cấp: - một **cách trình bày**: **lưới**, **danh sách** hoặc **bảng** kiểu bảng tính; - một **cách tổ chức theo thời gian**: **tuần**, **ngày**, **tháng**, **lịch trình** (và **lịch trình theo giờ**) hoặc **cạnh nhau**. Lưới là chế độ xem dạng lịch chuẩn. Còn bảng thì dùng để trình bày chế độ xem hiện tại dưới dạng bảng biểu, gần với một bảng tính hơn; đó không phải chế độ xem gốc. Xem [Hiển thị thời khóa biểu](#page-schedules.schedule-display). #### Dải thời gian và điều hướng **Dải thời gian** ở đầu trang cho biết: - **ngày nghỉ lễ** dưới dạng thanh ngang màu xám, - **khoảng thời gian được chọn** (tuần, tháng, đôi khi cả năm học) dưới dạng vùng màu xanh lá có ngày tháng hiển thị chồng lên, - **cách điều hướng**: phím trái/phải trên bàn phím, vuốt trên điện thoại, hoặc các nút `◀ ▶︎`. Các nút `◀` và `▶︎` ở **hai đầu** dải thời gian cho phép **chuyển sang năm học khác**. #### Bộ nhớ đệm và hiệu năng Omniscol khai thác triệt để bộ nhớ đệm của trình duyệt. Ứng dụng chỉ tải lại thời khóa biểu khi bạn đổi tuần — bấm lại vào tuần đang hiển thị sẽ **buộc làm mới dữ liệu**. Nhờ vậy Omniscol vẫn chạy được cả trên kết nối 2G (Edge), và tiếp tục hoạt động qua những lần mất mạng chớp nhoáng (các yêu cầu sẽ được gửi lại khi kết nối trở lại). #### Chế độ chỉnh sửa Nút Tổ chức lại chuyển màn hình sang chế độ chỉnh sửa: xem [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes). #### Xuất / chia sẻ - In — in phần đang chọn (hoặc lưu thành PDF qua trình duyệt). - Chung — mở cửa sổ chia sẻ: [liên kết web](#page-glossary.share-link) công khai, đăng ký nhận lịch [iCal](#page-glossary.ical) hoặc dạng JSON (API), tùy theo quyền của bạn. #### Xem thêm - [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) - [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) - [Hiển thị thời khóa biểu](#page-schedules.schedule-display) - [Trạng thái](#page-glossary.lesson-status) - [In và chia sẻ](#page-schedules.print-and-export) ### 5.2 Hiển thị thời khóa biểu: lưới, danh sách, bảng, lịch trình, tháng, cạnh nhau *Source: `help/vi/schedules/schedule-display.md` · id: schedules.schedule-display · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26* Trang này mô tả **cách hiển thị thời khóa biểu dùng chung** trong Omniscol. Bạn gặp lại nó trong **Thời khóa biểu**, trong màn hình **Phân bổ thời gian** khi chuyển sang chế độ xem **thời khóa biểu**, trong các màn hình **Hiển thị** và **Tổ chức lại** của **Quản lý thời khóa biểu**, và rộng hơn là trong những màn hình khác mở một lịch thời khóa biểu bằng cùng một bộ máy hiển thị. Cùng một tập tiết học có thể được đọc dưới nhiều cách trình bày khác nhau mà dữ liệu hiển thị không hề thay đổi: bạn đổi cách hiển thị, chứ không đổi thời khóa biểu. #### Đổi cách hiển thị Các biểu tượng chuyển đổi gắn với **từng thời khóa biểu đang hiển thị**. Để chúng hiện ra, hãy **rê chuột lên tiêu đề của thời khóa biểu**: thanh tiêu đề khi đó sẽ hiện các biểu tượng chuyển đổi chế độ xem. Hãy bấm vào biểu tượng bạn muốn: - [calendar] cho **lưới**, [table-list] cho **danh sách**, [table] cho **bảng** (chỉ dành cho quản trị viên, trên máy tính); - trên một **lịch trình theo giờ**, [up-down] **hoán đổi ngày và cột**. Thanh tiêu đề cũng có các thao tác chia sẻ và đóng lịch. Vì mỗi thời khóa biểu giữ cách hiển thị riêng của nó, khi xếp chồng nhiều lịch bạn có thể đọc cái này ở dạng danh sách và cái kia ở dạng lưới. #### Ba cách trình bày cho cùng một thời khóa biểu Cấp chuyển đổi thứ nhất liên quan đến **cách trình bày** cùng những tiết học đó. ##### Lưới **Lưới** (Chế độ xem lưới) là chế độ xem dạng lịch chuẩn: ngày theo cột, khung giờ hoặc giờ theo hàng, tiết học nằm trong ô của mình. Đây là chế độ xem tham chiếu để đọc thời khóa biểu theo từng tuần. Cách này đặc biệt hữu ích để: - nhận ra ngay các giờ trống, phần chồng lấn và độ dài ngày học, - so sánh trực quan một lớp, một giáo viên hay một phòng học, - chỉnh sửa hoặc đọc lại thời khóa biểu theo trục thời gian quen thuộc. ##### Danh sách **Danh sách** (Chế độ xem danh sách) hiển thị các tiết học nối tiếp nhau, theo trình tự thời gian. Cách này đặc biệt hữu ích để: - lướt nhanh một khoảng thời gian dài trên màn hình nhỏ, - tìm một tiết học cụ thể bằng các bộ lọc, - đọc lại lần lượt giờ giấc, phòng học và các phân công. ##### Bảng tính **Bảng** là **cách trình bày kiểu bảng tính** của chế độ xem hiện tại. Nó phục vụ việc rà soát, in ấn, sao chép dữ liệu sang một bảng tính, hoặc tùy màn hình mà xuất tệp trực tiếp. Đây **không phải** là chế độ xem dạng lịch chuẩn. Tùy bối cảnh, nó có thể tái hiện: - một lưới ngày × khung giờ ở dạng thiên về bảng biểu hơn, - hoặc mỗi tiết học một hàng khi chế độ xem nguồn đã ở dạng danh sách. Cách này đặc biệt hữu ích để: - kiểm tra về mặt hành chính, - sao chép và dán sang phần mềm bảng tính, - xuất thẳng ra **PDF**, **CSV** hoặc **Excel / XLSX** khi màn hình có sẵn tùy chọn đó, - rà soát từng hàng một. #### Khoảng thời gian hiển thị: tuần, ngày, tháng Cấp chuyển đổi thứ hai liên quan đến **khoảng thời gian được hiển thị**. - **Tuần**: chế độ xem mặc định trong phần lớn trường hợp. - **Ngày**: vẫn cùng logic với lưới chuẩn, nhưng thu gọn vào một ngày duy nhất để đọc kỹ hơn khi ngày đó dày đặc tiết học. - **Tháng**: tầm nhìn dài hạn. Ở chế độ lịch, phần hiển thị mang hình dạng một lưới tháng theo kiểu ma trận; ở chế độ bảng, vẫn là cách trình bày dạng bảng của cùng nội dung đó. Ngoài ra, bộ chọn Lựa chọn các ngày cần hiển thị còn cho phép ẩn hoặc hiện một số ngày trong các chế độ xem liên quan. #### Lịch trình Một **lịch trình** được dựng từ menu bộ lọc: nó xếp liền kề nhiều đối tượng hoặc nhiều ngày trong cùng một chế độ xem, để bạn nhìn theo cụm. Có hai biến thể, tùy vào trục bạn muốn đọc: - **Thêm thời khóa biểu** (biểu tượng [table-cells]) đặt **mỗi đối tượng một hàng** (lớp, giáo viên, phòng học, môn học) và giờ của từng ngày theo cột — để so sánh nhiều đối tượng trong cùng một ngày. - **Thêm thời khóa biểu theo giờ** (biểu tượng [table-columns]) đặt **giờ trên trục dọc** (đúng thang thời gian) và **mỗi đối tượng, mỗi ngày một cột** — để đọc tình trạng chiếm dụng và trình tự nối tiếp trên một thang giờ thực. Nút [up-down] hoán đổi ngày và cột khi cần. Lịch trình đặc biệt dùng để: - hiển thị **nhiều đối tượng liền kề trong cùng một ngày**, - hiển thị **nhiều ngày cho một hoặc nhiều đối tượng**, - đọc tình trạng chiếm dụng theo tháng, - kiểm tra trình tự nối tiếp, các quãng chuyển tiếp hoặc thời gian rảnh. Nó bổ sung cho lưới lịch và trả lời những câu hỏi khác: hãy chọn nó khi bạn cần nhìn theo cụm đối tượng hoặc cụm ngày. #### Cạnh nhau Chức năng Chia màn hình mở chế độ **cạnh nhau**: từ hai đến bốn thời khóa biểu hiển thị kề nhau, mỗi thời khóa biểu giữ bộ lọc riêng và cách hiển thị riêng của nó. Cách này hữu ích để: - so sánh hai lớp hoặc hai giáo viên, - sắp một tiết học chung hoặc một ca trực giám sát chung, - kiểm tra xem có một khung giờ trống đồng thời ở cả hai bên hay không. #### Những gì không đổi khi bạn đổi cách hiển thị Chuyển từ chế độ này sang chế độ khác không làm thay đổi các tiết học. Bạn vẫn giữ nguyên phần dữ liệu bên dưới, và tùy trường hợp: - vẫn những bộ lọc đối tượng đó, - vẫn khoảng thời gian đã chọn đó, - vẫn những lỗi tương thích hay vắng mặt đang hiển thị đó, - vẫn những thao tác in, xuất hoặc chia sẻ đó, tùy theo quyền của người dùng. #### Hướng dẫn — Chọn cách hiển thị phù hợp với việc cần làm 1. **Để đọc nhanh một thời khóa biểu**: hãy bắt đầu từ **lưới**. Đây là chế độ xem dạng lịch chuẩn, dễ đọc nhất cho một tuần học. 2. **Để xem lần lượt từng tiết học**: hãy chuyển sang **danh sách**. Tiện trên màn hình nhỏ hoặc khi cần tìm lại một tiết học cụ thể. 3. **Để sao chép, in, xuất hoặc rà soát theo kiểu bảng tính**: hãy dùng **bảng**. Đó là cách trình bày dạng bảng của chế độ xem hiện tại, không phải chế độ xem gốc của thời khóa biểu. 4. **Để soi kỹ một ngày duy nhất**: hãy chọn khoảng thời gian **ngày**. 5. **Để lùi lại nhìn nhiều tuần hoặc nhiều ngày**: hãy chuyển sang **tháng** hoặc mở một **lịch trình**, tùy câu hỏi cần trả lời. 6. **Để xem chéo nhiều đối tượng hoặc nhiều ngày trong cùng một lượt đọc**: hãy thêm một **lịch trình** (hoặc một **lịch trình theo giờ** nếu cần thang giờ). 7. **Để so sánh hai thời khóa biểu tách rời**: hãy dùng chế độ **cạnh nhau**. #### Xem thêm - [Tra cứu và lọc](#page-schedules.consult-and-filter) - [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate) - [Chế độ hiển thị thời khóa biểu](#page-glossary.schedule-view-mode) ### 5.3 Thay đổi riêng lẻ trên một thời khóa biểu đã công bố *Source: `help/vi/schedules/ad-hoc-changes.md` · id: schedules.ad-hoc-changes · Audience: admin · Plan: standard · Updated: 2026-06-26* Omniscol không chỉ là công cụ tạo thời khóa biểu trước ngày tựu trường — đây còn là công cụ vận hành để xử lý những thay đổi hằng ngày trong suốt năm học. #### Bật chế độ chỉnh sửa Hãy nhấn vào Tổ chức lại. Mọi lịch đang mở đều chuyển sang chế độ Tổ chức lại. Những lịch được mở sau đó cũng chỉnh sửa được ngay. Hãy chuyển tới tuần cần sửa (dòng thời gian ở phía trên). #### Chỉnh sửa một tiết học Hãy nhấn vào một tiết học: biểu mẫu tiết học hiện ra (bạn có thể dời nó đi hoặc làm cho nó mờ bớt) với toàn bộ những trường sửa được: - giáo viên (một hoặc nhiều), - nhóm, nếu có, - tài nguyên, - phòng học (xem [nhiều phòng học](#page-glossary.multi-room)), - ghi chú. #### Chỉnh sửa nhiều tiết học cùng lúc Ở chế độ Tổ chức lại, **Shift + nhấn** vào nhiều tiết học sẽ chọn chúng cùng nhau (từ hai tiết học trở lên, chúng nổi bật hẳn lên). Biểu mẫu tiết học khi đó trở thành một **biểu mẫu chung**: phòng học, giáo viên, tài nguyên, ghi chú hay thời lượng bạn đặt ở đó sẽ áp cho **toàn bộ những tiết học đã chọn** khi lưu — tiện khi cần chuyển cả một khối tiết học sang phòng học khác trong một lần. Xem [Chỉnh sửa một tiết học](#page-timetables.lesson-edit). Thay vì nhấn vào từng tiết học, menu Lựa chọn của biểu mẫu **mở rộng vùng chọn** chỉ bằng một cú nhấn: - theo **khoảng thời gian** — cả **ngày**, cả **tuần** hay cả **tháng** (tùy loại thời khóa biểu); - theo **mức tương tự** — những **tiết học tương tự tiếp theo** (cùng lớp, môn học, nhóm và khung giờ: chuỗi lặp lại của một tiết học); - theo **phân vùng** — những tiết học của cùng một nhóm trong phân vùng. Mỗi mục cho biết nó thêm bao nhiêu tiết học, và một nút gạt giới hạn phạm vi trong lịch hiện hành hoặc mở rộng ra **mọi** lịch đang mở. Menu **nhân bản** ngay bên cạnh ([copy]) sao chép tiết học hoặc những tiết học đã chọn — thành nhiều bản, hoặc cho tới một ngày trên thời khóa biểu dạng lịch. Cách hoạt động chi tiết được trình bày trong [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution). #### Gỡ hoặc xóa một tiết học Để **gỡ** một tiết học khỏi lưới, hãy nhấn vào biểu tượng [scissors] trên biểu mẫu, hoặc nhấn đúp lên tiết học. Tiết học quay về khu vực các tiết học chưa xếp ở bên phải, nơi bạn cũng sửa được nó. Để **xóa** nó, hãy mở biểu mẫu của nó rồi nhấn Xóa: việc gỡ vẫn giữ tiết học lại trong khu vực chờ xếp, còn việc xóa thì lấy nó ra khỏi thời khóa biểu. Cũng như mọi thay đổi khác, nó xuất hiện trong danh sách những thay đổi, nơi bạn có thể hoàn tác (xem phần dưới). #### Dời một tiết học Hãy mở tiết học rồi nhấn nút định vị của nó (Định thời điểm trên thời khóa biểu, cái ghim): các khung giờ khả dĩ hiện ra thành những chấm màu (xanh lá → đỏ tùy mức lỗi tương thích). Hãy nhấn vào khung giờ mới. Để dời sang tuần khác, có hai cách: - **chế độ xem tháng** — xem nhiều tuần cùng lúc, rồi đặt lại tiết học vào khung giờ mong muốn; - **gỡ / đổi tuần / xếp lại** — lấy tiết học ra, đổi tuần đang xem, rồi xếp lại. #### Khác biệt với thời khóa biểu dạng lịch Trên một thời khóa biểu [dạng lịch](#page-glossary.calendar-mode), một thay đổi **tác động thẳng lên tiết học đã có ngày** (vốn đã là duy nhất cho ngày đó). Trên một thời khóa biểu [hằng tuần](#page-glossary.weekly-timetable) hay [theo chu kỳ](#page-glossary.cyclic-timetable), một thay đổi riêng lẻ **không** phá vỡ tuần mẫu — nó được ghi lại như một ngoại lệ trên ngày liên quan. Các tuần khác vẫn tiếp tục theo tuần mẫu. #### Xem và hoàn tác các thay đổi Nút Xem danh sách những thay đổi liệt kê những thay đổi đang chờ trên khoảng thời gian đang xem. Bạn có thể hoàn tác từng thay đổi một. Trên thời khóa biểu **hằng tuần hoặc theo chu kỳ**, một thay đổi riêng lẻ được ghi lại như một ngoại lệ trên ngày của nó: bạn vẫn hoàn tác được **bất cứ lúc nào** từ danh sách này. ⚠ Ngược lại, trên thời khóa biểu **dạng lịch**, các thay đổi được **chốt vĩnh viễn khi lưu**: hãy hoàn tác chúng **trước khi lưu**. Những thay đổi này áp lên **một ngày cụ thể**, chứ không lên cấu trúc của thời khóa biểu. Cấu trúc — lớp, nhóm, **tuần mẫu** — được sửa ở khâu **dựng thời khóa biểu**, không phải ở đây. Vì thế, sửa một ngày **đã qua** là sửa lại lịch sử của riêng ngày đó: hãy làm điều đó khi đã hiểu rõ hệ quả. #### Phát hiện lỗi tương thích Việc phát hiện lỗi tương thích trong chế độ chỉnh sửa hoạt động y như trong mô-đun Quản lý thời khóa biểu: ngay khi bạn dời hoặc sửa một tiết học, Omniscol kiểm tra theo thời gian thực các trường hợp đặt trùng lịch, vượt sức chứa, ràng buộc thời gian và vắng mặt. Trên lịch, một tiết học có lỗi tương thích mang **hai viền màu** — đỏ với một lỗi gây chặn, cam hoặc vàng với một vướng mắc cần bạn cân nhắc. Chi tiết (loại lỗi tương thích, những tiết học liên quan, và chẳng hạn một phòng học còn thiếu) hiện ra trong **chú giải khi di chuột** lên tiết học. Danh sách đầy đủ các loại lỗi tương thích, các mức độ nghiêm trọng và bảng chẩn đoán được trình bày trong [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts). #### Xem thêm - [Tra cứu và lọc thời khóa biểu](#page-schedules.consult-and-filter) - [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) - [Sự kiện đơn lẻ](#page-schedules.events) ### 5.4 Sự kiện đơn lẻ (ngoài thời khóa biểu) *Source: `help/vi/schedules/events.md` · id: schedules.events · Plan: premium · Updated: 2026-08-07* > **Premium** > _Premium_ **Sự kiện đơn lẻ** là một buổi không thuộc cấu trúc thường lệ của thời khóa biểu: một cuộc họp bất thường, một buổi tham quan, một kỳ thi gói trong một ngày, một ngày hội mở cửa trường, một buổi họp đánh giá kết quả của lớp. Thay vì động đến cấu trúc thường lệ của các tiết học, bạn tạo một sự kiện có ngày giờ cụ thể, đặt **chồng lên** lưới thời gian trong một khoảng chính xác. Việc tạo sự kiện đơn lẻ khả dụng trên các tài khoản **Premium**. #### Khi nào tạo sự kiện, khi nào tạo tiết học - **Tiết học thường lệ**: lặp lại hằng tuần (hoặc cách một tuần) trong suốt cả năm. Được quản lý trong mô-đun Quản lý thời khóa biểu, có tham gia vào việc tạo tự động. - **Sự kiện đơn lẻ**: diễn ra trong một khoảng có ngày giờ cụ thể, không theo quy luật lặp lại nào. Được quản lý trực tiếp trong mô-đun Thời khóa biểu. Nguyên tắc dễ nhớ: nếu bạn muốn viết tay điều đó lên một cuốn lịch hơn là đưa vào lưới thời gian hằng tuần, thì đó là một sự kiện. #### Tạo một sự kiện — lịch sự kiện Sự kiện không được nhập qua một biểu mẫu tách rời: bạn vẽ nó **trực tiếp trên lịch**, như trên một cuốn lịch để bàn. Trên lưới sự kiện, hãy **nhấn giữ và kéo** để vẽ một khoảng thời gian trong cùng một ngày (bản xem trước hiện ra trong lúc vẽ). Khi bạn thả chuột, một biểu mẫu mở ra ngay tại vùng đã chọn, với ngày và giờ **đã điền sẵn**; bạn chỉ cần bổ sung: - **Tiêu đề** — `Họp đánh giá kết quả lớp 7B`, `Tham quan Bảo tàng Dân tộc học`, `Thi thử tốt nghiệp - môn Ngữ văn`. - **Bắt đầu** và **kết thúc** — ngày, giờ bắt đầu, giờ kết thúc. - **Người tham dự** — lớp, nhóm, giáo viên, học sinh, hoặc người tham dự nhập **tự do**. - **Địa điểm** — phòng học mà Omniscol đã biết, hoặc địa điểm nhập **tự do**. - **Tài nguyên** — thiết bị hay tài nguyên cần giữ chỗ, nếu có. - **Môn học** và **thẻ** — để gắn sự kiện vào một thứ gì đó và tìm lại nó về sau; xem bên dưới. - Liên kết hội nghị truyền hình — tùy chọn, để theo dõi sự kiện từ xa. - **Nhận xét** — ghi chú tự do, hiển thị kèm sự kiện. - **Màu sắc** — hỗ trợ nhận biết trực quan trên lưới thời gian. Vùng chọn bằng chuột luôn **nằm gọn trong một ngày**. ##### Tìm lịch sự kiện ở đâu - **Trong mô-đun Thời khóa biểu**. Hãy bật bộ lọc **Các sự kiện**: lịch chỉ sửa được (vẽ bằng chuột hoạt động) ở chế độ **Tổ chức lại**; khi chỉ xem thông thường, lịch ở trạng thái chỉ đọc. - **Trong màn hình chỉnh sửa một thời khóa biểu dạng lịch.** Bộ lọc **Các sự kiện** chỉ được đề xuất ở đó cho thời khóa biểu **dạng lịch**; nó không xuất hiện trên thời khóa biểu dạng lưới hằng tuần. #### Môn học và thẻ Hai trường dùng để gắn sự kiện vào một thứ gì đó rộng hơn, và để tìm lại nó về sau. **Môn học.** Một sự kiện có thể gắn với một hoặc nhiều môn học: một buổi thuyết trình được tính vào học phần tin học, một buổi bảo vệ gắn với khóa học của nó. Khi đó sự kiện xuất hiện trong thời khóa biểu mỗi khi bạn lọc theo môn học ấy, bên cạnh các tiết học — và tiêu đề của nó mang theo tên môn học, giúp bạn nhận ra ngay từ cái nhìn đầu tiên. Một môn học đặt trên sự kiện **không tiêu tốn giờ nào**: nó không được tính vào số giờ của môn học, cũng không tính vào giờ làm việc của giáo viên. Sự kiện vẫn là sự kiện; việc gắn kết chỉ để nói sự kiện liên quan đến cái gì, chứ không phải để giảng dạy. **Thẻ.** Bạn gắn thẻ cho sự kiện bằng chính từ ngữ của mình — `tham quan`, `hội đồng`, `không ký tên` — và dùng lại được từ sự kiện này sang sự kiện khác: những thẻ đã dùng sẽ được gợi ý sẵn, để cùng một ý không bị viết ra mười kiểu. Bản thân một thẻ không kích hoạt điều gì. Nó dùng để phân loại, và nhất là để quyết định cái gì được đưa ra khỏi Omniscol: các trình kết nối tới công cụ bên ngoài biết lọc theo những thẻ này, ví dụ để gửi đi tất cả trừ những gì bạn đã đánh dấu `không ký tên`. #### Lưu trực tiếp, song song với thời khóa biểu Một sự kiện được lưu **ngay lập tức và tách riêng**, ngay khi bạn xác nhận biểu mẫu của nó: tạo, di chuyển hay xóa một sự kiện đều lập tức kích hoạt việc lưu của riêng nó (có thông báo xác nhận). Bạn **không cần** đến nút **Lưu** tổng thể của chế độ Tổ chức lại hay của màn hình chỉnh sửa thời khóa biểu — các sự kiện đã được lưu rồi. Ngược lại, việc lưu chế độ Tổ chức lại hay phân bổ thời gian của một thời khóa biểu chỉ tác động đến **các tiết học**, chứ không đến sự kiện: đây là một hệ thống con song song, được ghi lại liên tục theo tiến trình. #### Lỗi tương thích với các tiết học của thời khóa biểu Một sự kiện tham chiếu đến **cùng những thực thể** như thời khóa biểu — giáo viên, lớp, nhóm, phòng học, tài nguyên — nhờ đó Omniscol phát hiện được các phần chồng lấn với những tiết học thường lệ. Khi bạn điền biểu mẫu, mỗi người tham dự và mỗi phòng học hay tài nguyên đều được đối chiếu với những gì đã được xếp trong khoảng thời gian đó: - với một **giáo viên**, một **lớp** hay một **nhóm**, sự kiện được so với các tiết học **và với những sự kiện khác**; - các **phòng học** và **tài nguyên** được kiểm tra để phát hiện chỗ đã bị chiếm sẵn trên khung giờ. Những kiểm tra này cung cấp dữ liệu cho các chỉ báo thời gian rảnh trong các bộ chọn, và hiện lên thành lỗi tương thích trong màn hình Tổ chức lại. Sự kiện chỉ đặt chồng lên lưới thời gian: nó **báo** lỗi tương thích chứ tự nó không giải phóng những tiết học mà nó chồng lên. Bạn hãy xử lý riêng những tiết học đó (di chuyển, sửa đổi đơn lẻ, vắng mặt…). #### Người tham dự: mọi người, hay bất kỳ ai Ngoài những người tham dự được chỉ đích danh, còn có hai người tham dự đặc biệt — và hai mục này không hành xử giống nhau trước lỗi tương thích: - **Mọi người** — sự kiện liên quan đến **toàn trường**, ở mức **bắt buộc**. Nó hiển thị trong mọi thời khóa biểu **và gây lỗi tương thích** với các tiết học đang có: hãy nhớ đến mục này cho một ngày hội mở cửa trường hoặc một sự kiện thực sự huy động cả cơ sở giáo dục. - **Bất kỳ ai** — sự kiện mở cho ai muốn tham gia, ở mức **tự nguyện**. Nó cũng hiển thị trong mọi thời khóa biểu, nhưng **không tạo ra lỗi tương thích nào**: dành cho một đề xuất tùy chọn không được phép chặn lưới thời gian của bất kỳ ai. Cả hai đều hiển thị ở mọi nơi; chỉ **Mọi người** mới gây ra lỗi tương thích, vì mục này khiến việc có mặt trở thành bắt buộc. #### Chiếu vào các thời khóa biểu Sau khi được tạo, một sự kiện sẽ được **chiếu vào từng thời khóa biểu liên quan**: nó xuất hiện trong thời khóa biểu của từng giáo viên, từng lớp, từng nhóm và từng học sinh tham dự, cũng như trong thời khóa biểu của mỗi phòng học và mỗi tài nguyên đã chọn (và ở khắp nơi, với **Mọi người** và **Bất kỳ ai**). Đó vẫn là cùng một sự kiện nhìn từ nhiều góc — nên việc thấy nó đồng thời trong thời khóa biểu của lớp, của giáo viên và của phòng học là chuyện bình thường; đó không phải là bản trùng lặp. Sự kiện không có trường “loại”: nó khác một tiết học thường lệ ở tiêu đề, ở ngày giờ, ở người tham dự và ở màu sắc nếu có. #### Di chuyển, canh chỗ, thả tự do giờ giấc Trên lịch sự kiện, khác với các tiết học, một sự kiện **được di chuyển và thay đổi kích thước bằng thao tác kéo thả**. **Dải giờ hiển thị** của lịch tuân theo **giờ mở cửa** của cơ sở giáo dục: dải này trải từ giờ mở cửa sớm nhất đến giờ đóng cửa muộn nhất đã cấu hình, và lùi về 07h – 20h nếu chưa có gì được khai báo. Biểu mẫu còn có một nút **ghim**: nút này chuyển sang cách đặt theo các khung giờ còn trống, và một cú nhấp vào khung giờ đã chọn sẽ chép ngày và giờ của khung giờ đó vào biểu mẫu — một cách khác thay cho việc vẽ bằng chuột, để canh sự kiện vào đúng chỗ. Cuối cùng, giờ bắt đầu và giờ kết thúc là **hoàn toàn tự do**: chúng không buộc phải rơi đúng vào các khung giờ của lưới thời gian. Một sự kiện có thể bắt đầu lúc 9h50 và kết thúc lúc 11h34 ngay cả khi các tiết học thường lệ đều nằm gọn trong những khung giờ đầy đủ: đó chính là lợi ích của một sự kiện đặt chồng lên lưới thời gian. #### Sửa hoặc hủy Sự kiện được sửa theo đúng cách nó đã được tạo: dời nó trong thời gian, đổi phòng học, thêm hoặc bớt người tham dự. #### Hướng dẫn — Tạo một sự kiện đơn lẻ 1. **Sự kiện đơn lẻ** được đặt **chồng lên** lưới thời gian trong một khoảng có ngày giờ cụ thể: họp đánh giá kết quả của lớp, buổi tham quan, kỳ thi thử, ngày hội mở cửa trường, cuộc họp. Không có quy luật lặp lại nào phải mô hình hóa. 2. **Nhấn giữ và kéo trên lịch sự kiện** để vẽ khoảng thời gian (ở chế độ Tổ chức lại). Biểu mẫu mở ra với ngày giờ đã điền sẵn; bạn nhập tiêu đề (`Họp đánh giá kết quả lớp 7B`, `Tham quan Bảo tàng Dân tộc học`). 3. **Chọn người tham dự**: các lớp, các nhóm, các giáo viên liên quan, học sinh nếu có, hoặc người tham dự nhập tự do. 4. **Thêm địa điểm, tài nguyên, liên kết hội nghị truyền hình và nhận xét** nếu cần. Những trường này mô tả sự kiện; chúng không làm thay đổi các tiết học thường lệ. 5. **Hãy lưu lại.** Sự kiện xuất hiện trong các thời khóa biểu liên quan. Nếu Omniscol báo lỗi tương thích với các tiết học thường lệ, bạn hãy sửa những tiết học liên quan trong màn hình Tổ chức lại. #### Xem thêm - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) - [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) - [Xem và lọc thời khóa biểu](#page-schedules.consult-and-filter) - [FAQ — trường hợp đặc biệt](#page-faq.edge-cases) ### 5.5 In và chia sẻ *Source: `help/vi/schedules/print-and-export.md` · id: schedules.print-and-export · Plan: standard · Updated: 2026-06-25* Mọi thời khóa biểu xem được trong mô-đun Thời khóa biểu đều **in** được hoặc **chia sẻ** được dưới nhiều định dạng. Lựa chọn tùy vào người nhận: giấy để dùng ngoại tuyến, PDF để gửi qua thư điện tử, iCal cho một ứng dụng lịch, liên kết web để xem trực tiếp. Muốn phân tích khối lượng giờ bằng bảng tính, **Trang tổng quan** tổng hợp số giờ và xuất chúng ra CSV / XLSX. #### In Nút In (ở phía trên chế độ xem) mở bản xem trước khi in, với bố cục được tối ưu cho giấy: - các tiết học được **để rỗng**: Omniscol chỉ in **đường viền màu** của chúng trên nền trắng, vừa tiết kiệm mực vừa giữ được dấu hiệu nhận biết theo màu, - lề, hướng giấy và khổ giấy được điều chỉnh theo khổ A4 / Letter, - phần đầu trang chứa tên trường, nhãn của thời khóa biểu đang xem (học sinh, lớp, phòng học…) và khoảng thời gian. Bản xem trước dùng hệ thống in của trình duyệt — nên mọi thứ trình duyệt làm được (xuất PDF sẵn có, chọn máy in, in hai mặt…) đều dùng được. #### Xuất ra PDF Omniscol có **các nút xuất PDF riêng**, dàn trang một thời khóa biểu cho gọn gàng. Nút đầy đủ nhất nằm trong màn hình Hiển thị của Quản lý thời khóa biểu (xem [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate)). Khung nhìn **bảng** của một thời khóa biểu (xem [Hiển thị thời khóa biểu](#page-schedules.schedule-display)) cũng cho xuất PDF, bên cạnh CSV và Excel. Nếu không, trên phần lớn trình duyệt hiện đại, chức năng in cũng xuất được PDF (`Microsoft Print to PDF`, `Save as PDF`, `In ra tệp`). Thực hành tốt: hãy dùng PDF cho những lần trao đổi riêng lẻ (ví dụ gửi thời khóa biểu một tuần cho phụ huynh) và dùng liên kết chia sẻ cho những trao đổi lặp lại (PDF là bản cố định, còn liên kết bám theo các thay đổi). #### Phân tích bằng bảng tính (CSV / XLSX) Có hai cách dẫn tới bảng tính. **Từ màn hình xem**, hãy chuyển chế độ xem của thời khóa biểu sang dạng **bảng** (xem [Hiển thị thời khóa biểu](#page-schedules.schedule-display)): cách trình bày kiểu bảng tính này in được, sao chép dán được và xuất thẳng ra **CSV**, **Excel / XLSX** hoặc **PDF**. **Muốn phân tích khối lượng đã tổng hợp**, hãy đi qua **Trang tổng quan**, nơi tính số giờ theo giáo viên, theo môn học, theo lớp hoặc theo phòng học trong khoảng thời gian đã chọn và cũng cung cấp bản xuất **CSV** (dùng được ở mọi nơi) hay **XLSX** (định dạng sẵn cho Excel). Những cách dùng thường gặp của bản xuất bảng tính này: - đếm số giờ đã thực hiện theo giáo viên, theo môn học, theo lớp; - cung cấp dữ liệu cho một công cụ nhân sự bên ngoài (tính lương, theo dõi thời gian làm việc); - phát hiện chênh lệch giữa giờ làm việc dự kiến và giờ làm việc thực tế. Xem [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) và [Thống kê giáo viên](#page-dashboard.teachers). Muốn lấy chính các tiết học ở định dạng máy đọc được, phần chia sẻ cung cấp một biểu diễn **JSON (API)**; xem [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link). #### Xuất ra iCal Muốn chia sẻ động một thời khóa biểu với một ứng dụng lịch (Google Calendar, Apple Calendar, Outlook), hãy dùng **đăng ký iCal** thay cho một bản xuất một lần. Người nhận thấy các thay đổi một cách liên tục. Xem [iCal — đăng ký và liên kết động](#page-integrations.ical). Cửa sổ chia sẻ còn hiển thị một **mã QR** sẵn sàng để quét: người nhận hướng điện thoại vào màn hình máy tính là đăng ký được lịch mà không phải gõ địa chỉ. Nếu bạn vẫn muốn một tệp `.ics` cố định để lưu trữ, cửa sổ chia sẻ cũng có sẵn bản xuất một lần. #### Lọc trước khi xuất Các bản xuất tôn trọng **bộ lọc đang bật** của chế độ xem hiện tại: nếu bạn đã lọc theo một lớp hay một khoảng thời gian cụ thể, bản xuất chỉ chứa đúng phạm vi đó. Muốn một bản xuất rộng hơn (cả năm, tất cả các lớp), hãy chỉnh lại bộ lọc cho phù hợp trước khi xuất. #### Hướng dẫn — In hoặc chia sẻ một thời khóa biểu 1. **Hai đầu ra từ màn hình xem**: in (PDF) để gửi đi một bản cố định, và chia sẻ (Web, iCal, JSON) để gửi đi một bản cập nhật liên tục. Còn phân tích số liệu bằng bảng tính thì đi qua Trang tổng quan. 2. **Hãy lọc trước** chế độ xem theo phạm vi mong muốn: lớp, giáo viên, phòng học, khoảng thời gian, loại tiết học. In và chia sẻ đều tôn trọng bộ lọc đang bật — lọc hẹp thì kết quả cũng hẹp. 3. **Muốn có PDF** (gửi qua thư điện tử, lưu trữ): đầy đủ nhất là bản xuất PDF của màn hình Hiển thị (xem [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate)); còn từ màn hình xem, nút In mở bản xem trước khi in (tiết học để rỗng, đầu trang có tên trường + nhãn thời khóa biểu + khoảng thời gian), và từ đó cũng xuất được PDF. 4. **Trong hộp thoại in của trình duyệt**, hãy chọn **Save as PDF** / **Microsoft Print to PDF** / **In ra tệp**. PDF là bản cố định: nó không bám theo những thay đổi về sau của thời khóa biểu. Muốn có bản cập nhật liên tục, hãy ưu tiên **liên kết chia sẻ** (xem [Liên kết chia sẻ công khai](#page-schedules.share-link)). 5. **Muốn phân tích bằng bảng tính**: hãy chuyển thời khóa biểu sang dạng **bảng** để xuất trực tiếp (CSV / XLSX / PDF, xem [Hiển thị thời khóa biểu](#page-schedules.schedule-display)), hoặc mở **Trang tổng quan** để xem khối lượng đã tổng hợp — số giờ theo giáo viên / môn học / lớp — rồi xuất ra CSV hay XLSX (xem [Thống kê giáo viên](#page-dashboard.teachers)). 6. **Với một ứng dụng lịch**, hãy ưu tiên **đăng ký iCal** hơn tệp cố định: người nhận thấy các cập nhật một cách liên tục (xem [iCal](#page-integrations.ical)). #### Xem thêm - [Hiển thị thời khóa biểu](#page-schedules.schedule-display) - [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) - [Nhập và xuất dữ liệu](#page-admin.import-export) ### 5.6 Chia sẻ thời khóa biểu bằng liên kết công khai *Source: `help/vi/schedules/share-link.md` · id: schedules.share-link · Audience: admin/teacher · Plan: standard · Updated: 2026-05-15* Mô-đun **Thời khóa biểu** có nút Chung tạo ra các URL đã ký cho thời khóa biểu đang xem. Người nhận mở liên kết web và xem thời khóa biểu ở chế độ chỉ đọc, không cần đăng nhập. Đây là cách nhanh nhất để gửi thời khóa biểu cho người không có tài khoản Omniscol — thường là phụ huynh học sinh, một đối tác bên ngoài hoặc một bộ phận hành chính. #### Các định dạng do chức năng chia sẻ tạo ra Tùy theo ngữ cảnh và quyền của bạn, hộp thoại chia sẻ có thể cung cấp nhiều URL: - **trang web tương thích mọi màn hình** — hiển thị duyệt được theo kiểu cổng thông tin, với các khung nhìn tuần / ngày / danh sách, - **luồng iCal `.ics`** — để đăng ký từ Google Calendar, Apple Calendar, Outlook, - **JSON (API)** — dành cho lập trình viên và các tích hợp máy với máy, khi định dạng này được cho phép. Người nhận chọn cách phù hợp với mình: phụ huynh sẽ mở trang web hoặc đăng ký bằng iCal, còn lập trình viên sẽ dùng JSON. #### Có thể chia sẻ những gì? Chức năng chia sẻ không chỉ giới hạn ở màn hình xem thời khóa biểu: cùng biểu tượng Chung đó xuất hiện trên nhiều màn hình khác của Omniscol. **Ở chế độ chỉ đọc**, bạn có thể chia sẻ: - **thời khóa biểu cá nhân** của một học sinh hoặc một giáo viên, - **thời khóa biểu của cả một lớp**, của một **phòng học** hoặc một **môn học**, - các **bảng phân công** của mô-đun Quản lý nhân sự, - **trang tổng quan** và phần **theo dõi vắng mặt**, - các màn hình **Hiển thị** và **Tổ chức lại** một thời khóa biểu. **Ở chế độ đọc và ghi** — trường hợp duy nhất — bạn có thể chia sẻ màn hình **nhập thời gian rảnh** của giáo viên (và của nhân viên): liên kết dành riêng cho việc này cho phép mỗi người khai báo thời gian rảnh của mình cho tới ngày hết hạn, **không cần tài khoản hay mật khẩu** Omniscol. Đây là hình thức chia sẻ duy nhất cho phép nhập liệu chứ không chỉ để xem. Mỗi URL đã ký đều mang theo phạm vi được yêu cầu và một ngày hết hạn. #### Tạo liên kết Từ màn hình xem, hãy bấm Chung trên thanh công cụ. Hộp thoại cung cấp: - **Ngày hết hạn** — ngày cuối cùng mà các liên kết đã tạo còn hiệu lực. - **Các tab Web, iCal và JSON** — hiển thị tùy theo những định dạng được tạo cho lựa chọn hiện tại. Sau đó bạn sao chép URL cần dùng. Với liên kết web và iCal, hộp thoại còn có thể hiển thị một **mã QR** in được. #### Giới hạn một lần chia sẻ Hãy chọn ngày hết hạn gần cho những nhu cầu dùng một lần. Mỗi liên kết thuộc về tài khoản đã tạo ra nó. Để hủy hiệu lực các liên kết hiện có do một tài khoản tạo ra, hãy dùng đúng những cách sau: - đổi hoặc đặt lại mật khẩu của tài khoản sở hữu; - vô hiệu hóa hoặc xóa tài khoản sở hữu. Mẹo: với những lần chia sẻ do một đội ngũ xếp lịch quản lý, có thể dùng một **tài khoản dịch vụ được đặt tên rõ ràng** (ví dụ `diffusion-planning`) thay vì tài khoản cá nhân của một đồng nghiệp. Khi đó tài khoản này chịu trách nhiệm về các liên kết đã phát hành; quyền truy cập và mật khẩu của nó phải được quản lý như một quyền truy cập quản trị. Các liên kết web đều ở chế độ chỉ đọc, trừ liên kết **nhập thời gian rảnh** của giáo viên đã mô tả ở trên: liên kết đó cho phép nhập liệu cho tới ngày hết hạn mà không mở quyền truy cập vào tài khoản Omniscol. #### Bảo mật - Liên kết chứa một mã thông báo có chữ ký với mức bảo mật cao. - Nó chỉ mở quyền truy cập **vào đúng tài nguyên được chia sẻ** (thời khóa biểu hoặc màn hình), chứ không phải vào toàn bộ tài khoản. - Thời hạn hiệu lực bị giới hạn bởi ngày hết hạn đã chọn. - Các liên kết mất hiệu lực nếu mật khẩu của tài khoản sở hữu thay đổi, kể cả khi mật khẩu mới giống hệt mật khẩu cũ. - Các liên kết ngừng hoạt động nếu tài khoản sở hữu bị vô hiệu hóa hoặc bị xóa. - Bất kỳ ai có URL đều xem được phạm vi đã chia sẻ cho tới khi liên kết hết hạn hoặc mất hiệu lực. #### Khác biệt so với một tài khoản Omniscol bị giới hạn Để chia sẻ dữ liệu giữa các bộ phận, chẳng hạn với bộ phận kế toán, hai phương án này trông có vẻ thay thế được cho nhau. - **Liên kết công khai đã ký** = không cần định danh, truy cập đơn giản, chia sẻ nhanh. - **Tài khoản Omniscol bị giới hạn** = có định danh riêng, thời hạn dài hơn, phải quản lý một tài khoản người dùng, cùng với tùy chọn [vai trò tùy chỉnh](#page-admin.customroles). Hãy ưu tiên liên kết cho những nhu cầu dùng một lần, và tài khoản bị giới hạn cho những nhu cầu có tổ chức và kéo dài. #### Hướng dẫn — Tạo một liên kết chia sẻ 1. **Liên kết chia sẻ** mở quyền xem một thời khóa biểu ở chế độ chỉ đọc mà không cần đăng nhập. Rất phù hợp cho phụ huynh, một đối tác bên ngoài hay một bộ phận hành chính. 2. **Mở thời khóa biểu cần chia sẻ** trong mô-đun Thời khóa biểu: học sinh, lớp, phòng học, giáo viên hoặc môn học. Trang xem là điểm khởi đầu. 3. Bấm Chung trên thanh công cụ. Một hộp thoại mở ra kèm các tùy chọn chia sẻ. 4. **Chọn ngày hết hạn.** Liên kết càng được phát đi rộng rãi, ngày này càng nên gần. 5. **Sao chép định dạng bạn cần.** Web để xem trực tiếp, iCal để đăng ký vào lịch, JSON nếu có dự kiến tích hợp API. URL dùng được ngay: người mở nó sẽ thấy phạm vi đã chia sẻ ở chế độ chỉ đọc, không cần đăng nhập. 6. **Nếu liên kết bị phát tán ngoài ý muốn**, hãy tạo một liên kết mới hạn chế hơn bằng một tài khoản khác, rồi hủy hiệu lực các liên kết thuộc tài khoản ban đầu bằng cách đổi mật khẩu của tài khoản đó hoặc vô hiệu hóa nó nếu phù hợp. #### Xem thêm - [Liên kết chia sẻ công khai](#page-portal.share-links) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Cổng thông tin khách (liên kết công khai)](#page-portal.guest-portal) --- ## 6. Vắng mặt và thay thế ### 6.1 Tổng quan về mô-đun Quản lý vắng mặt *Source: `help/vi/absences/overview.md` · id: absences.overview · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* Mô-đun **Quản lý vắng mặt** tập trung việc khai báo và theo dõi các tình trạng không thể tham gia cần làm thay đổi cách hiển thị thời khóa biểu: giáo viên, lớp, học sinh và, nếu Quản lý nhân sự được kích hoạt, cả thành viên nhân sự. #### Các thực thể được quản lý | Thực thể vắng mặt | Ảnh hưởng đến thời khóa biểu | | --- | --- | | **Giáo viên** | Tiết học bị **hủy** khi giáo viên vắng mặt là người duy nhất phụ trách, trừ khi có **giáo viên thay thế** được chỉ định (khi đó giáo viên thay thế hiển thị bên cạnh tên giáo viên chính đã bị gạch ngang). Với **đồng giảng dạy**, tiết học vẫn được **giữ nguyên**: chỉ giáo viên vắng mặt bị gỡ ra, những giáo viên còn lại vẫn đảm nhận tiết học đó. | | **Lớp** | Các tiết học của lớp vắng mặt được gỡ khỏi phần hiển thị trong khoảng thời gian liên quan. | | **Học sinh** | Các tiết học vẫn giữ nguyên đối với lớp; lần vắng mặt chỉ liên quan đến phần hiển thị và phần theo dõi của học sinh đó. | | **Nhân viên** | Chỉ khả dụng khi mô-đun Quản lý nhân sự đang hoạt động; vận hành như một lần vắng mặt của thực thể trong lịch nhân sự. | Các ngày nghỉ lễ trong năm không được nhập dưới dạng vắng mặt: chúng được quản lý trong phần năm học. #### Giấy tờ chứng minh Mô-đun không quản lý việc **tải lên giấy tờ chứng minh**: việc quản lý thời khóa biểu không nhằm lưu giữ dữ liệu nhạy cảm (giấy chứng nhận y tế, thông tin thuộc bí mật nghề nghiệp), mà tập trung vào việc lập kế hoạch. Nếu bạn vẫn cần đính kèm một giấy tờ, hãy lưu nó trên không gian lưu trữ quen dùng của bạn rồi dán **đường dẫn vào ô nhận xét** của lần vắng mặt. #### Các trạng thái - **Chấp nhận**: lần vắng mặt đã được xác nhận và được tính đến trong các phần hiển thị. - **Đang chờ xử lý**: yêu cầu do chính người dùng liên quan khai báo, chờ quản trị viên phê duyệt. - **Từ chối**: yêu cầu bị từ chối. - **Đã hủy**: yêu cầu do người khai báo tự hủy. Chỉ những lần vắng mặt ở trạng thái **Chấp nhận** mới có tác dụng: chúng làm thay đổi cách hiển thị thời khóa biểu, đánh dấu các tiết học bị ảnh hưởng (bị hủy nếu có) và cung cấp dữ liệu cho phần **thống kê** và phần **xuất dữ liệu** vắng mặt (xem [Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics)). Các trạng thái còn lại — Đang chờ xử lý, Từ chối, Đã hủy — không tác động đến thời khóa biểu. #### Bố cục các màn hình Mô-đun có các tab theo từng loại thực thể: - **Giáo viên**: vắng mặt của giáo viên và phần quản lý thay thế. - **Lớp**: vắng mặt của cả lớp, do quản trị viên quản lý. - **Học sinh**: vắng mặt của từng học sinh. - **Nhân viên**: vắng mặt của nhân viên, nếu mô-đun Quản lý nhân sự được kích hoạt. Mỗi màn hình trình bày các lần vắng mặt của khoảng thời gian đang xem, trạng thái của chúng, các tiết học bị ảnh hưởng khi có thông tin, một phần điều hướng theo thời gian và một danh sách có thể xuất ra dành cho quản trị viên. #### Điều kiện cần - Ít nhất một thời khóa biểu đã công bố cho năm học liên quan. - Với vắng mặt của giáo viên: giáo viên phải được phân công vào các tiết học. - Với vắng mặt của học sinh: học sinh phải được phân công vào các lớp. - Với vắng mặt của nhân viên: mô-đun Quản lý nhân sự phải đang hoạt động. #### Hướng dẫn — Tìm hiểu mô-đun Quản lý vắng mặt 1. Mở mô-đun **Quản lý vắng mặt** từ thanh điều hướng chính. 2. Chọn tab tương ứng với thực thể liên quan: giáo viên, lớp, học sinh hoặc nhân viên tùy theo các mô-đun đang được kích hoạt. 3. Dùng Khai báo vắng mặt để mở biểu mẫu: thực thể vắng mặt, các ngày, khung giờ, lý do, nhận xét và trạng thái tùy theo quyền của bạn. 4. Trên một lần vắng mặt của giáo viên đã được chấp nhận, hãy mở Quản lý thay thế để xem các tiết học liên quan và phân công giáo viên thay thế riêng lẻ hoặc các quy tắc thay thế. 5. Với quản trị viên, nút Bảng tính cho phép xuất bảng đang hiển thị. #### Xem thêm - [Khai báo vắng mặt](#page-absences.declaring) - [Chính sách thay thế](#page-absences.substitution-policies) - [Vắng mặt](#page-glossary.absence) - [Thay thế / dạy thay](#page-glossary.substitution) ### 6.2 Khai báo vắng mặt (quản trị viên / giáo viên / học sinh) *Source: `help/vi/absences/declaring.md` · id: absences.declaring · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* #### Ai có thể khai báo? | Vai trò | Khai báo cho ai? | Trạng thái ban đầu | | --- | --- | --- | | **Quản trị viên** | Giáo viên, lớp, học sinh hoặc thành viên nhân sự | Chấp nhận theo mặc định, có thể sửa | | **Giáo viên** | Chỉ cho chính mình | Đang chờ xử lý | | **Học sinh** | Chỉ cho chính mình | Đang chờ xử lý | | **Nhân viên** | Chỉ cho chính mình, nếu Quản lý nhân sự đang hoạt động | Đang chờ xử lý | Các lần vắng mặt của lớp là thao tác hành chính: việc tạo và việc sửa chỉ dành cho quản trị viên. #### Các trường của biểu mẫu Nút Khai báo vắng mặt mở biểu mẫu. Việc lưu được thực hiện bằng Thêm. - **Thực thể**: hiển thị với quản trị viên; các vai trò khác chỉ khai báo được lần vắng mặt của chính mình. - **Khoảng thời gian**: ngày bắt đầu và ngày kết thúc. Với một lần vắng mặt trong một ngày, hãy dùng cùng một ngày. Nếu giao diện không điền ngày kết thúc, Omniscol lấy ngày cuối năm học làm mốc kỹ thuật: đừng dùng cách đó để ghi nhận một lần vắng mặt thực sự chưa có hạn kết thúc. - **Khung giờ**: mặc định là cả ngày, hoặc từng khung giờ cụ thể. - **Bộ lọc tùy chọn**: - **Lớp** để giới hạn một lần vắng mặt của giáo viên vào một số lớp nhất định. - **Môn học** để chỉ nhắm đến các tiết học của một môn học. - **Phân công** cho các lần vắng mặt của nhân viên, nếu Quản lý nhân sự đang hoạt động. - **Lý do**: chọn trong danh sách có sẵn; quản trị viên còn có thể nhập một lý do tùy chỉnh. - **Nhận xét**: đoạn văn bản tự do ngắn. - **Trạng thái**: chỉ quản trị viên mới đặt được trạng thái tùy ý (mặc định là trạng thái **Chấp nhận**). Với các vai trò khác, yêu cầu nhận trạng thái **Đang chờ xử lý** và chờ quản trị viên phê duyệt; tuy nhiên người khai báo vẫn có thể chuyển yêu cầu của chính mình sang trạng thái **Đã hủy** để từ bỏ. #### Hướng dẫn — Lần khai báo vắng mặt đầu tiên của giáo viên 1. Mở tab Giáo viên của mô-đun Quản lý vắng mặt. 2. Nhấn vào Khai báo vắng mặt. 3. Chọn giáo viên liên quan nếu bạn là quản trị viên. Giáo viên tự khai báo vắng mặt của mình không dùng được bộ chọn giáo viên khác. 4. Điền các ngày. Với một ngày duy nhất, hãy đặt cùng một ngày ở đầu và ở cuối. 5. Giữ nguyên **cả ngày** hoặc xác định những khung giờ liên quan nếu lần vắng mặt chỉ chiếm một phần của ngày. 6. Chọn lý do, thêm nhận xét nếu cần, rồi lưu bằng Thêm. 7. Nếu lần vắng mặt được chấp nhận và liên quan đến một giáo viên, hãy mở phần quản lý thay thế bằng Quản lý thay thế để phân công người thay thế hoặc đặt một quy tắc thay thế. #### Phê duyệt một yêu cầu đang chờ xử lý Khi một giáo viên, một học sinh hoặc một thành viên nhân sự tự khai báo vắng mặt, yêu cầu ở trạng thái đang chờ xử lý. Quản trị viên có thể chấp nhận hoặc từ chối yêu cầu đó từ các lối tắt Chấp nhận và Từ chối, hoặc bằng cách mở chi tiết lần vắng mặt. #### Sửa đổi về sau - Quản trị viên có thể sửa ngày, giờ, lý do, nhận xét và trạng thái. - Người khai báo có thể sửa một lần vắng mặt trong tương lai thuộc về mình; bản sửa quay lại trạng thái đang chờ xử lý. - Người khai báo có thể từ bỏ yêu cầu của chính mình. #### Khả năng hiển thị Việc một thực thể vắng mặt có thể hiển thị trong thời khóa biểu hoặc trong mô-đun Quản lý vắng mặt, tùy theo quyền xem. Chi tiết về lý do, nhận xét, siêu dữ liệu về việc tạo và trạng thái không được hiển thị như nhau cho mọi vai trò: người dùng không phải quản trị viên không nhất thiết thấy chi tiết các lần vắng mặt của người khác. #### Xem thêm - [Chính sách thay thế](#page-absences.substitution-policies) - [Thay thế riêng lẻ cho một tiết học](#page-absences.single-lesson-replacement) - [Vắng mặt](#page-glossary.absence) ### 6.3 Chính sách thay thế *Source: `help/vi/absences/substitution-policies.md` · id: absences.substitution-policies · Audience: admin · Plan: standard · Updated: 2026-06-13* Một **chính sách thay thế** cho phép bao phủ nhiều tiết học bị ảnh hưởng bởi cùng một lần giáo viên vắng mặt. Nhờ đó bạn không phải chọn giáo viên thay thế cho từng tiết học khi chỉ cần một quy tắc đơn giản. #### Truy cập Trên dòng của một lần giáo viên vắng mặt, hãy mở Quản lý thay thế. Bảng này hiển thị những tiết học bị ảnh hưởng bởi lần vắng mặt, cùng các quy tắc thay thế đã lưu. Những tiết học không có giáo viên thay thế vẫn được đánh dấu là chịu ảnh hưởng từ việc giáo viên chính vắng mặt. #### Hai cấp quy tắc ##### Thay thế riêng lẻ Trên một tiết học cụ thể, Phân công Giáo viên thay thế cho phép chọn giáo viên thay thế chỉ cho riêng tiết học đó. Phân công này được ưu tiên hơn các chính sách dài hạn. ##### Chính sách dài hạn Trong phần Thay thế dài hạn của bảng, nút Phân công Giáo viên thay thế tạo một quy tắc thay thế. Với mỗi quy tắc, bạn nhập: - **giáo viên thay thế**; - **ngày bắt đầu** và **ngày kết thúc** hiệu lực; - các **khung giờ** nếu quy tắc không áp dụng cho cả ngày; - **môn học** nếu cần; - **lớp** nếu cần; - một **nhận xét** nội bộ. Nhiều quy tắc có thể cùng tồn tại. Chúng được áp dụng theo thứ tự hiển thị; hãy kéo thả để sắp xếp lại nếu thứ tự ưu tiên thay đổi. #### Cách đọc bảng Danh sách tiết học cho thấy giáo viên thay thế nào đảm nhận mỗi tiết học. Nếu một quy tắc không khớp với tiết học nào của lần vắng mặt, bảng sẽ hiển thị cảnh báo trên quy tắc đó: hãy sửa lại ngày, khung giờ, môn học hoặc lớp. #### Trường hợp điển hình: phân chia một đợt vắng mặt dài Với một đợt vắng mặt kéo dài nhiều tuần: 1. Tạo quy tắc đầu tiên với giáo viên thay thế chính, không lọc theo môn học hay lớp. 2. Thêm quy tắc thứ hai cụ thể hơn, ví dụ chỉ giới hạn ở một môn học hoặc một khung giờ. 3. Đặt quy tắc cụ thể nhất lên trước quy tắc chung nếu nó phải được ưu tiên. #### Hướng dẫn — Phân chia một đợt vắng mặt dài 1. Mở lần giáo viên vắng mặt bằng Quản lý thay thế. 2. Nhấn vào Phân công Giáo viên thay thế. 3. Chọn giáo viên thay thế chính, đặt ngày hiệu lực, rồi lưu lại. 4. Thêm một quy tắc bổ sung nếu một số tiết học phải do một giáo viên thay thế khác đảm nhận. 5. Kiểm tra danh sách các tiết học bị ảnh hưởng. Chúng phải hiển thị đúng giáo viên thay thế mong đợi; những tiết học chưa được bao phủ vẫn hiển thị là không có giáo viên thay thế. 6. Xác nhận bảng bằng Giao. #### Xem thêm - [Khai báo vắng mặt](#page-absences.declaring) - [Thay thế riêng lẻ cho một tiết học](#page-absences.single-lesson-replacement) - [Thay thế / dạy thay](#page-glossary.substitution) ### 6.4 Thay thế riêng lẻ cho một tiết học *Source: `help/vi/absences/single-lesson-replacement.md` · id: absences.single-lesson-replacement · Audience: admin · Plan: standard · Updated: 2026-06-13* Một **thay thế riêng lẻ** phân công một giáo viên thay thế cho duy nhất một tiết học bị ảnh hưởng bởi một lần giáo viên vắng mặt. Việc này được xử lý trong bảng quản lý thay thế của lần vắng mặt đó. Cơ chế này không dời tiết học, tự nó không tạo thông báo và không đưa ra nhiều phương án hủy khác nhau. Nó chỉ thêm một giáo viên thay thế vào tiết học liên quan; giáo viên chính đang vắng mặt vẫn hiển thị là giáo viên được thay thế. #### Truy cập 1. Mở tab Giáo viên của mô-đun Quản lý vắng mặt. 2. Trên lần vắng mặt liên quan, nhấn vào Quản lý thay thế. 3. Trong danh sách các tiết học bị ảnh hưởng, dùng Phân công Giáo viên thay thế trên tiết học cần thay thế. Bảng này hiển thị những tiết học được lần vắng mặt bao phủ và các quy tắc thay thế đã được thiết lập. #### Tác dụng của thay thế riêng lẻ - Giáo viên thay thế được chọn chỉ áp dụng cho riêng tiết học đó. - Phòng học, lớp, ngày và giờ của tiết học không bị thao tác này thay đổi. - Thay thế riêng lẻ được ưu tiên hơn các quy tắc thay thế chung của cùng lần vắng mặt đó. - Nếu không phân công giáo viên thay thế nào, tiết học vẫn chịu ảnh hưởng của lần giáo viên vắng mặt. #### Chọn giáo viên thay thế Danh sách chọn dựa trên những giáo viên còn rảnh vào khung giờ liên quan. Trước khi xác nhận, bạn hãy tự kiểm tra xem lựa chọn có phù hợp với môn học, cơ sở và cách tổ chức nội bộ của trường hay không. #### Gỡ một thay thế riêng lẻ Nếu một thay thế riêng lẻ bị thêm nhầm, hãy dùng [xmark]. Khi đó tiết học quay về quy tắc dài hạn tương ứng, hoặc vẫn không có giáo viên thay thế nếu không có quy tắc nào khớp. #### Hướng dẫn — Thay thế một tiết học 1. Tạo mới hoặc mở một lần giáo viên vắng mặt đã được chấp nhận. 2. Nhấn vào Quản lý thay thế. 3. Tìm tiết học cần xử lý trong danh sách các tiết học bị ảnh hưởng. 4. Nhấn vào Phân công Giáo viên thay thế, chọn giáo viên thay thế, rồi xác nhận bảng bằng Giao. 5. Kiểm tra cách hiển thị của tiết học: giáo viên chính đang vắng mặt vẫn phải bị gạch ngang và giáo viên thay thế phải xuất hiện trên tiết học. #### Xem thêm - [Chính sách thay thế](#page-absences.substitution-policies) - [Khai báo vắng mặt](#page-absences.declaring) - [Vắng mặt nhiều ngày](#page-absences.multi-day) - [Thay thế / dạy thay](#page-glossary.substitution) ### 6.5 Vắng mặt nhiều ngày *Source: `help/vi/absences/multi-day.md` · id: absences.multi-day · Audience: admin · Plan: standard · Updated: 2026-06-13* Một **vắng mặt nhiều ngày** là vắng mặt được khai báo kèm ngày bắt đầu và ngày kết thúc. Nó cho phép bao phủ một giai đoạn liên tục mà không phải tạo riêng một vắng mặt cho từng tiết học. Sau đó Omniscol xác định những tiết học nằm trong giai đoạn này. Với một vắng mặt của giáo viên, các tiết học đó có thể được để không có người thay thế, được bao phủ bằng một chính sách thay thế, hoặc được điều chỉnh bằng các thay thế riêng lẻ. #### Khai báo giai đoạn vắng mặt Trong tab Giáo viên của mô-đun Quản lý vắng mặt: - chọn giáo viên liên quan; - nhập ngày bắt đầu và ngày kết thúc; - để nguyên cả ngày hoặc nêu rõ các khung giờ liên quan; - chọn lý do; - thêm nhận xét nếu cần; - lưu bằng Thêm. #### Xử lý các tiết học bị ảnh hưởng Sau khi khai báo: - mở Quản lý thay thế; - kiểm tra danh sách các tiết học chịu ảnh hưởng của vắng mặt; - tạo một hoặc nhiều quy tắc bằng Phân công Giáo viên thay thế nếu một cách thay thế lặp đi lặp lại; - dùng Phân công Giáo viên thay thế trên một tiết học cụ thể cho những ngoại lệ theo từng tiết học. **Quy tắc thay thế** là cơ chế dành cho những đợt vắng mặt dài. Một quy tắc **không có bộ lọc** áp dụng cho **tất cả** các tiết học trong giai đoạn; hãy thêm một lớp, một môn học, các khung giờ hoặc các ngày để chỉ nhắm đến một phần. Để **không thay thế gì cả**, đừng tạo quy tắc nào: khi đó những tiết học mà giáo viên vắng mặt là người phụ trách duy nhất sẽ bị hủy trong suốt giai đoạn. #### Vắng mặt vào các khung giờ lặp lại Một vắng mặt chỉ ảnh hưởng đến một số khung giờ của một giai đoạn dài — ví dụ mọi sáng thứ Hai trong hai tháng — được khai báo **một lần duy nhất**: hãy nhập một khoảng ngày rộng, rồi nêu rõ các **khung giờ** liên quan (và nếu cần, một lớp hoặc một môn học). Trên toàn bộ giai đoạn, Omniscol khi đó chỉ chọn những tiết học rơi vào các khung giờ này: không cần nhập từng lần xuất hiện. #### Theo dõi và xuất dữ liệu Bảng vắng mặt cho phép quản trị viên xuất các dòng đang hiển thị bằng Bảng tính. Về phần theo dõi có sẵn trong mô-đun này, xem [Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics). #### Hướng dẫn — Quản lý một đợt vắng mặt dài 1. Khai báo vắng mặt với ngày bắt đầu và ngày kết thúc. 2. Nếu vắng mặt không bao trùm trọn các ngày, hãy nêu rõ các khung giờ liên quan. 3. Lưu khai báo. 4. Mở Quản lý thay thế. 5. Thêm các quy tắc thay thế cần thiết, rồi kiểm tra danh sách các tiết học bị ảnh hưởng. 6. Chỉ dùng thay thế riêng lẻ cho những tiết học cần đi chệch khỏi các quy tắc chung. #### Xem thêm - [Khai báo vắng mặt](#page-absences.declaring) - [Chính sách thay thế](#page-absences.substitution-policies) - [Thay thế riêng lẻ cho một tiết học](#page-absences.single-lesson-replacement) - [Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics) ### 6.6 Vắng mặt của lớp và của học sinh *Source: `help/vi/absences/class-and-student-absences.md` · id: absences.class-and-student-absences · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Mô-đun Quản lý vắng mặt phân biệt giữa vắng mặt của **cả lớp** và vắng mặt của **từng học sinh**. Cả hai đều theo cùng một nguyên tắc khai báo, nhưng ảnh hưởng của chúng lên thời khóa biểu thì không giống nhau. #### Vắng mặt của cả lớp Các trường hợp thường gặp: chuyến đi giáo dục, chuyến đi thực tế, kỳ thực tập chung, ngày thi. Vắng mặt của lớp do quản trị viên quản lý. Từ tab Lớp, biểu mẫu cho phép nhập: - lớp liên quan; - khoảng ngày; - khung giờ nếu vắng mặt không kéo dài cả ngày; - nếu cần, một môn học để giới hạn ảnh hưởng ở các tiết học liên quan; - một lý do; - một nhận xét. Với thời khóa biểu lặp lại, một lần vắng mặt của lớp đã được chấp nhận sẽ gỡ các tiết học của lớp đó khỏi phần hiển thị trong khoảng thời gian liên quan. #### Vắng mặt của từng học sinh Các trường hợp thường gặp: bệnh, khám bệnh, lý do gia đình, vắng mặt có phép hoặc không phép. Một lần vắng mặt của học sinh: - chỉ liên quan đến học sinh được chọn; - đánh dấu các tiết học trong khoảng thời gian đó là **đã hủy** trên thời khóa biểu của học sinh, mà không gỡ tiết học của lớp cũng như của giáo viên; - có thể do quản trị viên hoặc do chính học sinh đó khai báo, tùy theo quyền của họ; - chuyển sang trạng thái đang chờ xử lý khi do chính học sinh khai báo. #### Khả năng hiển thị Quản trị viên xem được đầy đủ thông tin. Các vai trò khác chỉ thấy thông tin hạn chế tùy theo quyền của mình: việc một lần vắng mặt tồn tại có thể được hiển thị mà không để lộ lý do, nhận xét hay siêu dữ liệu phê duyệt. #### Hướng dẫn — Khai báo vắng mặt cho cả lớp 1. Mở tab Lớp của mô-đun Quản lý vắng mặt. 2. Nhấn vào Khai báo vắng mặt. 3. Chọn lớp, các ngày và giờ liên quan. 4. Thêm lý do và, nếu cần, một nhận xét. 5. Lưu lại. Các tiết học của lớp này được gỡ khỏi phần hiển thị trong khoảng thời gian đã chấp nhận; các lớp khác vẫn giữ nguyên tiết học của mình. #### Hướng dẫn — Khai báo vắng mặt cho một học sinh 1. Mở tab **Học sinh**. 2. Chọn học sinh liên quan nếu bạn là quản trị viên. 3. Nhập các ngày, giờ, lý do và nhận xét. 4. Lưu lại. Nếu chính học sinh đã tạo yêu cầu, yêu cầu vẫn đang chờ xử lý cho đến khi được phê duyệt. 5. Sau khi được chấp nhận, các tiết học trong khoảng thời gian đó được đánh dấu là **đã hủy** trên thời khóa biểu của học sinh và được tính vào phần theo dõi và thống kê của học sinh đó. Các học sinh khác trong lớp không bị ảnh hưởng. #### Xem thêm - [Khai báo vắng mặt](#page-absences.declaring) - [Theo dõi và xuất dữ liệu vắng mặt](#page-absences.statistics) - [Vắng mặt nhiều ngày](#page-absences.multi-day) - [Sự kiện đơn lẻ](#page-schedules.events) ### 6.7 Theo dõi và xuất dữ liệu vắng mặt *Source: `help/vi/absences/statistics.md` · id: absences.statistics · Audience: admin · Plan: standard · Updated: 2026-06-13* Việc theo dõi vắng mặt nằm ở nhiều nơi bổ trợ cho nhau: mô-đun Quản lý vắng mặt cho phần theo dõi vận hành, **Trang tổng quan** cho phần thống kê tổng hợp, và mô-đun Quản trị cho lịch sử của một học sinh. Hai phần hiển thị sau chỉ tính các lần vắng mặt ở trạng thái **Chấp nhận**. #### Theo dõi trong mô-đun Quản lý vắng mặt Tùy theo tab và khoảng thời gian được chọn, màn hình hiển thị: - các thực thể vắng mặt trong khoảng thời gian đó; - trạng thái của các yêu cầu, kèm số lượng; - các tiết học bị ảnh hưởng bởi những lần vắng mặt ở trạng thái Chấp nhận; - phần điều hướng theo tuần, tháng, năm học hoặc khoảng ngày; - danh sách vắng mặt dạng bảng. Với một lần vắng mặt của giáo viên, phần quản lý thay thế (Quản lý thay thế) bổ sung các tiết học bị ảnh hưởng và những giáo viên thay thế đã được phân công. Quản trị viên xuất bảng đang hiển thị bằng Bảng tính: thực thể, ngày, giờ, môn học nếu có, lý do, nhận xét và trạng thái tùy theo quyền — tiện cho một bản tổng kết nội bộ hoặc để xử lý tiếp bên ngoài Omniscol. #### Thống kê trong Trang tổng quan Để xem **khối lượng và tỷ lệ**, hãy mở **Trang tổng quan**. Tab Học sinh cộng tổng, theo từng học sinh và trong khoảng thời gian đó, số **giờ**, số **tiết học** và số **ngày vắng mặt**, cùng **tỷ lệ vắng mặt** tương ứng; kết quả xuất được ra CSV / XLSX (xem [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources)). Về phía **giáo viên**, tab Giáo viên phản ánh tác động của vắng mặt lên giờ làm việc: cột **Giờ hủy bỏ** thống kê số giờ bị trừ đi (một lần vắng mặt không có người thay thế sẽ hủy tiết học), còn **Giờ làm thêm** thống kê số giờ được thêm vào. Mỗi cột cho biết số tiết học liên quan và kèm một chú giải hiện ra khi di chuột lên để xem chi tiết từng tiết học (môn học, lớp, ngày và giờ); với một tiết học bị hủy do vắng mặt, lý do cũng xuất hiện ở đó khi đã được nhập. Tab này cũng xuất được ra CSV / XLSX (xem [Thống kê giáo viên](#page-dashboard.teachers)). #### Lịch sử trong mô-đun Quản trị Trong mô-đun Quản trị, hồ sơ của một **học sinh** cũng như hồ sơ của một **giáo viên** đều tóm tắt các lần vắng mặt trong năm học và có phần xuất bảng riêng — tiện cho việc theo dõi từng cá nhân hoặc để trao đổi (với gia đình đối với học sinh, với chính người liên quan đối với giáo viên). #### Những giới hạn cần biết - Chỉ các lần vắng mặt ở trạng thái **Chấp nhận** mới được tính trong phần hiển thị và phần thống kê; những lần ở trạng thái **Đang chờ xử lý**, **Từ chối** hoặc **Đã hủy** chỉ mang tính thông tin. - Lý do và nhận xét có thể bị ẩn tùy theo vai trò của người xem. #### Hướng dẫn — Tạo một tệp xuất phục vụ theo dõi 1. Mở tab tương ứng của mô-đun Quản lý vắng mặt. 2. Chọn khoảng thời gian cần kiểm tra. 3. Kiểm tra các trạng thái và các tiết học bị ảnh hưởng nếu cần. 4. Nhấn vào Bảng tính. 5. Dùng tệp đã xuất cho các kiểm tra nội bộ hoặc các xử lý tiếp theo của bạn. 6. Để có **khối lượng và tỷ lệ vắng mặt** theo từng học sinh, hãy mở Trang tổng quan, tab Học sinh (xem [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources)). #### Xem thêm - [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) - [Vắng mặt của lớp và của học sinh](#page-absences.class-and-student-absences) - [Chính sách thay thế](#page-absences.substitution-policies) - [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) --- ## 7. Quản lý nhân sự ### 7.1 Tổng quan về mô-đun Quản lý nhân sự *Source: `help/vi/staffing/overview.md` · id: staffing.overview · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Quản lý nhân sự** Mô-đun **Quản lý nhân sự** dùng để xếp lịch nhân sự **theo nhiệm vụ** thay vì theo tiết học: cách nghĩ ở đây là “ai đảm nhận vị trí nào vào lúc nào” chứ không phải “ai dạy môn gì”. Mô-đun bổ sung cho thời khóa biểu giảng dạy khi nhà trường phải quản lý công tác quản sinh, các ca giám sát, giờ tự học có giám sát, kỳ thi hoặc những hoạt động cần người phụ trách. #### Trường hợp sử dụng chính: công tác quản sinh và đội ngũ giám thị Mô-đun ra đời để đáp ứng nhu cầu lâu năm của các đội ngũ quản sinh: cán bộ phụ trách nề nếp, giám thị, nhân viên trực ban và những người đảm nhận vô số vị trí trong suốt cả ngày, độc lập với các tiết học. Ví dụ: - giám sát hành lang; - kiểm soát người ra vào trường; - trực khu tiếp đón; - giám sát sân trường trong giờ ra chơi; - giám sát nhà ăn vào buổi trưa; - phụ trách giờ tự học có giám sát và phòng tự học; - phụ trách hoặc giám sát thư viện, phòng sinh hoạt chung hay một khu tự học; - đưa học sinh ra ngoài trường, ví dụ một buổi hoạt động thể dục ngoài trời chỉ giao cho những người có chứng chỉ phù hợp; - đảm nhận những khoảng chuyển tiết phát sinh; - phụ trách các kỳ thi, kỳ thi tuyển sinh hoặc những ngày sự kiện đặc biệt. Một nhiệm vụ mô tả nhu cầu về sự có mặt. Khác với một tiết học, nhiệm vụ không mang môn học, chương trình giảng dạy hay một nhóm học sinh bắt buộc. Lưới trực ban thường chi tiết hơn nhiều so với một thời khóa biểu giảng dạy: trong công tác quản sinh, mức mười lăm phút là chuyện thường. Nhu cầu có thể thay đổi rất mạnh trong ngày: 0 người ở sân trường khi đang có tiết học, 3 người vào buổi trưa, 1 người ở thư viện suốt buổi chiều. #### Các màn hình của mô-đun ##### Lưới Lưới xác định khung thời gian của lịch trực: các ngày làm việc, các khung giờ — thường chi tiết hơn lưới thời gian của các tiết học — và những giai đoạn trong năm mà lưới được áp dụng. Lưới đóng vai trò một khuôn mẫu làm việc trước khi chỉ định con người. Các cơ sở và khoảng cách giữa chúng cũng được khai báo tại đây: chúng dùng để báo hiệu những phân công không tương thích giữa các địa điểm xa nhau. Xem [Xây dựng lưới trực ban](#page-staffing.building-grids). ##### Phân công Màn hình Phân công xác định các vị trí hoặc nhiệm vụ cần đảm nhận: nhãn, số người cần thiết và số người lý tưởng, mức ưu tiên, cơ sở, danh sách nhân viên được phép và các quan hệ tương thích giữa những nhiệm vụ — ví dụ hai hành lang cạnh nhau mà cùng một người có thể đảm nhận trong một khung giờ vắng khi đang thiếu người. Nhu cầu có thể thay đổi theo từng khung giờ. Xem [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments). ##### Lập kế hoạch Phần lập kế hoạch phân công các thành viên nhân sự vào những nhiệm vụ thực tế của một tuần hoặc một khoảng ngày. Việc phân công được thực hiện bằng cách chọn, di chuyển, nhân bản và sửa thủ công. Các lần vắng mặt, thời gian không rảnh, lỗi tương thích và việc phân công những người không được phép đều hiện lên dưới dạng cảnh báo. Xem [Phân công nhân viên](#page-staffing.planner). ##### Bảng phân công Bảng phân công cung cấp cho mỗi người danh sách nhiệm vụ của họ, hoặc cả tuần dưới dạng lưới. Bảng này có thể được in, xuất ra hoặc chia sẻ tùy theo quyền và cách phổ biến mà nhà trường lựa chọn. Bảng hiển thị các số liệu tổng hữu ích khi đọc cả tuần và vẫn giữ những dấu hiệu vắng mặt hay không rảnh. Xem [Bảng phân công](#page-staffing.roster). #### Những gì mô-đun kiểm tra - thời gian rảnh của từng người; - các lần vắng mặt đã khai báo; - khối lượng công việc đã phân công; - nhân viên được phép đảm nhận từng nhiệm vụ; - lỗi tương thích với những nhiệm vụ hoặc ca trực khác; - tính nhất quán của nhu cầu theo từng cơ sở và từng khung giờ, có tính đến khoảng cách giữa các cơ sở. Việc xếp lịch nhân sự là **thủ công**: lưới trực ban, các cảnh báo và những công cụ chỉnh sửa hướng dẫn từng phân công, còn bạn luôn giữ quyền quyết định. Omniscol không tự động xếp nhân viên vào các ô. #### Lợi ích trong vận hành Lợi ích chủ yếu đến từ việc tập trung mọi thứ về một chỗ: - một lưới nhu cầu dùng chung thay cho một bảng tính rời rạc; - các phân công sửa được theo từng tuần; - việc nhân bản những tuần ổn định; - các lần vắng mặt hiện rõ trong lịch của nhân sự; - những bảng phân công in được hoặc chia sẻ được; - bớt qua lại giữa bộ phận quản sinh, những người được phân công và bộ phận hành chính. Với một trường khoảng một nghìn học sinh, phản hồi từ thực tế cho thấy tiết kiệm được khoảng 20 giờ công việc hành chính mỗi tuần. > “Chúng tôi chọn Omniscol để số hóa việc quản lý lịch ở bộ phận quản > sinh của trường chúng tôi (thời khóa biểu của đội ngũ giám thị). Giải > pháp tỏ ra trực quan, đầy đủ và hoàn toàn phù hợp với nhu cầu của > chúng tôi. Mỗi người đều thấy rõ mình được phân công ở đâu.” > > — Jeanne Weeber, Phó Hiệu trưởng Collège Sévigné (thành lập năm 1880), Paris #### Các cách dùng khác - **Coi thi**: các đợt kiểm tra giữa kỳ, kỳ thi tốt nghiệp, kỳ thi tuyển sinh, kéo dài nhiều ngày, nhiều phòng, nhu cầu người coi thi theo từng môn thi. - **Giờ tự học có giám sát và phòng tự học**: các vị trí giám sát thay đổi theo số học sinh dự kiến. - **Phụ trách theo phương pháp Montessori và các phương pháp giáo dục tích cực**: những hoạt động hoặc buổi thực hành cần người đảm nhận mà không phải áp khuôn cấu trúc của một tiết học thông thường. - **Lịch của người phụ trách hoạt động và lịch theo nhiệm vụ**: nhà thiếu nhi, hoạt động ngoài giờ chính khóa, khu nội trú, lịch tổ chức theo từng đầu việc. - **Phụ trách các chuyến đi**: chuyến dã ngoại của trường, buổi tham quan học tập, chuyến thăm một trường khác. - **Những ca trực phát sinh**: buổi tiếp phụ huynh, ngày hội mở cửa trường, họp đánh giá kết quả của lớp. #### Khác biệt so với một tiết học Một tiết học mang một môn học, một nhóm học sinh và một giáo viên đủ chuyên môn. Một nhiệm vụ của Quản lý nhân sự mang một **nhu cầu về sự có mặt**: cần có người ở vị trí đó, rảnh vào đúng lúc và, nếu cần, được phép đảm nhận vị trí đó. Khác biệt này giải thích vì sao mô-đun vận hành bằng lưới nhu cầu, phân công con người và bảng phân công, thay vì xuất phát từ việc phân bổ môn học / lớp / giáo viên. #### Phạm vi của mô-đun Một tài khoản có Quản lý nhân sự bao gồm: - mô-đun Quản lý nhân sự: lưới trực ban, nhiệm vụ, phần lập kế hoạch, bảng phân công; - mô-đun Quản lý vắng mặt cho những nhân viên có thể phân công; - các màn hình quản trị cần thiết cho tài khoản và vai trò; - chức năng tìm kiếm xuyên suốt, tùy theo quyền của tài khoản. #### Vai trò *Nhân viên* Vai trò **Nhân viên** được thiết kế cho các đội ngũ quản sinh (cán bộ phụ trách nề nếp, giám thị, nhân viên trực ban, nhân viên bảo vệ). Tùy theo quyền của tài khoản, vai trò này mở quyền vào Quản lý nhân sự, vào lịch làm việc cá nhân và các lần vắng mặt của nhân sự, mà không mở toàn bộ cấu hình chung của nhà trường. Cùng một người dùng có thể kiêm nhiều vai trò: chẳng hạn một giáo viên tham gia một phương pháp giáo dục tích cực vừa có thể là giáo viên, vừa là thành viên nhân sự được xếp lịch theo nhiệm vụ. #### Xem thêm - [Xây dựng lưới trực ban](#page-staffing.building-grids) - [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [Phân công nhân viên](#page-staffing.planner) - [Bảng phân công](#page-staffing.roster) - [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) - [Quản lý nhân sự](#page-glossary.staffing) - [Giờ tự học có giám sát (phổ thông)](#page-k12.study-halls) ### 7.2 Xây dựng lưới trực ban *Source: `help/vi/staffing/building-grids.md` · id: staffing.building-grids · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-26* > **Option: Quản lý nhân sự** Một **lưới trực ban** xác định khung thời gian của công tác trực: những ngày làm việc, các khung giờ và những giai đoạn trong năm mà lưới được áp dụng. Đây là bước làm **trước** khi chỉ định con người — bạn dựng khung, còn các nhiệm vụ cần đảm nhận thì được mô tả sau đó trong màn hình Phân công, và việc điền người diễn ra trong phần lập kế hoạch. Kết hợp với nhu cầu khai báo trên từng nhiệm vụ, lưới trả lời được những câu hỏi như “cần bao nhiêu người ở sân trường lúc 10 giờ?” hay “bộ phận quản sinh phải phụ trách những khung giờ nào trong tuần này?”. #### Tạo một lưới Tab Lưới trong mô-đun Quản lý nhân sự hiển thị các lưới hiện có và cách chúng được phân bổ trên cả năm. Với mỗi lưới, bạn điền: - **tên** — ngắn gọn và dễ nhận ra, ví dụ `Tuần chuẩn`, `Thi học kỳ 1`, `Kỳ nghỉ`; - **Ngày làm việc** — ví dụ thứ Hai đến thứ Sáu cho tuần chuẩn, hoặc một lựa chọn riêng cho tuần thi; - **Lưới thời gian** — các khung giờ của lưới, do bạn tự định nghĩa. Trong công tác quản sinh, mức 15 phút là phổ biến, và những khung giờ này có thể chia nhỏ hơn lưới thời gian của các tiết học. Nút Phân bổ lưới sau đó gán mỗi lưới cho những tuần hoặc khoảng ngày trong năm mà lưới đó bao phủ. Lần đầu mở màn hình, một lưới trống được đề xuất. Để tạo thêm một lưới, hãy nhân bản một lưới có sẵn bằng Tạo bản sao, đổi tên, rồi chỉnh lại cho phù hợp. #### Xác định nhiệm vụ và nhu cầu Bản thân các nhiệm vụ — nhãn, số người, cơ sở, nhân viên được phép — được xác định trong màn hình Phân công: xem [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments). Với mỗi nhiệm vụ, trình chỉnh sửa nhu cầu sau đó nêu rõ, theo từng khung giờ trên lưới, cần bao nhiêu người (0 = không cần). Nhu cầu có thể thay đổi rất nhiều theo giờ: 0 người ở sân trường trong lúc có tiết học, 3 người vào buổi trưa cho nhà ăn, 1 người ở thư viện suốt cả buổi chiều. #### Cơ sở và khoảng cách Nếu nhà trường có nhiều cơ sở, hãy khai báo chúng ở cuối màn hình Lưới cùng với khoảng cách giữa các cơ sở. Một nhiệm vụ đặt tại một cơ sở ở xa sẽ sinh ra cảnh báo nếu cùng người đó còn phải có mặt ở nơi khác mà không đủ thời gian di chuyển. #### Tương thích khi thiếu người Khi nhân sự sẵn có ít hơn mức lý tưởng (trường hợp thường gặp: vắng mặt dồn dập, các đợt thi), bạn có thể khai báo quan hệ **tương thích** giữa những nhiệm vụ gần nhau: khi đó cùng một người có thể đảm nhận song song hai nhiệm vụ. Ví dụ điển hình: `hành lang 2` + `hành lang 3` có thể gộp lại — cùng một người giám sát được cả hai. Bạn khai báo điều đó trên nhiệm vụ, trong màn hình Phân công, để định hướng cho các quyết định phân công. Đừng khai báo một quan hệ tương thích để che giấu lâu dài tình trạng thiếu người. Quan hệ tương thích phải tương ứng với một tình huống mà nhà trường thực sự chấp nhận trên thực tế. #### Các mẫu lưới Nếu bạn quản lý cùng một cấu trúc lịch mỗi tuần, bạn có thể **nhân bản một lưới có sẵn** để bắt đầu từ một nền chung. Những trường hợp lặp lại: - **Tuần chuẩn** — lưới tham chiếu (từ đầu năm học đến cuối năm). - **Tuần nghỉ** — ít nhiệm vụ hơn, đội ngũ rút gọn. - **Tuần thi** — việc coi thi ở giảng đường cộng thêm vào các nhiệm vụ thường ngày. - **Ngày đặc biệt** — ngày hội tuyển sinh, buổi dã ngoại, sự kiện nội bộ, cuộc họp hội đồng hoặc đợt tiếp đón riêng. #### Kiểm tra tính nhất quán trước khi phân công Trước khi chuyển sang bước phân công, hãy dùng lưới như một bảng kiểm nghiệp vụ: - các nhiệm vụ đã bao phủ đủ mọi giai đoạn cần thiết chưa? - nhu cầu có thực tế so với đội ngũ hiện có không? - các vị trí trải trên nhiều cơ sở đã tính đến thời gian di chuyển chưa? - những giới hạn về nhân viên được phép có khớp với những người thực sự đủ điều kiện không? - các quan hệ tương thích giữa những nhiệm vụ có còn chấp nhận được ngay cả khi thiếu người không? Khi lưới đã được kiểm tra xong, hãy chuyển sang bước **phân công**. Xem [Phân công nhân viên](#page-staffing.planner). #### Hướng dẫn — Xây dựng lưới trực ban 1. **Một lưới trực ban** mô tả khung của công tác trực trong cả năm: ngày làm việc, khung giờ, cơ sở. 2. **Tạo một lưới.** Đặt cho nó một tên ngắn (`Tuần chuẩn`). Chọn những ngày làm việc, rồi định nghĩa các khung giờ — thường theo mức 15 phút đối với giám thị. Bạn cũng có thể nhân bản một lưới có sẵn để bắt đầu từ một nền chung. 3. **Phân bổ lưới trên cả năm** bằng Phân bổ lưới: mỗi lưới bao phủ những tuần hoặc khoảng ngày mà nó được áp dụng (tuần chuẩn, kỳ thi, kỳ nghỉ). 4. **Khai báo các cơ sở** nếu nhà trường có nhiều cơ sở. Khoảng cách giữa các cơ sở cho phép báo hiệu những phân công không tương thích. 5. **Lưu lưới lại**, rồi mô tả các nhiệm vụ và nhu cầu của chúng theo từng khung giờ trong màn hình Phân công. Xem [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments). 6. **Bước tiếp theo: phân công nhân viên** trong phần lập kế hoạch. Xem [Phân công nhân viên](#page-staffing.planner). #### Xem thêm - [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [Phân công nhân viên](#page-staffing.planner) ### 7.3 Xác định các nhiệm vụ cần đảm nhận *Source: `help/vi/staffing/assignments.md` · id: staffing.assignments · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Quản lý nhân sự** Màn hình Phân công dùng để xác định các nhiệm vụ hoặc vị trí trực ban mà mô-đun Quản lý nhân sự phải đảm nhận. Đây là một bước cấu hình: bạn mô tả nhu cầu, trước khi phân công con người trong phần [Lập kế hoạch](#page-staffing.planner). Việc **phổ biến** đến nhân viên diễn ra sau đó, qua tab Bảng phân công (xem [Bảng phân công](#page-staffing.roster)). #### Một nhiệm vụ mô tả những gì Một nhiệm vụ có thể gồm: - một nhãn rõ ràng: `Khu tiếp đón`, `Sân trường`, `Nhà ăn`, `Coi thi giảng đường A`; - số người tối thiểu cần thiết và số người lý tưởng; - một mức độ ưu tiên; - một cơ sở hoặc một địa điểm; - danh sách cụ thể những thành viên nhân sự được phép đảm nhận (để trống = toàn bộ nhân viên); - các quy tắc tương thích với những nhiệm vụ khác; - nhu cầu chi tiết theo từng khung giờ trên lưới trực ban. Nhiệm vụ phải đủ rõ ràng để người đọc hiểu được trong phần lập kế hoạch và trong bảng phân công gửi cho nhân viên. Các ví dụ thường gặp: - `Hành lang 2`; - `Tiếp đón cổng phía bắc`; - `Sân trường giờ ra chơi`; - `Nhà ăn`; - `Phòng tự học B12`; - `Coi thi giảng đường A`; - `Ngoại khóa thể dục tại sân vận động thành phố`. #### Nhu cầu và nhân viên được phép Nhu cầu cho biết bao nhiêu người phải đảm nhận một nhiệm vụ, theo từng khung giờ trên lưới trực ban (0 = không cần), bên cạnh số người tối thiểu cần thiết và số người lý tưởng của nhiệm vụ. Danh sách nhân viên được phép giới hạn những người đủ điều kiện: hãy dành nó cho những vị trí đòi hỏi một chứng chỉ hoặc một năng lực riêng — buổi ngoại khóa thể dục, nhiệm vụ giám sát đặc thù, việc tiếp đón đặc biệt, quyền ra vào một cơ sở. Những thông tin này tránh biến việc phân công thành một danh sách tên đơn thuần: Omniscol giữ mối liên hệ giữa vị trí, nhu cầu và những người được phép đảm nhận vị trí đó. Với một nhiệm vụ nhạy cảm, hãy giới hạn danh sách nhân viên được phép thay vì trông cậy vào một lời dặn miệng: khi đó phần lập kế hoạch sẽ báo hiệu mọi trường hợp phân công người không được phép. #### Tương thích giữa các nhiệm vụ Một số nhiệm vụ gần nhau có thể do cùng một người đảm nhận nếu nhà trường cho phép. Ví dụ: hai hành lang cạnh nhau trong một khung giờ vắng. Chỉ khai báo những quan hệ tương thích này khi chúng phản ánh một quy định thực sự của trường. Một quan hệ tương thích quá rộng làm lịch trực khó đọc hơn và có thể che giấu tình trạng thiếu người. Trường hợp cần tránh: gộp những vị trí xa nhau chỉ vì đang thiếu người. #### Nhập dữ liệu và tái sử dụng cấu trúc Khi đã có sẵn nhiều nhiệm vụ, màn hình này giúp bạn tiết kiệm thời gian nhờ các công cụ nhập dữ liệu và tái sử dụng cấu trúc có trong mô-đun. Sau khi nhập, hãy kiểm tra các nhãn, nhu cầu và danh sách nhân viên được phép trước khi chuyển sang phần lập kế hoạch. Một lần nhập dữ liệu đúng chuẩn phải cho ra những nhãn mà người được phân công đọc là hiểu ngay. Nếu bạn nhập các mã nội bộ, hãy đổi tên chúng trước khi phổ biến. #### Vì sao tách nhiệm vụ khỏi phần lập kế hoạch Sự tách biệt này tránh trộn lẫn hai quyết định: - **xác định nhu cầu**: có những vị trí nào, ở đâu, theo những quy tắc nào; - **phân công con người**: ai đảm nhận những vị trí đó trong một tuần hoặc một khoảng thời gian nhất định. Khi cấu trúc ít thay đổi, cách tách biệt này cho phép bạn dùng lại chính những nhiệm vụ đó và chỉ sửa phần con người hoặc các trường hợp ngoại lệ. #### Hướng dẫn 1. Mở Quản lý nhân sự > Phân công. 2. Tạo hoặc nhập các nhiệm vụ cần đảm nhận. 3. Kiểm tra các nhãn mà cả đội ngũ nhìn thấy. 4. Điền nhu cầu, cơ sở và danh sách nhân viên được phép. 5. Chỉ khai báo những quan hệ tương thích thực sự được chấp nhận. 6. Lưu lại, rồi mở phần lập kế hoạch để chỉ định từng người. #### Xem thêm - [Xây dựng lưới trực ban](#page-staffing.building-grids) - [Phân công nhân viên](#page-staffing.planner) - [Bảng phân công](#page-staffing.roster) - [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) ### 7.4 Phân công nhân viên *Source: `help/vi/staffing/planner.md` · id: staffing.planner · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Quản lý nhân sự** Tab Lập kế hoạch dùng để chỉ định những người đảm nhận các nhiệm vụ đã xác định trong lưới trực ban. Đây là màn hình làm việc vận hành: chọn một tuần, điền vào các ô, xử lý cảnh báo, rồi lưu lại. #### Phân công thủ công Với mỗi khung giờ và mỗi nhiệm vụ, bạn đặt những thành viên nhân sự đang rảnh vào ô tương ứng. Omniscol báo hiệu những tình huống cần kiểm tra: - người đang vắng mặt; - thời gian không rảnh hoặc ràng buộc đã khai báo; - người đã được phân công ở chỗ khác; - người không được phép đảm nhận nhiệm vụ đó; - khối lượng công việc trong tuần cần theo dõi. Phần lập kế hoạch được thiết kế cho những tình huống thực tế của công tác quản sinh: sinh viên làm giám thị bán thời gian với thời gian rảnh thay đổi, các đợt thi, những trường hợp vắng mặt báo vào buổi sáng, vị trí cần bù người gấp và những đội ngũ cần chia việc công bằng. Việc lập kế hoạch là **thủ công**: các cảnh báo, thao tác nhân bản và những công cụ chỉnh sửa hướng dẫn bạn dựng nên lịch trực. Omniscol không tự động xếp nhân viên vào các ô. #### Đọc các cảnh báo Màu sắc và chú giải khi rê chuột cho biết vì sao một phân công cần được kiểm tra: vắng mặt, không rảnh, một nhiệm vụ khác trong cùng khung giờ, người không được phép hoặc vượt quá giờ làm việc. Bảng tổng hợp theo tuần giúp bạn quay lại đúng ô có vấn đề. Các cảnh báo được phân theo mức độ nghiêm trọng: một lỗi tương thích màu đỏ đòi hỏi sửa ngay; một lưu ý chỉ ra tình huống cần cân nhắc theo quy định của nhà trường. #### Công cụ chỉnh sửa Phần lập kế hoạch đặc biệt cho phép bạn: - di chuyển theo tuần và theo ngày; - hiển thị một ngày hoặc cả tuần tùy nhu cầu; - nhân bản một tuần sang tuần khác khi cấu trúc lặp lại, lọc bớt những ngày hoặc những nhiệm vụ được sao chép nếu cần; - bật chế độ tẩy để xóa một ô, một hàng hoặc một cột; - hoàn tác một thao tác sửa vừa thực hiện; - lưu các thay đổi. Những người đã bị khóa vào một ô vẫn giữ nguyên vị trí trong các lần chỉnh sửa thủ công tiếp theo. #### Nhân bản thay vì làm lại từ đầu Khi cấu trúc đã ổn định, hãy nhân bản tuần trước rồi chỉ sửa những trường hợp ngoại lệ: vắng mặt, bận đột xuất, thay đổi lịch thi, một chuyến tham quan hoặc một vị trí cần thêm người. Đây là cách làm thông thường để khỏi phải dựng lại toàn bộ lịch trực bằng tay mỗi tuần. Với những tuần không theo lệ thường, hãy dùng một lưới trực ban phù hợp: ngày nghỉ lễ, kỳ thi, ngày hội mở cửa trường hoặc giai đoạn chỉ có ít người trực. #### Vắng mặt Những trường hợp nhân viên vắng mặt đã khai báo trong mô-đun Quản lý vắng mặt đều được tính đến khi phân công. Một người vắng mặt có thể hiện lên dưới dạng cảnh báo trên các nhiệm vụ đã xếp sẵn, nhờ đó bạn nhận ra được những vị trí cần bù người. Việc vắng mặt làm vấn đề hiện ra đúng chỗ cần thấy: quản trị viên hoặc người điều phối khi đó phân công lại nhiệm vụ với đầy đủ thông tin. #### Khối lượng công việc Phần lập kế hoạch tính ra thông tin trực ban theo từng người và từng ngày, trong đó có các khung giờ đã đảm nhận và thời lượng tương ứng. Hãy dựa vào những thông tin này để tránh việc một người ôm quá nhiều khung giờ, hoặc những nhiệm vụ nặng nhọc lúc nào cũng dồn về cùng một đội ngũ. #### Chia sẻ Phần lập kế hoạch có thể được chia sẻ tùy theo các tùy chọn chia sẻ có trên tài khoản. Để gửi lịch trực riêng đến từng người, bạn nên dùng [bảng phân công](#page-staffing.roster): dễ đọc hơn và vốn được thiết kế để in ra hoặc phổ biến. #### Hướng dẫn 1. Mở Quản lý nhân sự > Lập kế hoạch. 2. Chọn tuần hoặc khoảng thời gian cần xử lý. 3. Kiểm tra xem đúng lưới trực ban đang được áp dụng hay chưa. 4. Phân công từng người vào các ô. 5. Xử lý các cảnh báo về thời gian rảnh, vắng mặt hoặc người không được phép. 6. Nhân bản tuần đó nếu cấu trúc lặp lại. 7. Lưu lại, rồi mở bảng phân công để phổ biến. #### Xem thêm - [Xây dựng lưới trực ban](#page-staffing.building-grids) - [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [Bảng phân công](#page-staffing.roster) - [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) ### 7.5 Tạo và chia sẻ bảng phân công *Source: `help/vi/staffing/roster.md` · id: staffing.roster · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-05-18* > **Option: Quản lý nhân sự** Tab Bảng phân công trình bày những nhiệm vụ đã phân công cho một người hoặc cho toàn bộ nhân viên trong khoảng thời gian được chọn. Nó dùng để phổ biến lịch trực sau khi công việc phân công đã xong. Đây là màn hình được thiết kế để trả lời một cách đơn giản cho câu hỏi: “tôi phải có mặt ở đâu, vào lúc nào, và cho nhiệm vụ nào?”. #### Hai chế độ xem - **Chế độ xem danh sách**: các nhiệm vụ được xếp theo ngày và theo trình tự thời gian, kèm những thông tin cần thiết để mỗi người tự đọc. - **Chế độ xem lưới**: cả tuần dưới dạng bảng, với các khung giờ theo hàng và các ngày theo cột. Các trường hợp vắng mặt, những khoảng thời gian không rảnh và các ghi chú hữu ích vẫn hiển thị để bạn không phổ biến một bảng phân công thiếu nhất quán. Chế độ xem danh sách hiển thị các số liệu tổng theo ngày và theo tuần. #### In và xuất dữ liệu Bảng phân công có thể in được. Chế độ xem lưới còn cho phép xuất ra một bảng dễ đọc, và bạn có thể tạo PDF ngay từ cửa sổ xuất dữ liệu. Tùy cách tổ chức của nhà trường, bảng phân công có thể được: - in ra để niêm yết; - xuất ra PDF; - gửi qua thư điện tử bên ngoài Omniscol; - nhân viên đã đăng nhập xem trực tiếp; - chia sẻ bằng liên kết khi tài khoản có dùng tùy chọn này. Với bộ phận quản sinh, việc in ra vẫn thường gặp; cũng chính màn hình này giúp bạn chuẩn bị một bản PDF ghi rõ tên người, gửi một khung nhìn cho một cá nhân, hoặc để nhân viên tự xem lịch trực bằng tài khoản của mình. #### Chia sẻ và lịch Việc chia sẻ có thể gồm một liên kết web và một đăng ký iCal, tùy theo các tùy chọn sẵn có. Cũng như với những liên kết chia sẻ khác, hãy đặt một ngày hết hạn phù hợp với khoảng thời gian bạn gửi đi. Khi gửi cho một người cụ thể, hãy luôn kiểm tra xem người được chọn có đúng không, trước khi in, xuất dữ liệu hay chia sẻ. #### Toàn bộ nhân viên hay một người Bạn có thể xem một người cụ thể hoặc toàn bộ nhân viên. Khung nhìn theo từng người phù hợp để gửi đích danh; khung nhìn tổng thể lại hợp với việc kiểm tra nội bộ trước khi phổ biến. #### Hướng dẫn 1. Mở Quản lý nhân sự > Bảng phân công. 2. Chọn một người hoặc toàn bộ nhân viên. 3. Chọn khoảng thời gian. 4. Chọn Chế độ xem danh sách hoặc Chế độ xem lưới. 5. Kiểm tra các trường hợp vắng mặt và những cảnh báo nếu có. 6. In, xuất dữ liệu hoặc chia sẻ theo cách phổ biến đã dự kiến. #### Xem thêm - [Phân công nhân viên](#page-staffing.planner) - [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [Liên kết chia sẻ công khai](#page-glossary.share-link) --- ## 8. Quản trị ### 8.1 Người dùng và vai trò *Source: `help/vi/admin/users-and-roles.md` · id: admin.users-and-roles · Audience: admin · Updated: 2026-08-07* Phần quản trị người dùng tập hợp những tài khoản có thể đăng nhập vào Omniscol. Các màn hình chính là quản trị viên, giáo viên, học sinh và, nếu mô-đun Quản lý nhân sự đang bật, nhân viên. #### Các vai trò chính | Vai trò kỹ thuật | Nhãn trên giao diện | Công dụng | | --- | --- | --- | | `admin` | Quản trị viên | Quản trị tài khoản của trường. | | `teacher` | Giáo viên | Cổng thông tin giáo viên, thời gian rảnh, thời khóa biểu cá nhân, các lần vắng mặt của chính họ. | | `student` | Học sinh | Cổng thông tin học sinh, thời khóa biểu cá nhân, các lần vắng mặt của chính họ. | | `staff` | Nhân viên | Nhân viên được mô-đun Quản lý nhân sự xếp lịch, nếu mô-đun này đang bật. | Một người dùng có thể mang nhiều vai trò cùng lúc. Khi đó menu hiển thị những mô-đun tương ứng với toàn bộ quyền của họ. Vai trò kỹ thuật `share` tồn tại cho một số liên kết có chữ ký. Đây không phải là một tài khoản người dùng thông thường: nó dùng để mở một phần nội dung nhất định, thường là chỉ đọc, từ một URL chia sẻ. #### Các màn hình sẵn có - Các quản trị viên: tài khoản quản trị viên. - Thành viên nhân sự: nhân viên của trường (nếu mô-đun đang bật). - Giáo viên: giáo viên và giảng viên thỉnh giảng. - Học sinh: học sinh, sinh viên hoặc người học tùy theo cách gọi của trường. - Tất cả người sử dụng: màn hình tổng hợp toàn bộ tài khoản. #### Các trường chung Biểu mẫu người dùng quản lý nhiều thông tin, trong đó có: - họ, tên và giới tính; - ngày sinh; - e-mail và điện thoại; - mã định danh bên ngoài / mã số; - tên đăng nhập, được tạo theo thông số của tài khoản; - vai trò; - nhận xét. Tùy theo vai trò, một số trường bổ sung sẽ xuất hiện: giờ làm việc, môn học và trạng thái bên ngoài cho giáo viên; phân công vào lớp và nhóm cho học sinh; các thiết lập về giờ làm việc cho nhân viên. #### Các thao tác trên danh sách Tùy theo vai trò đang chọn, màn hình cung cấp: - Nhập dữ liệu để nhập hoặc sửa hàng loạt; - Mời người dùng để gửi lời mời; - Thay đổi mật khẩu để đặt mật khẩu; - Gửi email để gửi tin nhắn; - Phân công vào lớp và Nhóm cho học sinh. Những thao tác hiển thị phụ thuộc vào các API sẵn có, vào loại tài khoản và vào quyền của người dùng đang đăng nhập. > _Option: Vai trò tùy chỉnh_ #### Vai trò tùy chỉnh Tùy chọn **Vai trò tùy chỉnh** bổ sung những vai trò quản trị bị giới hạn cho các tài khoản quản trị viên. Nó cho phép loại trừ một số mô-đun hoặc một số thao tác đối với tài khoản chỉ phải quản trị một phần công việc. Xem [Vai trò tùy chỉnh](#page-admin.customroles). Để giới hạn không phải các thao tác mà là dữ liệu — một cơ sở, một ngành đào tạo, một thời khóa biểu — cũng chính tùy chọn đó mở ra [phạm vi](#page-admin.planning-domains), được gán cho tài khoản như một vai trò và cộng thêm vào các vai trò sẵn có. #### Liên kết chia sẻ Liên kết công khai và các bản chia sẻ có chữ ký không nhất thiết kéo theo việc tạo tài khoản người dùng. Liên kết web của thời khóa biểu ở chế độ chỉ đọc; tuy nhiên một số liên kết có mục đích riêng vẫn có thể cho phép một thao tác giới hạn, ví dụ việc nhập thời gian rảnh của một giáo viên cho đến một ngày hết hạn. #### Hướng dẫn — Mời một nhóm người dùng 1. Mở màn hình phù hợp với vai trò: giáo viên, học sinh, nhân viên hoặc tất cả người dùng. 2. Chọn những dòng liên quan. 3. Nhấn Mời người dùng. 4. Kiểm tra xem mỗi người dùng đã có tên đăng nhập và e-mail hay chưa. 5. Gửi lời mời. Sau đó người dùng tự đặt mật khẩu qua liên kết đã nhận. #### Xem thêm - [Kiến trúc và vai trò](#page-overview.architecture-and-roles) - [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) - [Vai trò tùy chỉnh](#page-admin.customroles) - [Phạm vi](#page-admin.planning-domains) - [Quản lý các thành viên nhân sự](#page-admin.staff) ### 8.2 Quản lý các quản trị viên *Source: `help/vi/admin/admins.md` · id: admin.admins · Audience: admin · Updated: 2026-08-07* Màn hình **Các quản trị viên** là danh sách người dùng đã được lọc theo vai trò quản trị viên (xem bảng các vai trò trong [Người dùng và vai trò](#page-admin.users-and-roles)). Vai trò này cho phép thực hiện các thao tác cấu hình của trường: người dùng, thời khóa biểu, vắng mặt, thông số, nhập dữ liệu, xuất dữ liệu và công bố. #### Tạo một quản trị viên Hãy dùng Tạo một quản trị viên mới ngay trên danh sách. Biểu mẫu ở đây chính là biểu mẫu người dùng: - họ và tên; - giới tính; - email và số điện thoại, nếu cần; - mã định danh bên ngoài / mã số nhân sự, nếu trường có dùng; - tên đăng nhập được tạo theo thông số của trường; - vai trò quản trị viên; - nhận xét. Tài khoản vừa tạo đã có sẵn tên đăng nhập. Để mở quyền truy cập cho người đó, hãy mở hồ sơ của họ trong danh sách người dùng: bạn có thể **đặt mật khẩu** (Mật khẩu), **gửi email** (Gửi email) và **kích hoạt hoặc vô hiệu hóa** tài khoản (Kích hoạt). Đăng nhập qua nhà cung cấp danh tính (SSO) vẫn là một lựa chọn khác, xem [OIDC / SSO](#page-integrations.oauth2). #### Kết hợp nhiều vai trò Một tài khoản có thể mang nhiều vai trò cùng lúc. Một điều phối viên có thể vừa là giáo viên vừa là quản trị viên: người đó vẫn giữ cổng thông tin dành cho giáo viên và đồng thời vào được các màn hình quản trị. Vai trò tùy chỉnh cho phép giới hạn những thao tác mà một quản trị viên được thực hiện. Nếu không có vai trò tùy chỉnh, vai trò quản trị viên vẫn mang toàn quyền. Để giới hạn phần dữ liệu mà người đó tác động đến — một cơ sở, một ngành đào tạo, một thời khóa biểu — bạn gán cho tài khoản một [phạm vi lập kế hoạch](#page-glossary.planning-domain), bên cạnh các vai trò của họ. Xem [Phạm vi](#page-admin.planning-domains). #### Thu hồi quyền quản trị Để thu hồi quyền quản trị, hãy sửa tài khoản và gỡ vai trò quản trị viên. Tránh tạo tài khoản thứ hai cho cùng một người trừ khi thực sự bắt buộc: việc kết hợp nhiều vai trò trên một người dùng duy nhất được thiết kế đúng cho trường hợp này. Hãy luôn giữ ít nhất một tài khoản quản trị viên còn hoạt động trước khi thay đổi quyền của những quản trị viên khác. #### Hướng dẫn — Tạo một quản trị viên 1. Mở Các quản trị viên. 2. Nhấn Tạo một quản trị viên mới. 3. Điền thông tin cá nhân, kèm địa chỉ email nếu bạn định gửi thư cho người đó, rồi kiểm tra xem vai trò quản trị viên đã có hay chưa. 4. Lưu lại. Vì lý do bảo mật, bạn phải nhập mật khẩu quản trị viên **của chính bạn** để xác nhận mọi thao tác tạo mới hoặc chỉnh sửa một tài khoản quản trị viên. 5. Nếu cần, hãy chọn tài khoản trong danh sách để **đặt mật khẩu cho người đó**, **gửi email** hoặc **kích hoạt / vô hiệu hóa** quyền truy cập, tùy theo cách triển khai của bạn. #### Xem thêm - [Người dùng và vai trò](#page-admin.users-and-roles) - [Vai trò tùy chỉnh](#page-admin.customroles) - [Phạm vi](#page-admin.planning-domains) - [OIDC / SSO](#page-integrations.oauth2) ### 8.3 Vai trò tùy chỉnh dành cho quản trị *Source: `help/vi/admin/customroles.md` · id: admin.customroles · Audience: admin · Options: customroles · Updated: 2026-08-07* > **Option: Vai trò tùy chỉnh** **Vai trò tùy chỉnh** cho phép giới hạn quyền của một tài khoản quản trị viên. Nguyên tắc ở đây là trừ dần: bạn xuất phát từ toàn bộ quyền quản trị, rồi gỡ đi những mô-đun hoặc thao tác mà người đó không được phép sử dụng. Đây là tùy chọn cần bật khi bạn muốn giao lại một phần công việc quản trị mà không trao toàn quyền. #### Vì sao không nên trao toàn bộ quyền quản trị? Vai trò quản trị viên tiêu chuẩn trao mọi quyền trên tài khoản của trường. Với nhiều công việc điều phối, như vậy là quá nhiều: - người điều phối vắng mặt cần xem và quản lý các lần vắng mặt, nhưng không cần sửa thời khóa biểu hay các thông số chung; - người phụ trách thời khóa biểu cần dựng được thời khóa biểu mà không nhất thiết phải vào phần nhập và xuất dữ liệu; - bộ phận nhân sự có thể cần sửa hồ sơ giáo viên mà không đụng đến các tiết học; - bộ phận kỹ thuật có thể xem phòng học, bảng thông tin hay tài nguyên mà không quản lý người dùng. #### Biểu mẫu cho phép làm những gì Màn hình **Vai trò tùy chỉnh** cung cấp: - một **tên vai trò**; - các quyền theo từng mô-đun; - các quyền theo từng thao tác, tùy theo những gì mỗi mô-đun mở ra. Các quyền này đặt trên các mô-đun và trên thao tác của chúng, chứ không đặt trên chính dữ liệu: một vai trò tùy chỉnh không giới hạn quyền truy cập vào một lớp, một cơ sở, một môn học hay một khoảng thời gian cụ thể. Nó xác định người đó được làm gì, chứ không xác định phần dữ liệu mà người đó tác động đến. #### Vai trò tùy chỉnh và phạm vi Phần dữ liệu là việc của [phạm vi lập kế hoạch](#page-glossary.planning-domain). Hai khái niệm này trả lời hai câu hỏi khác nhau và được gán cùng nhau: - vai trò tùy chỉnh quyết định một quản trị viên thực hiện **những thao tác nào**; - phạm vi quyết định người đó thực hiện **trên dữ liệu nào** — những lớp nào, những cơ sở nào, những phòng học nào, những môn học nào, những thời khóa biểu nào. Ngay khi một người điều phối phải quản lý cơ sở, ngành đào tạo hay trường của mình mà không đụng đến phần của đồng nghiệp, chính phạm vi mới là nơi đặt giới hạn. Xem [Phạm vi](#page-admin.planning-domains). #### Gán một vai trò tùy chỉnh Sau khi được tạo, vai trò sẽ xuất hiện trong ô chọn vai trò trên hồ sơ người dùng. Bạn gán nó cho một tài khoản quản trị viên như với mọi vai trò khác. Một người dùng có thể kiêm nhiều vai trò tiêu chuẩn và vai trò tùy chỉnh. Khi đó họ có được toàn bộ các quyền còn lại của những vai trò ấy cộng lại. #### Các trường hợp sử dụng thường gặp - **Bộ phận giám thị / giám sát viên** — quyền trên các lần vắng mặt, trên mô-đun Quản lý nhân sự và quyền xem thời khóa biểu, nhưng không vào được phần cấu hình. - **Người điều phối chuyên môn** — quyền trên những màn hình thời khóa biểu cần dùng, nhưng không có các thông số chung. - **Bộ phận kỹ thuật** — quyền vào phòng học, bảng thông tin hay tài nguyên tùy theo các thao tác được cho phép. - **Trợ lý hành chính** — quản lý học sinh hoặc giáo viên mà không vào được các thiết lập nhạy cảm. #### Khả năng truy vết Các thao tác được thực hiện với một vai trò tùy chỉnh sẽ xuất hiện trong nhật ký khi tùy chọn nhật ký đang bật và khi thao tác liên quan thuộc diện được ghi nhật ký. Xem [Nhật ký hoạt động (logs)](#page-admin.logs). #### Hướng dẫn — Tạo vai trò “Điều phối vắng mặt” 1. Mở **Vai trò tùy chỉnh** trong phần quản trị. 2. Tạo một vai trò có tên `Điều phối vắng mặt`. 3. Cho phép các thao tác cần thiết trên mô-đun Quản lý vắng mặt. 4. Giữ lại quyền xem thời khóa biểu nếu người điều phối cần đặt một lần vắng mặt vào đúng bối cảnh, nhưng gỡ bỏ quyền chỉnh sửa. 5. Loại trừ những mô-đun không được phép truy cập, đặc biệt là Quản lý thời khóa biểu, các thông số chung hay phần nhập và xuất dữ liệu nếu chúng không thuộc trách nhiệm của người đó. 6. Lưu lại, rồi gán vai trò cho những tài khoản quản trị viên liên quan. 7. Nếu nhật ký hoạt động đang bật, hãy kiểm tra các thao tác từ [Nhật ký hoạt động (logs)](#page-admin.logs). #### Xem thêm - [Phạm vi](#page-admin.planning-domains) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Quản lý các quản trị viên](#page-admin.admins) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) - [Nhật ký hoạt động (logs)](#page-admin.logs) ### 8.4 Phạm vi lập kế hoạch *Source: `help/vi/admin/planning-domains.md` · id: admin.planning-domains · Audience: admin · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Vai trò tùy chỉnh** Một **phạm vi lập kế hoạch** gán cho một quản trị viên một **vùng dữ liệu** — phần dữ liệu người đó quản lý — và các **quyền** — những thao tác người đó được thực hiện trên vùng dữ liệu ấy. Trên một tài khoản gom nhiều cơ sở, nhiều ngành đào tạo hay nhiều trường vào cùng một thời khóa biểu, mỗi người lập thời khóa biểu nhờ vậy chỉ làm việc trên phần của mình, không lạc giữa tổng thể và cũng không đụng đến phần của người khác. Một quản trị viên có thể nhận một hoặc nhiều phạm vi. Khi chưa có phạm vi nào, người đó vẫn giữ quyền truy cập đầy đủ vào tài khoản: phạm vi chỉ giới hạn những tài khoản mà bạn muốn giới hạn, các tài khoản còn lại không thay đổi. #### Phạm vi hay vai trò tùy chỉnh? [Vai trò tùy chỉnh](#page-admin.customroles) và phạm vi trả lời hai câu hỏi khác nhau, và được dùng kết hợp với nhau: - vai trò tùy chỉnh quyết định một quản trị viên thực hiện **những thao tác nào** — trên mô-đun nào, ở mức xem, chỉnh sửa hay xóa; - phạm vi quyết định người đó tác động **trên dữ liệu nào** — những lớp nào, những cơ sở nào, những phòng học nào, những môn học nào, những thời khóa biểu nào. Vai trò tùy chỉnh không phân biệt lớp này với lớp kia; phạm vi thì có. Bạn có thể gán cả hai cho cùng một người: vai trò giới hạn các thao tác, phạm vi giới hạn phần dữ liệu. Phạm vi được bật trên các tài khoản Premium, với cùng một tùy chọn như vai trò tùy chỉnh. #### Mở màn hình phạm vi Phạm vi được quản lý từ danh sách quản trị viên. Trong Quản trị, hãy mở **Người dùng**, chọn thẻ quản trị viên, rồi Phạm vi. Chỉ quản trị viên không bị giới hạn — không có phạm vi nào — mới mở được màn hình này và gán phạm vi. Việc quản lý chính các tài khoản quản trị viên vẫn thuộc thẩm quyền của người đó: một người lập thời khóa biểu đã bị giới hạn trong một phạm vi thì không tạo cũng không sửa tài khoản quản trị viên. #### Vùng dữ liệu: những dữ liệu nào Vùng dữ liệu được xác định trong mục Bộ lọc. Nó được tổ chức thành các chiều, từ rộng nhất đến chi tiết nhất: - **Đơn vị** và **Môn học** lọc xuyên suốt: chúng áp dụng cho mọi thứ người lập thời khóa biểu đụng tới, bất kể thời khóa biểu nào; - **thời khóa biểu**, rồi bên dưới là **cơ sở** (cùng các **phòng học** của chúng) và **lớp** (cùng các **nhóm** của chúng), đi theo cấu trúc của một thời khóa biểu. Một chiều để nguyên ở **Tất cả** không đặt ra ràng buộc nào. Để thu hẹp nó, hãy chọn một tiêu chí và một giá trị: - **Bằng** — đúng giá trị đó (một cơ sở, một trình độ…); - **Bắt đầu bằng** — một tiền tố, tiện khi mã môn học hay mã lớp của bạn đã mã hóa khoa hay ngành đào tạo (`CNTT-`, `QTKD-`…); - **Chứa** — một giá trị có mặt trong tên gọi. Các tiêu chí dạng số, như sức chứa của một phòng học, thay những biến thể trên bằng ngưỡng **≥** và **≤** — đủ để giao các giảng đường lớn cho một người lập thời khóa biểu riêng, hoặc để giữ chúng ngoài một phạm vi. Mỗi tiêu chí đều đảo được thành **Loại trừ** để loại ra thay vì đưa vào. Nút **+** thêm một lựa chọn thay thế (“hoặc”) trong cùng một chiều — nhiều cơ sở, nhiều trình độ — còn các chiều thì cộng dồn: một tiết học nằm trong vùng dữ liệu khi nó thỏa mãn **tất cả** các chiều đang bị ràng buộc. Mỗi chiều đưa ra những tiêu chí tương ứng với nó: | Chiều | Tiêu chí | | --- | --- | | Đơn vị | Tên | | Môn học | Tên, Mã số, Loại bài học, Nhóm môn học | | Thời khóa biểu | Tên, Đã công bố, Ngày bắt đầu và Ngày kết thúc | | Cơ sở | Tên | | Phòng học | Tên, Tòa nhà, Chuyên ngành, Thẻ, Sức chứa | | Lớp | Tên, Trình độ, Cơ sở | | Nhóm | Tên, Mã số | Ở đầu bộ lọc, biểu tượng con mắt mở ra một Tổng quan: Tổng quan cho biết số thực thể được bao phủ kèm một mẫu ví dụ, để bạn kiểm tra vùng dữ liệu trước khi lưu. Mỗi dòng cũng có biểu tượng riêng, để kiểm tra từng chiều một cách độc lập. #### Quyền: những thao tác nào Mục Quyền đưa ra hai cách áp dụng vùng dữ liệu: - **Giới hạn** — “Chỉ dữ liệu trong bộ lọc mới sửa được, với các quyền đã đánh dấu bên dưới.” Người lập thời khóa biểu xem được tất cả, nhưng chỉ sửa được vùng dữ liệu của mình, và chỉ theo những quyền đã được cấp. - **Ẩn giấu** — “Bộ lọc chỉ chọn sẵn phần hiển thị: mọi quyền vẫn được giữ nguyên.” Vùng dữ liệu làm nhẹ phần hiển thị mà không lấy đi thứ gì: hữu ích khi muốn tập trung vào cơ sở của mình mà vẫn nắm được toàn bộ. Ở chế độ Giới hạn, một bảng ma trận xác định chi tiết các quyền. Nguyên tắc ở đây là trừ dần, giống như với vai trò tùy chỉnh: mặc định mọi quyền đều được cấp, bạn bỏ đánh dấu những gì phạm vi không cho phép. Hai bảng được đọc theo Chỉnh sửa, Tạo mới và Xóa: - các **thực thể**: Các thông số thời khóa biểu (chỉ chỉnh sửa), Lớp, Giáo viên, Phòng học, Môn học và Cơ sở; - các **Tiết học**: việc tạo, chỉnh sửa và xóa chúng, rồi ở mức chỉnh sửa chi tiết là vị trí trên lưới thời gian, giáo viên, phòng học, hình thức, liên kết hội nghị truyền hình, trạng thái, khoảng thời gian và nhận xét của một tiết học. Phòng học, hình thức và liên kết hội nghị truyền hình dùng chung một cửa sổ nhưng vẫn là ba quyền riêng biệt: giao quyền chọn học trực tiếp hay trực tuyến không đồng nghĩa với mở quyền xếp phòng học. Còn quyền xem thì luôn mở: một phạm vi giới hạn những gì được ghi, chứ không bao giờ giới hạn những gì được thấy. #### Người lập thời khóa biểu thấy những gì Người lập thời khóa biểu thấy toàn bộ thời khóa biểu — chính điều đó giúp họ phát hiện một lỗi tương thích giữa vùng dữ liệu của mình và của đồng nghiệp — nhưng các danh sách lớp, phòng học hay môn học chỉ hiện những thực thể thuộc về họ. Ở những chỗ có phần tử bị lọc bớt, một dấu hiệu **Bị ẩn theo phạm vi của bạn** báo cho biết và, chỉ với một cú nhấp, nêu rõ những gì đang bị ẩn và bị ẩn theo phạm vi nào. Đó là câu trả lời trực tiếp cho câu “sao tôi không thấy phòng học đó”: thông tin đã có sẵn trên màn hình. Nếu một thao tác vượt ra ngoài vùng dữ liệu, Omniscol từ chối và giải thích lý do: việc lọc phần hiển thị còn được kèm thêm một lần kiểm tra ở mỗi lần lưu. #### Trên màn hình tiết học Một nút điều khiển bị một quyền cấm vẫn **hiện ra nhưng không dùng được**, chứ không bao giờ bị giấu đi: người lập thời khóa biểu thấy chức năng đó có tồn tại, và biết rõ giới hạn của mình. Điều này đúng ở mọi nơi có thể sửa một tiết học — trên lưới thời gian, trong hồ sơ của một tiết học và trong khung nhìn dạng bảng. Menu Thao tác theo đúng quy tắc đó, với từng thao tác một: gỡ phòng học hàng loạt phụ thuộc vào quyền trên phòng học, phân bổ tự động phụ thuộc vào quyền tạo mới, xóa tất cả các tiết học phụ thuộc vào quyền xóa. Ngoài ra, một thao tác hàng loạt chỉ áp dụng cho những tiết học trong vùng dữ liệu: phần lựa chọn vượt ra ngoài sẽ bị **cắt bớt**, chứ không bị từ chối toàn khối, và người lập thời khóa biểu được báo về điều đó. ##### Tạo thời khóa biểu Việc tạo tự động đòi hỏi một quyền riêng: nhiều người lập thời khóa biểu được ủy quyền vẫn quản lý các tiết học của mình mà không bao giờ chạy tạo tự động. Khi quyền này được cấp, việc tính toán bị **giới hạn trong vùng dữ liệu** — người lập thời khóa biểu có thể thu hẹp thêm, nhưng không bao giờ mở rộng ra. Chính điều đó khiến kết quả dùng được: nếu không, một lần tạo tự động làm dịch chuyển một tiết học ra ngoài vùng dữ liệu sẽ bị từ chối khi lưu, và toàn bộ công sức sẽ mất trắng. Các thiết lập của tạo tự động là một ngoại lệ đối với một quy tắc: chỉ cần quyền tạo tự động là lưu được chúng, kể cả khi không có quyền trên các thông số thời khóa biểu. ##### Nhập một bảng tiết học Những cột mà người lập thời khóa biểu không có quyền sửa sẽ hiển thị ở chế độ chỉ đọc: họ đọc được dữ liệu, nhưng không thay đổi được. Lớp, môn học và nhóm là ngoại lệ, vì đó không phải những trường thông thường: để trống một trong ba sẽ xóa tiết học, còn thay đổi nó sẽ chuyển tiết học sang chỗ khác. Vì vậy ba cột này chỉ mở ra khi có đủ cả quyền tạo mới, quyền chỉnh sửa **và** quyền xóa. Nếu một dòng vượt ra ngoài vùng dữ liệu, toàn bộ lần nhập bị từ chối và những dòng gây lỗi được chỉ rõ. Omniscol không bao giờ ghi thứ gì khác với những gì đã được nhập: thà bị từ chối rõ ràng còn hơn một lần nhập bị cắt xén âm thầm. #### Gán một phạm vi Một phạm vi được gán từ hồ sơ của một quản trị viên, như với một vai trò. Bạn có thể gán nhiều phạm vi: khi đó người lập thời khóa biểu cộng dồn các vùng dữ liệu, mỗi vùng đi kèm quyền riêng của nó. Các phạm vi cộng lại chứ không hòa vào nhau — một thao tác được cho phép ngay khi có một phạm vi bao hàm nó. Việc tạo, nhân bản hay xóa một phạm vi đều thực hiện từ cùng màn hình đó: Thêm thêm một phạm vi, Lưu lưu lại. #### Hướng dẫn — Tạo phạm vi “Cơ sở Hà Nội” 1. Mở Quản trị → **Người dùng**, chọn thẻ quản trị viên, rồi Phạm vi. 2. Thêm, rồi đặt tên phạm vi là “Cơ sở Hà Nội”. 3. Trong Bộ lọc, ở chiều Đơn vị, chọn Bằng và giá trị của cơ sở. Để các chiều còn lại ở Tất cả. 4. Kiểm tra mức bao phủ bằng biểu tượng con mắt Tổng quan. 5. Giữ nguyên chế độ Giới hạn. Trong bảng ma trận, bỏ đánh dấu những gì người lập thời khóa biểu này không được làm — chẳng hạn quyền xóa lớp. 6. Lưu lại bằng Lưu. 7. Gán phạm vi cho tài khoản quản trị viên liên quan từ hồ sơ của tài khoản đó. #### Xem thêm - [Vai trò tùy chỉnh](#page-admin.customroles) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Quản lý các quản trị viên](#page-admin.admins) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) ### 8.5 Quản lý giáo viên *Source: `help/vi/admin/teachers.md` · id: admin.teachers · Audience: admin · Updated: 2026-05-15* Màn hình **Giáo viên** liệt kê những người dùng mang vai trò giáo viên. Tùy theo bối cảnh của trường, họ còn được gọi là giáo viên, giảng viên hoặc người đào tạo. Màn hình này dùng để tạo tài khoản, quản lý thông tin, môn học và thời gian rảnh của giáo viên, cũng như xem thời khóa biểu của họ. #### Các trường trong hồ sơ Hồ sơ giáo viên chứa các trường chung của một người dùng và những trường riêng của giáo viên: - họ, tên và giới tính; - ngày sinh; - e-mail và điện thoại; - mã định danh bên ngoài / mã số giáo viên; - tên đăng nhập; - giờ làm việc; - các môn học giảng dạy; - trạng thái bên ngoài dành cho giảng viên thỉnh giảng hoặc cộng tác viên; - thời gian rảnh và ràng buộc thời gian; - nhận xét. Tab **Thời khóa biểu** tập hợp toàn bộ thời khóa biểu của giáo viên, trên tất cả các năm học, cùng với thời gian rảnh đã tổng hợp hiển thị làm nền. Tab này chỉ để xem: việc phân công giảng dạy được thực hiện trong các thời khóa biểu. Từ hồ sơ, nút **Chung** mở màn hình chia sẻ, trong đó có cả một liên kết đăng ký iCal riêng của giáo viên, dùng được cho mọi năm học. #### Môn học giảng dạy Các môn học gắn với một giáo viên dùng để lọc hoặc chuẩn bị cho việc phân công. Bạn chọn chúng trong danh mục môn học chính thức hoặc môn học tùy chỉnh. #### Thời gian rảnh Tab **Thời gian rảnh** cho phép quản trị viên nhập hoặc sửa thời gian rảnh của một giáo viên. Tùy theo thiết lập của trường, việc nhập diễn ra theo tuần, theo lịch, hỗn hợp hoặc bị vô hiệu hóa. Giáo viên cũng có thể tự nhập thời gian rảnh của mình từ cổng thông tin nếu trường cho phép. #### Thao tác hàng loạt Khi chọn nhiều giáo viên trong danh sách chính, bạn còn có thể gửi lời mời, đặt mật khẩu hoặc gửi tin nhắn cho họ, tùy theo các chức năng đã bật cho tài khoản. Trước đó bạn có thể lọc danh sách. Nút **Nhập dữ liệu** mở ra một lưới dạng bảng tính: tại đây bạn thêm, sửa hoặc xóa nhiều giáo viên cùng lúc và xuất danh sách. Hai cột trong lưới ở chế độ chỉ đọc, chỉ dùng cho việc xuất dữ liệu: - **Thời gian rảnh**: hiển thị dưới dạng văn bản, đúng như đã được ghi nhận; - **Lớp**: những lớp mà giáo viên có tiết học, được tổng hợp từ các thời khóa biểu đang hoạt động của năm hiện tại. > _Premium_ Giáo viên có thể được đồng bộ từ một hệ thống bên ngoài: Đồng bộ hóa mở phần đối chiếu với hệ thống đó. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Hướng dẫn — Tạo một giáo viên 1. Mở Giáo viên. 2. Nhấn Thêm giáo viên. 3. Điền thông tin cá nhân, e-mail, tên đăng nhập hoặc mã định danh bên ngoài theo quy định nội bộ của bạn. 4. Thêm các môn học giảng dạy. 5. Điền giờ làm việc nếu trường của bạn có sử dụng thông tin này. 6. Lưu lại, rồi gửi lời mời cho giáo viên nếu bạn muốn họ đăng nhập. #### Xem thêm - [Người dùng và vai trò](#page-admin.users-and-roles) - [Quản lý học sinh](#page-admin.students) - [Quản lý môn học](#page-admin.subjects) - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Giảng viên thỉnh giảng (bên ngoài)](#page-higher-ed.external-faculty) ### 8.6 Quản lý học sinh *Source: `help/vi/admin/students.md` · id: admin.students · Audience: admin · Plan: standard · Updated: 2026-05-15* Màn hình **Học sinh** liệt kê những người dùng mang vai trò học sinh. Tùy theo bối cảnh của trường, họ còn được gọi là sinh viên hoặc người học. Màn hình này dùng để tạo tài khoản, theo dõi trạng thái và quản lý việc phân công vào lớp và nhóm, theo từng năm học. #### Các trường trong hồ sơ Hồ sơ học sinh chứa các trường chung của một người dùng: - họ, tên và giới tính; - ngày sinh; - e-mail và điện thoại; - mã định danh bên ngoài / mã số học sinh; - tên đăng nhập; - nhận xét. Người giám hộ hợp pháp, giấy tờ chứng minh và thông báo gửi phụ huynh không phải là các trường của hồ sơ này. #### Phân công vào lớp và nhóm Việc phân công học tập được quản lý ở tab phân công của học sinh. Mỗi phân công cho biết các thông tin như: - lớp chính; - năm học liên quan; - ngày bắt đầu và ngày kết thúc nếu phân công không kéo dài cả năm; - các nhóm mà học sinh theo học, theo từng tuần nếu cần; - những trường hợp chồng chéo cần sửa, nếu có. Một học sinh có thể có nhiều phân công trong cùng một năm học, ví dụ sau khi chuyển lớp, khi chỉ theo học một phần chương trình hoặc khi học lại một phần. #### Thao tác hàng loạt Khi chọn nhiều học sinh trong danh sách chính, bạn có thể phân công họ vào một lớp bằng **Phân công vào lớp** hoặc vào các nhóm bằng **Nhóm** (nếu họ thuộc cùng một lớp), gửi lời mời, đặt mật khẩu, gửi tin nhắn, vô hiệu hóa tài khoản khi họ rời trường hoặc xóa vĩnh viễn. Trước đó bạn có thể lọc danh sách, chẳng hạn theo lớp được phân công. Nút **Nhập dữ liệu** mở ra một lưới dạng bảng tính: tại đây bạn thêm hoặc sửa nhiều học sinh cùng lúc và xuất danh sách (CSV, Excel, PDF). Với mỗi năm học, hai cột trong lưới ở chế độ chỉ đọc, chỉ dùng cho việc xuất dữ liệu: - **Lớp**: (những) lớp mà học sinh được phân công vào trong năm hiện tại và các năm tiếp theo; - **Nhóm**: các nhóm mà học sinh theo học trong năm hiện tại và các năm tiếp theo. #### Học lại và học ngoài chương trình Việc học lại một phần — một học sinh theo học các tiết học thuộc hai khối lớp khác nhau — được xử lý bằng cách phân công học sinh đó vào cả hai lớp liên quan trong cùng một khoảng thời gian: khi đó thời khóa biểu của học sinh gộp các tiết học của cả hai lớp. Omniscol không kiểm tra tình trạng trùng giờ giữa hai lớp, bạn phải tự rà soát. #### Hướng dẫn — Tạo và phân công một học sinh 1. Mở Học sinh. 2. Tạo học sinh hoặc nhập hàng loạt. 3. Mở hồ sơ của học sinh, rồi mở tab phân công của năm học liên quan. 4. Thêm một lớp, kiểm tra các ngày, rồi chọn các nhóm mà học sinh theo học nếu cần. 5. Lưu các phân công. 6. Gửi lời mời cho học sinh nếu bạn muốn họ đăng nhập vào cổng thông tin. #### Xem thêm - [Người dùng và vai trò](#page-admin.users-and-roles) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Nhập và xuất dữ liệu](#page-admin.import-export) ### 8.7 Quản lý các thành viên nhân sự *Source: `help/vi/admin/staff.md` · id: admin.staff · Audience: admin · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-25* > **Option: Quản lý nhân sự** Màn hình **Thành viên nhân sự** liệt kê những người dùng mang vai trò **Nhân viên**. Màn hình này chỉ xuất hiện trên các tài khoản có mô-đun **Quản lý nhân sự**: đây là nơi bạn khai báo những người (giám thị, cán bộ quản sinh, trợ lý giáo vụ…) mà sau đó bạn sẽ xếp lịch trong [Quản lý nhân sự](#page-staffing.overview). Tab này dùng để tạo tài khoản, quản lý thông tin và giờ làm việc của họ. Còn **việc phân công nhiệm vụ** (trực ban, giám sát, kỳ thi…) thì được thực hiện trong mô-đun Quản lý nhân sự — xem [Phân công](#page-staffing.assignments). #### Các trường trong hồ sơ Hồ sơ của một thành viên nhân sự gồm những trường chung của một người dùng và một vài trường riêng của nhân sự: - họ, tên và giới tính; - ngày sinh; - e-mail và điện thoại; - mã định danh bên ngoài / mã số nhân sự; - tên đăng nhập; - **giờ làm việc** (khối lượng tham chiếu để theo dõi); - vai trò và nhận xét. Từ danh sách, bạn có thể mở **hồ sơ chi tiết** (Chi tiết) để xem và bổ sung các thông tin này cho từng người. #### Thành viên nhân sự và Quản lý nhân sự Sự tách biệt này là có chủ ý: **ở đây** bạn quản lý *con người* (danh mục các thành viên), **trong [Quản lý nhân sự](#page-staffing.overview)** bạn quản lý *lịch làm việc* của họ — lưới, nhiệm vụ và phân công. Một thành viên được tạo trên màn hình này có thể được chọn làm nhân viên được phép trong phần [phân công](#page-staffing.assignments). #### Các thao tác trên danh sách Từ danh sách, Thêm nhân viên thêm một thành viên, còn Nhập dữ liệu mở phần tạo mới hoặc chỉnh sửa **hàng loạt**. Các thao tác trên những thành viên đã chọn cũng cho phép bạn mời họ, đặt mật khẩu, kích hoạt tài khoản hoặc xóa tài khoản, tùy theo các API hiện có. #### Hướng dẫn — Tạo một thành viên nhân sự 1. Mở Thành viên nhân sự. 2. Nhấn Thêm nhân viên. 3. Điền thông tin cá nhân, e-mail, tên đăng nhập hoặc mã định danh bên ngoài theo quy định nội bộ của bạn. 4. Điền **giờ làm việc** nếu trường của bạn có theo dõi khối lượng này. 5. Lưu lại, rồi gửi lời mời cho thành viên đó nếu bạn muốn họ đăng nhập vào cổng thông tin của họ. 6. Sau đó hãy xếp lịch các nhiệm vụ của họ trong [Quản lý nhân sự](#page-staffing.assignments). #### Xem thêm - [Người dùng và vai trò](#page-admin.users-and-roles) - [Quản lý giáo viên](#page-admin.teachers) - [Quản lý nhân sự — tổng quan](#page-staffing.overview) - [Phân công](#page-staffing.assignments) - [Quản lý nhân sự](#page-glossary.staffing) ### 8.8 Quản lý môn học (chính thức và tùy chỉnh) *Source: `help/vi/admin/subjects.md` · id: admin.subjects · Audience: admin · Updated: 2026-05-14* Màn hình **Môn học** quản lý các môn học tùy chỉnh của trường và, nếu danh mục chung đang được bật, cho phép tìm kiếm các môn học chính thức của quốc gia đã cấu hình. #### Môn học chung và môn học tùy chỉnh - **Môn học chung** đến từ danh mục Omniscol dành cho quốc gia của trường. Bạn tìm kiếm và thêm được chúng khi danh mục này không bị tắt. - **Môn học tùy chỉnh** thuộc về riêng trường. Chúng bao gồm những tên gọi nội bộ, mô-đun, môn tự chọn hay học phần không có trong danh mục chung. #### Các trường của một môn học tùy chỉnh | Trường | Bắt buộc? | Công dụng | | --- | --- | --- | | **mã** | Có | Mã ngắn của môn học, đi cùng với tên (tên có thể dài, nhất là ở bậc đại học). Thường là một tham chiếu chính thức — ví dụ mã môn học do cơ quan quản lý giáo dục của từng quốc gia ban hành (Pháp, Ý) — nói chung viết bằng chữ in hoa và/hoặc chữ số. | | **tên** | Có | Tên đầy đủ của môn học, hiển thị trong các ô chọn tiết học, trên thời khóa biểu và trong dữ liệu xuất ra. | | **tên ngắn** | Không | Tên viết tắt để hiển thị trên thời khóa biểu, ngắn hơn tên đầy đủ. | | **môn học cha** | Không | Gắn môn học vào một môn học khác để dựng nên cây phân cấp môn học. | | **nhóm môn học** | Không | Gom các môn học lại với nhau. Ô chọn đề xuất các nhóm môn học mặc định của danh mục quốc gia và các nhóm môn học riêng của tài khoản. | | **màu sắc** | Không | Màu nhận diện trực quan. Khi tạo mới, bạn chọn trong một bảng màu dễ đọc trên màn hình; nếu không chọn, hệ thống tự tính một màu từ tên môn học. | Cả mã và tên đều được yêu cầu khi tạo mới. Hãy tránh đổi mã một khi nó đã được dùng làm tham chiếu trong dữ liệu bạn nhập, dữ liệu bạn xuất hay trong các trao đổi với một hệ thống bên ngoài. #### Tạo và chỉnh sửa hàng loạt Nút [table] mở phần tạo và chỉnh sửa **hàng loạt** các môn học tùy chỉnh: khai báo hoặc thay thế nhiều môn học trong một thao tác duy nhất, trên một lưới kiểu bảng tính. Xóa một dòng khỏi lưới rồi xác nhận sẽ gỡ môn học tương ứng khỏi danh sách môn học: lưới thay thế toàn bộ các môn học tùy chỉnh bằng nội dung của nó. Trong lưới này, màu sắc nhận một giá trị thập lục phân bất kỳ, không có bảng màu được đề xuất khi tạo mới — đổi lại, kết quả hiển thị có thể khó đọc hơn. Một môn học tùy chỉnh vẫn xóa được kể cả khi nó đã từng được dùng trong các thời khóa biểu cũ hoặc đã công bố. Nhờ vậy bạn dọn được danh sách môn học từ năm này sang năm khác mà không đụng đến những thời khóa biểu đó: mỗi lớp giữ một bản sao cục bộ của nhãn môn học (tên, tên ngắn, mã), và thời khóa biểu giữ lại màu đã gán cho môn học. Vì thế môn học vẫn tiếp tục hiển thị sau khi bị xóa khỏi danh sách. Xem [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) để hiểu nguyên tắc sao chép cục bộ. > _Premium_ Nếu việc đồng bộ với một hệ thống bên ngoài đã được cấu hình, Đồng bộ hóa mở phần đối chiếu với hệ thống đó. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Loại tiết học Chính màn hình này cũng hiển thị danh sách đơn giản các loại tiết học. Xem [Loại tiết học](#page-admin.lesson-types). > _Premium_ Loại tiết học cũng có thể được đồng bộ từ một hệ thống bên ngoài: Đồng bộ hóa mở phần đối chiếu. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Hướng dẫn — Thêm một môn học 1. Mở Môn học. 2. Với một môn học chung, hãy dùng ô tìm kiếm trong danh mục nếu ô này khả dụng. 3. Với một môn học riêng của trường, nhấn **Tạo mới** bằng Tạo mới. 4. Điền mã và tên, cả hai đều bắt buộc, rồi bổ sung tên ngắn, nhóm môn học, môn học cha hay màu sắc nếu cần. 5. Lưu lại. Môn học trở nên khả dụng trong các ô chọn tiết học và trong hồ sơ giáo viên. #### Xem thêm - [Loại tiết học](#page-admin.lesson-types) - [Quản lý giáo viên](#page-admin.teachers) - [Môn học](#page-glossary.subject) ### 8.9 Loại tiết học *Source: `help/vi/admin/lesson-types.md` · id: admin.lesson-types · Audience: admin · Updated: 2026-05-14* Trong mô-đun **Quản trị**, **loại tiết học** là một nhãn ngắn gắn cho từng tiết học để phân biệt các hình thức như `Lý thuyết`, `Bài tập`, `Thực hành`, `Thi` hay `Đồ án`. Các loại tiết học tạo thành một danh sách nhãn văn bản, không kèm màu sắc hay biểu tượng. #### Quản lý ở đâu Danh sách các loại tiết học được quản lý từ màn hình **Môn học** và từ màn hình **Thông số**, trong phần **Loại bài học**. Các nút được dùng là: - **Tạo mới** để thêm một loại mới; - **Lưu** để lưu danh sách. Thứ tự hiển thị được sắp xếp lại bằng cách kéo thả. #### Thông số “Bắt buộc loại tiết học” Thông số Bắt buộc loại tiết học được thiết lập trong màn hình **Thông số**. Khi thông số này được bật, việc nhập một tiết học, tức là một môn học được gán cho một lớp trong thời khóa biểu, bắt buộc phải kèm theo một loại. Điều này hữu ích khi bạn xuất các tiết học sang một hệ thống ERP yêu cầu thông tin đó. #### Khuyến nghị sử dụng - Hãy giữ danh sách ngắn gọn và ổn định. - Hãy tránh đổi tên một loại đang được dùng trong vận hành thực tế mà chưa kiểm tra các luồng nhập và xuất dữ liệu dựa vào nó. - Hãy dùng các loại để phân biệt hình thức giảng dạy, chứ không phải để thay thế môn học hay phương thức học (trực tiếp/trực tuyến). #### Hướng dẫn — Thêm một loại 1. Mở màn hình **Môn học**. 2. Trong phần **Loại bài học**, nhấn vào **Tạo mới**. 3. Nhập nhãn của loại. 4. Sắp xếp lại danh sách nếu cần. 5. Lưu bằng **Lưu**. #### Xem thêm - [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types) - [Quản lý môn học](#page-admin.subjects) ### 8.10 Năm học và ngày nghỉ lễ *Source: `help/vi/admin/school-year.md` · id: admin.school-year · Audience: admin · Plan: standard · Updated: 2026-06-26* Trong mô-đun **Quản trị**, màn hình **Năm học** xác định các khoảng thời gian dùng để diễn giải thời khóa biểu, ngày nghỉ lễ, vắng mặt và phân công học sinh. Khái niệm này còn được gọi là niên khóa. #### Tạo một năm học Một năm học gồm có: - một **tên**; - một **ngày bắt đầu**; - một **ngày kết thúc**. Khi tạo mới, Omniscol có thể đề xuất nhập các ngày nghỉ lễ chung của quốc gia đã cấu hình, nếu có sẵn dữ liệu cho khoảng thời gian bạn chọn. Bạn có thể bỏ chọn những ngày không áp dụng cho trường bạn. #### Năm học hiện tại Ô chọn **Năm học hiện tại** cho biết năm học được hiển thị mặc định trong ứng dụng và trên các cổng thông tin. Thay đổi giá trị này sẽ chuyển ngữ cảnh mặc định của người dùng. Đây cũng là năm học duy nhất mà học sinh truy cập được. Hãy giữ năm học hiện tại đúng với năm đang thực sự được dùng hằng ngày. Việc chuẩn bị năm tiếp theo được thực hiện bằng cách tạo một năm học mới rồi xây dựng các thời khóa biểu tương ứng, mà chưa vội đặt năm đó làm năm học hiện tại. #### Ngày nghỉ lễ Mỗi năm học có một danh sách ngày nghỉ lễ: - tên; - ngày bắt đầu; - ngày kết thúc. Bạn có thể thêm từng mục một, sửa, xóa, hoặc quản lý dưới dạng bảng với **Bảng tính**. #### Tuần luân phiên Nếu tuần luân phiên được bật trong thông số chung, màn hình sẽ hiển thị một dải luân phiên cho phép điều chỉnh các nhịp luân phiên trong năm. Việc lưu được thực hiện bằng **Lưu**. Định dạng nhãn (`A, B, ...`, `1, 2, ...`, hoặc tắt) được thiết lập trong thông số chung. **Dịch nhịp qua ngày nghỉ lễ**: nếu ngay trước ngày nghỉ lễ bạn đang ở tuần A và muốn tiếp tục bằng tuần B sau đó, hãy nhấn vào các tuần liên quan trên dải luân phiên để tạo một **điểm dịch ảo**. Nhịp luân phiên khi đó được căn lại cho phần còn lại của lịch. #### Hướng dẫn — Chuẩn bị năm học tiếp theo 1. Mở màn hình **Năm học**. 2. Tạo năm học tiếp theo với tên, ngày bắt đầu và ngày kết thúc của năm đó. 3. Nhập hoặc tự khai báo các ngày nghỉ lễ. 4. Cấu hình tuần luân phiên nếu trường bạn có sử dụng. 5. Sau đó tạo mới hoặc nhân bản các thời khóa biểu trong mô-đun **Quản lý thời khóa biểu**. 6. Chỉ đổi năm học hiện tại vào thời điểm người dùng cần thấy năm học đó theo mặc định. #### Xem thêm - [Năm học](#page-core-concepts.school-year) - [Năm học](#page-glossary.school-year) - [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) - [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) ### 8.11 Thông số chung của trường *Source: `help/vi/admin/parameters.md` · id: admin.parameters · Audience: admin · Updated: 2026-05-14* Trong mô-đun **Quản trị**, màn hình **Thông số** chứa cấu hình chung của trường. Một số thông số có hiệu lực ngay lập tức trên toàn bộ tài khoản, số khác được dùng làm giá trị mặc định cho các thời khóa biểu về sau. #### Các thông số chính Màn hình này cho phép bạn thiết lập nhiều nội dung, trong đó có: - **tên trường**; - **múi giờ**; - **năm học hiện tại**; - **khối lớp** bằng Tạo mới; - **giờ mở cửa** cho các tài khoản dùng Quản lý nhân sự; - **cách giáo viên nhập thời gian rảnh**; - **giới hạn xem thời khóa biểu cho học sinh**; - **giới hạn xem thời khóa biểu cho giáo viên**; - **hạn chế đăng nhập theo vai trò**; - **cách xử lý tên đệm**; - **quy tắc viết hoa họ tên**; - **cú pháp tên đăng nhập**; - **ngày đầu tuần**; - **định dạng tuần luân phiên**; - **loại tiết học có bắt buộc hay không**; - **bật hoặc tắt danh mục môn học chung**; - **logo của trường**. Hạn mức điểm sao lưu hay thời gian lưu giữ nhật ký hoạt động không phải là những thiết lập thông thường của màn hình này. Omniscol bật hoặc điều chỉnh chúng theo hợp đồng của trường. #### Khối lớp **Khối lớp** dùng để sắp xếp các lớp theo tiến trình học tập: khối 6, khối 7, Cử nhân, Thạc sĩ, năm 1, năm 2, v.v. Chúng thuộc nhóm thiết lập **chung** của tài khoản. Bạn có thể tạo, xóa và sắp xếp lại chúng ngay trên màn hình này. Sau đó chúng được dùng trong các lớp, trong một số bộ lọc và trong nhiều dạng xem chẩn đoán. #### Thông số hiển thị và đăng nhập Các thông số Giới hạn xem thời khóa biểu cho học sinh, Giới hạn xem thời khóa biểu cho giáo viên và Hạn chế đăng nhập vào ứng dụng được mô tả trong [Giới hạn hiển thị](#page-admin.visibility-restrictions). #### Loại tiết học và môn học chung Thông số Bắt buộc loại tiết học quyết định có bắt buộc chọn loại hay không khi nhập một tiết học. Thông số về môn học chung kiểm soát quyền truy cập danh mục chính thức của quốc gia. #### Logo Logo đã tải lên được lưu trong tài khoản và được giao diện sử dụng ở những nơi phù hợp, đặc biệt là trên các màn hình đăng nhập và trong ứng dụng. #### Hướng dẫn — Thiết lập tài khoản 1. Mở **Thông số**. 2. Kiểm tra tên trường, múi giờ và năm học hiện tại. 3. Cấu hình khối lớp, ngày đầu tuần và tuần luân phiên trước khi tạo các thời khóa biểu. 4. Đặt các giới hạn hiển thị và đăng nhập theo chính sách của trường bạn. 5. Lưu các thông số chung bằng Lưu. #### Xem thêm - [Thiết lập tài khoản của trường](#page-getting-started.setup-school) - [Năm học và ngày nghỉ lễ](#page-admin.school-year) - [Quản lý môn học](#page-admin.subjects) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) - [Thông số nâng cao và tùy chỉnh](#page-admin.advanced-parameters) ### 8.12 Thông số nâng cao và tùy chỉnh *Source: `help/vi/admin/advanced-parameters.md` · id: admin.advanced-parameters · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Trong mô-đun **Quản trị**, màn hình **Thông số** tập hợp, trên các tài khoản Premium, những thiết lập **nâng cao** bên cạnh các thông số chung. Trang này mô tả các chức năng nâng cao đó; với các thiết lập cơ bản, xem [Thông số chung của trường](#page-admin.parameters). #### Đơn vị **Đơn vị** dùng để sắp xếp các lớp theo cách tổ chức nội bộ: địa bàn, khoa, khối hoặc chương trình đào tạo, hay bất kỳ cách phân chia nào riêng của trường. Khái niệm này là **tùy chọn** và tách biệt với cơ sở (site): cơ sở là một vị trí vật lý, có lưới thời gian, phòng học và thời gian di chuyển riêng, còn đơn vị chỉ là một tầng tổ chức mang tính logic. Đơn vị đặc biệt hữu ích khi vị trí địa lý không trùng khớp với cách tổ chức logic của bạn: nhiều khoa cùng chung các tòa nhà, hoặc nhiều trường trong cùng một tập đoàn giáo dục dùng chung nhiều cơ sở theo kiểu đan xen. Ngay cả khi đơn vị và cơ sở trùng nhau, tầng tổ chức này vẫn có thể có ích cho việc lọc và gom nhóm. Với **Tạo mới**, hãy chỉ tạo những đơn vị thực sự phục vụ việc tổ chức hoặc lọc công việc. Sau đó chúng sẽ xuất hiện trong các màn hình tạo lớp và trong một số bộ lọc chẩn đoán. #### Ghi đè bản dịch và thuật ngữ Màn hình này còn cho phép **ghi đè bản dịch** để điều chỉnh từ ngữ hiển thị cho phù hợp với trường của bạn. Khu vực này dùng để tùy chỉnh các nhãn nhìn thấy được trong giao diện, mà không làm thay đổi cấu trúc chức năng của sản phẩm. Có hai cơ chế riêng biệt: - Quy tắc thay thế bản dịch: thay một thuật ngữ bằng một thuật ngữ khác trong cả một loạt nhãn; - Định nghĩa lại bản dịch: thay trực tiếp giá trị của một bản dịch cụ thể. ##### Quy tắc thay thế Quy tắc thay thế dùng để thống nhất từ ngữ trên nhiều nhãn cùng một lúc. Vài ví dụ điển hình: - thay `Giáo viên` bằng `Giảng viên`; - thay `Học sinh` bằng `Sinh viên`; - điều chỉnh một số thuật ngữ cho hợp với văn hóa của trường. Các quy tắc có **thứ tự**. Thứ tự này có ý nghĩa: quy tắc đặt cao hơn được áp dụng trước các quy tắc phía sau. Màn hình cho phép bạn: - nhập văn bản nguồn và văn bản đích, rồi xác nhận bằng **Thêm**; - xem trước các nhãn bị ảnh hưởng; - sắp xếp lại thứ tự các quy tắc; - xóa một quy tắc. Các tùy chọn sẵn có dùng để xác định rõ kiểu thay thế: - `Aa`: phân biệt chữ hoa chữ thường; - `ab` gạch chân: khớp trọn vẹn từ; - `.*`: biểu thức chính quy. Hãy dùng quy tắc khi bạn muốn đổi một thuật ngữ một cách nhất quán trên nhiều màn hình. Các quy tắc được lưu **trong khu vực riêng của chúng**: việc thêm, xóa và sắp xếp lại được ghi nhận tách biệt với các thông số khác của trang. ##### Ghi đè trọn khóa dịch Ghi đè trọn khóa dịch dùng để sửa hoặc viết lại một nhãn **theo từng trường hợp**. Màn hình cho phép bạn: - tìm một bản dịch có sẵn; - thêm bản dịch đó vào danh sách ghi đè; - nhập phiên bản của riêng bạn; - lưu hoặc xóa mục ghi đè đó. Hãy dùng cách này khi một quy tắc chung sẽ quá rộng, hoặc khi bạn muốn viết lại cả một câu thay vì chỉ một thuật ngữ. Mỗi mục ghi đè khóa dịch được lưu **theo từng dòng**, với nút lưu hoặc xóa riêng của nó. ##### Cách dùng đúng Quy tắc và ghi đè chỉ dùng để tùy chỉnh **từ ngữ hiển thị**. Chúng không làm thay đổi các khái niệm nghiệp vụ bên dưới, các định danh nội bộ hay cách vận hành của ứng dụng. Nên chọn: - một **quy tắc** cho việc đổi tên lặp đi lặp lại; - một **mục ghi đè khóa dịch** cho ngoại lệ cục bộ hoặc cho trọn một nhãn. Hãy tránh những phép thay thế quá rộng hoặc mơ hồ, vì chúng có thể khiến phần trợ giúp, phần tìm kiếm và thuật ngữ trở nên thiếu nhất quán giữa các màn hình. #### Hướng dẫn 1. Mở **Thông số** trong mô-đun **Quản trị**. 2. Xác định khu vực nâng cao ứng với nhu cầu của bạn: đơn vị hoặc ghi đè bản dịch. 3. Với đơn vị, hãy tạo và sắp xếp những nhãn có ích cho cách tổ chức của bạn. 4. Với bản dịch, hãy chọn giữa quy tắc chung và ghi đè riêng lẻ tùy theo mức độ ảnh hưởng của thay đổi. 5. Hãy lưu từng khu vực bằng cơ chế riêng của nó: quy tắc được ghi nhận trong khối của chúng, còn ghi đè khóa dịch được xác nhận theo từng dòng. #### Xem thêm - [Thông số chung của trường](#page-admin.parameters) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) - [Đơn vị](#page-glossary.campus) - [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) ### 8.13 Giới hạn hiển thị và đăng nhập *Source: `help/vi/admin/visibility-restrictions.md` · id: admin.visibility-restrictions · Audience: admin · Plan: standard · Updated: 2026-05-14* Trong mô-đun **Quản trị**, màn hình **Thông số** tập hợp một vài giới hạn nhắm vào từng đối tượng cụ thể: khoảng thời gian học sinh được xem, việc ẩn thời khóa biểu giữa các giáo viên và việc chặn đăng nhập theo vai trò. #### Giới hạn phía học sinh Thông số Giới hạn xem thời khóa biểu cho học sinh xác định số tuần sắp tới, tính cả tuần hiện tại, mà học sinh còn xem được các thời khóa biểu đã công bố. Bạn đặt giá trị này theo số tuần hoặc chọn **Không giới hạn**. Giới hạn này chỉ tác động đến khoảng thời gian mở cho học sinh: mỗi người vẫn xem được các thời khóa biểu đã công bố cho đến mốc thời gian đã chọn. #### Giới hạn phía giáo viên Thông số Giới hạn xem thời khóa biểu cho giáo viên ẩn thời khóa biểu của các giáo viên khác. Nó tác động lên các bộ lọc và các dạng xem: một giáo viên vẫn tìm thấy thời khóa biểu của chính mình, nhưng không xem được thời khóa biểu của đồng nghiệp. #### Hạn chế đăng nhập Thông số Hạn chế đăng nhập vào ứng dụng chặn đăng nhập đối với các loại người dùng được chọn: **Giáo viên**, **Thành viên nhân sự** hoặc **Học sinh**. Người dùng kiêm nhiều vai trò vẫn đăng nhập được chừng nào còn ít nhất một vai trò của họ được phép. #### Hướng dẫn — Giới hạn hiển thị cho học sinh 1. Mở màn hình **Thông số**. 2. Tìm đến Giới hạn xem thời khóa biểu cho học sinh. 3. Chọn **Không giới hạn** hoặc một số tuần. 4. Xác nhận bằng **Lưu**. #### Xem thêm - [Thông số chung](#page-admin.parameters) - [Người dùng và vai trò](#page-admin.users-and-roles) - [Cổng thông tin học sinh](#page-portal.student-portal) - [Cổng thông tin giáo viên](#page-portal.teacher-portal) ### 8.14 Nhập và xuất dữ liệu *Source: `help/vi/admin/import-export.md` · id: admin.import-export · Audience: admin · Updated: 2026-06-03* Trong mô-đun **Quản trị**, màn hình **Nhập và xuất dữ liệu** tập hợp các thao tác chuyển dữ liệu của tài khoản: xuất JSON, trao đổi với aSc, điểm sao lưu, đồng bộ với hệ thống bên ngoài và những tùy chọn API đang bật trên tài khoản. Tùy theo từng quốc gia, có thể còn có các trao đổi theo giao thức tiêu chuẩn. Với những trường thuộc quản lý của Bộ Giáo dục Pháp, các trao đổi riêng của nước này (STS, UnDeuxTemps, École Directe) được mô tả trong [admin.french-formats](#page-admin.french-formats). #### Xuất JSON Nút **Tải xuống** bắt đầu một lần xuất JSON đầy đủ của tài khoản. Tệp này chứa dữ liệu của tài khoản và phải được coi như một bản sao lưu nhạy cảm. Mọi quản trị viên đều dùng được chức năng xuất JSON. Nếu bạn muốn hạn chế quyền truy cập, cần đến tùy chọn [Vai trò tùy chỉnh](#page-admin.customroles). #### Nhập JSON Việc nhập JSON đầy đủ dùng cùng định dạng với bản xuất. Chức năng này vẫn dành riêng cho đội ngũ Omniscol trong quá trình hỗ trợ: dữ liệu chỉ được nạp lại theo yêu cầu của họ, chứ không phải là một thao tác thường ngày trên màn hình quản trị. Để khôi phục một tài khoản, hãy ưu tiên các điểm sao lưu khi chúng đang được bật, hoặc liên hệ Omniscol nếu cần nạp lại một tệp JSON. Trước mọi lần nhập ghi đè dữ liệu hiện có, hãy tạo một điểm sao lưu nếu chức năng này đang bật. #### aSc Timetables Màn hình còn có một phần dành cho aSc Timetables: - nhập một tệp XML aSc; - xuất tệp XML aSc kèm các tùy chọn. Việc trao đổi này áp dụng cho một tệp aSc hoàn chỉnh. Để thêm các tiết học từ một bảng tính, bạn hãy dùng [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) thay vì cách này. #### Điểm sao lưu Nếu **điểm sao lưu** đang được bật, nút **Điểm sao lưu** sẽ mở phần quản lý chúng. Xem [Điểm sao lưu](#page-admin.snapshots). #### Đồng bộ với hệ thống bên ngoài và các tùy chọn API > _Premium_ Màn hình còn cho phép: - cấu hình đồng bộ với các hệ thống bên ngoài bằng **Cấu hình**; - chia sẻ toàn cục / OpenAPI; - các thiết lập API; - cấu hình MCP; - quản lý OAuth2 / OIDC. #### Hướng dẫn — Xuất dữ liệu của tài khoản 1. Mở **Nhập và xuất dữ liệu**. 2. Nhấn vào **Tải xuống**. 3. Lưu giữ tệp ở một nơi an toàn. 4. Nếu mục đích là thực hiện một thao tác rủi ro, hãy tạo thêm một điểm sao lưu bên cạnh bản xuất. #### Xem thêm - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [Điểm sao lưu](#page-admin.snapshots) - [Tổng quan](#page-migration.overview) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) - [admin.french-formats](#page-admin.french-formats) ### 8.15 Điểm sao lưu *Source: `help/vi/admin/snapshots.md` · id: admin.snapshots · Audience: admin · Plan: premium · Feature: snapshots · Updated: 2026-05-15* > **Premium** > _Premium_ **Điểm sao lưu**, hay *snapshot*, là ảnh chụp tài khoản Omniscol tại một thời điểm. Chức năng này chỉ có khi đội ngũ Omniscol đã bật hạn mức điểm sao lưu cho tài khoản, theo hợp đồng của trường. Hạn mức đó được thống nhất cùng Omniscol theo nhu cầu của trường (sao lưu thủ công, tự động hóa, thời gian lưu giữ mong muốn) và có thể điều chỉnh theo yêu cầu. Quản trị viên không trực tiếp đặt hạn mức từ màn hình này. #### Mở phần điểm sao lưu Trong mô-đun **Quản trị**, hãy mở **Nhập và xuất dữ liệu** rồi nhấn vào **Điểm sao lưu**. Màn hình liệt kê các điểm sao lưu hiện có, hạn mức đã dùng và, khi có sẵn, một bản **tóm lược** nội dung: số lượng người dùng, năm học, bảng thông tin, sự kiện, thời khóa biểu và các chỉ số nghiệp vụ chính. #### Các thao tác khả dụng Tùy theo quyền của bạn, bạn có thể: - tạo một điểm sao lưu bằng **Tạo mới**; - xuất một điểm sao lưu ra JSON bằng **Tải xuống**; - xóa một điểm sao lưu bằng **Xóa**; - khóa một điểm sao lưu để nó không bị xóa; - đặt hoặc thay đổi ngày hết hạn; - xem kỹ bản tóm lược để nhanh chóng biết điểm sao lưu chứa những gì; - khôi phục một điểm sao lưu (toàn bộ hoặc một phần) bằng **Khôi phục**. Các điểm sao lưu được giữ trên hệ thống lưu trữ có nhân bản. Mỗi điểm sao lưu đều có thể xuất ra JSON để phân tích hay đối chiếu bằng công cụ của riêng bạn. #### Khôi phục Việc khôi phục đòi hỏi một bước xác nhận rõ ràng. Màn hình đưa ra ba chế độ, tùy theo các nhóm dữ liệu đã chọn: - **Ghi đè dữ liệu**: dữ liệu đã chọn được thay bằng trạng thái trong điểm sao lưu. Đây là chế độ quay lui; - **Khôi phục dữ liệu đã xóa**: Omniscol chỉ nạp lại những mục còn thiếu khi chế độ này được hỗ trợ, chẳng hạn sau khi vô tình xóa nhầm người dùng; - **Khôi phục không ghi đè**: Omniscol khôi phục dưới dạng bản sao khi được hỗ trợ, để bạn đối chiếu hoặc ghép lại thủ công mà không thay thế trạng thái hiện tại, chẳng hạn khi một thời khóa biểu đã lệch đi và bạn không muốn ghi đè lên những gì đã làm kể từ lúc điểm sao lưu được tạo. Vì vậy có thể xuất hiện các bản trùng lặp. Việc khôi phục có thể áp dụng cho toàn bộ tài khoản hoặc cho từng phần như thời khóa biểu, sự kiện, bảng thông tin, vắng mặt, người dùng, môn học, năm học hay cấu hình. #### Tự động hóa Nút **Tự động hóa** cho phép cấu hình việc tạo điểm sao lưu tự động. Nhịp độ tùy theo cấu hình đã chọn cho tài khoản: hằng ngày, hằng tuần, vào giữa đêm — bạn quyết định chính sách phù hợp với trường mình. Ngày hết hạn và việc khóa quyết định thời gian lưu giữ: - một điểm sao lưu đã hết hạn có thể bị xóa tự động, trừ khi nó đang bị khóa; - một điểm sao lưu đang bị khóa được bảo vệ khỏi việc xóa thủ công và khỏi việc dọn dẹp tự động; - khi cần tạo một bản sao lưu tự động trong lúc hạn mức đã dùng hết, Omniscol xóa điểm sao lưu tự động cũ nhất không bị khóa để lấy chỗ. Nếu không thể xóa điểm sao lưu nào (tất cả đều đang bị khóa), bản sao lưu mới sẽ thất bại. Cách vận hành này cho bạn một lịch sử sao lưu gần với Time Machine trên môi trường Apple: hữu ích để quay lui, lấy lại dữ liệu bị xóa nhầm hoặc khôi phục một bản sao để đối chiếu. Nó vẫn bị giới hạn bởi hạn mức đã thống nhất cùng Omniscol, có thể điều chỉnh theo yêu cầu. #### Cần xác định trước khi bật Trước khi bật hoặc mở rộng tùy chọn này, bạn hãy xác nhận với Omniscol: - hạn mức điểm sao lưu và khoảng dự phòng mong muốn dành cho các bản sao lưu thủ công; - nhịp độ sao lưu tự động mà bạn sẽ muốn cấu hình; - thời gian lưu giữ mong muốn; - các nhóm dữ liệu liên quan đến việc khôi phục từng phần; - định dạng xuất dữ liệu cần cho các đợt kiểm tra bên ngoài. Mỗi điểm sao lưu đều có thể xuất ra JSON. #### Hướng dẫn — Tạo một điểm sao lưu trước khi thực hiện thao tác rủi ro 1. Mở **Nhập và xuất dữ liệu**. 2. Nhấn vào **Điểm sao lưu**. 3. Nhấn vào **Tạo mới**. 4. Kiểm tra xem điểm sao lưu mới đã xuất hiện trong danh sách chưa. 5. Sau đó hãy tiến hành việc nhập dữ liệu, tổ chức lại hay thay đổi cấu hình đã dự tính. Nếu xảy ra sự cố nghiêm trọng, bạn sẽ có thể quay ngược về thời điểm trước đó. #### Xem thêm - [Nhập và xuất dữ liệu](#page-admin.import-export) - [Nhật ký hoạt động (logs)](#page-admin.logs) ### 8.16 Nhật ký hoạt động (logs) *Source: `help/vi/admin/logs.md` · id: admin.logs · Audience: admin · Feature: logs · Updated: 2026-05-15* > **Premium** Trong mô-đun **Quản trị**, màn hình **Nhật ký hoạt động** hiển thị các bản ghi nhật ký hiện có của tài khoản khi tùy chọn nhật ký đang bật. Thời gian lưu trữ được thống nhất cùng đội ngũ Omniscol theo hợp đồng của trường và có thể điều chỉnh theo yêu cầu. Màn hình này dùng để xem và xuất các dấu vết có trong luồng nhật ký. #### Những gì được ghi nhật ký Nhật ký ghi lại các thao tác làm thay đổi tài khoản, chứ không ghi mọi lần xem. - **Mỗi thay đổi** dữ liệu (hồ sơ người dùng, thời khóa biểu, thông số…) — tạo mới, cập nhật hay xóa — đều sinh ra một bản ghi kèm người thực hiện, thao tác và dấu thời gian. - **Các lần đăng nhập** — mỗi lần thử đăng nhập đều ghi lại tên đăng nhập đã dùng. - **Các thao tác với mật khẩu** — đặt, đổi, xóa hay đặt lại mật khẩu đều được ghi lại: thao tác và người thực hiện, không bao giờ là chính mật khẩu. - **Các lần xuất dữ liệu** — việc xuất JSON của tài khoản được ghi vào nhật ký. Việc xem đơn thuần (mở một màn hình, liệt kê dữ liệu) không được ghi lại, ngoại trừ một vài thao tác nhạy cảm. Vì vậy nhật ký trả lời câu hỏi “ai đã làm gì và khi nào”, chứ không phải “ai đã xem gì”. #### Màn hình hiển thị những gì Mỗi dòng có thể chứa: - một dấu thời gian; - thao tác đã thực hiện; - đường dẫn (route) tương ứng khi xác định được; - các tham số và dữ liệu bổ sung đã ghi lại; - phương thức HTTP; - địa chỉ URL liên quan; - người dùng liên quan. Nội dung cụ thể tùy thuộc vào những gì Omniscol đã ghi nhật ký: màn hình phản ánh các dấu vết có trong luồng nhật ký của tài khoản. #### Tìm kiếm và xuất dữ liệu Khi danh sách đã có đủ bản ghi, một ô tìm kiếm tại chỗ cho phép lọc bảng. Nút **Dấu thời gian** mở ra một dạng xem cho phép xuất các dòng. #### Nhật ký bao quát đến đâu - Mỗi dòng cho biết thao tác đã thực hiện, đường dẫn, các tham số và người dùng liên quan; mức chi tiết phụ thuộc vào những gì Omniscol đã ghi lại. - Thời gian lưu trữ phụ thuộc vào tùy chọn đã bật trên tài khoản và vào việc dọn dẹp nhật ký định kỳ. - Nhật ký được xem và xuất ngay từ màn hình này; Omniscol không tự động chuyển tiếp chúng sang một công cụ giám sát bên ngoài. Để dựng lại thật chính xác trạng thái của một tài khoản vào một ngày nhất định, bạn hãy kết hợp nhật ký với các điểm sao lưu. #### Cần kiểm tra trong hợp đồng Thời gian lưu trữ, các nghĩa vụ kiểm toán và những nội dung cần xuất được quy định trong hợp đồng và trong các tài liệu bảo mật được cung cấp theo yêu cầu. Trang này không thay thế những tài liệu đó. #### Xem thêm - [Điểm sao lưu](#page-admin.snapshots) - [Người dùng và vai trò](#page-admin.users-and-roles) --- ## 9. Tích hợp ### 9.1 Tổng quan về các tích hợp *Source: `help/vi/integrations/overview.md` · id: integrations.overview · Audience: admin · Updated: 2026-06-13* Omniscol tích hợp với hệ thống thông tin của bạn theo nhiều đường khác nhau, tùy nhu cầu. Để xem ví dụ về các công cụ bên thứ ba và các đối tác thường được kết nối với Omniscol, xem thêm [integrations.partners](#page-integrations.partners). #### Bảng tổng hợp | Cơ chế | Dùng để làm gì | Chiều của luồng | | --- | --- | --- | | [iCal](#page-integrations.ical) | Cho phép giáo viên / học sinh xem thời khóa biểu của mình ngay trong lịch cá nhân | Omniscol → lịch | | [Liên kết chia sẻ](#page-glossary.share-link) | Chia sẻ một thời khóa biểu ở chế độ chỉ đọc, hoặc mở một màn hình nhập liệu có mục đích cụ thể tùy theo ngữ cảnh | Omniscol → web công khai | | [Iframe](#page-portal.share-links) | Nhúng một thời khóa biểu vào một trang trên **cùng tên miền** với Omniscol; bị chặn trên trang web bên ngoài (vì bảo mật) | Omniscol → cùng tên miền | | [API Omniscol](#page-integrations.api-tokens) | Tích hợp giữa hệ thống với hệ thống, tùy quyền và tùy chọn của tài khoản | Tùy cấu hình | | [MCP](#page-integrations.mcp) | Kết nối một tác nhân AI tương thích MCP với Omniscol | Tác nhân AI ↔ Omniscol | | [OAuth2 / OIDC (máy chủ)](#page-integrations.oauth-server) | Kết nối một dịch vụ bên thứ ba được nhận dạng bằng ứng dụng khách đã đăng ký + sự đồng ý + mã thông báo giới hạn phạm vi (nền tảng của MCP và OneRoster) | Dịch vụ ↔ Omniscol | | [OIDC / SSO (đăng nhập)](#page-integrations.oauth2) | Xác thực người dùng qua nhà cung cấp danh tính (Google Workspace, Microsoft Entra ID, OIDC tổng quát) | Tùy cấu hình | | [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) | Khung trình kết nối: Aurion, Auriga, Edusign, trình kết nối mới theo dự án | Hai chiều | | [Bảng thông tin](#page-panels.lobby-panel) | Hiển thị thời khóa biểu trên màn hình công cộng | Omniscol → màn hình | #### Chọn cách tích hợp phù hợp - **Đưa thời khóa biểu đến một giáo viên / học sinh** — đăng ký [iCal](#page-integrations.ical). - **Cấp quyền xem cho phụ huynh / một đợt kiểm toán** — [liên kết chia sẻ](#page-glossary.share-link). - **Đồng bộ người học từ ERP / hệ thống thông tin của bạn** — xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync), nơi liệt kê các trình kết nối hiện có. Nếu ERP của bạn không có trong đó, việc bổ sung một trình kết nối sẽ được thống nhất cùng bộ phận hỗ trợ Omniscol. - **Đăng nhập một lần** — [OIDC / SSO](#page-integrations.oauth2). - **Trợ lý AI bên ngoài** trên tài khoản, nếu tùy chọn này được bật — [MCP](#page-integrations.mcp) cho các ứng dụng khách tương thích. - **Hiển thị công khai trong khuôn viên** — [bảng thông tin](#page-panels.lobby-panel). #### Thực hành tốt về bảo mật - Dùng **OIDC / SSO**, khi tùy chọn này được bật, để xác thực những người dùng thật. - Chỉ dành **mã thông báo API** cho tích hợp giữa hệ thống với hệ thống, với phạm vi tối thiểu và thay mới định kỳ. - Đặt **ngày hết hạn** ngắn cho các liên kết chia sẻ. - Không đặt mã thông báo API vào một kho Git công khai. #### Xem thêm - [iCal](#page-integrations.ical) - [API Omniscol](#page-integrations.api-tokens) - [MCP](#page-integrations.mcp) - [OAuth2 / OIDC (máy chủ)](#page-integrations.oauth-server) - [OIDC / SSO (đăng nhập)](#page-integrations.oauth2) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) - [integrations.partners](#page-integrations.partners) ### 9.2 Omniscol vận hành thế nào — một API duy nhất, một nguồn sự thật duy nhất *Source: `help/vi/integrations/architecture.md` · id: integrations.architecture · Audience: admin · Plan: standard · Updated: 2026-07-12* Có vài điểm về cách Omniscol được xây dựng rất đáng biết trước khi bạn tích hợp với nó — chúng giải thích vì sao API lại đầy đủ đến vậy, cách giao diện thích ứng với từng người dùng, và một điểm về quyền riêng tư cần lưu ý. #### Một ứng dụng duy nhất trên một API duy nhất Omniscol chạy như một **ứng dụng web duy nhất** trong trình duyệt của bạn. Mỗi màn hình, mỗi nút và mỗi bảng đều được vẽ ra bằng cách gọi **API công khai** của Omniscol — cũng chính là API mà bạn có thể tự gọi, được mô tả trong tài liệu tham chiếu API tương tác của Omniscol, trang **Nhà phát triển** ([omniscol.com/vi/developers](https://www.omniscol.com/vi/developers)). Không hề có một API ẩn, “thật sự”, nằm sau API mà bạn tích hợp: những gì giao diện dùng *chính là* những gì bạn nhận được. Một vài thao tác lại đi theo chiều ngược lại — được cung cấp cho việc tích hợp nhưng **bản thân ứng dụng không dùng đến**: chẳng hạn các điểm truy cập **tìm kiếm nâng cao và phân giải thực thể** (dành cho một tác nhân AI qua [MCP](#page-integrations.mcp)), hoặc những điểm truy cập cho phép một hệ thống bên ngoài **cấp dữ liệu vào Omniscol** (một ETL giữ cho một cơ sở dữ liệu bên ngoài luôn đồng bộ). #### operationId — một khóa, một nguồn sự thật duy nhất Mỗi thao tác là một **cặp phương thức + URL** (ví dụ `GET /api/schedules/lessons/{datesrange}`), và mỗi thao tác đều mang một mã định danh ổn định: **operationId** của nó (ở đây là `os_schedules_dates_get`). Tên này có cấu trúc rõ ràng: **`os`** (Omniscol), rồi đến **mô-đun** (`schedules`), rồi đến đối tượng mà **thao tác** tác động lên (`dates` — đôi khi gồm nhiều đoạn nối với nhau bằng dấu gạch ngang), và luôn luôn là **phương thức HTTP** ở cuối (`get`, `post`, `put`, `delete`). Chính khóa duy nhất ấy được Omniscol dùng ở khắp nơi — để gọi tên thao tác trên trang **Nhà phát triển**, để dựng công cụ [MCP](#page-integrations.mcp) tương ứng, và để chỉ tới nó từ một lần ghi đè hay từ trang trợ giúp này. Chỉ được định nghĩa một lần, khóa ấy giữ cho mọi nơi nó xuất hiện luôn khớp nhau: tài liệu, công cụ và giao diện không thể lệch khỏi nhau, vì tất cả đều đọc cùng một định nghĩa. #### Giao diện đi theo quyền của bạn Một **thành phần giao diện có gắn hành động** — một nút, một thẻ, một mục menu — chỉ hiện ra khi thao tác đứng sau nó **có sẵn với bạn**. Điều đó tùy thuộc vào vai trò của bạn và vào [vai trò tùy chỉnh](#page-admin.customroles) (xem [Người dùng và vai trò](#page-admin.users-and-roles)), vào gói dịch vụ và các tùy chọn của bạn (xem [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options)). Thay đổi một trong những yếu tố ấy và giao diện tự dựng lại: các thành phần, thậm chí cả những mô-đun trọn vẹn, sẽ hiện ra hoặc biến mất theo. Nguyên tắc ấy còn áp dụng ra ngoài phạm vi quyền cá nhân của bạn. Bộ phận công nghệ thông tin có thể tắt một số thao tác bằng một **lần ghi đè API**, và các thành phần tương ứng sẽ biến mất khỏi giao diện (xem [Tùy chỉnh API](#page-integrations.api-customization)). Điều tương tự cũng xảy ra khi một dữ liệu được giữ cập nhật bởi một **cơ chế đồng bộ bên ngoài**: việc tạo và sửa dữ liệu ấy ngay tại chỗ có thể bị tắt đi, và các nút lệnh tương ứng nhường chỗ cho cơ chế đồng bộ (xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync)). Vì vậy Omniscol **không có cổng thông tin riêng** cho học sinh hay giáo viên. Chỉ có một ứng dụng duy nhất; mỗi người nhìn thấy giao diện khớp với quyền của chính mình — một học sinh, một giáo viên, một quản trị viên và người mang một vai trò tùy chỉnh, mỗi người nhận đúng những thao tác mà mình được phép, không hơn. #### Giao diện là sự tiện lợi, không phải ổ khóa Vì giao diện được điều khiển bởi quyền của bạn, người ta dễ nghĩ rằng một nút bị ẩn đi là một ranh giới bảo mật. Không phải vậy. **Mọi lệnh gọi đều được kiểm tra lại trên máy chủ** dựa trên danh tính và quyền của bạn; một thao tác mà bạn không được phép sẽ bị từ chối ngay tại đó, bất kể giao diện đang hiển thị gì. Giao diện thích ứng để mọi thứ rõ ràng và dễ dùng; ranh giới thật sự được áp dụng ở phía máy chủ, với từng yêu cầu. #### Mã thông báo và liên kết chia sẻ, cùng một mô hình Một [mã thông báo API](#page-integrations.api-tokens) hay một liên kết chia sẻ đều **bị giới hạn trong một tập thao tác** — những thao tác mà bạn cho phép khi tạo ra nó. Máy chủ áp dụng giới hạn ấy cho từng lệnh gọi, y hệt như với một người dùng đã đăng nhập. Một liên kết chia sẻ, một mã thông báo và một người dùng trên giao diện là ba cách để tới cùng một API được kiểm soát bằng quyền — chứ không bao giờ là một cửa sau đi vòng qua nó. #### Vượt qua một lần mất kết nối Vì mọi màn hình đều đọc dữ liệu từ API, Omniscol còn có thể giữ lại trong trình duyệt của bạn những phản hồi đã nhận, để một lần mất mạng ngắn không cắt ngang việc bạn đang xem. **Bản sao cục bộ** ấy nằm trong cơ sở dữ liệu riêng của nó (IndexedDB), bên cạnh bộ nhớ đệm trang thông thường của trình duyệt. Đây là một **bộ nhớ đệm để đọc**: nếu kết nối rớt, bạn vẫn tiếp tục thấy những gì mình đã mở. Nó **không** xếp hàng các thay đổi của bạn và cũng không phát lại chúng — một thay đổi thì luôn đi qua máy chủ. Bản sao cục bộ này dựa trên **sự đồng ý** của bạn. Lần đầu tiên trên một trình duyệt, Omniscol hỏi bạn có tin tưởng trình duyệt ấy hay không; bản sao chỉ bắt đầu sau khi bạn đã chấp nhận. Về sau, mục Bộ nhớ đệm ngoại tuyến trong menu người dùng bật nó lên hoặc xóa nó đi bất cứ lúc nào — một dấu kiểm cho biết nó đang hoạt động. Hai điều cần biết: - **Dữ liệu cá nhân bị loại ra.** Chỉ những lần đọc thành công mới được giữ lại; những phản hồi mà máy chủ đánh dấu là không được lưu (dữ liệu phiên làm việc và dữ liệu xác thực) không bao giờ vào bộ nhớ đệm, và từ những gì *có* vào bộ nhớ đệm, phần mềm gỡ bỏ những thông tin nhận dạng của từng người — e-mail, điện thoại, ngày sinh, tên đăng nhập, số định danh, trạng thái mật khẩu — rồi xóa hẳn các tài khoản quản trị viên. Bản sao cục bộ chứa dữ liệu làm việc thông thường, chứ không phải danh bạ thông tin cá nhân. - **Trên một máy dùng chung, hãy ưu tiên cửa sổ duyệt web riêng tư (ẩn danh).** Việc đăng xuất không xóa bản sao cục bộ này (cũng không xóa bộ nhớ đệm thông thường của trình duyệt); một cửa sổ riêng tư sẽ xóa cả hai khi nó đóng lại. Đó là mức cẩn trọng nên dành cho mọi ứng dụng web trên một máy mà bạn không kiểm soát. #### Xem thêm - [Tổng quan về các tích hợp](#page-integrations.overview) - [Tùy chỉnh API](#page-integrations.api-customization) - [API Omniscol](#page-integrations.api-tokens) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) ### 9.3 iCal — đăng ký và liên kết động *Source: `help/vi/integrations/ical.md` · id: integrations.ical · Plan: standard · Updated: 2026-05-15* Định dạng **iCal** (`.ics`) là chuẩn chia sẻ lịch giữa các ứng dụng. Omniscol cung cấp mỗi thời khóa biểu (cá nhân, lớp, phòng học, giáo viên) dưới dạng **liên kết đăng ký iCal** mà người dùng có thể dán vào Google Calendar, Apple Calendar, Outlook, Thunderbird hay bất kỳ ứng dụng nào đọc được lịch theo chuẩn. #### Liên kết đăng ký so với bản xuất một lần Hai cách dùng rất khác nhau: - **Liên kết đăng ký** (khuyến nghị) — URL HTTPS trỏ về Omniscol. Ứng dụng lịch tải lại URL đó theo định kỳ (mỗi giờ, mỗi ngày, tùy thiết lập của từng ứng dụng) và cập nhật liên tục lịch của người dùng. Khi một tiết học đổi chỗ trong Omniscol, người dùng thấy ngay trong lịch của mình mà không phải làm gì. - **Bản xuất một lần** — tải về một tệp `.ics` tại một thời điểm nhất định. Tiện để lưu trữ, gửi qua email, hoặc đưa vào một hệ thống không biết đăng ký lịch. Nhưng nó cố định: nếu thời khóa biểu thay đổi, tệp không được cập nhật. Hãy ưu tiên liên kết đăng ký khi ứng dụng đích là một ứng dụng hiện đại biết làm mới một lịch từ xa (Google Calendar, Apple Calendar, Outlook). #### Lấy liên kết đăng ký của bạn Trên những màn hình có chức năng chia sẻ, nút Chung mở một hộp thoại có thể cung cấp: - một hoặc nhiều URL đăng ký iCal đã ký, - một nút “Sao chép URL”, - một mã QR để quét, - một tệp `.ics` để tải xuống. URL chứa một mã thông báo bí mật: đừng chia sẻ nó — ai có được URL cũng xem được thời khóa biểu nằm trong phạm vi của liên kết, cho tới khi liên kết hết hạn hoặc mất hiệu lực. #### Tạo iCal ở đâu Các điểm vào chính: - **Ở đầu mô-đun Thời khóa biểu** — nút Chung có thể tạo một iCal cho toàn bộ thời khóa biểu đang hiển thị, một iCal gộp trộn chúng vào cùng một đăng ký, rồi từng iCal riêng lẻ. Những liên kết này bị giới hạn trong năm học đang hiển thị. - **Trên mỗi thời khóa biểu đang hiển thị** — khi rê chuột lên thanh tiêu đề của thời khóa biểu, bạn chia sẻ được riêng thời khóa biểu đó. Liên kết bao phủ năm học tương ứng. - **Trên hồ sơ của một giáo viên** — trong **Quản trị**, nút Chung trên hồ sơ tạo iCal cá nhân của giáo viên, được thiết kế để dùng được lâu dài, chừng nào liên kết, tài khoản sở hữu và thời hạn đã chọn còn cho phép. - **Khi xem trước một thời khóa biểu dạng lịch** — trong **Quản lý thời khóa biểu**, nút Chung của màn hình xem trước tạo iCal cho đúng những gì đang hiển thị, kể cả khi thời khóa biểu đó chưa được kích hoạt hay chưa công bố. Mỗi lần tạo liên kết, người dùng ấn định được một ngày mất hiệu lực. Ngày này được ghi vào mã thông báo của URL: về sau không sửa được. Muốn đổi thời hạn, bạn phải tạo một liên kết mới. Cũng như các liên kết chia sẻ khác, iCal gắn với tài khoản đã tạo ra nó: đổi mật khẩu, vô hiệu hóa hoặc xóa tài khoản sở hữu sẽ làm mất hiệu lực các liên kết liên quan. #### Liên kết công khai cho một lớp hoặc một phòng học Quản trị viên tạo được một liên kết đăng ký cho một **lớp** hoặc một **phòng học** (ví dụ để chia sẻ với phụ huynh hoặc với một dịch vụ bên ngoài). Những liên kết này được ký và mang theo một ngày hết hạn. Xem thêm [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link), trang mô tả toàn bộ các tùy chọn chia sẻ (iCal, trang web tương thích mọi màn hình, JSON qua API). #### Cấu hình ở phía ứng dụng lịch ##### Google Calendar 1. Trong Google Calendar, ở cột bên trái, cạnh mục **Lịch khác**, bấm dấu **+** > **Từ URL**. 2. Dán URL đăng ký của Omniscol. 3. Lịch xuất hiện kèm một nhãn gợi ý và một màu mặc định — đều đổi được. Google làm mới đăng ký khoảng 8-24 giờ một lần. Với thay đổi gấp: hãy tính đến độ trễ. ##### Apple Calendar (macOS, iOS) 1. **Tệp > Đăng ký lịch mới**. 2. Dán URL của Omniscol. Liên kết iCal của Omniscol được cấu hình để tự động làm mới mỗi nửa giờ. ##### Outlook (Microsoft 365) 1. **Thêm lịch > Từ Internet**. 2. Dán URL của Omniscol. Outlook cập nhật với nhịp độ khác nhau tùy phiên bản; với bản desktop đời cũ, hãy tính đến độ trễ. #### Giới hạn - Các thay đổi ở phía ứng dụng lịch (chuyển một sự kiện trong Google Calendar) không được chuyển ngược về Omniscol — đăng ký chỉ đọc. - Người dùng phải có một tài khoản Omniscol đang hoạt động thì mới tạo được URL cá nhân của mình. - Thời hạn của liên kết được ghi trong URL đã tạo: về sau không gia hạn được; cần thì hãy tạo một liên kết mới. - Các sự kiện ngoài thời khóa biểu chỉ có mặt nếu phần chia sẻ hoặc bộ lọc iCal có bao gồm chúng. #### Hướng dẫn — Đăng ký thời khóa biểu của bạn từ Google Calendar 1. **Đăng ký iCal** đồng bộ thời khóa biểu Omniscol của bạn với lịch cá nhân (Google Calendar, Apple Calendar, Outlook). Cập nhật tự động và liên tục: không phải sao chép lại mỗi khi thời khóa biểu thay đổi. 2. **Từ màn hình Omniscol của bạn** (học sinh, giáo viên hoặc khung nhìn được chia sẻ), hãy bấm Chung khi nút này có sẵn. Một hộp thoại mở ra kèm các URL đã tạo cho phạm vi của bạn. 3. **Sao chép URL đăng ký** (nút Sao chép). Đừng chia sẻ nó: ai có được URL cũng xem được phạm vi nằm trong liên kết, cho tới khi liên kết hết hạn hoặc mất hiệu lực. 4. **Trong Google Calendar**: cột bên trái, **Lịch khác → + → Từ URL**, dán, xác nhận. Lịch xuất hiện kèm nhãn và màu (đều đổi được). **Trong Apple Calendar**: `Tệp → Đăng ký lịch mới`, dán. **Trong Outlook M365**: `Thêm lịch → Từ Internet`, dán. 5. **Quan trọng**: đăng ký = **chỉ đọc**. Các thay đổi trong lịch cá nhân của bạn không được chuyển ngược về Omniscol. Các thay đổi phía Omniscol sẽ đến lịch của bạn ở lần đồng bộ kế tiếp của ứng dụng lịch. #### Xem thêm - [iCal (xuất lịch)](#page-glossary.ical) - [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.4 API Omniscol — mã thông báo xác thực *Source: `help/vi/integrations/api-tokens.md` · id: integrations.api-tokens · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **API Omniscol** là một API REST được mô tả bằng OpenAPI. API này phục vụ các tích hợp giữa hệ thống với hệ thống: trang tổng quan bên ngoài, màn hình hiển thị riêng, đồng bộ với ERP hay hệ thống thông tin, hoặc tác nhân AI qua MCP. Mã thông báo API quản lý được từ giao diện có sẵn trên những tài khoản mở tích hợp này. Một mã thông báo phái sinh chỉ cho phép gọi những điểm truy cập API được chọn khi sinh ra nó; đừng mặc định rằng nó bao phủ toàn bộ API. #### Khóa và mã thông báo: hai đối tượng khác nhau Omniscol phân biệt hai đối tượng mà bạn không nên nhầm lẫn. **Khóa** là một đối tượng tồn tại lâu dài, được giữ ở phía Omniscol. Khóa gồm: - một **mã định danh** ngắn, sinh ngẫu nhiên, công khai: đây chính là thứ danh sách hiển thị, và nó đi kèm trong mỗi mã thông báo để chỉ ra khóa cần dùng khi kiểm tra; - một **nhãn** mô tả, sửa được bất cứ lúc nào; - một **ngày hết hạn** tùy chọn, sửa được bất cứ lúc nào; - một **bí mật ngẫu nhiên** dài, sinh ở phía máy chủ, dùng làm khóa ký mật mã. Mã định danh, nhãn và ngày hết hạn là những thông tin quản trị: mã định danh chỉ là một tham chiếu công khai, không phải yếu tố bí mật. Còn **bí mật** mới là vật liệu ký duy nhất: được sinh ngẫu nhiên khi tạo khóa, nó ở lại phía máy chủ, không sửa được, và **không bao giờ được hiển thị hay trả về** — dù lúc tạo khóa hay trong danh sách khóa. Và ngay cả khi bị lộ, riêng nó cũng không đủ để giả mạo một mã thông báo: chữ ký còn kết hợp nó với một **giá trị salt riêng của tài khoản** và một **bí mật của máy chủ** mà hai thứ này cũng không bao giờ rời khỏi Omniscol. **Mã thông báo** là một **JWT** (JSON Web Token) độc lập, được ký bằng bí mật của khóa. Đây chính là thứ bạn chuyển cho hệ thống bên ngoài. Phần nội dung đã ký của nó mang theo tài khoản liên quan, danh sách điểm truy cập được phép, khóa đã sinh ra nó và ngày hết hạn của chính nó. Nói cách khác: **khóa dùng để ký, mã thông báo là thứ được ký.** Cùng một khóa có thể ký nhiều mã thông báo — tất cả đều kiểm tra được bằng cùng một bí mật, nên tất cả cũng bị thu hồi cùng lúc nếu khóa biến mất. Omniscol không lưu mã thông báo: hệ thống sinh ra nó, hiển thị một lần, rồi kiểm tra lại ở mỗi lệnh gọi bằng cách dựng lại chữ ký từ bí mật của khóa (HMAC SHA-256). Vì vậy, không một quyền nào mà mã thông báo mang theo có thể bị sửa đổi nếu thiếu bí mật này. #### Tạo một mã thông báo Màn hình Chung nằm trong Quản trị → Nhập và xuất dữ liệu trên các tài khoản Premium. Việc tạo diễn ra theo hai bước: trước hết tạo một **khóa**, rồi **sinh một mã thông báo** từ khóa đó. 1. **Tạo khóa** — nhập một nhãn dễ hiểu và, nếu quyền truy cập chỉ tạm thời, một ngày hết hạn. Nhãn và ngày hết hạn vẫn sửa được về sau; bí mật ký thì không. 2. **Sinh mã thông báo** — chọn khóa, tích chọn những điểm truy cập được phép, nếu cần thì chọn thêm một ngày hết hạn riêng cho mã thông báo, rồi sinh JWT. Khi sinh mã thông báo, Omniscol hiển thị nó **đúng một lần**. Hãy chép ngay vào một trình quản lý bí mật: nó sẽ không được hiển thị lại nữa. Thời hạn của mã thông báo được ghi thẳng vào phần nội dung đã ký: về sau không sửa được. Muốn đổi ngày này, bạn hãy sinh một mã thông báo mới. Như vậy có hai mức thời hạn, độc lập với nhau: - **thời hạn của khóa** — sửa được từ danh sách khóa; khi đến hạn, **mọi** mã thông báo sinh ra từ khóa đó đều bị từ chối (lệnh gọi thất bại với mã 401); - **thời hạn của mã thông báo** — ấn định lúc sinh, ghi trong JWT, và sau đó không sửa được. #### Những điểm truy cập được phép Một mã thông báo **chỉ cho phép gọi những điểm truy cập đã tích chọn lúc sinh ra nó**: đừng bao giờ mặc định rằng nó bao phủ toàn bộ API. Danh sách được phép đi kèm trong mã thông báo và được kiểm tra ở mỗi lệnh gọi; lệnh gọi tới một điểm truy cập không được phép sẽ bị từ chối (401). Ngoài từng điểm truy cập riêng lẻ, danh sách lựa chọn còn cung cấp các **lối tắt theo mô-đun**: - chọn riêng mục của một mô-đun là cho phép **toàn bộ** các điểm truy cập của mô-đun đó; - các biến thể theo thao tác — **Đọc**, **Chỉnh sửa**, **Tạo mới**, **Xóa** — giới hạn mô-đun về một loại lệnh gọi duy nhất. Vì vậy, tích chọn “**Thời khóa biểu** [Đọc]” là cấp toàn bộ quyền đọc thời khóa biểu mà không mở bất kỳ quyền ghi nào, và cũng không phải tích từng điểm truy cập một. Hãy giữ ở mức vừa đủ: chỉ cấp những mô-đun và những thao tác thật sự cần cho tích hợp. #### Sử dụng một mã thông báo Hai cách thông dụng để gửi mã thông báo tới API: - **Tiêu đề HTTP**: `Authorization: Bearer ` (khuyến nghị). - **Query string**: `?auth=` (tiện khi gỡ lỗi, nhưng xuất hiện trong nhật ký HTTP — nên tránh trong môi trường vận hành). Ví dụ với `curl`, cần thay bằng một điểm truy cập thật lấy từ OpenAPI: ```bash curl -H "Authorization: Bearer $TOKEN" \ https://ten-truong-cua-ban.omniscol.com/api// ``` #### Tài liệu OpenAPI Màn hình Nhập và xuất dữ liệu hiển thị một liên kết **OpenAPI 3.1**, mở trong Swagger Editor bản đặc tả hiện có của tài khoản. Ở đó bạn tìm thấy: - danh sách các điểm truy cập API được mở, - lược đồ của dữ liệu trao đổi, - các phương thức và tham số, - các phản hồi mong đợi. Bản đặc tả cũng được chính tài khoản của bạn cung cấp trực tiếp, không cần xác thực: - `/api/guest/openapi.json` — bản đặc tả ở định dạng JSON; - `/api/guest/openapi.yaml` (hoặc `/api/guest/openapi?yaml=true`) — cùng nội dung ở định dạng YAML; - `/api/guest/school_schema.json` — lược đồ JSON của dữ liệu tài khoản. #### Toàn bộ phần trợ giúp cho trợ lý AI của bạn Cổng thông tin còn công bố toàn bộ phần trợ giúp của Omniscol trong một tệp văn bản duy nhất, sẵn sàng làm cơ sở tri thức cho một trợ lý AI (dự án Claude, GPT tùy chỉnh…): - [omniscol.com/vi/llms-full.txt](https://www.omniscol.com/vi/llms-full.txt) — toàn bộ hướng dẫn ở dạng Markdown, có trong mọi ngôn ngữ của phần trợ giúp (`/en/llms-full.txt`, `/fr/llms-full.txt`…); - [omniscol.com/llms.txt](https://www.omniscol.com/llms.txt) — mục lục theo chuẩn `llms.txt`, được các công cụ AI tự động phát hiện. #### Thu hồi một quyền truy cập Việc thu hồi diễn ra ở cấp **khóa**, chứ không phải từng mã thông báo riêng lẻ. Màn hình liệt kê các **khóa** đã dùng để sinh mã thông báo. **Xóa một khóa** sẽ xóa bí mật ký của khóa đó ở phía Omniscol: từ lúc ấy, không chữ ký nào phái sinh từ bí mật này còn kiểm tra được nữa, và mọi lệnh gọi mang mã thông báo sinh ra từ khóa đó đều thất bại với mã **401**. Chính sự vắng mặt của bí mật làm mã thông báo mất hiệu lực, chứ không phải một danh sách thu hồi. Với bộ phận công nghệ thông tin, có hai hệ quả: - **Không có cơ chế thu hồi từng mã thông báo.** Omniscol không lưu các JWT đã phát hành và không thể vô hiệu hóa riêng một cái: một mã thông báo đã sinh ra vẫn còn hiệu lực cho đến khi chính nó hết hạn, hoặc cho đến khi khóa của nó bị xóa hay hết hạn. - **Sửa thời hạn của một khóa** có tác dụng ngay lập tức lên mọi mã thông báo của khóa đó: rút ngắn ngày này sẽ cắt quyền truy cập của toàn bộ mã thông báo sinh ra từ khóa. Thực hành tốt: hãy xóa ngay khóa nào bạn nghi là đã bị lộ, rồi tạo lại một khóa thay thế với nhãn rõ ràng. ##### Mỗi đích đến và mỗi mục đích một khóa riêng Vì việc thu hồi diễn ra theo khóa, hãy **dành riêng một khóa cho mỗi tích hợp** (một phần mềm bên ngoài = một khóa). Bí mật của một khóa chỉ ký những mã thông báo của chính nó: xóa khóa đó chỉ làm mất hiệu lực các quyền truy cập của tích hợp liên quan, không đụng tới những tích hợp khác. Ngược lại, một khóa duy nhất dùng chung cho nhiều hệ thống khiến mọi lần thu hồi đều không thể chọn lọc: xóa khóa bị lộ sẽ cắt cùng lúc tất cả các hệ thống đang dùng nó. #### Dành cho những tích hợp nào API thường được dùng cho: - **hệ thống hiển thị (signage) riêng** (ngoài các bảng thông tin có sẵn của Omniscol; xem [Tùy chỉnh bảng thông tin](#page-panels.customization)), - **trang tổng quan bên ngoài** tổng hợp Omniscol cùng các nguồn khác, - **bộ kết nối hoặc đồng bộ** với một ERP hay một hệ thống thông tin nghiệp vụ, - **tác nhân AI tương thích MCP** khai thác Omniscol qua máy chủ MCP; xem [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp). Để cấp quyền ủy nhiệm cho một **dịch vụ bên thứ ba đã xác định** (mã thông báo có phạm vi giới hạn, có sự đồng ý của người dùng, thu hồi được bằng cách tắt ứng dụng khách), bạn hãy ưu tiên máy chủ OAuth2 của Omniscol: xem [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server). #### Hướng dẫn — Sinh một mã thông báo API 1. **Mã thông báo xác thực** cho phép một hệ thống bên ngoài (trang tổng quan, màn hình hiển thị, tác nhân AI qua MCP) truy vấn những điểm truy cập API mà bạn đã chọn. 2. **Vào Quản trị → Nhập và xuất dữ liệu**, rồi mở màn hình chia sẻ bằng Chung. Ở đó bạn thấy các khóa hiện có, nhãn của chúng và ngày hết hạn nếu có. 3. **Tạo một khóa** nếu cần. Nhập một nhãn dễ hiểu (`Trang tổng quan tài chính`, `Màn hình sảnh chính`, `Tác nhân AI Claude desktop`) và một ngày hết hạn nếu tích hợp chỉ là tạm thời. Bạn vẫn sửa được ngày hết hạn của khóa về sau. 4. **Chọn khóa**, rồi tích chọn những điểm truy cập API mà mã thông báo được phép gọi. Hãy giữ danh sách ngắn nhất có thể. Cũng chọn luôn thời hạn của mã thông báo nếu quyền truy cập cần được giới hạn. 5. **Sinh mã thông báo**, rồi chép ngay JWT hiển thị trên màn hình. Nó sẽ không hiển thị lại và thời hạn của nó không sửa được. Sau đó dùng nó trong tiêu đề HTTP `Authorization: Bearer `. 6. **Để thu hồi quyền truy cập**, hãy xóa khóa tương ứng. Các mã thông báo phái sinh từ khóa đó sẽ mất hiệu lực. #### Xem thêm - [Tổng quan về các tích hợp](#page-integrations.overview) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) - [Truy vấn nâng cao](#page-integrations.advanced-queries) - [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server) - [Tùy chỉnh bảng thông tin](#page-panels.customization) ### 9.5 OAuth2 / OIDC — kết nối một dịch vụ với Omniscol *Source: `help/vi/integrations/oauth-server.md` · id: integrations.oauth-server · Audience: admin · Plan: premium · Updated: 2026-06-29* > **Premium** > _Premium_ Trang này dành cho **bộ phận hệ thống thông tin**. Trang mô tả Omniscol trong vai trò **máy chủ ủy quyền OAuth2 / OpenID Connect**: cách một dịch vụ bên thứ ba đăng ký làm **ứng dụng khách**, cách một người dùng **đồng ý** cấp quyền truy cập cho dịch vụ đó, và cách dịch vụ nhận được một **mã thông báo** giới hạn trong những **phạm vi (scope)** đã cấp. #### Omniscol làm gì trong vai trò máy chủ OAuth2 Một dịch vụ bên ngoài — một tác nhân AI, một bộ kết nối, một trang tổng quan — trở thành **ứng dụng khách** được khai báo trong tài khoản của bạn; một người dùng của trường **phê duyệt** quyền truy cập đó qua màn hình đồng ý; khi ấy dịch vụ nhận được một **mã thông báo truy cập** có thời hạn ngắn, chỉ có hiệu lực trong những **phạm vi** đã cấp và trong quyền hạn của chính người dùng. Cơ chế này khác với **SSO người dùng** được mô tả ở [OIDC / SSO](#page-integrations.oauth2), nơi Omniscol ngược lại đóng vai **ứng dụng khách** của nhà cung cấp danh tính của bạn để đăng nhập cho người dùng. Ở đây, Omniscol nằm ở phía **máy chủ**: chính các dịch vụ mới là bên kết nối tới nó. Hai tích hợp của Omniscol dùng đến máy chủ này: - **MCP** — việc xác thực chuẩn của một tác nhân AI đi qua máy chủ OAuth2 này (xem [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp)); - **OneRoster** — bên phát dữ liệu OneRoster xác thực bằng một mã thông báo OAuth2 giữa máy với máy do chính máy chủ này cấp (xem [OneRoster](#page-integrations.oneroster)). Mọi dịch vụ khác tuân thủ OAuth2 / OIDC đều có thể kết nối theo đúng cách đó. #### Khám phá và các điểm truy cập của giao thức Omniscol công bố **siêu dữ liệu khám phá** của mình tại các địa chỉ `.well-known` chuẩn, đặt ở gốc tên miền của tài khoản bạn (ví dụ `https://truong-cua-ban.omniscol.com`). Một ứng dụng khách tuân thủ sẽ tự tìm thấy ở đó toàn bộ các điểm truy cập, không cần cấu hình thủ công: - `/.well-known/oauth-authorization-server` — siêu dữ liệu của máy chủ ủy quyền (RFC 8414); - `/.well-known/openid-configuration` — siêu dữ liệu OpenID Connect (nội dung giống hệt mục trên); - `/.well-known/jwks.json` — các khóa công khai dùng để kiểm tra (JWKS), cho phép xác minh chữ ký của `id_token`; - `/.well-known/oauth-protected-resource` — siêu dữ liệu của tài nguyên được bảo vệ (RFC 9728). Bộ siêu dữ liệu này công bố các điểm truy cập của giao thức: - `/oauth/authorize` — yêu cầu ủy quyền (màn hình đăng nhập rồi tới màn hình đồng ý); - `/oauth/token` — đổi mã lấy mã thông báo, và làm mới; - `/oauth/register` — **đăng ký động ứng dụng khách** (RFC 7591); - `/oidc/userinfo` — thông tin về người dùng đang đăng nhập (OIDC); - `/oauth/revoke` — thu hồi một mã thông báo (RFC 7009). Những điểm truy cập giao thức này là **công khai**: chúng không dành riêng cho tài khoản Premium và không cần mở thủ công. Chỉ có **màn hình quản lý ứng dụng khách** mô tả bên dưới mới thuộc gói Premium. #### Các luồng ủy quyền Omniscol hỗ trợ ba luồng OAuth2: - **Mã ủy quyền kèm PKCE** — luồng mặc định cho một dịch vụ hoạt động **thay mặt một người dùng**. Dịch vụ chuyển hướng người dùng tới `/oauth/authorize`; sau bước đăng nhập và đồng ý, Omniscol trả về một **mã ủy quyền** (có hiệu lực 5 phút) để dịch vụ đem đổi tại `/oauth/token`. Phương pháp PKCE được chọn là **S256**, và `response_type` duy nhất được chấp nhận là `code`. - **Làm mới (`refresh_token`)** — để kéo dài một quyền truy cập ủy nhiệm mà không phải qua lại bước đồng ý. - **Client credentials** — luồng **giữa máy với máy**, không có người dùng, đặc biệt được các bên nhận dữ liệu **OneRoster** sử dụng. Ứng dụng khách tự xác thực trực tiếp và nhận về một mã thông báo truy cập. Khi đổi mã, máy chủ cấp một **mã thông báo truy cập** (`Bearer`, có hiệu lực **1 giờ**) và, với các luồng có người dùng, một **mã thông báo làm mới** (có hiệu lực **30 ngày**). Khi phạm vi `openid` được yêu cầu, một **`id_token`** OIDC đã ký cũng được cấp kèm; chữ ký của nó kiểm tra được qua `/.well-known/jwks.json`. Luồng `client_credentials` chỉ cấp một mã thông báo truy cập, không kèm làm mới lẫn `id_token`. Sau đó mã thông báo truy cập được đưa vào tiêu đề HTTP `Authorization: Bearer `. Ở mỗi lần gọi, Omniscol kiểm tra chữ ký của nó, kiểm tra ứng dụng khách vẫn còn **hoạt động**, người dùng vẫn còn tồn tại và vẫn giữ vai trò cần thiết, và các **phạm vi** của mã thông báo có phủ đúng điểm truy cập đang được gọi hay không — nếu không, lệnh gọi bị từ chối. #### Phạm vi và sự đồng ý Những phạm vi bạn quản lý trên một ứng dụng khách là: - **`read:basic`** — đọc thời khóa biểu, trang tổng quan và các màn hình tra cứu (mô-đun Trang chủ, Thời khóa biểu, Trang tổng quan, Quản lý thời khóa biểu); - **`read:user`** — đọc danh sách người dùng; - **`write:data`** — ghi trên chính những mô-đun tra cứu đó; - **`admin`** — quyền quản trị (mô-đun Quản trị, Quản lý vắng mặt, Quản lý thời khóa biểu). Máy chủ còn biết đến các phạm vi OIDC (`openid`, `email`, `profile`) và các phạm vi **OneRoster** chỉ đọc (tiền tố `imsglobal.org`). Nhóm sau là nhóm **đặc quyền**: một ứng dụng khách **không thể** tự gán chúng cho mình qua đăng ký động; chúng phải được một quản trị viên cấp phát trên hồ sơ của ứng dụng khách. Phạm vi thực sự được cấp là phần **giao** giữa những gì ứng dụng khách yêu cầu và những gì đã đăng ký cho nó: một ứng dụng khách không bao giờ nhận được nhiều hơn những gì ghi trên hồ sơ của mình. Trong luồng có người dùng, **màn hình đồng ý** (`/oauth/consent`) hiển thị **tên** và **logo** của dịch vụ đang yêu cầu cùng **danh sách dễ đọc** các phạm vi được yêu cầu, kèm hai nút **Chấp nhận** và **Từ chối**. Phê duyệt sẽ cấp mã ủy quyền và đưa người dùng trở lại dịch vụ; từ chối sẽ đưa họ trở lại kèm lỗi `access_denied`. #### Đăng ký động ứng dụng khách Điểm truy cập `/oauth/register` triển khai việc **đăng ký động** (Dynamic Client Registration, RFC 7591): một dịch vụ tuân thủ có thể **tự khai báo mình** làm ứng dụng khách, không cần can thiệp thủ công từ trước. Chính điều này cho phép một tác nhân MCP tự cấu hình chỉ từ URL của máy chủ. Đăng ký động **không thể** tự gán cho mình phạm vi đặc quyền (các phạm vi OneRoster): chúng bị âm thầm loại bỏ, và nếu không còn phạm vi hợp lệ nào, `read:basic` được cấp mặc định. Các phạm vi đặc quyền vẫn chỉ dành cho việc cấp phát của một quản trị viên. #### Màn hình quản lý ứng dụng khách OAuth2 Trên các tài khoản **Premium**, bạn quản trị ứng dụng khách từ **Quản trị → Nhập và xuất dữ liệu**, mục **OAuth2**, bằng nút OAuth2. Việc truy cập trước hết đòi hỏi **mật khẩu quản trị viên** — một bước xác nhận thêm trước khi màn hình mở ra. Màn hình liệt kê các ứng dụng khách đã đăng ký và, với từng ứng dụng, hiển thị **trạng thái** (đang hoạt động / ngừng hoạt động), **tên**, các **phạm vi**, các **đầu mối liên hệ** và các **URI** (trang web, logo, URI chuyển hướng). Bạn có thể: - **Đăng ký một ứng dụng khách** — điền tên, một `software_id` tùy chọn, các phạm vi, các đầu mối liên hệ, trang web, logo và các URI chuyển hướng. Khi tạo, Omniscol hiển thị `client_id` và `client_secret` **đúng một lần duy nhất**. - **Sửa** một ứng dụng khách — chỉ những trường an toàn mới sửa được: tên, phạm vi, đầu mối liên hệ, trang web và logo. Các URI chuyển hướng, `software_id` và bí mật không sửa được ở đây. - **Bật hoặc tắt** một ứng dụng khách — mã thông báo của một ứng dụng khách đã tắt sẽ bị từ chối ngay từ lệnh gọi kế tiếp. - **Xóa** một ứng dụng khách — việc xóa là **vĩnh viễn**. ##### Bí mật của ứng dụng khách `client_secret` chỉ hiển thị **đúng một lần duy nhất**, lúc đăng ký. Về phía mình, Omniscol chỉ giữ lại một **mã băm** của bí mật, không bao giờ giữ bí mật ở dạng rõ: nó **không thể** được hiển thị lại hay lấy lại về sau. Hãy chép nó ngay vào một trình quản lý bí mật. Còn `client_id` thì **tất định**: nó suy ra từ tên tài khoản, tên ứng dụng khách và một mã băm lấy từ siêu dữ liệu kỹ thuật của ứng dụng khách đó. Nhờ vậy, hai lần đăng ký giống hệt nhau sẽ rơi vào cùng một mã định danh. ##### Làm mới bí mật (xoay vòng) Bí mật **xoay vòng được**: thao tác này cấp một bí mật mới, chỉ giữ lại mã băm mới, và chỉ trả về bí mật mới ấy **một lần**. Thao tác này được thực hiện qua điểm truy cập quản lý đăng ký động (`/oauth/register//rotation`) và đòi phải xuất trình **mã thông báo đăng ký** đã trao cho ứng dụng khách lúc nó đăng ký động. Vì thế thao tác này **không** khởi động được từ màn hình quản lý nói trên: màn hình đó không xử lý mã thông báo ấy. #### OAuth2 hay khóa API: chọn cái nào Omniscol đưa ra hai cơ chế truy cập dành cho máy, với hai mô hình tin cậy khác nhau: - **OAuth2** (trang này) — một **bên thứ ba đã đăng ký** nhận được, sau khi có **sự đồng ý** của một người dùng, một mã thông báo có thời hạn **ngắn** (1 giờ), bị giới hạn trong các phạm vi đã cấp, **làm mới được** và **thu hồi được** (bằng cách tắt ứng dụng khách). Luồng `client_credentials` còn bao quát thêm trường hợp giữa máy với máy không có người dùng. Đây là phương thức phù hợp với một dịch vụ bên thứ ba đã xác định, với MCP và với OneRoster. - **Khóa API** (xem [API Omniscol](#page-integrations.api-tokens)) — một **mã thông báo độc lập** do máy chủ ký, mang sẵn trong mình một **danh sách các điểm truy cập** được phép và do chính bạn trao cho hệ thống bên ngoài: không có bên thứ ba đăng ký, không có màn hình đồng ý, không có làm mới. Đây là việc quản trị viên ủy nhiệm chính quyền hạn của mình cho một hệ thống mà họ làm chủ. Tóm lại: **khóa API** phù hợp khi chính bạn trao quyền truy cập cho một hệ thống bạn kiểm soát; **OAuth2** phù hợp khi một dịch vụ bên thứ ba đã xác định cần có được quyền truy cập ủy nhiệm, giới hạn theo phạm vi và thu hồi được, hoặc khi giao thức bắt buộc như vậy (MCP, OneRoster). #### Hướng dẫn — Đăng ký một ứng dụng khách OAuth2 1. **Mở màn hình OAuth2.** Trong **Quản trị → Nhập và xuất dữ liệu**, mục OAuth2, hãy bấm OAuth2, rồi nhập mật khẩu quản trị viên. 2. **Đăng ký ứng dụng khách.** Điền tên, các phạm vi (`read:basic`, `read:user`, `write:data`, `admin`), các URI chuyển hướng và, nếu cần, đầu mối liên hệ, trang web và logo. Các phạm vi OneRoster không gán được ở đây bằng đăng ký động; chúng thuộc phần cấp phát của quản trị viên. 3. **Chép lại `client_id` và `client_secret`** đang hiển thị. Bí mật chỉ xuất hiện **đúng một lần duy nhất**: hãy giữ nó trong một trình quản lý bí mật. 4. **Ở phía dịch vụ**, hãy cấu hình ứng dụng khách bằng cặp thông tin này cùng URL của máy chủ; một ứng dụng khách tuân thủ sẽ tự khám phá các điểm truy cập qua `/.well-known/`. 5. **Để cắt một quyền truy cập**, hãy quay lại màn hình và **tắt** hoặc **xóa** ứng dụng khách. #### Xem thêm - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [OneRoster](#page-integrations.oneroster) - [OIDC / SSO](#page-integrations.oauth2) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.6 Tùy chỉnh API: ghi đè điểm truy cập và hook *Source: `help/vi/integrations/api-customization.md` · id: integrations.api-customization · Audience: admin · Plan: premium · Updated: 2026-06-27* > **Premium** > _Premium_ **Tùy chỉnh API** là một màn hình kỹ thuật dành cho **bộ phận công nghệ thông tin**. Màn hình này cho phép điều chỉnh cách API của Omniscol hoạt động trên tài khoản của bạn theo **ba hướng**: - một **cấu hình chung** (các tiêu đề HTTP dùng chung); - việc **ghi đè một điểm truy cập** — chuyển hướng ứng dụng web sang một URL khác, hoặc tắt hẳn một điểm truy cập; - các **hook** — những lệnh gọi đi (webhook) mà Omniscol phát tới hệ thống của bạn khi một thao tác diễn ra. #### Tìm ở đâu Mô-đun **Quản trị**, màn hình **Nhập và xuất dữ liệu**, mục **Tùy chỉnh API**, nút **API**. Màn hình này **chỉ dành cho tài khoản Premium** và được bảo vệ bằng **xác thực tăng cường**: Omniscol hỏi lại mật khẩu của quản trị viên trước khi mở cửa sổ. Vì mọi thao tác trên màn hình này đều động đến hợp đồng kỹ thuật của phần tích hợp bên bạn, việc thiết lập được thực hiện phối hợp với Omniscol. #### Cấu hình chung Tại đây bạn khai báo các **tiêu đề HTTP** (theo dạng `key1:value1;key2:value2`) được áp dụng cho **mọi hook**. Đây là chỗ tự nhiên để mang một **mã thông báo xác thực** sang máy chủ của chính bạn (ví dụ một `Authorization: Bearer …` mà máy chủ của bạn chờ nhận). Ngược lại, với một **lần ghi đè**, phần xác thực nằm trong các tiêu đề riêng của từng điểm truy cập (xem bên dưới). #### Ghi đè một điểm truy cập Một **lần ghi đè** định nghĩa lại một điểm truy cập của API Omniscol để **ứng dụng web** gọi **một URL khác** thay cho nó. Có ba cách dùng, từ mạnh nhất đến đơn giản nhất. ##### Cấp dữ liệu trực tiếp từ hệ thống thông tin của bạn Đây là cách dùng mạnh nhất. Bạn chuyển hướng một điểm truy cập **đọc dữ liệu** sang một **URL bên ngoài** — thường là một **ETL** làm cầu nối với **hệ thống thông tin nội bộ** của trường bạn. Ứng dụng web khi đó lấy dữ liệu **trực tiếp** trong hệ thống ấy, thay vì lấy bản sao cục bộ mà Omniscol đang giữ. Cụ thể: khi URL chuyển hướng là một **địa chỉ bên ngoài tuyệt đối**, ứng dụng web gọi thẳng địa chỉ đó, không đi vòng qua máy chủ của Omniscol, và **dùng nguyên phản hồi nhận được** — đúng như thể phản hồi ấy đến từ Omniscol. Ràng buộc duy nhất là hệ thống của bạn phải trả lời đúng **định dạng mà Omniscol chờ đợi** cho điểm truy cập đó (cùng một cấu trúc JSON): không hề có bước chuyển mã trung gian. Với điểm truy cập này, bản sao cục bộ của Omniscol không còn được truy vấn nữa; dữ liệu hiển thị là dữ liệu sống của hệ thống bên bạn. Ví dụ: **danh mục môn học** của trường được cấp trực tiếp theo yêu cầu từ hệ thống thông tin của bạn, sao cho mọi cập nhật ở phía nhà trường đều thấy được ngay trong Omniscol, không cần nhập lại dữ liệu. Ở đây, phần xác thực tới hệ thống của bạn nằm trong các **tiêu đề riêng của điểm truy cập** (ví dụ một `Authorization: Bearer …`), nhập ngay trên dòng của lần ghi đè. **Phương thức** HTTP cũng có thể được ấn định theo từng điểm truy cập. Đấu nối lại một điểm truy cập của chính ứng dụng vào một nguồn dữ liệu sống bên ngoài là khả năng vừa mạnh vừa đòi hỏi: hãy làm cùng bộ phận công nghệ thông tin của bạn, và cùng với Omniscol. ##### Chèn máy chủ của bạn hoặc một proxy Bạn cũng có thể cho các lệnh gọi đi qua **máy chủ của chính bạn** hoặc một **proxy** — chẳng hạn để cho phép chia sẻ tài nguyên giữa các nguồn gốc khác nhau (CORS), hoặc để chèn một lớp xử lý tự xây giữa ứng dụng web và Omniscol. ##### Tắt một điểm truy cập Bạn **tắt** một điểm truy cập bằng cách **không cho nó URL chuyển hướng nào** (phương thức `null`). Hãy cân nhắc tác động lên giao diện. Omniscol là một **ứng dụng web một trang** (SPA) mà các thành phần giao diện đều do **những điểm truy cập đang có** điều khiển: nút, tab và menu chỉ hiện ra nếu điểm truy cập mà chúng dựa vào còn tồn tại. Vì vậy, tắt một điểm truy cập sẽ **tự động làm biến mất**, ở lần hiển thị kế tiếp, những thành phần giao diện phụ thuộc vào nó — và nếu bạn tắt toàn bộ điểm truy cập của một mô-đun thì **cả mô-đun** sẽ biến khỏi thanh điều hướng. Những thành phần đó bị gỡ bỏ chứ không chỉ bị ẩn đi, và tất cả diễn ra **mà không phải động đến mã nguồn**: chỉ cần sửa cấu hình rồi tải lại ứng dụng. Bảng liệt kê, theo từng điểm truy cập: **khóa** của nó (mã nội bộ của thao tác), **URL gốc**, **phương thức** HTTP, **URL mới** để chuyển hướng và các **tiêu đề** riêng. Một ô tìm kiếm giúp bạn tìm lại điểm truy cập cần ghi đè. #### Hook (các lệnh gọi đi) Một **hook** yêu cầu Omniscol **gửi một yêu cầu HTTP tới URL của bạn** **sau** khi một thao tác đã thành công. Đây là cơ chế để **giữ cho một hệ thống bên ngoài luôn nắm tình hình theo thời gian thực** — một bảng thông tin, một không gian làm việc số, một hệ thống nhân sự, một cơ chế đồng bộ tự xây… Một hook gắn được theo hai cách: - vào một **điểm truy cập cụ thể** (khóa của thao tác); - vào một **sự kiện gộp**, bao trọn cả một họ thao tác cùng lúc. Có ba sự kiện gộp: - **thay đổi thời khóa biểu** — một thay đổi chạm tới **thời khóa biểu đang có hiệu lực**, kể cả các tác động kéo theo: lưu một thời khóa biểu, tạo, dời hoặc xóa tiết học, kích hoạt một thời khóa biểu, vắng mặt của giáo viên hay của lớp ngay khi có một ngày bị ảnh hưởng, và những lần gỡ bỏ mang tính cấu trúc (một phòng học, một môn học…) trên một thời khóa biểu **đã công bố (đang hoạt động)** — gỡ một môn học sẽ xóa các tiết học dùng đến nó, tự thân đó đã là một thay đổi. Những chỉnh sửa chỉ nằm trong một bản nháp chưa hoạt động thì không làm sự kiện này phát đi; - **thay đổi giáo viên** (thêm, cập nhật hoặc xóa); - **thay đổi môn học** (các môn học tùy chỉnh). Với mỗi hook, bạn khai báo **URL gọi lại**, **phương thức** HTTP, ô đánh dấu **“kèm dữ liệu”** (có đính kèm phần thân của yêu cầu gốc hay không?) và các **tiêu đề** riêng. ##### Máy chủ của bạn nhận được gì Lệnh gọi được gửi dưới dạng `application/json` và mang theo, ngoài các tiêu đề của bạn: - **phần thân của yêu cầu gốc** nếu tùy chọn “kèm dữ liệu” đang bật; - một khối **siêu dữ liệu** của Omniscol: URL được gọi, mã của điểm truy cập, phương thức, các tham số, mã thông báo xác thực của người dùng, mã định danh của trường và chính cấu hình của hook; - các tiêu đề phục vụ truy vết: `X-OS-original-query`, `X-OS-original-endpoint`, `X-OS-auth` và `X-School`. Với sự kiện **thay đổi thời khóa biểu**, khi tùy chọn “kèm dữ liệu” đang bật, lệnh gọi còn kèm thêm một **bảng chênh lệch tiết học** (tiết học được thêm, được sửa, bị xóa) — rất tiện để chỉ lan truyền đúng phần đã thay đổi. ##### Cách hoạt động Các hook được phát đi **ở chế độ nền**, **sau** khi thao tác của người dùng đã hoàn tất: chúng không làm chậm giao diện và **không chặn giao diện** nếu máy chủ của bạn gặp sự cố. Một lệnh gọi đi không tới đích sẽ được **ghi vào nhật ký**, mà không làm gián đoạn công việc trong Omniscol. Mỗi lệnh gọi có thời gian chờ ngắn (vài giây): máy chủ của bạn phải **báo nhận thật nhanh** rồi xử lý phần còn lại ở phía mình. #### Những điều nên biết - API của Omniscol chỉ mở ra một **tập con** các thao tác; một lần ghi đè hay một hook chỉ áp dụng cho những điểm truy cập thật sự được mở. Xem [API Omniscol](#page-integrations.api-tokens) để biết danh sách và cách xác thực. - Với một **phần tích hợp cùng phần mềm đóng gói** (ERP, hệ thống nhân sự, không gian làm việc số), cơ chế đồng bộ chuyên dụng thường phù hợp hơn — xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). Bên trong, chính hệ thống hook này được dùng lại. - Để một **tác nhân AI** tra cứu dữ liệu của bạn mà không cần lập trình, xem [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp). #### Xem thêm - [API Omniscol](#page-integrations.api-tokens) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) ### 9.7 Mô hình dữ liệu đầy đủ: thực thể JSON, quan hệ và bản thể học *Source: `help/vi/integrations/data-model-full.md` · id: integrations.data-model-full · Audience: admin · Status: stable · Updated: 2026-06-18* Trang này mô tả **mô hình dữ liệu đầy đủ** của một tài khoản Omniscol: các thực thể, những trường chính của chúng và các quan hệ giữa chúng. Trang này nối tiếp trang khái niệm [Tổ chức dữ liệu](#page-core-concepts.data-model), vốn giải thích *tại sao* (dữ liệu gốc của trường ↔ thời khóa biểu, bản sao cục bộ); ở đây, mục tiêu là *cái gì* — một bản đồ cấu trúc dùng được ngay, nhất là để **đối chiếu mô hình với một hệ thống dữ liệu gốc bên ngoài** (phần mềm quản trị, danh bạ, hệ thống thông tin). > **Trang kỹ thuật.** Tài liệu tham chiếu này dành cho việc tích hợp và > ghép nối với một hệ thống bên ngoài. Nó **không cần thiết cho việc dùng > Omniscol hằng ngày**: để hiểu cách dữ liệu được tổ chức về mặt nghiệp > vụ, xem [Tổ chức dữ liệu](#page-core-concepts.data-model). Toàn bộ dữ liệu của một cơ sở giáo dục được tổ chức thành một cây. Các thực thể mô tả bên dưới (người dùng, năm học, thời khóa biểu, vắng mặt, sự kiện, v.v.) tương ứng với các nhánh khác nhau của cấu trúc này. Tham chiếu chuẩn tắc là **lược đồ JSON** của tài khoản. Có thể xem lược đồ này dưới hai dạng: - **nguồn thô** (chính lược đồ JSON), do tài khoản phục vụ tại địa chỉ `https://api.omniscol.com/api/guest/school_schema.json`; - **trình xem dạng cây** dễ đọc tại [omniscol.com/vi/datamodel](https://www.omniscol.com/vi/datamodel) (và tài liệu tham chiếu API tương ứng tại [omniscol.com/vi/developers](https://www.omniscol.com/vi/developers)). Lược đồ này mô tả chính xác cách lưu trữ vật lý trong cơ sở dữ liệu, dưới dạng một tài liệu JSON. Trang này trình bày lại lược đồ đó một cách có tổ chức và ổn định theo thời gian. #### Tài liệu trường: phần gốc Tài liệu gốc tập hợp dữ liệu gốc lâu dài của cơ sở giáo dục cùng toàn bộ các kế hoạch của nó. Các nhánh con ở cấp một: | Khóa gốc | Thực thể | Vai trò | | --- | --- | --- | | `config` | `SchoolConfig` | Thông số của tài khoản (quốc gia, tùy chọn, múi giờ, đồng bộ với hệ thống bên ngoài) | | `subjects_custom` | từ điển các `SubjectFull` | Môn học tùy chỉnh của trường | | `families_custom` | từ điển các `Family` | Nhóm môn học tùy chỉnh | | `users` | từ điển các `User` | Danh bạ người dùng (mọi vai trò) | | `school_years` | mảng các `SchoolYear` | Năm học và ngày nghỉ lễ | | `timetables` | từ điển các `Timetable` | Các thời khóa biểu | | `absences` | tập hợp các `Absence*` | Vắng mặt (giáo viên, lớp, nhân viên, học sinh) | | `staffing` | `Staffing` | Mô-đun thành viên nhân sự và công tác quản sinh | | `panels` | từ điển các `Panel` | Bảng thông tin | | `events` | từ điển các `Event` | Sự kiện dạng lịch | | `api`, `snapshots`, `jobs`, `translations`, `logo` | khác | Thông số kỹ thuật và lịch sử | Những nhánh con được gọi là “từ điển” là các đối tượng JSON mà **khóa của chúng là các định danh ổn định** (đây là trục của mọi phép đối chiếu với bên ngoài — xem phần cuối). ```mermaid erDiagram SCHOOL ||--|| CONFIG : "config" SCHOOL ||--o{ SUBJECT : "subjects_custom" SCHOOL ||--o{ FAMILY : "families_custom" SCHOOL ||--o{ USER : "users" SCHOOL ||--o{ SCHOOL_YEAR : "school_years" SCHOOL ||--o{ TIMETABLE : "timetables" SCHOOL ||--o| STAFFING : "staffing" SCHOOL ||--o{ ABSENCE : "absences" SCHOOL ||--o{ PANEL : "panels" SCHOOL ||--o{ EVENT : "events" SCHOOL { string _id "tên miền của cơ sở giáo dục" string name "tên tài khoản" string country "quốc gia của tài khoản" string current_school_year "năm học hiện hành" } ``` #### Trường dùng chung: `_extids` và `wishes` Hai trường xuất hiện trên rất nhiều thực thể. Để khỏi lặp lại chúng trong từng lược đồ, chúng được mô tả một lần duy nhất ở đây. - **`_extids`** (`ExternalIds`) — bảng định danh của thực thể trong các hệ thống bên ngoài, ví dụ `{ "auriga": "12345" }`. Có mặt trên những thực thể đồng bộ được (môn học, nhóm môn học, người dùng, cơ sở, phòng học, tài nguyên, giáo viên, lớp, nhóm…). Đây là **điểm neo để ghép nối với một hệ thống dữ liệu gốc bên ngoài** (xem phần cuối). - **`wishes`** — **ràng buộc thời gian**: thời gian rảnh, khung giờ mong muốn hoặc cần tránh, khối lượng giờ tối đa, phòng học ưa thích… Có mặt trên phần lớn thực thể xếp lịch được: người dùng, giáo viên và môn học của một thời khóa biểu, nhóm, lớp, phòng học, dải giờ của cơ sở, lưới nhân sự. Tùy phạm vi, những ràng buộc này mang tính tổng thể (cấp trường) hoặc riêng cho một thời khóa biểu. #### Cấp 1 — Dữ liệu gốc của trường Dữ liệu gốc của trường chứa những gì đúng với cơ sở giáo dục, độc lập với mọi thời khóa biểu: danh mục môn học, danh bạ người dùng, lịch các năm học. ```mermaid erDiagram FAMILY ||--o{ SUBJECT : "family" SUBJECT ||--o{ SUBJECT : "parent" USER ||--o{ PLACEMENT : "phân công theo năm" PLACEMENT ||--o{ PLACEMENT_GROUP : "groups" SCHOOL_YEAR ||--o{ HOLIDAY : "holidays" SUBJECT { string name string short "tên ngắn (hiển thị)" string code string parent "môn học cha" string family "nhóm môn học" string color object _extids "định danh bên ngoài" } FAMILY { string name string code } USER { string login string first_name string middle_name "(nếu quốc gia có dùng)" string last_name string idnumber "định danh chính thức" array roles "admin teacher staff student" string customrole "Vai trò tùy chỉnh" int servicehours "giờ làm việc tham chiếu" bool external "giáo viên bên ngoài" object subjects "môn học được giảng dạy" object wishes "thời gian rảnh tổng thể" object _extids } PLACEMENT { string class "lớp được phân công" string date_start string date_end array groups "nhóm được phân công" } PLACEMENT_GROUP { string group "nhóm groupset hoặc nhóm ảo" array weeks "dải tuần" } SCHOOL_YEAR { string name string date_start string date_end array altweeks "tuần luân phiên" } HOLIDAY { string name string begin string end } ``` ##### Môn học — `SubjectFull` / `Subject` / `Family` Một môn học tùy chỉnh (`SubjectFull`) mở rộng môn học cơ sở (`Subject`: `name`, `short`, `code`, `type`, `_extids`) bằng `parent`, `family` và `color`. Ở cấp trường có hai nguồn gốc cùng tồn tại: các **môn học chung** của quốc gia (chỉ đọc) và các **môn học tùy chỉnh** của cơ sở giáo dục. Chi tiết về mặt nghiệp vụ: [Quản lý môn học](#page-admin.subjects). ##### Người dùng — `User` (bao gồm cả giáo viên) `User` là **thực thể duy nhất** của danh bạ: nhân thân (họ, tên, `idnumber`, liên hệ), xác thực (`login`), `roles`, giờ làm việc tham chiếu (`servicehours`), thời gian rảnh tổng thể (trường `wishes`) và `placements`. **Giáo viên** không phải một thực thể riêng: đó là một `User` có `teacher` trong `roles` của mình (một người dùng có thể kiêm nhiều vai trò). Trường `placements` (đánh chỉ mục theo năm học) gắn một **học sinh** vào một `class` và những `groups` trong một khoảng thời gian. Chi tiết: [Quản lý giáo viên](#page-admin.teachers). ##### Năm học — `SchoolYear` / `Holiday` `SchoolYear` xác định `date_start → date_end`, danh sách `holidays` và các `altweeks` (tuần luân phiên). Đây là một **khung thời gian**, không phải một vật chứa: các thời khóa biểu trải ra trên đó chứ không lồng vào trong đó. Xem [Năm học](#page-core-concepts.school-year). #### Cấp 2 — Thời khóa biểu `Timetable` là một đơn vị lập kế hoạch nhất quán. Nó mang bản sao cục bộ của riêng mình về giáo viên, lớp, nhóm và môn học — xem nguyên tắc bản sao cục bộ trong [Tổ chức dữ liệu](#page-core-concepts.data-model). ```mermaid erDiagram TIMETABLE ||--|| TIMETABLE_CONFIG : "config" TIMETABLE ||--o{ TIMETABLE_SITE : "sites" TIMETABLE ||--o{ TIMETABLE_TEACHER : "teachers" TIMETABLE ||--o{ TIMETABLE_CLASS : "classes" TIMETABLE ||--o{ LESSON : "lessons (nhóm của nhóm, nhiều nhóm)" TIMETABLE_SITE ||--o{ TIMETABLE_CLASSROOM : "classrooms" TIMETABLE_SITE ||--o{ TIMETABLE_RESOURCE : "resources" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_SUBJECT : "subjects" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_GROUP : "groups" TIMETABLE_CLASS ||--o{ LESSON : "lessons" TIMETABLE_CLASS_GROUP ||--o{ TIMETABLE_CLASS_GROUP : "parent (phân cấp)" TIMETABLE_CLASS_SUBJECT }o--|| SUBJECT : "nguồn gốc (bản sao cục bộ một phần)" TIMETABLE_CLASS_SUBJECT }o--o{ TIMETABLE_TEACHER : "giáo viên mặc định" TIMETABLE_TEACHER }o--o| USER : "bản sao cục bộ một phần và liên kết ngầm qua định danh" GROUPSET_ITEM }o--o{ TIMETABLE_CLASS_GROUP : "các nhóm thành phần" TIMETABLE { bool active "đã công bố?" array lessons "tiết học liên lớp" } TIMETABLE_CONFIG { string type "week cycle calendar" int time_period "thời lượng khung giờ" int time_unit "phân chia khung giờ" array weekdays "ngày làm việc" string displaymode "hours periods agenda" int cycle "độ dài chu kỳ" array dates "mốc giới hạn nếu là calendar" object date_windows "cửa sổ tạo tự động" } TIMETABLE_SITE { string name object distances "khoảng cách giữa các cơ sở" object hours "lưới thời gian" } TIMETABLE_CLASSROOM { string name int capacity string specialisation "chuyên ngành tự do" int maxclasses "số lớp đồng thời" string building string description "mô tả tự do" array tags "nhãn đặc điểm hoặc trang thiết bị" } TIMETABLE_RESOURCE { string name int number "số lượng sẵn có" } TIMETABLE_TEACHER { string first_name string last_name string virtual_name "vị trí còn trống" array subjects "môn học của vị trí ảo" string idnumber int servicehours "ghi đè được theo thời khóa biểu" string classroom "phòng học ưa thích" } TIMETABLE_CLASS { string name string level string campus array sites "chỉ tính đến một cơ sở" int studentsnb "sĩ số học sinh dự kiến (để tính phòng học phù hợp)" string classroom "phòng học mặc định" bool offgrid "ngoài khung giờ (calendar)" string videolink "liên kết họp trực tuyến mặc định trên mọi tiết học" string resourcelink "liên kết tài nguyên (LMS) mặc định trên mọi tiết học" } TIMETABLE_CLASS_SUBJECT { string code "kế thừa từ Subject" array incompatibilities "không tương thích" number pweight "trọng số sư phạm" array teachers "giáo viên mặc định" number minutes "khối lượng giờ cần đạt" string specialisation "phòng học bắt buộc" } TIMETABLE_CLASS_GROUP { string name string code bool free "nhóm tự do" string parent "nhóm cha" int studentsnb "sĩ số học sinh dự kiến (để tính phòng học phù hợp)" } GROUPSET_ITEM { string name string code array groups "định danh của các nhóm" } ``` ##### Cấu hình — `TimetableConfig` Trường quyết định là `type`: `week` (lặp lại hằng tuần), `cycle` (chu kỳ nhiều ngày, xem `cycle`) hoặc `calendar` (ngày thực, xem `dates`). `time_period` và `time_unit` xác định khung xương của lưới; `weekdays` xác định ngày làm việc; `date_windows` xác định các cửa sổ ràng buộc cho việc tạo tự động. ##### Cơ sở, phòng học, tài nguyên Một `TimetableSite` (cơ sở) chứa các `classrooms` của nó (`TimetableClassroom`: `capacity`, `specialisation`, `maxclasses`, `building`) và các `resources` của nó (`TimetableResource`: `number` = số lượng sẵn có, mà hệ thống bảo đảm không bị đặt vượt mức). `distances` mô hình hóa thời gian di chuyển giữa các cơ sở. Xem [Cơ sở, phòng học và tài nguyên](#page-core-concepts.sites-rooms-resources) và [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations). ##### Giáo viên của thời khóa biểu — `TimetableTeacher` Bản sao một phần được bổ sung thêm của một `User`: chỉ vài trường nhận dạng được chép lại (`first_name`, `last_name`, `idnumber`), kèm theo những trường riêng cho việc lập kế hoạch (`servicehours` ghi đè được, `classroom` ưa thích, `wishes` theo từng thời khóa biểu). `virtual_name` khác rỗng biểu thị một **giáo viên ảo** (vị trí còn trống, không có `User` thật đứng sau). ##### Lớp, môn học của lớp, nhóm - **`TimetableClass`**: `name`, `level`, `campus`/`sites`, `studentsnb`, và ba nhánh con chủ chốt — `subjects`, `groups`, `lessons`. - **`TimetableClassSubject`**: bản sao cục bộ của một môn học (mở rộng `Subject`), được bổ sung cho việc lập kế hoạch — `minutes` (khối lượng cần đạt), `pweight` (trọng số sư phạm), `incompatibilities`, `teachers` mặc định, `specialisation` của phòng học. Việc gán một môn học **kèm một loại tiết học** tạo ra một mục riêng cho mỗi loại. Xem [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types). - **`TimetableClassGroup`**: một tập con của một lớp. `free=true` tắt việc kiểm tra lỗi tương thích với phần còn lại của lớp ([nhóm tự do](#page-core-concepts.free-groups)); `parent` thiết lập [phân cấp nhóm](#page-core-concepts.group-hierarchy). ##### Quy tắc giữa các nhóm — phân vùng, căn chỉnh nhóm, nhóm của nhóm Các quan hệ giữa những nhóm nằm trong nhánh con `groups` của thời khóa biểu, dưới ba dạng: | Lược đồ | Thực thể | Ý nghĩa | Trang | | --- | --- | --- | --- | | `TimetableGroupTimeset` | phân vùng | Các nhóm của **cùng một lớp** loại trừ nhau, được xếp song song (nửa lớp, môn tự chọn) | [Phân vùng lớp](#page-core-concepts.class-divisions) | | `TimetableGroupSpaceset` | căn chỉnh nhóm | Các nhóm thuộc **những lớp khác nhau** cùng học trên các khung giờ trùng khớp | [Căn chỉnh nhóm](#page-core-concepts.alignments) | | `TimetableGroupGroupset` | nhóm của nhóm | Siêu nhóm (`GroupsetItem`: `name`, `code`, `groups[]`) gom nhiều nhóm lại | [Nhóm của nhóm](#page-core-concepts.groups-of-groups) | Xem thêm phần tổng quan [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups). #### Cấp 3 — Tiết học Một **tiết học** (`Lesson`) là đơn vị giảng dạy thật sự được đặt vào thời khóa biểu: thời lượng, môn học, nhóm, giáo viên, phòng học, tài nguyên, vị trí và trạng thái. Nó được sinh ra từ một môn học của lớp (xem cấp 2) và gắn **hoặc vào một lớp** (`class.lessons`), **hoặc trực tiếp vào thời khóa biểu** (`timetable.lessons`) — trường hợp sau dành cho nhóm của nhóm và các tiết học nhiều nhóm, liên quan đến nhiều lớp. ```mermaid erDiagram TIMETABLE_CLASS ||--o{ LESSON : "lessons (tiết học của một lớp)" TIMETABLE ||--o{ LESSON : "lessons (nhóm của nhóm, nhiều nhóm)" LESSON ||--o{ LESSON : "assoc · concat · weekalt (tiết học phức hợp)" LESSON }o--o| TIMETABLE_CLASS_GROUP : "group" LESSON }o--o{ TIMETABLE_TEACHER : "teachers" LESSON }o--o| TIMETABLE_CLASSROOM : "classroom" LESSON }o--o{ TIMETABLE_RESOURCE : "resources" LESSON ||--o{ MEMO : "memos" LESSON ||--|| POSITION : "position" LESSON { int duration "tính theo số khung giờ" int duration_actual "số phút thực tế" int duration_accounted "số phút được tính công" string modality "in_person remote hybrid self_study" string subject "định danh môn học" string group "định danh nhóm" array teachers "null buộc không có giáo viên" string classroom "null buộc không có phòng học" string status "planned draft canceled done" string _id "định danh ổn định của tiết học" string _osrev "phiên bản (khóa lạc quan)" } MEMO { string comment string pub "mức hiển thị của ghi chú" string owner int tstp "dấu thời gian" } POSITION { string day "ngày, thứ trong tuần hoặc số thứ tự ngày trong chu kỳ" int period "chỉ số của khung giờ trong lưới" string start "giờ bắt đầu chính xác HH:MM (chỉ dùng cho ngoài khung giờ)" string end "giờ kết thúc chính xác HH:MM (chỉ dùng cho ngoài khung giờ)" bool fixed "tiết học được ghim (cố định khi tạo tự động)" } ``` ##### Phần cốt lõi của một tiết học Một tiết học mang những trường lập kế hoạch — `duration` (theo số khung giờ), `duration_actual` / `duration_accounted` (số phút thực tế / được tính công), `modality`, `subject`, `group`, `teachers`, `classroom`, `resources` — kèm theo `position`, `status`, `memos` và một định danh (`_id`, `_osrev`). Đặt `teachers` hoặc `classroom` thành `null` **buộc một cách tường minh** rằng không có giáo viên hay phòng học. ##### Tiết học phức hợp Một tiết học có thể **gom những tiết học khác**: - `assoc` — tiết học **liên kết**: các nhóm hoán đổi cùng nhau. - `concat` — tiết học **nối tiếp**: liền nhau một cách chặt chẽ. - `weekalt` — **tuần luân phiên**: mỗi tuần một biến thể của tiết học. Những cơ chế này bao trùm các **tiết học phức hợp** — xem [Tiết học phức hợp: luân phiên, liên kết, nối tiếp](#page-core-concepts.complex-lessons). ##### Vị trí của một tiết học `position` là một **đối tượng** đặt tiết học vào thời gian. Nó gom những trường sau: - **`position.day`** — ngày của tiết học, **thay đổi hình thức theo chế độ của thời khóa biểu**: một tên thứ (`monday`…`sunday`) ở chế độ theo tuần, một **số thứ tự ngày trong chu kỳ** (`"1"`, `"2"`…) ở chế độ theo chu kỳ, hoặc một **ngày** `YYYY-MM-DD` ở chế độ lịch. Vẫn là một trường duy nhất, chỉ đổi hình thức theo chế độ; nó luôn có mặt. - **`position.period`** — **chỉ số của khung giờ** trong lưới thời gian. Một tiết học không có `period` lẫn `start`/`end` tương ứng với một ngày nghỉ lễ. - **`position.start`** / **`position.end`** — giờ bắt đầu và giờ kết thúc chính xác (`HH:MM`), dành cho những tiết học **ngoài khung giờ** hoặc ở chế độ lịch mà không khớp với một khung giờ chuẩn. - **`position.fixed`** — giá trị đúng/sai (mặc định là sai): một tiết học **được ghim**, mà **việc tạo tự động sẽ không dịch chuyển**. Tiết học của một lớp nằm trong `class.lessons`; mảng `timetable.lessons` mang những tiết học **liên lớp** gắn với nhóm của nhóm. ##### Định danh của một tiết học Mỗi tiết học mang hai trường định danh kỹ thuật, **có trên các tài khoản Premium**: - **`_id`** — định danh **ổn định**, được cấp khi tạo tiết học và bất biến về sau (nó kết hợp một dấu thời gian với một mã băm nội dung). Đây là **khóa của một tiết học** cho việc biên tập cộng tác và cho một công cụ bên ngoài theo dõi các tiết học theo thời gian. Với những **lần lặp định kỳ** của một thời khóa biểu ở chế độ lịch (tuần luân phiên, nối tiếp, liên kết), `_id` của mỗi lần lặp được **suy ra** từ `_id` của tiết học gốc, và tiết học gốc vẫn nhận ra được. - **`_osrev`** — mã **phiên bản** (khóa lạc quan), tăng lên sau mỗi lần sửa đổi (dấu thời gian + số thứ tự sửa đổi), theo một thứ tự chữ cái chặt chẽ (nhờ đó dễ dàng biết một phiên bản có mới hơn phiên bản khác hay không). Nó cho phép việc biên tập cộng tác **phát hiện và hợp nhất các sửa đổi đồng thời**: một phiên bản đã cũ ở phía máy khách báo hiệu một xung đột, và máy chủ phân xử hoặc hợp nhất thay vì ghi đè trong im lặng. #### Vắng mặt Các lần vắng mặt dùng chung một phần cơ sở (`Absence`: `date_start`, `date_end`, `reason`, `hours`, `comment`, trạng thái), rồi biến thể theo đối tượng liên quan. ```mermaid erDiagram ABSENCE ||--o{ ABSENCE_TEACHER : "teachers" ABSENCE ||--o{ ABSENCE_CLASS : "classes" ABSENCE ||--o{ ABSENCE_STAFF : "staff" ABSENCE ||--o{ ABSENCE_STUDENT : "students" ABSENCE_TEACHER ||--o{ SUBSTITUTE : "substitutes" ABSENCE_TEACHER { string date_start string date_end string reason "khóa dịch hoặc nhãn tự do" array subjects "môn học liên quan" array classes "lớp liên quan" string status } SUBSTITUTE { string substitute "tên giáo viên thay thế" string date_start "ngày bắt đầu quy tắc" string date_end "ngày kết thúc quy tắc" array hours "khung giờ liên quan (begin/end tính bằng phút, day)" array classes "lớp liên quan" array subjects "môn học liên quan" string comment "ghi chú" } ABSENCE_STUDENT { string date_start string reason array subjects "môn học được miễn" string status } ``` Một `AbsenceTeacher` có thể được giới hạn ở một số `subjects`/`classes` và mang một **mảng quy tắc thay thế** (`substitutes`, mỗi phần tử là một `AbsenceTeacherSubstitute`: giáo viên thay thế, khoảng thời gian, khung giờ, lớp và môn học được bao phủ). Trạng thái khác nhau tùy đối tượng (ví dụ `ok`/`aborted` cho một lớp). Xem mục từ điển [Thay thế / dạy thay](#page-glossary.substitution) và mô-đun **Quản lý vắng mặt**. #### Thành viên nhân sự Mô-đun riêng biệt (cũng được bán độc lập) dành cho công tác quản sinh và các nhiệm vụ phụ trách. ```mermaid erDiagram STAFFING ||--o{ STAFFING_GRID : "grids" STAFFING ||--o{ STAFFING_ASSIGNMENT : "assignments" STAFFING ||--o{ STAFFING_STAFF_MEMBER : "staff" STAFFING ||--|| STAFFING_SCHEDULE : "schedule" STAFFING_ASSIGNMENT ||--o{ STAFFING_NEED_SPAN : "needs" STAFFING_GRID { array dates "khoảng thời gian hoạt động" array days array periods "khung giờ" } STAFFING_ASSIGNMENT { string name int req "số người trực tối thiểu" int ideal "số người mong muốn" string site string priority "high normal low" array allowed_staff } STAFFING_NEED_SPAN { string day "thứ hoặc ngày" string begin "HH:MM" string end "HH:MM" int headcount "số người cần có" } STAFFING_STAFF_MEMBER { string first_name string last_name string virtual_name "vị trí còn trống" string color } STAFFING_SCHEDULE { object dates "ca trực theo ngày" } ``` `StaffingGrid` là khuôn mẫu (ngày, khung giờ); các `assignments` mô tả những nhiệm vụ (`req`/`ideal`, `priority`, `needs` chi tiết theo từng khung giờ qua `StaffingNeedSpan`); `schedule` cụ thể hóa các ca trực thực tế theo từng ngày. Xem mô-đun Quản lý nhân sự. #### Sự kiện **`Event`** là một mục **lịch đặt chồng lên lưới**: điều gì đó diễn ra trong cơ sở giáo dục **mà không phải một tiết học thông thường** — một buổi họp đánh giá kết quả của lớp, một buổi họp phụ huynh, một kỳ thi gói gọn trong một ngày, một buổi tham quan, một ngày hội mở cửa trường. Sự kiện được xếp trong từ điển `events` (khóa dạng `event-`) và thuộc các tính năng Premium. Các trường của một `Event` (bắt buộc: `title`, `start`, `end`): - **`title`** — tiêu đề hiển thị. - **`start`** / **`end`** — thời điểm bắt đầu và kết thúc, theo định dạng `YYYYMMDDTHHmmSS`. - **`rrule`** — quy tắc **lặp lại** nếu có. - **`attendees`** — người tham dự: một người dùng, một lớp, một nhóm, một nhãn tự do (`custom`), hoặc toàn bộ cơ sở giáo dục (`everybody`) / bất kỳ ai muốn tham gia (`anyone`). - **`location`** — địa điểm: một phòng học của thời khóa biểu hoặc một nhãn tự do. - **`resources`** — tài nguyên được giữ chỗ cho sự kiện. - **`videolink`** — liên kết họp trực tuyến để tham dự từ xa. - **`memos`** — ghi chú; **`color`** — màu sắc (dạng thập lục phân). Cách vận hành về mặt sử dụng (tạo sự kiện, đặt lên lưới, các trường trong giao diện) được mô tả trong [Sự kiện đơn lẻ](#page-schedules.events). #### Bảng thông tin **`Panel`** là một **bảng thông tin** hiển thị các tiết học trong ngày (sảnh, phòng, màn hình tiếp đón…). Nó xác định lựa chọn `columns`, `topline`, các `filters`/`exclusions` và những thiết lập về giao diện. Xem mục từ điển [Bảng thông tin](#page-glossary.panel). #### Định danh, bản sao cục bộ và đối chiếu với một ERP Để nối mô hình Omniscol với một hệ thống dữ liệu gốc bên ngoài, có ba nguyên tắc quan trọng nhất: 1. **Khóa của từ điển chính là các định danh ổn định.** Môn học, người dùng, giáo viên, lớp, nhóm, phòng học, tài nguyên được đánh chỉ mục bằng một định danh bất biến (khóa JSON), chứ không bằng nhãn của chúng. Chính trục này — chứ không bao giờ là `name` — mới là thứ cần dùng cho mọi phép đối chiếu. 2. **Trường `_extids` (`ExternalIds`) mang các định danh bên ngoài.** Có mặt trên những thực thể đồng bộ được (`Subject`, `Family`, `TimetableSite`, `TimetableClassroom`, `TimetableResource`, `TimetableTeacher`, `TimetableClass`, `TimetableClassGroup`, `User`…), nó gắn cho mỗi thực thể các định danh của nó trong những hệ thống thứ ba, ví dụ `{ "auriga": "12345", "aimaira": "67890" }`. Đây là điểm neo chuẩn tắc cho một phép ghép nối hai chiều. 3. **Bản sao cục bộ giữa cấp trường ↔ thời khóa biểu là có chủ đích.** Một môn học của lớp hay một giáo viên của thời khóa biểu là một bản sao được bổ sung, không phải một tham chiếu sống. Vì vậy một hệ thống dữ liệu gốc bên ngoài phải quyết định ghép nối ở cấp nào: **dữ liệu gốc của trường** (danh mục lâu dài) hay một **thời khóa biểu** cụ thể (kế hoạch có mốc thời gian). Chi tiết các quy tắc lan truyền nằm trong [Tổ chức dữ liệu](#page-core-concepts.data-model). Cấu hình đồng bộ nằm trong `config.extsync` (`SchoolConfigExtsync`): `systems` (các trình kết nối đã cấu hình), `sync` (chiều đồng bộ và các thực thể), `export` và `schedules`, cùng những bảng đối chiếu (`mappings`) theo khóa và định danh Omniscol. Về mặt truy cập bằng chương trình, API REST và mã thông báo được mô tả trong [Mã thông báo API](#page-integrations.api-tokens); các trình kết nối đồng bộ nằm trong [Đồng bộ với hệ thống bên ngoài](#page-integrations.extsync). > Hình thức chính xác và đầy đủ của từng trường vẫn do lược đồ JSON tham > chiếu của tài khoản xác định > (`https://api.omniscol.com/api/guest/school_schema.json`, > trình xem dễ đọc tại > [omniscol.com/vi/datamodel](https://www.omniscol.com/vi/datamodel)). Nếu > có khác biệt giữa trang này và lược đồ, **lược đồ là căn cứ**. #### Xem thêm - [Tổ chức dữ liệu](#page-core-concepts.data-model) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng lớp](#page-core-concepts.class-divisions) · [Căn chỉnh nhóm](#page-core-concepts.alignments) · [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types) · [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Cơ sở, phòng học và tài nguyên](#page-core-concepts.sites-rooms-resources) - [Năm học](#page-core-concepts.school-year) - [Mã thông báo API](#page-integrations.api-tokens) · [Đồng bộ với hệ thống bên ngoài](#page-integrations.extsync) ### 9.8 Truy vấn nâng cao — lọc, chọn trường và phân trang API *Source: `help/vi/integrations/advanced-queries.md` · id: integrations.advanced-queries · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Ngoài việc gọi từng điểm truy cập một, API của Omniscol còn cung cấp **ba hướng tìm kiếm**. Gộp lại, chúng bao quát việc tìm kiếm toàn văn, việc chuyển một tên gọi quen thuộc thành một mã định danh kỹ thuật, và việc chạy một truy vấn **có lọc, có chọn trường và có phân trang** trên bất kỳ điểm truy cập đọc dữ liệu nào — mà bạn không phải tự nối nhiều lệnh gọi lại với nhau. Chính những thành phần này trả lời các câu hỏi mà một **intranet**, một công cụ đặt phòng hoặc một **ETL** thường đặt ra nhất — bắt đầu từ *“phòng học nào hoặc giáo viên nào còn rảnh vào khung giờ này?”* (xem [Tìm một phòng học hoặc một giáo viên còn rảnh](#tim-mot-phong-hoc-hoac-mot-giao-vien-con-ranh)). #### Nhìn tổng quan ba hướng tìm kiếm | Điểm truy cập | Chức năng | Phù hợp nhất cho | | --- | --- | --- | | `POST /api/search` | Tìm kiếm toàn văn trên toàn bộ tài khoản. Tách văn bản bạn nhập thành các từ (không phân biệt hoa thường và dấu) rồi trả về những **đường dẫn** JSON nơi tìm thấy từng từ. | Việc dò nhanh “thuật ngữ này xuất hiện ở đâu?”. | | `POST /api/search/entity` | Tra một tên ra thực thể tương ứng. Xử lý được dấu, ký tự đại diện và so khớp gần đúng (độ tương đồng Dice), rồi trả về loại thực thể, mã định danh và ngữ cảnh. | Biến `“10A1”` thành lớp, hay `“Nguyễn Thị Mai”` thành giáo viên. | | `POST /api/search/query` | **Bộ điều phối truy vấn**: gọi một điểm truy cập đọc dữ liệu, rồi áp dụng bộ lọc `where`, phép chọn trường, phép sắp xếp và phép phân trang lên kết quả. | Những câu hỏi phức tạp, có lọc, mà nếu không thì phải gọi nhiều lần. | Cả ba đều có mặt trong tài liệu tham chiếu API tương tác (trang **/developers**), ở mục **Search**, và đều yêu cầu xác thực — xem [API Omniscol](#page-integrations.api-tokens). #### Bộ lọc `where` (kiểu Mango / MongoDB) Cả `/api/search/entity` lẫn `/api/search/query` đều nhận một mệnh đề `where`: một bộ lọc có cấu trúc với **các toán tử kiểu MongoDB**. Một trường ứng với hoặc một giá trị trực tiếp (mặc nhiên là bằng), hoặc một đối tượng gồm các toán tử; nhiều toán tử trên cùng một trường được kết hợp bằng phép **VÀ** ngầm định. Tên trường chấp nhận **ký hiệu dấu chấm** để với tới một ngữ cảnh cha (ví dụ `sites.name`). | Toán tử | Ý nghĩa | | --- | --- | | `$eq` / `$ne` | Bằng / khác | | `$gt` `$gte` `$lt` `$lte` | Các phép so sánh | | `$in` / `$nin` | Giá trị nằm trong / không nằm trong một danh sách | | `$exists` | Trường có tồn tại | | `$regex` | Biểu thức chính quy (không phân biệt hoa thường) | | `$contains` | Một chuỗi hoặc một mảng có chứa một giá trị (không phân biệt hoa thường) | | `$like` | So khớp gần đúng, bỏ qua dấu và dấu câu (Dice) | | `$and` `$or` `$not` | Kết hợp logic | Vài ví dụ: ```json { "capacity": { "$gte": 20, "$lte": 50 } } { "level": { "$in": ["10", "11", "12"] } } { "name": { "$regex": "^lab" } } { "city": { "$like": "ho chi minh" } } { "$or": [ { "capacity": { "$gte": 50 } }, { "specialisation": "chemistry" } ] } ``` #### Chọn trường, sắp xếp và phân trang Trên `/api/search/query`, bốn công cụ nữa giữ cho phản hồi luôn gọn và có thứ tự — điều này quan trọng với một màn hình tổng hợp, và càng quan trọng hơn với một tác nhân AI bị tính tiền theo token: - **`project`** — danh sách các trường cần giữ lại (dùng được ký hiệu dấu chấm). Mọi thứ còn lại đều bị loại bỏ. - **`sort`** — một trường, `asc` hoặc `desc`. Trường giả `_count.` sắp xếp theo độ dài của một trường dạng mảng. - **`limit`** và **`offset`** — phân trang kết quả. Phản hồi còn trả về một khối `meta`: có bao nhiêu phần tử trước khi lọc, bao nhiêu phần tử qua được bộ lọc, và bao nhiêu phần tử đã được trả về. #### Một ví dụ đầy đủ Tìm những phòng học có ít nhất 30 chỗ, chỉ giữ lại tên và sức chứa, xếp từ lớn xuống nhỏ, rồi lấy 20 phòng đầu tiên: ```bash curl -X POST "https://ten-truong-cua-ban.omniscol.com/api/search/query" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "call": "os_dashboard_classrooms_get", "where": { "capacity": { "$gte": 30 } }, "project": ["name", "capacity"], "sort": { "capacity": "desc" }, "limit": 20 }' ``` `call` là tên nội bộ của điểm truy cập đọc dữ liệu cần chạy (đúng như hiển thị trên trang **/developers**), `params` mang các tham số riêng của điểm truy cập đó, còn `extract_path` chỉ ra mảng cần lọc bên trong kết quả khi cần — ở đây được bỏ qua nên hệ thống tự phát hiện. #### Tìm một phòng học hoặc một giáo viên còn rảnh Kiểu tích hợp phổ biến nhất — cấp dữ liệu cho một **intranet**, một công cụ đặt phòng hay một **ETL** — chính là *“ai hoặc cái gì còn rảnh vào lúc đó?”*. Các điểm truy cập **availability** trả lời thẳng câu hỏi này: theo từng thực thể, chúng chỉ trả về những khung giờ **còn trống** trong các ngày bạn hỏi, đã tính sẵn các tiết học, các lần vắng mặt và các khai báo thời gian rảnh bắt buộc. Có hai cách hỏi tình trạng rảnh: - **Theo phạm vi** — `GET /api/schedules/availability/{datesrange}/{entity}` (kèm `/{entityId}` khi cần) cho một loại thực thể — `teachers`, `classrooms`, `groups`, `resources`… - **Bộ lọc tường minh** — `GET /api/schedules/availability/{datesrange}` kèm một `filter`, nơi bạn thu hẹp tập hợp bằng chính cú pháp `$where` đã thấy ở trên. `{datesrange}` viết theo dạng `YYYYMMDD`, và **các đoạn ngăn cách bằng dấu phẩy sẽ hỏi những ngày rời rạc** — rất hợp với “hai ngày thứ Hai nhất định”: `20261005,20261012`. Mỗi khung giờ trả về đều mang `day`, `start`, `end` và `time` (tính bằng phút): vì vậy “ít nhất 3 giờ” trở thành phép kiểm tra `time >= 180` ở phía bạn. ##### Một giáo viên còn rảnh trong một khung giờ cụ thể *“Những giáo viên nào còn rảnh vào thứ Hai ngày 5 tháng 10?”* — chỉ một lệnh gọi theo phạm vi: ```bash curl -G "https://ten-truong-cua-ban.omniscol.com/api/schedules/availability/20261005/teachers" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode "with_entities=true" ``` Các khung giờ còn trống được trả về theo nhóm, trước hết theo loại thực thể rồi theo giáo viên — ví dụ `{ "availability": { "teachers": { "gv.mai": [ { "day": "2026-10-05", "start": "14:00", "end": "17:00", "time": 180 } ] } } }` — và công cụ của bạn giữ lại người nào phủ được khung giờ cần tìm. ##### Những phòng học có sức chứa nhất định, còn trống trong hai ngày thứ Hai Hãy kết hợp bộ lọc thực thể với tình trạng rảnh trong một lệnh gọi duy nhất, dùng một **tập con hữu ích** của cú pháp — chỉ `$where` trên sức chứa: ```bash curl -G "https://ten-truong-cua-ban.omniscol.com/api/schedules/availability/20261005,20261012" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}' \ --data-urlencode "with_entities=true" ``` Omniscol trả về các khung giờ còn trống, trong cả hai ngày thứ Hai, của từng phòng học có ít nhất 30 chỗ. Sau đó ETL của bạn giữ lại những phòng có một khoảng **3 giờ** (`time >= 180`) trong **mỗi** ngày — việc ghép nhiều ngày lại vẫn nằm ở phía bạn, nhờ vậy quy tắc luôn tường minh và kiểm chứng được. Với mỗi loại thực thể, `filter` chấp nhận một danh sách mã định danh đơn giản (`{"classrooms":["A101","B204"]}`), một ký tự đại diện (`{"teachers":"*"}`), một phép khớp trường đơn giản (`{"teachers":[{"email":"…"}]}`) hoặc `$where` có cấu trúc như đã trình bày ở đây. #### Chọn đúng hướng tìm kiếm - **“Từ này xuất hiện ở đâu?”** → `POST /api/search`. - **“Tên này ứng với thực thể nào?”** → `POST /api/search/entity`. - **“Cho tôi những phòng học trên 30 chỗ, đã sắp xếp, trang đầu tiên”** → `POST /api/search/query`. - **“Ai hoặc cái gì còn rảnh vào khung giờ này?”** → `GET /api/schedules/availability/…`. #### Dành cho một tác nhân AI Những hướng tìm kiếm này tồn tại phần lớn là **để phục vụ các tác nhân AI**. Tìm kiếm toàn văn và phân giải thực thể biến cách diễn đạt của người dùng (`“giáo viên Trần Văn Nam”`, `“lớp 10A1”`) thành các mã định danh chính xác; sau đó bộ điều phối truy vấn trả lời một câu hỏi có lọc chỉ trong một lệnh gọi và chỉ trả về đúng những trường được yêu cầu — thay vì nhiều lệnh gọi và một phản hồi quá khổ. Khi bạn kết nối một tác nhân qua [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp), những công cụ này nằm trong số những gì nó có thể dùng. #### Kết nối vào một intranet, một ETL hay một công cụ đối tác Chính những điểm truy cập đọc dữ liệu này là thứ mà một công cụ bên thứ ba dùng hằng ngày. Vài dạng thường gặp: - **Một lượt kéo dữ liệu về intranet hoặc màn hình tổng hợp** — trang của bạn gọi các điểm truy cập đọc dữ liệu (tình trạng rảnh, [điểm truy cập tiết học](#page-integrations.lessons-api), các bảng số liệu tổng hợp) bằng một **mã thông báo API** có phạm vi hạn chế, rồi hiển thị kết quả. Không phải cài đặt gì ở phía Omniscol. - **Một ETL chạy ban đêm** — một tác vụ theo lịch lấy về đúng thứ nó cần (các tiết học trong một khoảng ngày, số giờ của giáo viên, mức sử dụng phòng học) rồi nạp vào hệ thống thông tin của bạn. `search/query` giữ cho mỗi lượt kéo đều có lọc, có chọn trường và có phân trang, nên phản hồi luôn gọn. - **Một lượt đẩy dữ liệu từ hệ thống của bạn** — chiều ngược lại, để giữ Omniscol khớp với nguồn dữ liệu chuẩn của bạn: một tác vụ ban đêm có thể cập nhật lớp và giáo viên (`POST /api/external/classes`, `POST /api/external/teachers`) hoặc nạp một danh mục môn học tùy chỉnh (`POST /api/admin/subjects/custom`) từ cơ sở dữ liệu của bạn. - **Một phần mềm SIS / ERP đóng gói** — với Aurion, Auriga và những hệ tương tự, trình kết nối chuyên dụng mới là công cụ phù hợp — xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). - **Theo hướng sự kiện** — để được thông báo khi có thay đổi thay vì hỏi vòng liên tục, hãy đăng ký một **hook** — xem [Tùy chỉnh API](#page-integrations.api-customization). Hãy giữ cho mỗi tích hợp luôn **hạn chế phạm vi**: một mã thông báo chỉ dùng được đúng những điểm truy cập thật sự cần, được thay mới định kỳ, và chỉ có quyền đọc ở mọi nơi mà tích hợp chỉ cần đọc dữ liệu. Xem [API Omniscol](#page-integrations.api-tokens). #### Xem thêm - [API tiết học](#page-integrations.lessons-api) - [API Omniscol](#page-integrations.api-tokens) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) - [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) - [Trợ lý AI tích hợp](#page-integrations.ai-assistant) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.9 API tiết học — lấy tiết học cho bất kỳ ngày nào *Source: `help/vi/integrations/lessons-api.md` · id: integrations.lessons-api · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Khi một hệ thống bên ngoài Omniscol cần biết *điều gì đang diễn ra, và vào lúc nào*, đây là điểm truy cập cần gọi: ``` GET /api/schedules/lessons/{datesrange} ``` Nó trả về các **tiết học đã có ngày** trong thời khóa biểu của bạn — mỗi tiết học đặt đúng vào ngày thực tế của nó — cho những ngày và những thực thể mà bạn yêu cầu. Gần như mọi tích hợp (một intranet, một ETL, một công cụ của đối tác) đều bắt đầu từ đây. Trang này điểm qua các tham số biến nó thành một điểm truy cập duy nhất phục vụ rất nhiều nhu cầu. #### Tiết học so với cấu trúc Hai điểm truy cập, hai vai trò: - **`GET /api/schedules/lessons/{datesrange}`** — các **tiết học**: mỗi tiết học đặt trên một ngày thực tế, kèm môn học, giáo viên, phòng học, nhóm và thời lượng. Đây là dữ liệu cần đọc để biết ai ở đâu và vào lúc nào. - **`GET /api/schedules/`** — các **cấu trúc**: chính những thời khóa biểu đã công bố (lớp, môn học, cơ sở, lưới thời gian). Đọc điểm truy cập này khi bạn cần mô hình nền bên dưới thay vì các tiết học đã có ngày. Bạn cũng có thể gộp các cấu trúc vào ngay lệnh gọi tiết học bằng `with_timetables=true` (xem bên dưới): khi đó một lệnh gọi duy nhất trả về cả hai. #### Chọn ngày `{datesrange}` viết theo dạng `YYYYMMDD` và được thiết kế để linh hoạt: | Dạng viết | Ý nghĩa | | --- | --- | | `20261005` | Một ngày cụ thể | | `20261005-20261011` | Một khoảng đóng (một tuần) | | `20260901-` / `-20260630` | Mở ở một đầu | | `20261005,20261012,20261019` | Các ngày **rời rạc** — ba thứ Hai cụ thể | | `20261005-20261011,20261102-20261108` | Nhiều khoảng cùng lúc | | `` hoặc `-` | Mọi ngày | Chính dạng rời rạc (ngăn cách bằng dấu phẩy) khiến một câu hỏi kiểu “ba thứ Hai này” chỉ tốn đúng một lệnh gọi. #### Nhắm đúng dữ liệu bạn cần Tham số `filter` thu hẹp truy vấn về đúng những thực thể đáng quan tâm — vẫn là cú pháp lọc của các điểm truy cập về thời gian rảnh ([Truy vấn nâng cao](#page-integrations.advanced-queries)): - một danh sách mã định danh đơn giản — `{"classes":["10a1","10a2"]}`, - một ký tự đại diện — `{"teachers":"*"}`, - một phép so khớp trường đơn giản — `{"classrooms":[{"site":"co-so-1"}]}`, - hoặc một `$where` có cấu trúc — `{"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}`. Kết quả được nhóm **theo loại bộ lọc, rồi theo mã định danh thực thể** — ví dụ `schedules.classes.10a1.lessons[]`, `schedules.teachers.gv-mai.lessons[]`. Cùng mảng đó vẫn còn được trả về dưới tên cũ `courses[]` trong một giai đoạn chuyển tiếp: hãy viết tích hợp của bạn dựa trên `lessons[]`. Hai tham số khác khoanh vùng phạm vi trích xuất, và một tham số cuối đặt trần cho nó: - **`timetables_restrict`** / **`timetables_exclude`** — giới hạn hoặc loại trừ các mã định danh thời khóa biểu (chuỗi, CSV hoặc mảng). - **`limit`** — đặt trần số tiết học trả về cho mỗi bộ lọc. #### Một tiết học trông như thế nào Mỗi phần tử của `lessons[]` là một tiết học đã được xếp lịch: ```json { "position": { "day": "2026-10-05", "period": 0, "start": "8:15", "end": "9:10" }, "duration": 2, "subject": "toan", "teachers": ["gv-mai"], "classroom": "co-so-1:B12", "class": "10a1", "schedid": "3" } ``` - **`position.day`** là ngày diễn ra tiết học. - **`position.period`** là chỉ số của tiết học trên lưới thời gian của thời khóa biểu — chỉ có với những tiết học đặt trên lưới. Một tiết học ngoài khung giờ (có `start`/`end` riêng, nằm ngoài các khung giờ thường lệ) mang `start`/`end` thay cho `period`. - **`position.start`** / **`position.end`** (giờ đồng hồ) luôn đi kèm một tiết học ngoài khung giờ, và được bổ sung cho các tiết học trên lưới khi bạn truyền **`with_hours=true`** (giờ đã tính sẵn). Hãy bật tham số này khi hệ thống đích của bạn cần giờ đồng hồ thay vì chỉ số trên lưới. #### Vắng mặt, hủy tiết học và thay thế Theo mặc định, điểm truy cập này **hợp nhất các vắng mặt**: giáo viên vắng mặt bị gỡ khỏi tiết học, và một tiết học không còn giáo viên nào được xem là đã hủy nên bị loại ra. Một số tham số thay đổi cách xử lý đó: - **`without_absences`** — bỏ qua hoàn toàn các vắng mặt; trả về đúng thời khóa biểu đã lập, chưa qua xử lý. - **`with_absences`** — trả kèm các vắng mặt thô của giai đoạn đó bên cạnh các tiết học. - **`with_cancelcourses`** — giữ lại các tiết học đã hủy (toàn bộ giáo viên đều vắng) thay vì loại chúng ra. - **`with_studentcancelcourses`** — chỉ giữ những tiết học bị hủy vì học sinh vắng mặt. - **`with_removedcourses`** — trả về các tiết học đã bị gỡ bỏ (không dùng chung với `with_cancelcourses`). - **`without_teacher_consolidation`** — giữ giáo viên vắng mặt trong danh sách `teachers` của từng tiết học thay vì gỡ họ ra. - **`without_holidays`** — không chèn ngày nghỉ lễ vào khoảng thời gian truy vấn. Theo mặc định, khi một giáo viên thay thế đã được chỉ định cho một vắng mặt, người này **thay thẳng giáo viên vắng mặt trong danh sách `teachers`** của tiết học — việc thay thế diễn ra liền mạch, không thêm trường nào. Nếu bạn truyền **`with_cancelcourses`** hoặc **`without_teacher_consolidation`**, tiết học sẽ mang thêm một khối **`substitutes`** (mã định danh của giáo viên thay thế, lý do vắng mặt và chính vắng mặt đã dẫn tới việc thay thế), để bạn thấy ai được thay và vì sao ngay trong cùng một kết quả trả về. #### Cấu trúc và danh bạ Đính kèm dữ liệu tham chiếu hữu ích, ngay trong cùng một lệnh gọi: - **`with_timetables=true`** — cấu trúc thô của những thời khóa biểu đã dùng để tính ra các tiết học (lớp, môn học, lưới thời gian, theo mã định danh). Bật khi bạn cần phân giải mã định danh; để tắt nếu muốn kết quả gọn nhẹ. - **`with_entities=true`** — tên và mã ở dạng gọn nhẹ (kèm các trường họ tên đối với người) của những thực thể xuất hiện trong kết quả. - **`with_teachers`** / **`with_all_teachers`** — những giáo viên có mặt trên các tiết học, hoặc toàn bộ giáo viên của thời khóa biểu và của danh bạ. - **`with_students`** — học sinh, kèm phân công của họ theo từng ngày. - **`with_events=true`** — các sự kiện ngoài khung giờ (buổi họp đánh giá kết quả của lớp, họp phụ huynh…) trong cùng khoảng thời gian. #### Một lượt trích xuất ETL ban đêm Lấy về một tuần tiết học cho toàn bộ các lớp, kèm giờ đồng hồ, rồi nạp vào hệ thống thông tin của bạn: ```bash curl -G "https://ten-truong-cua-ban.omniscol.com/api/schedules/lessons/20261005-20261011" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classes":"*"}' \ --data-urlencode "with_hours=true" ``` Phản hồi nhóm các tiết học dưới `schedules.classes..lessons[]`. Các vắng mặt đã được hợp nhất sẵn: những gì bạn nạp vào phản ánh đúng thời khóa biểu thực tế và cập nhật — thêm `with_absences=true` nếu bạn còn muốn ghi lại lý do của một thay đổi. #### Đẩy dữ liệu vào Omniscol Việc tích hợp cũng chạy theo chiều ngược lại — để giữ Omniscol khớp với một nguồn dữ liệu gốc bên ngoài. Những điểm truy cập sau **chỉ** tồn tại cho việc đồng bộ bên ngoài đó; bản thân giao diện Omniscol không bao giờ gọi tới chúng: - **`POST /api/external/classes`** (`os_external_classes_post`) — cập nhật những lớp đã có (tên, cơ sở, khối, phòng học, sĩ số) từ dữ liệu gửi lên được đánh chỉ mục theo mã định danh lớp. Nó cập nhật các lớp đã biết; nó không tạo lớp mới. Đặt một trường thành `null` để xóa trường đó (trừ tên lớp — một lớp luôn giữ tên của mình). - **`POST /api/external/teachers`** (`os_external_teachers_post`) — thêm mới hoặc cập nhật giáo viên theo mã định danh, đồng thời trong các thời khóa biểu và trong danh bạ (tạo người dùng với vai trò giáo viên và một tên đăng nhập được sinh tự động khi cần). Các biến thể `DELETE` gỡ một lớp hoặc một giáo viên. - **`POST /api/admin/subjects/custom`** (`os_admin_subjects-custom_post`) — nạp một **danh mục môn học tùy chỉnh**. Phần thân là `{ "subjects": [ … ], "replace": false, "nodoubles": true }`: mặc định là bổ sung dần, `replace: true` để làm mới toàn bộ, `nodoubles: true` để đối chiếu với những môn học đã có theo mã định danh bên ngoài, theo mã hoặc theo tên. Đây chính là điểm truy cập cho một lượt đẩy môn học hằng đêm. Còn có một điểm truy cập đặc biệt, **chỉ tồn tại để được ghi đè**, `os_external_classes_get`: Omniscol không cung cấp bản cài đặt mặc định nào cho nó, nhưng khi một đối tác hoặc một nhà cung cấp trỏ nó sang dịch vụ riêng của họ (qua [Tùy chỉnh API](#page-integrations.api-customization)), màn hình tạo lớp sẽ tự điền sẵn từ **danh sách lớp cố định** đó thay vì dùng biểu mẫu nhập tay. Nếu không được ghi đè, nó đơn giản là không làm gì cả. Với một phần mềm SIS / ERP (Aurion, Auriga…), hãy ưu tiên bộ kết nối chuyên dụng thay vì các điểm truy cập thô này — xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Xem thêm - [Truy vấn nâng cao](#page-integrations.advanced-queries) - [API Omniscol](#page-integrations.api-tokens) - [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) - [Tùy chỉnh API](#page-integrations.api-customization) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.10 MCP — kết nối một tác nhân AI bên ngoài với Omniscol *Source: `help/vi/integrations/mcp.md` · id: integrations.mcp · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Model Context Protocol (MCP)** là một chuẩn mở cho phép một trợ lý AI tương thích MCP sử dụng các công cụ nghiệp vụ do một dịch vụ bên ngoài cung cấp. Omniscol mở phần lớn API của mình dưới dạng **máy chủ MCP**: một tác nhân AI có thể truy vấn tài khoản của bạn qua những điểm truy cập API hoặc những quyền được cho phép, sau khi đã xác thực — bằng OAuth2, chế độ chuẩn của MCP, hoặc bằng một mã thông báo. #### Tác nhân làm được những gì Tác nhân MCP hoạt động rất tốt với những **câu hỏi tra cứu** mà dữ liệu đã có sẵn trong Omniscol: - *“Cho tôi tỷ lệ sử dụng phòng học so với giờ mở cửa trong tuần này.”* - *“Tìm giúp tôi một phòng học còn trống vào ba ngày thứ Hai của tháng Mười, trên cùng một khung giờ 2 tiếng.”* - *“Trần Văn Nam đã dạy bao nhiêu giờ trong năm học hiện tại?”* - *“Hôm nay có những tiết học Toán nào?”* - *“Liệt kê những giáo viên đã dạy chưa tới 70% số giờ làm việc của mình trong học kỳ này.”* Những yêu cầu như vậy thường phải kết hợp nhiều công cụ: thời khóa biểu, các trang tổng quan thống kê, thời gian rảnh được tính ra, hồ sơ giáo viên. Tác nhân điều phối các lệnh gọi rồi diễn đạt câu trả lời bằng ngôn ngữ tự nhiên. #### Những công cụ được mở Máy chủ MCP dựng các công cụ của mình từ những tuyến API Omniscol được cho phép dùng với MCP. Những tuyến bị bỏ qua một cách rõ ràng, và một số mô-đun kỹ thuật (chẳng hạn các mô-đun liên quan tới việc xác thực người dùng), sẽ không trở thành công cụ. Vì vậy danh sách phản ánh phần API được mở cho MCP, chứ không phải toàn bộ bên trong của ứng dụng. Dù vậy đó vẫn là một phần rất lớn. Hơn nữa, có một số tuyến dành riêng cho MCP mà chính Omniscol không dùng đến. Đó là trường hợp của các công cụ tìm kiếm nâng cao, giúp Omniscol tra một đoạn văn bản tự do chỉ tên một thực thể (“giáo viên Trần Văn Nam”, “lớp 10A1”) ra mã định danh kỹ thuật của thực thể đó, rồi dùng mã này để truy vấn dữ liệu thật chính xác. Đó cũng là trường hợp của những công cụ phức tạp mà Omniscol không có giao diện đồ họa tương ứng, bởi chúng hợp với việc ra lệnh bằng câu chữ hơn: chẳng hạn việc tìm mức sử dụng và thời gian rảnh của một thực thể (“tìm giúp tôi một phòng học còn trống 2 tiếng buổi chiều trong 3 ngày thứ Hai liên tiếp”, “có giáo viên Toán nào rảnh 3 tiếng trong tuần của ngày 14 tháng Mười không?”). Các công cụ bao quát nhiều mảng, đáng chú ý là: - mô-đun **Quản trị** (người dùng, môn học, năm học, thông số), - mô-đun **Quản lý thời khóa biểu** (cấu hình, cơ sở, phòng học, lớp, tiết học), - mô-đun **Thời khóa biểu** (lịch giảng dạy, trang tổng quan, tìm kiếm), - mô-đun **Quản lý vắng mặt** (khai báo, thống kê), - tìm kiếm toàn cục. Những tuyến chỉ đọc là phù hợp nhất cho cách dùng theo kiểu tác nhân. Trong danh mục vẫn có thể có một số thao tác ghi, tùy quyền của mã thông báo và tùy API sẵn có, nhưng chúng phải được giám sát: một yêu cầu làm thay đổi nhiều đối tượng nghiệp vụ cần được một người dùng kiểm chứng trước khi được coi là đáng tin. #### Bật máy chủ MCP Máy chủ MCP có sẵn trên các tài khoản **Premium**. Mọi thứ đều bắt đầu từ **màn hình MCP**, mở từ mô-đun **Quản trị** bằng **Cấu hình**: màn hình này hiển thị **URL của máy chủ** theo phạm vi bạn chọn (toàn bộ hoặc giới hạn ở một mô-đun) và cung cấp sẵn các phần cấu hình cho ứng dụng khách của bạn, chép là dùng được ngay. **Cách xác thực chuẩn của MCP là OAuth2.** Một ứng dụng khách tương thích (như Claude) chỉ cần kết nối tới URL của máy chủ, tự tìm thấy ở đó phần cấu hình OAuth2 của tài khoản, rồi người dùng chấp thuận quyền truy cập qua một màn hình đồng ý: **ngoài URL ra thì không phải cung cấp gì thêm**. Phạm vi được cấp đi theo quyền của tài khoản và các giới hạn hiển thị của tài khoản đó. Máy chủ OAuth2 của Omniscol, màn hình quản lý ứng dụng khách và chi tiết về sự đồng ý được mô tả ở [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server). Với một ứng dụng khách không hỗ trợ OAuth2, cũng chính màn hình đó sinh ra một **mã thông báo** (khóa API, ngày hết hạn, người dùng liên kết tùy chọn, quyền ghi phải tích chọn) rồi đưa ra sẵn các định dạng hữu ích theo từng trường hợp, dán là dùng được ngay: tiêu đề `Authorization: Bearer`, URL kèm mã thông báo, khối cấu hình **Claude Desktop** (chế độ miễn phí) và lệnh chạy proxy cục bộ. Mã thông báo dựa trên hệ thống khóa được mô tả trong [API Omniscol](#page-integrations.api-tokens). #### Thực hành tốt về bảo mật - **Xác thực OAuth2** — tiện hơn và nên ưu tiên khi tác nhân của bạn hỗ trợ (Claude bản trả phí). - **Mã thông báo riêng cho AI** — hãy tạo một mã thông báo có nhãn dễ hiểu (`Tác nhân AI — Claude desktop`) để thu hồi được khi cần. - **Phạm vi tối thiểu** — với một mã thông báo API, chỉ chọn những điểm truy cập API thật sự cần. Với một mã thông báo OAuth, hãy giới hạn các phạm vi (scope) đúng theo nhu cầu thực tế. - **Nhật ký hoạt động (logs)** — một lệnh gọi sẽ xuất hiện trong nhật ký gắn với mã thông báo khi tuyến liên quan có ghi nhật ký. Nhật ký ghi lại lệnh gọi; nó không giữ chi tiết dữ liệu trả về, cũng không giữ nội dung đủ để phát lại yêu cầu. - **Giới hạn hiển thị** — tác nhân chỉ thấy những gì Omniscol trả về cho nó. Nếu bạn đã đặt các giới hạn hiển thị chặt chẽ cho vai trò của mã thông báo, chúng vẫn được áp dụng. #### Hướng dẫn — Kết nối Claude với Omniscol Cách được khuyến nghị là **xác thực OAuth2**: bạn nối Claude vào máy chủ MCP bằng URL của máy chủ, không cần thao tác với mã thông báo nào. 1. **Bật máy chủ MCP** trên tài khoản Premium của bạn rồi lấy URL của nó (thường là `https://ten-truong-cua-ban.omniscol.com/mcp`). Màn hình MCP (mô-đun **Quản trị**, nút **Cấu hình**) hiển thị URL này theo phạm vi bạn chọn, kèm một nút chép. 2. **Thêm Omniscol làm bộ kết nối trong Claude.** Trong phần thiết lập bộ kết nối của Claude, hãy thêm một bộ kết nối tùy chỉnh rồi dán URL máy chủ MCP của Omniscol vào. 3. **Chấp thuận quyền truy cập.** Claude chuyển bạn sang màn hình đồng ý của Omniscol: hãy đăng nhập và cho phép truy cập. Phạm vi được cấp đi theo quyền tài khoản của bạn và các giới hạn hiển thị nếu có. 4. **Các công cụ xuất hiện trong Claude**, và Claude gọi chúng khi yêu cầu của bạn phù hợp. 5. **Thử lần đầu**: *“Năm nay Trần Văn Nam đã dạy bao nhiêu giờ?”* — Claude kết hợp những dữ liệu truy cập được và trả lời bằng ngôn ngữ tự nhiên. **Cách thay thế bằng mã thông báo.** Với một ứng dụng khách MCP không hỗ trợ OAuth2, hãy sinh một mã thông báo riêng từ màn hình MCP (nhãn dễ hiểu, điểm truy cập giới hạn đúng nhu cầu thực tế, quyền ghi được tích chọn rõ ràng) rồi gửi kèm trong tiêu đề `Authorization: Bearer`. Màn hình MCP cung cấp khối cấu hình tương ứng. Hãy ưu tiên OAuth2 ngay khi ứng dụng khách của bạn hỗ trợ. #### Xem thêm - [Trợ lý AI tích hợp](#page-integrations.ai-assistant) - [API Omniscol](#page-integrations.api-tokens) - [Truy vấn nâng cao](#page-integrations.advanced-queries) - [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.11 Trợ lý AI tích hợp *Source: `help/vi/integrations/ai-assistant.md` · id: integrations.ai-assistant · Audience: admin · Status: stable · Updated: 2026-06-28* **Trợ lý AI tích hợp** là nơi bạn trò chuyện với Omniscol để đặt câu hỏi bằng ngôn ngữ tự nhiên ngay trong giao diện. Trợ lý mở ra ở tab **Trợ lý AI** của bảng trợ giúp, chỉ dành cho quản trị viên. Trợ lý dựa trên kho nội dung trợ giúp, và tùy theo hợp đồng của tài khoản, dựa thêm vào các công cụ Omniscol được mở cho tác nhân. Phạm vi phụ thuộc vào từng tài khoản: một trợ lý tài liệu trả lời từ phần trợ giúp trực tuyến, còn những tài khoản có hợp đồng quy định điều đó thì được bổ sung quyền truy cập các công cụ nghiệp vụ có thể truy vấn dữ liệu của tài khoản. Để kết nối một tác nhân AI bên ngoài với tài khoản của bạn, hãy dùng [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp). #### Những gì trợ lý bao quát Trợ lý được thiết kế cho hai nhóm yêu cầu: - **câu hỏi tài liệu** — tìm lại một quy trình, giải thích một khái niệm, chỉ tới đúng trang trợ giúp; - **câu hỏi vận hành** — truy vấn dữ liệu của tài khoản qua các công cụ được phép, chẳng hạn về tiết học, phòng học, giáo viên, vắng mặt hay thống kê. Ví dụ: - *“Làm thế nào để công bố một thời khóa biểu?”* - *“Cấu hình các liên kết iCal ở đâu?”* - *“Hôm nay có những tiết học Toán nào?”* - *“Vì sao lần tạo thời khóa biểu này còn để lại những tiết học chưa được xếp?”* #### Quyền hạn và phạm vi Trợ lý không có quyền truy cập đầy đủ vào tài khoản. Câu trả lời và hành động của trợ lý phụ thuộc vào: - hợp đồng của tài khoản, vốn quyết định các công cụ nghiệp vụ có được bật hay không; - quyền của quản trị viên đang đăng nhập; - các công cụ thực sự được mở cho tác nhân; - dữ liệu hiện có trong Omniscol. Mọi hành động làm thay đổi dữ liệu nghiệp vụ đều phải qua một bước xác nhận rõ ràng trước khi được áp dụng. Với các tích hợp dạng tác nhân bên ngoài, hãy dùng [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) và các mã thông báo riêng. #### Khuyến nghị sử dụng - Hãy kiểm tra các hành động được đề xuất trước khi áp dụng. - Không sao chép dữ liệu nhạy cảm vào cuộc trò chuyện nếu chúng không cần thiết cho yêu cầu. - Với một tác nhân bên ngoài, hãy tạo một mã thông báo riêng có phạm vi tối thiểu và thời hạn phù hợp. #### Xem thêm - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) ### 9.12 OIDC / SSO — đăng nhập qua nhà cung cấp danh tính *Source: `help/vi/integrations/oauth2.md` · id: integrations.oauth2 · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ OpenID Connect (OIDC), xây dựng trên nền OAuth2, cho phép người dùng của bạn đăng nhập vào Omniscol **bằng tài khoản của tổ chức** thay vì bằng một mật khẩu Omniscol riêng. Ba lợi ích: chỉ một mật khẩu cần nhớ, việc mở và cắt quyền truy cập được quản lý tập trung khi một người vào làm hay nghỉ việc, và chính sách bảo mật (MFA, độ dài mật khẩu, thời hạn…) do bộ phận công nghệ thông tin quy định được áp dụng tự động. Trang này mô tả **SSO cho người dùng**: việc các cá nhân đăng nhập vào Omniscol qua nhà cung cấp danh tính của bạn. Trường hợp ngược lại — Omniscol đóng vai trò **máy chủ** OAuth2 / OIDC để các dịch vụ bên thứ ba kết nối vào, cùng màn hình quản lý ứng dụng khách của nó — được trình bày ở [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server). #### Các nhà cung cấp được hỗ trợ Omniscol hỗ trợ: - **Google Workspace**, - **Microsoft Entra ID** (trước đây là Azure AD), - **Keycloak**, - một nhà cung cấp **OIDC tổng quát** qua issuer / discovery URL của nó (mọi nhà cung cấp tuân thủ OIDC). #### Cấu hình phía Omniscol Trong **Quản trị** → **Thông số**, mục **Bảo mật**, nút **Cấu hình** mở màn hình cấu hình OIDC, nơi bạn khai báo nhà cung cấp: - **Tên hiển thị** — nhãn sẽ xuất hiện trên nút đăng nhập (ví dụ `Tiếp tục với Google`). - **Loại nhà cung cấp** — Google, Microsoft Entra ID (Azure AD), Keycloak hoặc OIDC tổng quát. - **Tenant / issuer** — tenant Microsoft cho Entra ID, hoặc URL issuer cho Keycloak và các nhà cung cấp OIDC tổng quát. Siêu dữ liệu OIDC sau đó được ứng dụng tự phát hiện. - **Client ID** và **Client secret** — lấy được khi tạo một ứng dụng ở phía nhà cung cấp (xem tài liệu của nhà cung cấp). - **Scopes** — mặc định là `openid profile email`. Thêm các scope riêng của nhà cung cấp nếu cần. - **Miền được phép** — danh sách tùy chọn các miền thư điện tử được chấp nhận khi đăng nhập SSO; nếu để trống thì không áp dụng bộ lọc theo miền nào. - **URL chuyển hướng** — Omniscol cho bạn giá trị chính xác cần chép vào cấu hình phía nhà cung cấp (cùng với URL chuyển hướng sau khi đăng xuất nếu nhà cung cấp yêu cầu). - Chỉ cho phép đăng nhập bằng SSO — khi SSO đã chạy tốt, tùy chọn này từ chối việc đăng nhập bằng mật khẩu Omniscol, trừ các **tài khoản dự phòng** mô tả dưới đây. Cấu hình SSO hiện hành được đặt ở cấp tài khoản trường. #### Truy cập dự phòng (break-glass) Ở chế độ **Chỉ cho phép đăng nhập bằng SSO**, việc đăng nhập bằng mật khẩu Omniscol bị từ chối: mọi người đều đi qua nhà cung cấp danh tính. Nếu nhà cung cấp đó ngừng hoạt động — sự cố, client secret hết hạn, cấu hình sai — thì quyền truy cập vào Omniscol sẽ bị chặn với tất cả mọi người. **Tài khoản dự phòng (“break-glass”)** là hàng rào bảo vệ trước tình huống đó: một tài khoản **quản trị viên** được phép đăng nhập bằng mật khẩu Omniscol ngay cả khi chế độ chỉ dùng SSO đang bật. - Trong hồ sơ của một tài khoản **quản trị viên**, khi tùy chọn **Chỉ cho phép đăng nhập bằng SSO** đang bật, một ô **Break-glass (SSO only)** sẽ xuất hiện. Đánh dấu ô này cho phép tài khoản đó đăng nhập bằng mật khẩu nếu nhà cung cấp danh tính không dùng được. Chỉ tài khoản quản trị viên mới được đặt làm tài khoản dự phòng. - Ngoài ra, bộ phận hỗ trợ của Omniscol vẫn giữ một đường truy cập dự phòng độc lập. Hãy chỉ định ít nhất một tài khoản dự phòng **trước khi** bật chế độ chỉ dùng SSO, và cất mật khẩu của tài khoản đó ở nơi an toàn: đó là tấm lưới an toàn của bạn nếu nhà cung cấp danh tính gặp sự cố. #### Cấu hình phía nhà cung cấp (ví dụ) ##### Google Workspace 1. Bảng điều khiển Google Cloud > **APIs & Services > Credentials**. 2. **Tạo một mã định danh OAuth 2.0**, loại **Ứng dụng Web**. 3. Dán URL chuyển hướng do Omniscol cung cấp vào **Authorized redirect URIs**. 4. Lấy **Client ID** và **Client secret** để dán vào Omniscol. ##### Microsoft Entra ID 1. Cổng Azure > **Entra ID > App registrations**. 2. **New registration**, loại **Web**, URL chuyển hướng của Omniscol. 3. **Certificates & secrets** > tạo một client secret. 4. **API permissions** > thêm `openid`, `profile`, `email`. 5. Lấy **Application (client) ID** và client secret. ##### Keycloak 1. Realm > **Clients > Create client**, loại **OpenID Connect**. 2. **Valid redirect URIs**: URL do Omniscol cung cấp. 3. **Credentials** > lấy client secret. #### Khớp với các tài khoản Omniscol Khi một người dùng bấm vào nút SSO, Omniscol: 1. Chuyển hướng người đó tới nhà cung cấp, 2. Lấy địa chỉ e-mail của họ sau khi xác thực, 3. Tìm một tài khoản Omniscol có **cùng địa chỉ e-mail**. Nếu tài khoản tồn tại và đang hoạt động, người dùng được đăng nhập. Nếu không, quyền truy cập bị từ chối. Hệ quả: muốn SSO chạy được, người dùng phải tồn tại trong Omniscol với đúng địa chỉ e-mail — mặc định Omniscol không tự tạo tài khoản. #### Tự động tạo tài khoản Việc tự động tạo tài khoản ngay lần đăng nhập SSO đầu tiên (`just-in-time provisioning`) không phải là hành vi mặc định của màn hình cấu hình. Nếu bạn cần chế độ này, hãy thống nhất phạm vi với Omniscol. #### Hướng dẫn — Cấu hình một nhà cung cấp OIDC / SSO 1. **OIDC / SSO** cho phép người dùng của bạn đăng nhập bằng tài khoản của tổ chức (Google Workspace, Microsoft Entra ID, Keycloak, Okta…). Phần việc phía nhà cung cấp thì tùy theo từng nhà cung cấp. 2. **Ở phía nhà cung cấp**, trước hết hãy tạo một ứng dụng OIDC loại **Ứng dụng Web**: lấy **Client ID** và **Client secret**, chép **URL chuyển hướng** do Omniscol cung cấp vào mục *Authorized redirect URIs* của nhà cung cấp. 3. **Ở phía Omniscol**, mở phần thông số rồi vào cấu hình OIDC. Điền **tên hiển thị** (nhãn của nút đăng nhập), loại nhà cung cấp, issuer hoặc tenant tùy trường hợp, Client ID, Client secret và các **scope** (mặc định: `openid profile email`). 4. **Bấm Kiểm tra.** Xác nhận rằng cấu hình hoạt động. Omniscol thực hiện một lượt đi-về OIDC; nếu có lỗi discovery, lỗi client secret hay lỗi chuyển hướng, thông báo lỗi sẽ nói rõ. 5. **Lưu lại.** Nút đăng nhập SSO xuất hiện trên trang đăng nhập khi cấu hình đang hoạt động. 6. **Quan trọng: các tài khoản phải tồn tại sẵn** trong Omniscol với đúng địa chỉ e-mail. Đăng nhập SSO khớp theo e-mail; mặc định không có việc tự động tạo tài khoản. #### Xem thêm - [Đăng nhập lần đầu](#page-getting-started.first-login) - [Người dùng và vai trò](#page-admin.users-and-roles) - [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.13 Đồng bộ hóa với các hệ thống bên ngoài (ERP) *Source: `help/vi/integrations/extsync.md` · id: integrations.extsync · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Omniscol kết nối với các ERP và hệ thống thông tin bên ngoài của trường thông qua một khung **đồng bộ hóa** thống nhất. Trong đó, Omniscol giữ vai trò **đầu mối trung tâm**: chính Omniscol điều phối các luồng nhập và xuất, còn hệ thống bên ngoài vẫn là nguồn sự thật về mặt hành chính. Đồng bộ hóa với các hệ thống bên ngoài khả dụng trên các tài khoản **Premium**, khi một trình kết nối đã được cấu hình cho tài khoản. Điều được xử lý **theo dự án** là việc bổ sung một ERP hoặc một hệ thống thông tin mới chưa được hỗ trợ, kèm việc xác định phạm vi ánh xạ và các luồng dữ liệu. #### Mô hình luồng dữ liệu Khung này bao quát hai chiều lưu chuyển: - **Thực thể (chiều vào)** — Omniscol có thể lấy về từ ERP các giáo viên, môn học, phòng học, lớp, học sinh cùng mã định danh bên ngoài của họ, tùy theo trình kết nối và cấu hình. Các tham chiếu ext-id được giữ lại trong Omniscol để phục vụ việc đối chiếu. - **Tiết học (chiều ra)** — Omniscol đẩy sang ERP những tiết học do khâu lập kế hoạch của mình tạo ra, kèm đúng các tham chiếu ext-id. Tùy trình kết nối, việc xuất có thể được kích hoạt theo yêu cầu, chạy theo lịch, hoặc phát lại thành một lô đầy đủ để bù các sai lệch. Omniscol điều phối các luồng nhập và xuất đã cấu hình, lưu giữ mã định danh bên ngoài, quản lý các lượt đồng bộ và cung cấp những màn hình kiểm tra để đối chiếu dữ liệu giữa Omniscol và hệ thống bên ngoài. #### Nguồn dữ liệu và quyền tạo tại chỗ Với từng loại thực thể (giáo viên, môn học, phòng học, v.v.), bạn chọn hệ thống nguồn và cho biết việc tạo mới cũng như cập nhật tại chỗ có còn được phép hay không. Màn hình này cũng có nút **Liên kết** để ghép một thực thể Omniscol tại chỗ với một thực thể ERP khi cả hai đều đã tồn tại. #### Bắc cầu giữa các hệ khái niệm Mỗi ERP có vốn từ riêng (ví dụ “môn học” trong Omniscol = **Unité Pédagogique** trong Auriga = **Cours** trong Aurion). Khung này lo phần **ánh xạ**: chính Omniscol nối các khái niệm ở bên này với các khái niệm ở bên kia, bạn không phải viết lại danh mục thuật ngữ của mình. #### Các trình kết nối có sẵn ##### Đã sẵn sàng - **Aurion** — trình kết nối đã sẵn sàng trong môi trường vận hành. Đây là ERP **do công ty Auriga phát hành**, được dùng nhiều trong giáo dục đại học tại Pháp (các trường đào tạo kỹ sư, trường kinh doanh). Xem [integrations.aurion](#page-integrations.aurion). - **Auriga** — trình kết nối đã sẵn sàng trong môi trường vận hành. **Phần mềm Auriga** là bước phát triển full-web của Aurion, do cùng công ty đó thực hiện. Xem [integrations.auriga](#page-integrations.auriga). ##### Chuẩn danh bạ - **OneRoster** — thay vì một trình kết nối riêng cho từng nhà phát hành, Omniscol hỗ trợ chuẩn quốc tế **OneRoster** (1.2 và các nhóm nâng cao) để trao đổi danh bạ trường học với một SIS, một không gian làm việc số hoặc một LMS tuân thủ chuẩn. Việc nhập danh bạ OneRoster thuộc về luồng đồng bộ Premium này; còn việc xuất thì được phục vụ ở chế độ chỉ đọc và kiểm soát bằng phạm vi OAuth2. Xem [OneRoster](#page-integrations.oneroster). ##### Theo yêu cầu Mọi ERP / hệ thống thông tin có **API được tài liệu hóa** cho các thao tác nhập / xuất và một **sandbox** để làm việc đều có thể được tích hợp theo dự án. Hãy liên hệ bộ phận hỗ trợ Omniscol để xác định phạm vi khi bổ sung một trình kết nối mới. #### Khác biệt với những hệ thống truy vấn Omniscol Một số hệ thống cũng có thể khai thác Omniscol qua các điểm truy cập **GET** của API công khai: khi đó, Omniscol không điều phối một luồng đồng bộ ERP nào cả, hệ thống bên thứ ba chỉ truy vấn những dữ liệu mà mã thông báo của nó cho phép. Mô hình này khác với luồng đồng bộ do Omniscol điều phối: | Mô hình | Ai điều phối? | Chiều | Ví dụ | | --- | --- | --- | --- | | **Đồng bộ hóa với các hệ thống bên ngoài** | Omniscol | Hai chiều (thực thể vào, tiết học ra) | Auriga, Aurion | | **Partner pull** | Đối tác | Đối tác thực hiện lệnh gọi GET | Trình kết nối bên thứ ba qua API | Mô hình partner-pull không cần cấu hình đồng bộ hóa với các hệ thống bên ngoài: API công khai và các mã thông báo xác thực là đủ. Xem [API Omniscol](#page-integrations.api-tokens). #### Cấu hình Việc cấu hình đồng bộ hóa với các hệ thống bên ngoài thường cần một buổi làm việc cùng bộ phận hỗ trợ Omniscol để: 1. **Liệt kê các đối tượng cần đồng bộ** — người dùng, lớp, giảng viên, môn học, phòng học, v.v. 2. **Hiệu chỉnh ánh xạ hệ khái niệm** — khái niệm nào của ERP tương ứng với khái niệm nào của Omniscol. 3. **Xác định tính độc quyền** theo từng loại thực thể. 4. **Lên lịch tần suất** các lượt chạy (theo yêu cầu, theo giờ, hằng ngày, và dày hơn khi cần bù các sai lệch). 5. **Thử nghiệm trên một sandbox** ERP trước khi đưa vào vận hành. #### Kiểm tra và các thao tác thường ngày - **Kiểm tra** các mục yêu thích hoặc bộ dữ liệu đã cấu hình, tùy theo trình kết nối. - **Kích hoạt thủ công** một lần xuất tiết học từ màn hình quản trị. - **Xuất toàn bộ theo lịch** khi tùy chọn này được cấu hình trong khối xuất dữ liệu. - **XML Pivot của Aurion** khi dùng trình kết nối Aurion. - **Kiểm tra việc đối chiếu**: các màn hình liên kết chỉ ra những thực thể cần ghép cặp hoặc cần sửa. #### Hướng dẫn — Kiểm tra và kích hoạt một lượt đồng bộ 1. **Sau khi bộ phận hỗ trợ Omniscol đã cấu hình xong việc đồng bộ**, các thao tác thường ngày được thực hiện từ màn hình quản trị: kiểm tra mục yêu thích/bộ dữ liệu, ghép cặp các thực thể, kích hoạt một lần xuất riêng lẻ, tải về tệp pivot của Aurion nếu có, hoặc xóa sạch trạng thái xuất khi có bước chuyển đổi. 2. **Trong phần cấu hình hệ thống**, hãy dùng các nút **Kiểm tra** của những mục yêu thích hoặc bộ dữ liệu đã khai báo. Omniscol lấy về dữ liệu từ trình kết nối và hiển thị các lỗi cấu hình hoặc lỗi định dạng khi trình kết nối báo về những lỗi đó. 3. **Để đẩy ngay** các tiết học sang ERP mà không chờ lượt chạy theo lịch kế tiếp, hãy bấm **Kích hoạt**. Hữu ích sau một thay đổi gấp. 4. **Với Aurion**, nút **XML Pivot** tải về một tệp mà quản trị viên ERP nạp vào thủ công qua bảng điều khiển của ERP khi chọn chế độ này. 5. **Khi có bước chuyển đổi lớn** (thay đổi cơ cấu, kết thúc năm học), nút **Purge Omniscol** sẽ xóa **ở phía ERP** toàn bộ tiết học mà Omniscol đã xuất sang đó, để bắt đầu lại từ đầu. Thao tác này nhắm vào trình kết nối đang chọn và **không thể hoàn tác**: chỉ dùng sau khi có sự đồng ý của bộ phận hỗ trợ. #### Xem thêm - [integrations.aurion](#page-integrations.aurion) - [integrations.auriga](#page-integrations.auriga) - [OneRoster](#page-integrations.oneroster) - [API Omniscol](#page-integrations.api-tokens) - [Nhập và xuất dữ liệu](#page-admin.import-export) - [Tổng quan về các tích hợp](#page-integrations.overview) ### 9.14 OneRoster (1.2 và các nhóm nâng cao) *Source: `help/vi/integrations/oneroster.md` · id: integrations.oneroster · Audience: admin · Plan: standard · Updated: 2026-06-29* OneRoster là một tiêu chuẩn quốc tế để trao đổi danh bạ trường học (do 1EdTech ban hành): nó mô tả, theo một định dạng chung, các **tổ chức**, các **năm học**, các **khóa học**, các **lớp**, các **ghi danh** và các **người dùng** của một trường. Tiêu chuẩn này dùng để nối một SIS, một không gian làm việc số (ENT) hay một LMS với công cụ khác mà không phải nhập lại dữ liệu, cũng không cần định dạng độc quyền. Trang này dành cho **bộ phận công nghệ thông tin (CNTT)** của trường. Trang mô tả những gì Omniscol cung cấp và tiếp nhận theo chuẩn OneRoster, cơ chế xác thực được yêu cầu, và phạm vi thực tế của từng chiều trao đổi. #### Các phiên bản được hỗ trợ Omniscol hỗ trợ **OneRoster 1.2 Rostering** — tầng nền (Org, AcademicSession, Course, Class, Enrollment, User, Demographics) — cùng với tầng **OR-Groups (Advanced Groups Service)**, tiêu chuẩn nhóm bổ sung thêm ba thực thể (Group, GroupMembership, GroupAssociation) lên trên bản 1.2. Tầng OR-Groups là một **tiêu chuẩn đang trong quá trình ban hành**. Nó bổ sung thuần túy lên trên bản 1.2: một Group chỉ **tham chiếu** đến các Class / User / Org / AcademicSession của bản 1.2, ở chế độ chỉ đọc. Theo thông báo, phiên bản 1.3 của OneRoster sẽ biến Class thành một dạng chuyên biệt của Group — hướng đi mà cách triển khai của Omniscol vốn đã đi theo. #### Omniscol là bên phát dữ liệu (Omniscol → ENT / LMS) Ở vai trò **bên phát dữ liệu**, Omniscol cung cấp danh bạ của trường ở chế độ **chỉ đọc**, qua một API REST tuân thủ OneRoster, để một ENT hay một LMS đọc được danh bạ đó. - Tầng nền Rostering 1.2 được phục vụ dưới `/ims/oneroster/rostering/v1p2/…` (ví dụ `/orgs`, `/schools`, `/academicSessions`, `/courses`, `/classes`, `/enrollments`, `/users`, `/teachers`, `/students`, `/demographics`, mỗi điểm truy cập đều có các biến thể lồng nhau của nó). - Tầng nhóm được phục vụ dưới `/ims/oneroster/groups/v1p0/…` (`/groups`, `/groupMemberships`, `/groupAssociations` cùng các biến thể lồng nhau). - Mặc định, phạm vi là năm học **hiện hành**; một tham số cho phép nhắm tới một năm học khác hoặc bao trùm mọi năm học. Dữ liệu phản ánh kết quả lập kế hoạch đã hợp nhất của Omniscol (các thời khóa biểu đang hoạt động / đã công bố). Bên phát dữ liệu **chỉ đọc theo chủ đích**: không một thao tác ghi nào (PUT / DELETE) được mở ra — một hệ thống ở xa không điều khiển việc tạo hay xóa thực thể trong Omniscol. ##### Xác thực của bên phát dữ liệu Các điểm truy cập của bên phát dữ liệu được bảo vệ bằng **OAuth2 theo luồng `client_credentials`** (mã thông báo máy với máy, không có người dùng), do máy chủ OAuth2 của Omniscol cấp. Chúng **không** dành riêng cho các tài khoản Premium: quyền truy cập được kiểm soát bằng **phạm vi (scope)** OAuth2, chứ không bằng gói dịch vụ. Mỗi phạm vi gắn với một dịch vụ cụ thể, và quyền đọc dữ liệu nhân khẩu học được tách riêng ngay bên trong bản 1.2: | Điểm truy cập | Phạm vi được chấp nhận | | --- | --- | | Rostering 1.2 (không gồm dữ liệu nhân khẩu học) | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly` | | Rostering 1.2 `/demographics` | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly` | | OR-Groups (toàn bộ) | `https://purl.imsglobal.org/spec/or-groups/v1p0/scope/roster-group.readonly` | Một mã thông báo OR-Groups không mở quyền vào tầng nền Rostering, và ngược lại. Không có phạm vi ghi nào được công bố. Các phạm vi đặc quyền do bộ phận quản trị Omniscol cấp vào lúc đăng ký ứng dụng khách OAuth2; một ứng dụng khách không thể tự cấp chúng cho mình. Việc quản lý ứng dụng khách OAuth2 và mã thông báo được mô tả tại [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server) và [API Omniscol](#page-integrations.api-tokens). ##### Danh sách học sinh do tầng nhóm đảm nhiệm Một lựa chọn mang tính cấu trúc: danh sách học sinh của một lớp hay một nhóm được cung cấp qua **OR-Groups** (GroupMembership), chứ không phải qua riêng tầng nền 1.2. Bên nhận dữ liệu nào chỉ đọc Rostering 1.2 sẽ có danh mục (Courses, Classes), các ghi danh giáo viên → khóa học và danh bạ người dùng, nhưng **không** có quan hệ thành viên của học sinh. Muốn biết ai đang ở lớp nào hay nhóm nào, bên nhận dữ liệu phải triển khai tầng OR-Groups. Lựa chọn này phản ánh mô hình của Pháp: một học sinh được ghi danh vào một **lớp** hoặc một **nhóm**, chứ không phải theo từng môn học. Bên phát dữ liệu hoạt động theo REST. Còn định dạng **gói CSV OneRoster** (một tệp nén zip, mỗi tập dữ liệu một tệp) thì được hỗ trợ ở chiều nhập, dành cho những nhà cung cấp giao danh bạ bằng tệp thay vì bằng API — xem phần bên nhận dữ liệu bên dưới. #### Omniscol là bên nhận dữ liệu (SIS → Omniscol) > _Premium_ Ở vai trò **bên nhận dữ liệu**, Omniscol nhập danh bạ của một SIS tuân thủ OneRoster rồi đối chiếu nó vào dữ liệu của trường. Cấu hình tiếp nhận này thuộc về **đồng bộ hóa với các hệ thống bên ngoài**: nó khả dụng trên các tài khoản **Premium** và được xác định theo dự án cùng đội ngũ Omniscol (xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync)). - **Đường truyền** — hoặc là **API REST** của nhà cung cấp (địa chỉ gốc được cấu hình, cơ chế phân trang chuẩn của OneRoster được tuân thủ), với xác thực OAuth2 theo luồng `client_credentials` đối với máy chủ của nhà cung cấp; hoặc là một **gói CSV** (tệp nén zip). - **Hồ sơ cấu hình** — hồ sơ này cho biết cần đọc đến đâu: riêng tầng nền 1.2, tầng nhóm, hay bản ánh xạ dành cho giáo dục phổ thông Pháp. Một nhà cung cấp thuần 1.2, không có dịch vụ nhóm, vẫn nhập vào bình thường. - **Áp dụng có kiểm soát** — việc nhập tuân theo cùng nguyên tắc như các trình kết nối khác: Omniscol lấy về rồi đối chiếu dữ liệu, và **quản trị viên phê duyệt** việc áp dụng vào trường. Hệ thống ở xa không bao giờ đẩy thẳng dữ liệu vào Omniscol. - **Nhập lại không sinh trùng lặp** — các liên kết mã định danh bên ngoài đều được giữ lại, nên một lần nhập lại không tạo ra bản trùng, kể cả khi nhà cung cấp đổi tên một nhãn. #### Hồ sơ Pháp (giáo dục phổ thông) **Hồ sơ Pháp dành cho giáo dục phổ thông** ánh xạ các khái niệm của Pháp sang mô hình OneRoster: một **lớp hành chính** (chính là lớp theo nghĩa thực tế) trở thành một Group thuộc kiểu tổ chức chính; một **nhóm** trở thành một Group phục vụ việc giảng dạy; một **nhóm của nhóm** trở thành một Group liên kết ngang; các **phân vùng** và **căn chỉnh nhóm** trở thành các liên kết giữa các nhóm; việc phân công một **giáo viên** vào một khóa học trở thành một ghi danh giáo viên. Những mã định danh như INE hay mã định danh nhân sự được mang trong trường `userIds` của người dùng. #### Mã định danh và quyền riêng tư Mỗi thực thể được cung cấp đều mang một mã định danh ổn định là `sourcedId`. - Các mã định danh **cấu trúc** (tổ chức, năm học, khóa học, lớp, nhóm) ổn định và không đổi từ lần xuất này sang lần xuất khác: bên nhận dữ liệu có thể dựa vào chúng để đối chiếu dữ liệu theo thời gian. - Mã định danh của **người dùng** thì được **ẩn danh**: Omniscol không bao giờ đưa mã định danh gắn với danh tính người dùng lên đường truyền. Mã đưa lên đường truyền được dẫn xuất bằng một hàm một chiều (HMAC) riêng cho từng tài khoản; các ghi danh và các quan hệ thành viên dùng lại mã đó mà không bao giờ để lộ mã định danh gốc. #### Trạng thái - **Bên phát dữ liệu** — đã sẵn sàng và có thể trình diễn mà không cần đối tác ở xa (bản thân việc xuất đã đủ). Rostering 1.2 và tầng OR-Groups được phục vụ ở chế độ chỉ đọc, với xác thực OAuth2. - **Bên nhận dữ liệu** — cấu hình nhập thuộc về gói đồng bộ hóa Premium. Việc đưa vào vận hành một luồng đồng bộ **trực tiếp** với một SIS còn tùy nhà cung cấp và, nếu có, tùy lịch trình của cơ quan chủ quản: việc này được xác định **theo yêu cầu**, theo từng trình kết nối. Đây không phải là một cơ chế đồng bộ chìa khóa trao tay dùng được ngay. #### Xem thêm - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) - [OAuth2 / OIDC (nhà cung cấp)](#page-integrations.oauth-server) - [API Omniscol](#page-integrations.api-tokens) - [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) - [integrations.partners](#page-integrations.partners) ### 9.15 Tài khoản liên kết và tài nguyên dùng chung *Source: `help/vi/integrations/linked-accounts.md` · id: integrations.linked-accounts · Audience: admin · Updated: 2026-06-13* **Tài khoản liên kết** nối **nhiều tài khoản Omniscol riêng biệt — tức là nhiều trường khác nhau** — vốn trên thực tế dùng chung **giáo viên và phòng học**. Mối liên kết làm cho **tình trạng chiếm dụng** các tài nguyên chung đó hiển thị được từ tài khoản này sang tài khoản kia: khi bạn xem hoặc dựng một thời khóa biểu, Omniscol lấy về những tiết học của các tài khoản liên kết có liên quan đến một giáo viên hay một phòng học mà bạn dùng chung, và báo là đã bận. Nhờ vậy bạn tránh đặt trùng cùng một người hay cùng một phòng học, mà không phải gọi sang trường kia. Đây là một tùy chọn do đội ngũ Omniscol bật theo yêu cầu. Mỗi tài khoản vẫn **hoàn toàn độc lập**: giữ nguyên người dùng, thông số, năm học và phạm vi quản trị của riêng mình. #### Những gì mối liên kết chia sẻ - **Được chia sẻ**: **tình trạng chiếm dụng** của những giáo viên và phòng học có mặt trong cả hai tài khoản. Chính nó cung cấp dữ liệu cho các màn hình chiếm dụng và cho việc phát hiện lỗi tương thích giữa các tài khoản. - **Không chia sẻ**: người dùng, học sinh, lớp, thông số và dữ liệu quản trị riêng của từng tài khoản. Thấy một khung giờ đang bận không mở đường vào chi tiết của tài khoản kia. Việc đối chiếu diễn ra **tự động**: Omniscol nhận ra cùng một giáo viên qua họ tên (ngày sinh dùng để phân biệt những người trùng tên) và cùng một phòng học qua tên cơ sở kèm tên phòng. Muốn cơ chế đó chạy được, những giáo viên và phòng học này phải mang **cùng một tên gọi** trong mỗi tài khoản. #### Các trường hợp sử dụng Tất cả đều liên quan đến **nhiều trường riêng biệt**, mỗi trường có tài khoản Omniscol của riêng mình: - Một **hệ thống trường học** dùng chung giáo viên hoặc phòng học — chẳng hạn một mạng lưới trường trong cùng một thành phố. - Những **trường tách biệt về pháp lý** cùng nằm trong một tòa nhà, và vì thế dùng chung phòng học. - Một cơ sở nơi **nhiều đơn vị** (trường kỹ thuật, trường kinh doanh…), được quản lý trên các tài khoản riêng, cùng dùng những giảng đường và những giảng viên như nhau. #### Kích hoạt Tài khoản liên kết được thống nhất cùng đội ngũ Omniscol, vì cần cùng nhau quyết định: - những tài khoản nào được nối với nhau; - những tài nguyên chung nào — giáo viên, phòng học — được chia sẻ; - việc thống nhất tên gọi của các giáo viên và phòng học dùng chung, vốn là nền tảng của việc đối chiếu tự động; - tài khoản nào vẫn chịu trách nhiệm về từng dữ liệu; - cách xử lý các lỗi tương thích phát hiện được giữa các phạm vi. Khi tùy chọn đã bật, tình trạng chiếm dụng dùng chung xuất hiện trong các màn hình chiếm dụng và cung cấp dữ liệu cho việc phát hiện lỗi tương thích giữa các tài khoản, mà bạn không phải thao tác gì thêm. #### Bật hoặc tắt một đồng bộ hóa Khi một thời khóa biểu được đồng bộ với những thời khóa biểu đang hoạt động khác — của cùng tài khoản hoặc của các tài khoản liên kết — nút **Đồng bộ hóa** xuất hiện: trong **chế độ tổ chức lại** một thời khóa biểu, cũng như khi **chỉnh sửa một thời khóa biểu dạng lịch**, trên các **ngày dùng chung**. Nút này mở danh sách các đồng bộ hóa đó: mỗi **thời khóa biểu đang hoạt động khác** của tài khoản và mỗi **tài khoản liên kết** có chia sẻ giáo viên hoặc phòng học. Tất cả đều **bật theo mặc định**. Bỏ chọn một mục để **ngừng tính đến** tình trạng chiếm dụng của thời khóa biểu hay tài khoản đó trong màn hình hiện tại, rồi chọn lại để bật trở lại. Nút chỉ xuất hiện khi có ít nhất một đồng bộ hóa cần quản lý. #### Trường hợp liên quan: nhiều thời khóa biểu đang hoạt động trong một tài khoản duy nhất Tài khoản liên kết điều phối những trường riêng biệt; nhu cầu tương tự cũng xuất hiện **ngay trong một tài khoản duy nhất**, khi một trường chạy **nhiều thời khóa biểu đang hoạt động song song**. Cùng nguyên tắc chiếm dụng dùng chung khi đó ngăn một phòng học, một giáo viên hay một **lớp** bị đặt trùng bởi hai thời khóa biểu diễn ra đồng thời. Đây thường là trường hợp của một **tổ chức nhiều chương trình** có nhịp độ khác nhau — một chương trình EMBA kéo dài 18 tháng, một chương trình đại học chính quy chạy theo học kỳ dạng lịch, một hệ dự bị đại học chạy thời khóa biểu hằng tuần — dùng chung phòng học và giảng viên giữa các chương trình; hoặc của một **lớp trải trên hai loại lịch**, với tổ chức lặp lại vào buổi sáng và đơn lẻ vào buổi chiều. Việc điều phối này được bao gồm sẵn trong **Premium** và, trong trường hợp ngoại lệ, có thể được bật trên tài khoản Standard sau khi thống nhất phạm vi cùng Omniscol. Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). #### Xem thêm - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) ### 9.16 Trình kết nối Edusign *Source: `help/vi/integrations/edusign.md` · id: integrations.edusign · Audience: admin · Plan: premium · Updated: 2026-08-14* > **Premium** > _Premium_ Trong một trường dùng cả **Omniscol** lẫn **Edusign**, hai công cụ này không đóng cùng một vai trò. **Omniscol** chuẩn bị các tiết học: nó quản lý thời khóa biểu, các ràng buộc, thời gian rảnh, các phân vùng và những khóa học liên lớp. Còn **Edusign** chỉ vào cuộc khi tiết học đã được chốt: nó cần được cho biết tiết học diễn ra **khi nào**, **ai** giảng dạy và **ai** tham dự, để chuẩn bị việc điểm danh và thu thập chữ ký. Trình kết nối sinh ra chính là để tránh việc nhập liệu hai lần đó. Vì vậy Omniscol đẩy sang Edusign những tiết học cần lấy chữ ký, bởi nhà trường chuẩn bị và chỉnh sửa chúng trong Omniscol. Ngược lại, sự hiện diện ghi nhận được thì tra trong Edusign: chính Edusign quan sát nó và chính Edusign có giá trị xác nhận. Trình kết nối Edusign nằm trong khuôn khổ [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync); trang này mô tả những điểm riêng của nó. #### Những gì được gửi đi và những gì không Trình kết nối trước hết gửi các **tiết học**. Mỗi tiết học trở thành một khóa học (course) trong Edusign và mang mã định danh Omniscol làm tham chiếu ngoài. Chính nhờ vậy mà về sau có thể tìm lại, cập nhật hay xóa nó đi mà không phải giữ thêm một bảng đối chiếu bên cạnh. Các **sự kiện** trên lịch cũng có thể đi theo con đường đó: một buổi hội thảo, một buổi bảo vệ luận văn hay một ngày định hướng đầu khóa cũng có thể sang Edusign để lấy chữ ký. Nếu bạn không muốn gửi tất cả, bạn còn có thể giới hạn phần xuất bằng các bộ lọc — phần dưới sẽ nói kỹ hơn. **Giáo viên** và **nhóm** cũng có thể được gửi đi, theo hai cách: tạo ngay tại chỗ trong lúc xuất các tiết học, nếu bạn bật tùy chọn này, hoặc đồng bộ hàng loạt từ tab Xuất các thực thể, khi đó Omniscol là bên tham chiếu. Riêng **học sinh** thì không bao giờ được đẩy tự động: việc gửi chỉ diễn ra khi bạn kích hoạt bằng tay, vì những lý do giải thích ở phần dưới. Một điểm quan trọng: **đừng trộn lẫn hai cách tạo phiếu điểm danh**. Hoặc các tiết học của bạn ra đời trong Omniscol, và trình kết nối tạo chúng trong Edusign: đây là lựa chọn nhất quán nhất nếu thời khóa biểu của bạn hay thay đổi, vì các chỉnh sửa, vắng mặt và thay thế sẽ đi theo. Hoặc bạn tạo thẳng các khóa học trong Edusign. Cách đó vẫn được, nhưng những khóa học ấy sống bên ngoài Omniscol: trình kết nối sẽ để yên cho chúng, và các thay đổi về lịch của bạn không lan tới đó. An toàn nhất là ngay từ đầu chọn xem phiếu điểm danh của bạn ra đời ở phía nào, rồi giữ đúng lựa chọn đó. Đó là cách tránh rơi vào cảnh có hai phiên bản của cùng một tiết học. #### Trước lần xuất đầu tiên Với Edusign, một tiết học không có giáo viên thì không dùng được: phải biết ai đứng tên phiếu điểm danh. Phần tiếp theo phụ thuộc vào một câu hỏi: giáo viên của bạn đã có tài khoản Edusign chưa? **Họ đã có tài khoản, với cùng một địa chỉ e-mail ở cả hai bên.** Không phải làm gì cả: việc đối chiếu diễn ra tự động. Đây là trường hợp phổ biến nhất, và cũng là lý do địa chỉ phải được khai và phải đáng tin trong Omniscol — nó là mã định danh dùng để đối chiếu, và cũng là tên đăng nhập vào Edusign. Nếu hai giáo viên dùng chung một địa chỉ trên Omniscol, trình kết nối sẽ thử phân biệt họ qua họ tên: phần dưới nói rõ nó làm gì, và điều gì có thể khiến việc này bế tắc. **Họ đã có tài khoản, nhưng địa chỉ e-mail hai bên không khớp.** Đó là lúc dùng đến **liên kết**: màn hình liên kết đặt giáo viên của bạn đối diện với các tài khoản Edusign, và mỗi liên kết đã đặt đều có giá trị quyết định, đứng trước mọi phép đối chiếu theo địa chỉ. Cũng dùng cách này cho các trường hợp mập mờ, khi một địa chỉ dùng chung không phân biệt nổi bằng họ tên. **Họ chưa có trong Edusign.** Hai lựa chọn: - **tạo ngay tại chỗ** — tích chọn việc tạo ở hệ thống từ xa trong phần cấu hình hệ thống, tab Cấu hình hệ thống, và trình kết nối tạo từng tài khoản đúng vào lúc một tiết học cần đến nó; - **đồng bộ giáo viên** — đẩy tất cả cùng một lúc từ tab Xuất các thực thể, và các tài khoản đã tồn tại trước cả tiết học đầu tiên, với Omniscol là bên tham chiếu. Dù tạo tại chỗ hay tạo hàng loạt, Edusign chỉ dành mỗi địa chỉ e-mail cho một tài khoản duy nhất. Nếu địa chỉ đã bị dùng, việc tạo thất bại, và các tiết học của giáo viên đó thất bại theo; nếu địa chỉ được hai giáo viên trên Omniscol dùng chung, trình kết nối không tạo tài khoản nào cả — kể cả người đầu tiên, vì làm vậy sẽ gán địa chỉ cho một trong hai người một cách ngẫu nhiên — và các tiết học của họ phải chờ đến khi mỗi người có địa chỉ riêng. Vậy nên việc tạo chỉ dành cho những tài khoản thực sự chưa có — với một giáo viên đã có mặt trong Edusign, hãy giữ cách đối chiếu hoặc liên kết. Cũng cần lưu ý trước khi yêu cầu tạo tài khoản từ Omniscol sang Edusign: tùy theo cấu hình tài khoản Edusign của bạn, việc tạo một người dùng có thể lập tức gửi cho họ thông tin đăng nhập qua thư điện tử. Khi đó giáo viên của bạn sẽ biết đến công cụ mới ngay từ lần xuất đầu tiên, mà chưa hề được chuẩn bị trước. Nếu bạn muốn tự mình thông báo việc mở tài khoản, hãy kiểm tra thiết lập đó ở phía Edusign trước khi chạy phần xuất. Nếu vẫn không tìm ra giáo viên, tiết học **không được gửi đi**. Trình kết nối đếm và báo rõ trường hợp đó: một phiếu điểm danh bị thiếu là loại sự cố mà nếu không báo, bạn sẽ chẳng bao giờ phát hiện ra đúng lúc. #### Đối chiếu theo địa chỉ e-mail Với một giáo viên chưa được đặt liên kết, và có tài khoản không do trình kết nối tạo ra, việc đối chiếu dựa trên địa chỉ e-mail, bất kể họ và tên ở hai bên là gì. Vì vậy địa chỉ phải thật chính xác: một địa chỉ sai sẽ chặn tiết học lại, còn hai địa chỉ bị đảo cho nhau sẽ hoán đổi phiếu điểm danh của hai giáo viên. Họ và tên chỉ can thiệp khi cần phân xử một trường hợp trùng: hai giáo viên được khai trong Omniscol với cùng một địa chỉ e-mail — một hộp thư văn phòng, một địa chỉ dùng chung cho những người dạy thỉnh giảng. Khi đó trình kết nối so sánh họ tên với họ tên trên các tài khoản Edusign. Cách này gần như luôn đủ: mỗi người tìm được tài khoản của mình, các tiết học được gửi đi. Hai người trùng tên hoàn toàn trên cùng một địa chỉ thì nhiều khả năng chỉ là một người được nhập hai lần ở phía bạn. Phiếu điểm danh sẽ mang đúng tên, đúng môn học và đúng lớp dù tài khoản nào được chọn: tiết học vẫn đi, và nhật ký tích hợp giữ lại dấu vết của bản trùng để bạn dọn khi có dịp. Còn lại là trường hợp không tên nào khớp cả. Có thể giáo viên đó hoàn toàn chưa có tài khoản, và gửi bừa sẽ khiến người ta ký điểm danh trên phiếu của người khác: những tiết học ấy **nằm lại bến**. Bản tổng kết của lần xuất cho biết những cái tên và địa chỉ liên quan — kể cả người tạo ra bản trùng mà không hề giảng dạy, người mà bạn sẽ mất rất lâu mới nghĩ tới. Lối ra bền vững là cấp cho mỗi người một địa chỉ e-mail riêng. Trong lúc chờ, hãy liên kết họ bằng tay: một khi liên kết đã đặt, mã định danh có giá trị quyết định. #### Lọc phần gửi theo đơn vị Đơn vị (campus) là một tầng tổ chức: nó gom các lớp lại với nhau trong tài khoản của bạn, độc lập với cơ sở và phòng học. Nếu bạn đã khai báo đơn vị, bạn có thể chỉ gửi tiết học của một số trong đó. Lựa chọn nằm ở tab Xuất các thực thể, bên dưới phần tiết học. Một tiết học được gửi ngay khi **ít nhất một** trong các lớp của nó nằm trong đơn vị đã chọn: một khóa học dùng chung giữa hai đơn vị vì thế chỉ được gửi một lần. Ngược lại, hễ bạn lọc theo một số đơn vị, thì lớp chưa được gán đơn vị nào sẽ nằm ngoài: vì nó không thuộc đơn vị nào trong số đã chọn, trình kết nối không thể đưa nó vào. Nếu về sau bạn thu hẹp lựa chọn, những tiết học không còn chỗ ở đó sẽ được rút khỏi Edusign — **trừ những tiết học đã diễn ra**, vốn đã có chữ ký điểm danh. Không chọn gì cả thì tương đương với gửi tất cả. #### Khoảng thời gian xuất Edusign dùng để lấy chữ ký cho những tiết học **sắp tới**. Một tiết học đã qua không còn cần chuẩn bị để điểm danh nữa, và Edusign khóa nó lại. Khoảng thời gian này được đặt trong phần cấu hình hệ thống, dưới dạng số ngày lùi về trước và tiến về sau tính từ hôm nay. Trên thực tế, vài ngày lùi về trước là đủ: chúng chỉ để bắt kịp một chỉnh sửa thực hiện ngay sau tiết học. **Một tiết học rơi ra ngoài khoảng thời gian này không bao giờ bị xóa.** Nó đã diễn ra, Edusign đang giữ phần điểm danh của nó, và phần điểm danh ấy không dựng lại được. Chỉ tiết học thực sự bị xóa trong Omniscol mới bị rút khỏi Edusign — và chỉ khi nó chưa diễn ra. #### Thời gian thực và cơ chế bù Hai cơ chế cùng tồn tại, với hai vai trò khác nhau. **Thời gian thực** gửi từng thay đổi ngay khi nó xảy ra. Đây là chế độ bình thường: nó giữ cho Edusign gần như luôn được cập nhật. Nhưng hãy xem đó là một kênh tiện lợi, chứ không phải một bảo đảm tuyệt đối: một yêu cầu có thể thất bại, một tiến trình có thể khởi động lại. **Lần xuất toàn bộ theo lịch** dùng để đối soát hai bên một cách đều đặn. Nó gửi trọn khoảng thời gian xuất, đọc lại những gì Edusign đang giữ, rồi xóa những tiết học không còn tồn tại ở phía bạn mà cơ chế thời gian thực đã bỏ sót. Đây là tấm lưới an toàn: không có nó, một sự cố mạng hay một lần khởi động lại sẽ để lại chênh lệch âm thầm. #### Học sinh Học sinh chỉ được gửi đi **khi bạn kích hoạt bằng tay**, và với sự thận trọng đặc biệt. Edusign chỉ biết đối chiếu một học sinh qua tham chiếu ngoài mà chúng tôi đã đặt cho họ — không qua địa chỉ e-mail, cũng không qua mã định danh nội bộ. Vì vậy một học sinh đã có trong Edusign mà thiếu tham chiếu này thì **nằm ngoài tầm với**: gửi họ đi sẽ tạo ra một bản ghi thứ hai mang cùng địa chỉ. Cho nên trình kết nối thà không làm gì còn hơn tạo ra một bản trùng. Nó bắt đầu bằng việc đọc lại danh sách học sinh đã có trong Edusign, chỉ tạo những người thực sự chưa có ở đó, rồi để những người còn lại sang một bên. Học sinh không có địa chỉ e-mail cũng bị gạt ra vì cùng lý do: không cách nào đối chiếu được họ. Khi lần kích hoạt kết thúc, một bản tổng kết cho bạn biết chính xác những ai chưa được tạo, kèm danh tính ở cả hai bên, để bạn quyết định từng trường hợp. Nhật ký hoạt động lưu lại dấu vết việc đó. Trên thực tế, học sinh chỉ thực sự cần thiết nếu bạn muốn phiếu điểm danh ghi rõ từng tên. Việc điểm danh vẫn chạy được mà không cần họ, miễn là tiết học mang theo giáo viên và nhóm của nó. #### Sự kiện Một buổi hội thảo, một buổi bảo vệ luận văn, một kỳ thi thử: những gì bạn đặt trên lịch mà không phải là tiết học cũng có thể sang Edusign. Sự kiện có phần riêng của mình trong tab Xuất các thực thể, ngay dưới phần tiết học, với bộ lọc riêng và chính sách gửi riêng. Một sự kiện mang cùng những thông tin như một tiết học: ngày giờ, người tham dự, phòng học của nó. Trong số khách mời, giáo viên là người đứng tên phiếu; còn các lớp và các nhóm là thành phần tham dự. Bạn không bắt buộc phải gửi tất cả. Trình kết nối lọc theo những **thẻ** mà bạn gắn cho sự kiện — xem [Sự kiện đơn lẻ](#page-schedules.events): chỉ gửi những sự kiện mang một thẻ nhất định, hoặc ngược lại, gửi tất cả trừ những sự kiện mang thẻ đó. **Loại trừ luôn thắng**, và điều đó cho phép áp dụng quy tắc tiện nhất: gửi tất cả, trừ những gì bạn đã đánh dấu là *không lấy chữ ký* (chẳng hạn). #### Khi trong bức tranh đã có sẵn một ERP Trường hợp đơn giản nhất là một trường quản lý tiết học của mình trong Omniscol, rồi cho ký trong Edusign. Đó là tình huống sử dụng trực tiếp nhất của trình kết nối. Tại những trường đã được tổ chức quanh một ERP như [Aurion](#page-integrations.aurion) hay [Auriga](#page-integrations.auriga), kiến trúc thường là một hình sao lấy ERP làm tâm. ERP gửi các danh mục tham chiếu của mình sang Omniscol — giáo viên, phòng học, môn học, nhóm, thậm chí cả học sinh —, rồi Omniscol gửi ngược lại cho ERP những tiết học mà chính Omniscol đã dựng ra. Từ đó, Edusign thường cắm vào ERP chứ không cắm thẳng vào Omniscol. Tùy cách tổ chức được chọn, hoặc ERP chuyển tiếp các tiết học sang Edusign, nếu cần thì qua một ETL, hoặc Edusign đọc lại chúng trong ERP một cách đều đặn. Trong sơ đồ này, các tham chiếu ngoài không thay thế lẫn nhau: chúng chồng lên nhau tùy theo những luồng trao đổi cần bảo đảm. Cùng một giáo viên vì thế có thể mang một tham chiếu ERP trong Omniscol và, nếu cần, một tham chiếu Edusign riêng biệt. Trong tab Đồng bộ hóa thực thể, mỗi hệ thống đã cấu hình vẫn được liên kết riêng, cho cùng những thực thể ấy. #### Đặt lại Nút dọn sạch rút khỏi Edusign **những tiết học đến từ Omniscol** trong năm học hiện tại. Nó không đụng đến giáo viên, đến nhóm, hay đến những khóa học được tạo thẳng trong Edusign: mục đích của nó là dọn những gì trình kết nối đã đẩy sang, chứ không phải xóa phần còn lại trong môi trường của bạn. Edusign giới hạn rất chặt nhịp độ xóa: mỗi lượt chạy chỉ rút được nhiều nhất vài trăm tiết học. Nếu vẫn còn, hãy chạy lại lệnh dọn sạch — nhật ký hoạt động cho biết còn lại bao nhiêu sau mỗi lượt. Những gì trình kết nối tạo ra trong Edusign không phải lúc nào cũng xóa được theo đúng nghĩa: xóa một giáo viên ở đó thực chất là lưu trữ. Vậy nên hãy bật việc tạo ở hệ thống từ xa khi đã hiểu rõ điều đó. --- ## 10. Cổng thông tin ### 10.1 Cổng thông tin học sinh *Source: `help/vi/portal/student-portal.md` · id: portal.student-portal · Audience: student/admin · Plan: standard · Updated: 2026-06-13* **Cổng thông tin học sinh** là giao diện dành riêng cho người học. Đơn giản và tập trung hơn giao diện quản trị viên, nó hiển thị đúng những gì một học sinh cần hằng ngày: thời khóa biểu cá nhân, thời khóa biểu của lớp hoặc các lớp mình theo học, các lần vắng mặt của mình và việc chia sẻ lịch. #### Thời khóa biểu cá nhân Khi mở cổng, học sinh thấy **thời khóa biểu của chính mình** trong tuần hiện tại: môn học, giờ giấc, phòng học, giáo viên. Có ba chế độ xem quen thuộc: - **Tuần** — lưới chuẩn 5 hoặc 7 ngày tùy theo cấu hình của trường. - **Ngày** — lịch theo trình tự thời gian, tiện dùng trên điện thoại. - **Danh sách** — chế độ xem tuần tự các tiết học sắp tới, không có lưới. Những thay đổi vào phút chót (dời một tiết học, đổi phòng học, hủy tiết học) đều được tính đến: mỗi lần mở hoặc tải lại chế độ xem, học sinh đều thấy tình trạng mới nhất. #### Xem thời khóa biểu của lớp mình Ngoài thời khóa biểu cá nhân, học sinh còn xem được **thời khóa biểu của lớp hoặc các lớp mình theo học** và của các **nhóm** thuộc những lớp đó. Quyền truy cập dừng lại ở đó: học sinh không xem được thời khóa biểu của một lớp khác, của một giáo viên hay của một phòng học. Quản trị viên có thể giới hạn **khoảng thời gian học sinh được xem**: một thông số xác định số tuần sắp tới còn hiển thị, hoặc đặt quyền xem thành **Không giới hạn**. Xem [Giới hạn hiển thị](#page-admin.visibility-restrictions). #### Đồng bộ với lịch cá nhân Biểu tượng chia sẻ Chung trên chế độ xem thời khóa biểu mở cửa sổ Chung. Tab **iCal** của cửa sổ này cung cấp URL đăng ký cá nhân, để dán vào Google Calendar, Apple Calendar hoặc Outlook. URL có thể được sao chép, tải xuống thành tệp `.ics` hoặc quét bằng mã QR. Xem [iCal — đăng ký và liên kết động](#page-integrations.ical) để biết chi tiết. Ứng dụng lịch làm mới liên kết đăng ký theo định kỳ: khi thời khóa biểu thay đổi trong Omniscol, thay đổi đó xuất hiện trong lịch của học sinh. #### Khai báo vắng mặt Nếu nhà trường cho phép, học sinh có thể tự khai báo vắng mặt ngay trên cổng thông tin: ngày, giờ nếu có, lý do và nhận xét. Xem [Khai báo vắng mặt](#page-absences.declaring). Yêu cầu xuất hiện trong mô-đun Quản lý vắng mặt với trạng thái Đang chờ xử lý cho đến khi một quản trị viên phê duyệt. Biểu mẫu không có phần nộp giấy tờ chứng minh. #### Ngôn ngữ giao diện Ngôn ngữ giao diện đi theo ngôn ngữ trình duyệt của người dùng. Học sinh có thể chọn một ngôn ngữ khác từ mục Ngôn ngữ trong menu người dùng; lựa chọn này được ghi nhớ trên tài khoản cho những lần đăng nhập sau. #### Xem thêm - [Cổng thông tin giáo viên](#page-portal.teacher-portal) - [Cổng thông tin khách (phụ huynh, người quan sát)](#page-portal.guest-portal) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Khai báo vắng mặt](#page-absences.declaring) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) ### 10.2 Cổng thông tin giáo viên *Source: `help/vi/portal/teacher-portal.md` · id: portal.teacher-portal · Audience: teacher/admin · Plan: standard · Updated: 2026-06-26* **Cổng thông tin giáo viên** là giao diện dành riêng cho giáo viên. Giao diện này đáp ứng ba nhu cầu hằng ngày của một giáo viên: xem thời khóa biểu của mình, nhập thời gian rảnh, khai báo vắng mặt. Theo mặc định, cổng thông tin này còn cho phép xem thời khóa biểu của đồng nghiệp, của các lớp và của các phòng học. #### Thời khóa biểu của giáo viên Trong tuần hiện tại, giáo viên thấy **những tiết học do mình phụ trách**: môn học, lớp, nhóm, phòng học, giờ học. Có ba khung nhìn: - **Tuần** — khung nhìn dạng lưới tiêu chuẩn. - **Ngày** — khung nhìn lịch theo trình tự thời gian. - **Danh sách** — chuỗi tiết học theo trình tự thời gian, không có lưới, tiện dùng trên điện thoại. Mọi thay đổi của thời khóa biểu (dời hoặc hủy một tiết học, thêm một tiết học ngoại lệ) đều được phản ánh: mỗi lần mở hoặc tải lại khung nhìn, giáo viên đều thấy trạng thái mới nhất. #### Nhập thời gian rảnh Nếu nhà trường đã bật việc nhập thời gian rảnh, giáo viên mở hồ sơ cá nhân của mình qua mục **Thông tin** trong menu người dùng; tab **Thời gian rảnh** hiển thị một lưới để họ khai báo mong muốn cho lần lập thời khóa biểu tới: - khung giờ **Bận** — ràng buộc cứng, công cụ tạo tự động không bao giờ đặt tiết học vào đó, còn người lập thời khóa biểu thủ công nếu đặt vào đó sẽ gây ra lỗi tương thích, - khung giờ **Không mong muốn** — công cụ tạo tự động tránh đặt tiết học vào đó, nhưng không cấm tuyệt đối, còn người lập thời khóa biểu thủ công sẽ thấy một cảnh báo ở đó, - khung giờ **Ưu tiên** — công cụ tạo tự động ưu tiên đặt tiết học vào những khung giờ này. Các khoảng thời gian không được đánh dấu vẫn trung tính: rảnh, không có mong muốn riêng. Xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) để biết ý nghĩa chính xác của các màu và những cách nhập được khuyến nghị. Giáo viên cũng có thể thêm **nhận xét tự do** (`không dạy vào thứ Sáu vì một công việc chuyên môn khác`) giúp bộ phận quản trị hiểu rõ bối cảnh. #### Khai báo vắng mặt Nút **Khai báo vắng mặt** cho phép giáo viên tự báo thời gian mình không thể có mặt: - các ngày liên quan; - cả ngày hoặc từng khung giờ cụ thể; - lý do; - một nhận xét ngắn. Yêu cầu xuất hiện trong mô-đun **Quản lý vắng mặt** với trạng thái **Đang chờ xử lý** cho đến khi quản trị viên xác nhận. Việc thay thế sau đó được xử lý trong chính mô-đun này; biểu mẫu của cổng thông tin không dời tiết học và không đính kèm giấy tờ chứng minh. Xem [Khai báo vắng mặt](#page-absences.declaring). #### Xem thời khóa biểu của đồng nghiệp và của các lớp Theo mặc định, giáo viên có thể xem thời khóa biểu của các giáo viên khác (tiện để sắp lịch họp), của các lớp (để tìm một khung giờ trống cho một chuyến đi thực tế) và của các phòng học. Một thiết lập nghiêm ngặt (xem [Giới hạn hiển thị](#page-admin.visibility-restrictions)) sẽ ẩn thời khóa biểu của **các giáo viên khác**; thiết lập này chỉ áp dụng cho thời khóa biểu giữa các đồng nghiệp, còn quyền xem thời khóa biểu của các lớp và các phòng học vẫn mở. #### Đồng bộ với lịch cá nhân Giống như bên phía học sinh, biểu tượng chia sẻ **Chung** trong khung nhìn thời khóa biểu mở cửa sổ **Chung**, ở đó tab **iCal** cung cấp địa chỉ URL đăng ký riêng để dán vào Google Calendar, Apple Calendar hoặc Outlook. Xem [iCal — đăng ký và liên kết động](#page-integrations.ical). Tiện cho những giáo viên muốn thấy các tiết học của mình trong cùng một lịch với các cuộc họp và cuộc sống cá nhân. #### Xem thêm - [Cổng thông tin học sinh](#page-portal.student-portal) - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Khai báo vắng mặt](#page-absences.declaring) - [Giới hạn hiển thị](#page-admin.visibility-restrictions) ### 10.3 Cổng thông tin khách (liên kết công khai) *Source: `help/vi/portal/guest-portal.md` · id: portal.guest-portal · Plan: standard · Updated: 2026-05-15* **Cổng thông tin khách** ở đây dùng để chỉ việc một người không có tài khoản Omniscol tại trường tra cứu một thời khóa biểu. Trường hợp thường gặp là liên kết công khai đã ký: một URL bị giới hạn trong một phạm vi xác định, mở ở chế độ chỉ đọc. #### Các cách truy cập Tùy theo nhu cầu, hãy chọn giữa: - **Liên kết công khai đã ký** — một URL chứa mã thông báo bí mật cho phép truy cập một thời khóa biểu cụ thể (một học sinh, một lớp, một phòng học, một giáo viên) mà không cần xác thực. Tiện khi chia sẻ với phụ huynh: chỉ một liên kết, không phải nhớ mật khẩu. Xem [Liên kết chia sẻ công khai](#page-portal.share-links). - **Tài khoản Omniscol bị giới hạn** — nếu người đó cần quyền truy cập lâu dài, có định danh hoặc trải trên nhiều phạm vi, thay vào đó hãy tạo một tài khoản với vai trò và quyền phù hợp. Đừng trình bày trường hợp này như một liên kết công khai ẩn danh. #### Khách nhìn thấy những gì Khách xem thời khóa biểu ở **chế độ chỉ đọc nghiêm ngặt**: - không sửa được gì, - không khai báo được vắng mặt, - không nhập được thời gian rảnh, - không vào được các thời khóa biểu ngoài phạm vi ghi trong liên kết. Liên kết mở đúng màn hình tra cứu đã định, ở chế độ chỉ đọc. Với một **thời khóa biểu**, giao diện tự động được rút gọn — bỏ thanh trên cùng và menu của ứng dụng — cho ra một trang chỉ tập trung vào lịch. Cách hiển thị này tương ứng với tham số `raw=true` trên URL: được đặt sẵn cho các liên kết thời khóa biểu, tùy chọn trên những màn hình khác, và người dùng thành thạo có thể tự thêm vào. Nó không thay đổi việc xác thực, cũng không thay đổi phạm vi của liên kết. Một số liên kết chia sẻ phục vụ một thao tác cụ thể chứ không phải để tra cứu: liên kết nhập thời gian rảnh của giáo viên chỉ cho phép dùng đúng biểu mẫu đã định, cho tới ngày hết hạn. #### Tình huống sử dụng: phụ huynh học sinh (phổ thông) Kịch bản điển hình ở bậc trung học cơ sở và trung học phổ thông: 1. Quản trị viên (hoặc chính học sinh) tạo liên kết chia sẻ thời khóa biểu của học sinh. 2. Liên kết được gửi cho phụ huynh qua e-mail. 3. Phụ huynh mở liên kết: họ thấy thời khóa biểu của con mình. 4. Cũng từ chính liên kết đó, họ có thể đăng ký bằng iCal và có thời khóa biểu ngay trong Google Calendar / Apple Calendar. Không phải tạo tài khoản, không phải quản lý mật khẩu. #### Tình huống sử dụng: người quan sát thường trực Nếu một cố vấn chuyên môn bên ngoài phải theo dõi một chương trình đào tạo suốt cả năm, đừng mặc định dùng liên kết công khai ẩn danh. Hãy tạo một tài khoản Omniscol bị giới hạn trong đúng phạm vi cần thiết, hoặc thiết lập một bản chia sẻ có chữ ký với thời hạn ngắn và được gia hạn có kiểm soát. #### Bảo mật - Một liên kết công khai đã ký vẫn dùng được cho tới ngày hết hạn. Nó mất hiệu lực nếu mật khẩu của tài khoản gắn với nó thay đổi (hoặc nếu tài khoản đó bị vô hiệu hóa); một liên kết iCal cũng mất hiệu lực khi khóa truy cập của trường được thay mới. - Một tài khoản Omniscol bị giới hạn có thể bị vô hiệu hóa như mọi tài khoản người dùng khác. - Không được coi quyền truy cập bằng liên kết công khai như một người dùng nội bộ đã xác thực. #### Xem thêm - [Liên kết chia sẻ công khai](#page-portal.share-links) - [Cổng thông tin học sinh](#page-portal.student-portal) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) ### 10.4 Liên kết chia sẻ công khai *Source: `help/vi/portal/share-links.md` · id: portal.share-links · Audience: admin · Plan: standard · Updated: 2026-06-13* **Liên kết chia sẻ công khai** là một URL đã ký, mở một màn hình tra cứu — thường là một thời khóa biểu — ở chế độ chỉ đọc mà không cần đăng nhập. Đây là cách đơn giản nhất để gửi lịch cho người không có (và sẽ không có) tài khoản Omniscol: một phụ huynh, một đối tác bên ngoài, một bộ phận hành chính. #### Các định dạng được cung cấp Tùy theo ngữ cảnh và quyền của người thực hiện chia sẻ, Omniscol có thể tạo ra nhiều URL đã ký: - **Trang web tương thích mọi màn hình** — hiển thị duyệt được theo kiểu cổng thông tin, với các khung nhìn tuần / ngày / danh sách. Đây là những gì người mở liên kết trong trình duyệt nhìn thấy. - **Luồng iCal (`.ics`)** — đăng ký động cho Google Calendar, Apple Calendar, Outlook. Xem [iCal — đăng ký và liên kết động](#page-integrations.ical). - **JSON (API)** — dành cho lập trình viên và các tích hợp máy với máy, khi định dạng này được cho phép. Không phải lúc nào cũng có đủ ba định dạng: hộp thoại chỉ hiển thị những tab thực sự được tạo cho lựa chọn hiện tại. #### Có thể chia sẻ những gì? Chức năng chia sẻ không chỉ giới hạn ở màn hình tra cứu thời khóa biểu: cùng biểu tượng chia sẻ **Chung** đó xuất hiện trên hầu hết các màn hình của Omniscol. **Ở chế độ chỉ đọc**, bạn có thể chia sẻ: - **thời khóa biểu của một đối tượng** — học sinh, lớp, giáo viên, phòng học hoặc môn học: trường hợp thường gặp nhất (phụ huynh, đồng nghiệp, giáo viên thỉnh giảng, bộ phận kỹ thuật); - **toàn bộ màn hình thời khóa biểu** của mô-đun **Thời khóa biểu**; - sáu **trang tổng quan** (giáo viên, phòng học, tài nguyên, môn học, lớp, học sinh); - các màn hình **theo dõi vắng mặt** (giáo viên, lớp, học sinh, nhân viên); - các **bảng phân công** của mô-đun **Quản lý nhân sự** (lưới trực ban, phân công, lịch trực, phiếu điểm danh); - các màn hình **xem**, **tổ chức lại** và **trình bày** một thời khóa biểu; - màn hình chi tiết của một giáo viên hoặc một thành viên nhân sự. **Ở chế độ đọc và ghi** — chỉ có hai trường hợp — bạn chia sẻ màn hình **nhập thời gian rảnh** của một giáo viên hoặc một thành viên nhân sự: liên kết dành riêng cho việc này cho phép chính người đó khai báo và xác nhận thời gian rảnh của mình, đồng thời chỉnh sửa hồ sơ, cho tới ngày hết hạn, **không cần tài khoản hay mật khẩu** Omniscol. Liên kết gắn với danh tính của người đó và chỉ xuất hiện trên phiếu thông tin của chính họ. Ràng buộc thời gian của lớp, phòng học, nhóm hay môn học vẫn là những màn hình chỉnh sửa nội bộ: không thể thu thập chúng bằng liên kết chia sẻ. Mỗi URL đã ký đều mang theo phạm vi được yêu cầu và một ngày hết hạn. #### Tạo một liên kết chia sẻ Từ mô-đun **Thời khóa biểu**, hãy chọn thời khóa biểu cần chia sẻ (học sinh, lớp, phòng học…) rồi bấm biểu tượng chia sẻ **Chung**. Cửa sổ **Chung** mở ra cung cấp: - **Ngày hết hạn** — ngày cuối cùng mà các URL đã tạo còn hiệu lực. - **Các tab Web, iCal và JSON** — hiển thị tùy theo những định dạng được tạo cho lần chia sẻ này. Sau đó bạn sao chép URL cần dùng. Hộp thoại có thể hiển thị một mã QR cho những liên kết dành cho người đọc trực tiếp. #### Giới hạn hoặc hủy hiệu lực một liên kết Chức năng chia sẻ công khai không lưu sổ các liên kết đã phát hành: Omniscol không cung cấp danh sách tổng hợp những liên kết đã gửi đi, không có bộ đếm lượt truy cập, cũng không thu hồi được từng liên kết riêng lẻ. Vì vậy, việc hủy hiệu lực phải đi qua tài khoản sở hữu (mật khẩu, vô hiệu hóa) và qua ngày hết hạn. Để hạn chế rủi ro: - hãy chọn ngày hết hạn gần; - chỉ chia sẻ đúng phạm vi cần thiết; - với những lần phát hành do cả một đội ngũ quản lý, hãy dùng một **tài khoản dịch vụ được đặt tên rõ ràng** thay vì tài khoản cá nhân; - nếu liên kết bị phát tán ngoài ý muốn, hãy đổi hoặc đặt lại mật khẩu của tài khoản sở hữu, hoặc vô hiệu hóa tài khoản đó nếu cần. Việc đổi mật khẩu làm mất hiệu lực các liên kết thuộc tài khoản đó, kể cả khi mật khẩu mới giống hệt mật khẩu cũ, vì giá trị băm được lưu trữ đã thay đổi. Vô hiệu hóa hoặc xóa tài khoản sở hữu cũng cắt luôn quyền truy cập. #### Bảo mật - URL chứa một mã thông báo đã ký và khó đoán. - Liên kết chỉ mở **đúng những màn hình được ghi trong mã thông báo**, chứ không mở phần còn lại của tài khoản. Với **thời khóa biểu của một đối tượng** (và với mọi luồng **iCal**), bộ lọc được cố định ngay trong mã thông báo: người nhận chỉ xem được đúng đối tượng đó — một phụ huynh có liên kết thời khóa biểu của con mình không thể xem thời khóa biểu của một học sinh khác. Ngược lại, khi chia sẻ **toàn bộ màn hình thời khóa biểu**, liên kết phản ánh **quyền của tài khoản đã tạo ra nó**: để gửi ra bên ngoài với phạm vi hẹp, hãy chia sẻ thời khóa biểu của đúng đối tượng cần xem thay vì cả màn hình. - Thời hạn hiệu lực bị giới hạn bởi ngày hết hạn. - Hiệu lực còn phụ thuộc vào tài khoản sở hữu: đổi mật khẩu, vô hiệu hóa hoặc xóa tài khoản đều làm mất hiệu lực các liên kết gắn với nó. - Bất kỳ ai có URL đều xem được phạm vi đã chia sẻ cho tới khi liên kết hết hạn hoặc mất hiệu lực. #### Nhúng thời khóa biểu vào một trang web (iframe) **Hiện tại, điều này không làm được trên một trang web khác.** Để phòng chống kiểu tấn công đánh cắp cú nhấp chuột, Omniscol không cho phép trang của mình hiển thị trong một khung (`iframe`) đặt trên tên miền khác. Nếu bạn thử nhúng một thời khóa biểu vào cổng thông tin của trường, mạng nội bộ hay trang web công khai của trường, trình duyệt sẽ **từ chối** hiển thị khung đó. Khóa bảo mật này do Omniscol đặt ra và không thể thay đổi từ tài khoản của trường. Ngoại lệ duy nhất, hiếm gặp trong thực tế, là một trang nằm trên đúng cùng tên miền với bản cài đặt Omniscol của bạn. Nếu vẫn muốn đưa một thời khóa biểu lên một trang web bên ngoài, có ba cách đơn giản: - **một liên kết** tới URL chia sẻ: người đọc mở thời khóa biểu trong một tab mới, không cần khung nhúng; - **một đăng ký iCal**, để thời khóa biểu xuất hiện ngay trong lịch cá nhân của người đó (Google Calendar, Outlook…) — xem [iCal — đăng ký và liên kết động](#page-integrations.ical); - **một bảng thông tin**, dành cho màn hình công cộng đặt trong khuôn viên trường — xem [Bảng thông tin](#page-panels.lobby-panel). #### Hướng dẫn — Tạo liên kết cho phụ huynh kèm ngày hết hạn 1. **Để chia sẻ thời khóa biểu của một lớp với phụ huynh** mà không phải tạo tài khoản cho họ: một liên kết công khai đã ký, có giới hạn thời gian. 2. **Mở thời khóa biểu cần chia sẻ** trong mô-đun **Thời khóa biểu**: chọn lớp liên quan. Biểu tượng chia sẻ **Chung** nằm trên thanh tiêu đề của khung nhìn. 3. **Cửa sổ chia sẻ**: hãy chọn **ngày hết hạn**. Với một lần chia sẻ cho phụ huynh, đừng đặt xa hơn thời điểm kết thúc học kỳ liên quan. 4. **Sao chép định dạng bạn cần.** Web để xem trực tiếp, iCal để đăng ký vào lịch, JSON chỉ khi có dự kiến tích hợp API. Omniscol còn có thể hiển thị mã QR cho bản phát hành in giấy. 5. **Gửi liên kết** qua kênh đã định: buổi họp phụ huynh, bản tin, cổng thông tin của trường, mạng nội bộ hoặc tin nhắn gửi riêng. 6. **Nếu liên kết lan ra ngoài phạm vi mong muốn**, hãy tạo một liên kết mới hạn chế hơn rồi hủy hiệu lực các liên kết thuộc tài khoản cũ nếu cần: đổi mật khẩu, vô hiệu hóa hoặc xóa tài khoản sở hữu. #### Xem thêm - [Cổng thông tin khách (phụ huynh, người quan sát)](#page-portal.guest-portal) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) --- ## 11. Bảng thông tin ### 11.1 Cấu hình bảng thông tin cho sảnh hay hành lang *Source: `help/vi/panels/lobby-panel.md` · id: panels.lobby-panel · Audience: admin · Plan: standard · Updated: 2026-05-12* Một **bảng thông tin** là một trang web cần mở ở chế độ toàn màn hình trong trình duyệt, trên tivi, màn hình rời hay máy tính bảng, để phát cho mọi người trong trường xem các tiết học và sự kiện của ngày hôm đó. Đây là mô-đun cần dùng cho màn hình sảnh đón tiếp, màn hình đặt trong hành lang, trước cửa một phòng thí nghiệm hay đối diện một giảng đường: nội dung chỉ phụ thuộc vào những gì bạn lọc, chứ không phụ thuộc vào nơi đặt màn hình. Bạn có thể tạo bao nhiêu bảng thông tin tùy ý, mỗi bảng có bộ lọc riêng và URL truy cập riêng. #### Tạo một bảng thông tin mới Trong mô-đun **Thời khóa biểu**, nút **Bảng thông tin** mở màn hình cấu hình. Danh sách bên trái hiển thị các bảng thông tin hiện có; nút **Thêm** (màu xanh lá) tạo một bảng thông tin mới còn trống. Bạn cũng có thể **nhân bản** một bảng thông tin sẵn có bằng **Tạo bản sao**, cách này nhanh hơn nếu bạn quản lý cả một dàn màn hình dùng chung bộ nhận diện. Mỗi bảng thông tin mang một **Tên** để bạn tìm lại được trong danh sách, và một **Tiêu đề** hiển thị ở phía trên màn hình công cộng. Hai giá trị này có thể khác nhau: `Sảnh chính — cơ sở A` bên phía quản trị, `Chào mừng đến với Trường X — cơ sở A` bên phía màn hình. #### Lọc các tiết học được hiển thị Bộ lọc chính — thuộc tính **Để hiển thị** — quyết định những gì lên màn hình. Bốn trục bổ trợ cho nhau: - **Khối lớp** — toàn bộ các lớp của một khối cùng một lúc (chẳng hạn tất cả các lớp khối 6). - **Lớp** — chọn tường minh một hoặc nhiều lớp. - **Cơ sở** — toàn bộ phòng học của một cơ sở (hữu ích cho màn hình đặt tại sảnh của một cơ sở cụ thể). - **Phòng học** — chọn tường minh một hoặc nhiều phòng học (hữu ích cho bảng thông tin bao quát cả một cánh của tòa nhà). Bộ lọc để trống = tất cả các tiết học. Đây là mặc định phù hợp cho màn hình ở sảnh trung tâm, vốn phải cho thấy mọi việc đang diễn ra khắp trường. Một danh sách thứ hai — **Ẩn giấu** — cho phép loại bỏ có chọn lọc một số tiết học khỏi luồng đã giữ lại: - **Môn học** cần ẩn (chẳng hạn không hiển thị môn Thể dục nếu môn này diễn ra xa tòa nhà chính), - **Loại tiết học** cần ẩn (chẳng hạn ẩn các kỳ thi không nên thông báo công khai). Bộ lọc và danh sách ẩn cộng dồn với nhau: giữ lại tất cả những gì khớp bộ lọc, rồi bỏ đi những gì khớp danh sách ẩn. #### Chỉnh khoảng giờ được hiển thị Thuộc tính **Khung giờ** quyết định bảng thông tin cho thấy trước bao nhiêu tiết học: - **Cuối ngày** (mặc định) — chạy lần lượt các tiết học đang diễn ra và sắp tới trong ngày (tiết học đang diễn ra vẫn hiển thị đến giờ kết thúc của nó). Phù hợp với màn hình phục vụ suốt cả ngày. - **cửa sổ trượt** — theo bước 30 phút cho đến **+ 2 giờ**, rồi theo giờ tròn cho đến **+ 12 giờ**. Bảng thông tin chỉ hiển thị những gì bắt đầu trong cửa sổ đã chọn tính từ giờ hiện tại. Hữu ích cho màn hình sảnh có quá nhiều nội dung, khi bạn muốn tránh một bức tường thông tin: chẳng hạn chỉ cho thấy hai giờ sắp tới. Việc làm mới diễn ra tự động phía trình duyệt, không cần tải lại thủ công; khi giờ hiện tại trôi đi, các tiết học đã qua rời khỏi cửa sổ và các tiết tiếp theo lọt vào. #### Thêm các thông báo tạm thời Mục **Thông tin** cho phép hiển thị một hoặc nhiều thông báo dạng chữ trên bảng thông tin, mỗi thông báo có khoảng giờ riêng. Các trường hợp điển hình: - thông báo một sự kiện (`Họp phụ huynh tại phòng B204 lúc 17:30`), - báo trước một sự gián đoạn (`Thi công ở cánh nam, đi vào bằng lối cửa sau`), - phát một lời chào mừng (`Chào mừng đến với Ngày hội mở cửa`). Mỗi thông báo gồm một đoạn văn bản tự do, một giờ bắt đầu và một giờ kết thúc. Ngoài khoảng giờ đó, thông báo tự động biến mất — bạn không phải quay lại gỡ nó xuống sau đó. #### Lấy URL công khai của bảng thông tin Sau khi lưu, mỗi bảng thông tin có một **URL riêng** để mở ở chế độ toàn màn hình trên thiết bị đích. URL này chứa một mã băm bí mật cho phép truy cập mà không cần đăng nhập — chính điều đó cho phép một chiếc tivi chưa xác thực hiển thị được nội dung. Chừng nào mã băm chưa bị phát tán công khai, bảng thông tin vẫn không thể truy cập được. Thực hành tốt: mở URL này trong trình duyệt ở chế độ **kiosk toàn màn hình** (Chrome `--kiosk`, Firefox F11), tốt nhất là trên một máy tính mini hay một hộp phát nội dung số gắn vào màn hình. Trình duyệt tự lo việc làm mới và cuộn nội dung. #### Hướng dẫn — Tạo một bảng thông tin 1. **Bảng thông tin là một trang web** cần mở ở chế độ toàn màn hình trên tivi hay màn hình rời để phát các tiết học của ngày hôm đó. 2. **Nhấn vào** **Thêm** để tạo một bảng thông tin mới còn trống. Bạn cũng có thể nhân bản một bảng thông tin sẵn có để có ngay một nền sẵn — tiết kiệm thời gian nếu bạn quản lý cả một dàn màn hình cùng bộ nhận diện. 3. **Điền tên gọi** (**Tên** — bên phía quản trị, để bạn tìm lại được trong danh sách) và **tiêu đề** (hiển thị ở phía trên màn hình công cộng). Chẳng hạn: `Sảnh chính — cơ sở A` bên phía quản trị, `Chào mừng đến với Trường X` bên phía màn hình. 4. **Chọn bộ lọc các tiết học** trong thuộc tính **Để hiển thị**: khối lớp, lớp, cơ sở hay phòng học. Bộ lọc để trống = tất cả các tiết học. Với bảng thông tin ở sảnh trung tâm, thường là để trống. Với màn hình đặt trước cửa một phòng học, hãy chọn đúng phòng học đó. 5. **Thêm các thông báo tạm thời nếu cần** kèm khoảng giờ của chúng (cuộc họp, gián đoạn, lời chào). Ngoài khoảng giờ đó, thông báo tự động biến mất khỏi màn hình. 6. **Lưu lại.** Bạn nhận được URL riêng của bảng thông tin, để mở ở chế độ toàn màn hình trên thiết bị đích (Chrome `--kiosk`, Firefox F11). Từ đó việc làm mới diễn ra tự động. #### Xem thêm - [Bảng thông tin](#page-glossary.panel) - [Bảng thông tin trước phòng học](#page-panels.room-panel) - [Tùy chỉnh bảng thông tin](#page-panels.customization) ### 11.2 Cấu hình bảng thông tin trước cửa một phòng học *Source: `help/vi/panels/room-panel.md` · id: panels.room-panel · Audience: admin · Plan: standard · Updated: 2026-06-13* **Bảng thông tin trước cửa một phòng học** là một trường hợp riêng của bảng thông tin: cấu hình giống hệt bảng thông tin ở sảnh, nhưng bộ lọc nhắm vào **một phòng học duy nhất** thay vì một cơ sở hay một khối lớp. Màn hình đặt cạnh cửa ra vào chỉ hiển thị tình hình sử dụng của đúng phòng học đó, tức là trả lời câu hỏi mà mọi người ngoài hành lang đang tự đặt ra: *“phòng này bây giờ đang có gì, rồi tiếp theo là gì?”* Các trường hợp điển hình: - cửa một giảng đường, - lối vào một phòng thí nghiệm hoặc một phòng máy tính, - một phòng đa năng dùng chung cho nhiều ngành đào tạo, - một phòng thu hoặc một xưởng thực hành (âm nhạc, thiết kế, video). #### Cấu hình Mô-đun **Thời khóa biểu** vẫn dùng đúng nút **Bảng thông tin** như với bảng thông tin ở sảnh. Khác biệt nằm ở bộ lọc: trong phần **Để hiển thị**, hãy chọn **Phòng học** rồi chọn đúng một phòng học tương ứng. Các thiết lập còn lại giống hệt bảng thông tin ở sảnh: - **Tên** ở phía quản trị (ví dụ `Cửa B204`), **Tiêu đề** ở phía màn hình (ví dụ `Phòng B204 — Khoa học tự nhiên`). - **Khung giờ**: nên chọn **+ 2h** hoặc **+ 4h** thay vì cả ngày — với một phòng học, người xem chủ yếu muốn biết tiết học đang diễn ra và tiết kế tiếp. - **Cỡ chữ**: mức **Lớn** thường phù hợp với màn hình nhìn từ khoảng 1-2 mét ngoài hành lang, nhỏ hơn nếu màn hình ở gần. - **Thông tin**: tiện để báo một lượt đặt phòng đơn lẻ (`Phòng đã đặt cho buổi họp phụ huynh lúc 14h`) hoặc một khoảng không sử dụng được (`Phòng bảo trì đến 15h`). #### Nhiều phòng học trên cùng một màn hình Nếu một màn hình bao quát nhiều phòng học liền kề (một cánh của tòa nhà, các phòng của cùng một khu thí nghiệm), bạn có thể chọn nhiều phòng học trong bộ lọc. Khi đó tiết học của tất cả các phòng học được chọn sẽ **gộp thành một danh sách duy nhất, sắp theo giờ**; nếu danh sách dài quá màn hình, bảng thông tin sẽ **chia trang** (lật lần lượt từng trang). Nó không luân phiên từng phòng học một. Muốn hiển thị thật sự tách riêng theo từng phòng học, hãy tạo một bảng thông tin cho mỗi phòng học — mỗi bảng có URL riêng. Cùng một máy tính mini vẫn có thể hiển thị nhiều bảng thông tin bằng cách luân phiên nhiều tab toàn màn hình, qua chế độ kiosk của trình duyệt hoặc của hệ điều hành (đây không phải là một thiết lập của Omniscol). #### URL và triển khai Mỗi bảng thông tin có URL riêng, không cần đăng nhập, mở ở chế độ kiosk toàn màn hình trên thiết bị đặt cạnh cửa. Việc làm mới diễn ra tự động, theo cơ chế hỏi lại định kỳ: nội dung hiển thị được lọc lại theo giờ hiện tại khoảng mỗi phút một lần, còn dữ liệu được tải lại năm phút một lần — không cần thao tác thủ công, nhưng cập nhật không tức thì. #### Hướng dẫn — Tạo một bảng thông tin trước cửa một phòng học 1. **Bảng thông tin trước cửa một phòng học** hiển thị tình hình sử dụng của phòng học đó trong vài giờ tới. Khác với bảng thông tin ở sảnh: bộ lọc chỉ một phòng học, khung giờ ngắn, cỡ chữ phù hợp để đọc từ ngoài hành lang. 2. Nhấn **Thêm** trong mô-đun **Thời khóa biểu** để tạo một bảng thông tin mới (hoặc nhân bản một bảng thông tin ở sảnh có sẵn rồi chỉnh lại). 3. **Điền tên và tiêu đề.** Tên ở phía quản trị (`Cửa B204`), tiêu đề ở phía màn hình (`Phòng B204 — Khoa học tự nhiên`). Tiêu đề chính là thứ mọi người ngoài hành lang nhìn thấy. 4. **Bộ lọc: phần Để hiển thị → Phòng học**, chọn **đúng phòng học tương ứng**. Với màn hình bao quát cả một cánh của tòa nhà (nhiều phòng học liền kề), hãy chọn hết — tiết học của chúng được gộp thành một danh sách sắp theo giờ, chia trang nếu cần. 5. **Các thiết lập riêng cho màn hình trước cửa phòng học:** - **Khung giờ**: nên chọn `+ 2h` hoặc `+ 4h` thay vì cả ngày — người xem muốn biết tiết học đang diễn ra và tiết kế tiếp. - **Cỡ chữ**: `Lớn` cho màn hình nhìn từ 1-2 m. - **Thông tin**: hữu ích để báo một lượt đặt phòng đơn lẻ hoặc một khoảng không sử dụng được. 6. **Lưu lại.** Lấy URL riêng của bảng thông tin, mở ở chế độ kiosk toàn màn hình trên thiết bị đặt cạnh cửa. Làm mới tự động theo cơ chế hỏi lại định kỳ (lọc lại khoảng mỗi phút, tải lại dữ liệu năm phút một lần). #### Xem thêm - [Bảng thông tin](#page-glossary.panel) - [Bảng thông tin](#page-panels.lobby-panel) - [Tùy chỉnh bảng thông tin](#page-panels.customization) ### 11.3 Tùy chỉnh giao diện bảng thông tin *Source: `help/vi/panels/customization.md` · id: panels.customization · Audience: admin · Plan: standard · Updated: 2026-05-12* Bảng thông tin của Omniscol được thiết kế để hòa hợp về mặt hình ảnh với bộ nhận diện của trường bạn. Có hai mức tùy chỉnh: (1) các thiết lập **trong giao diện** (đủ dùng cho phần lớn trường hợp), (2) **thay thế hoàn toàn** trang web hiển thị bảng thông tin (dành cho những triển khai có bản sắc thị giác mạnh). #### Thiết lập trong giao diện Trong mô-đun **Thời khóa biểu**, nút **Bảng thông tin** mở màn hình cấu hình bảng thông tin. Màn hình này cung cấp các tùy chọn hiển thị sau, thay đổi được mà không cần đụng đến mã nguồn: - **Cỡ chữ** — nhỏ, vừa hoặc lớn. Phần hiển thị dùng đơn vị tương đối theo kích thước cửa sổ (`vmin`), nên độ dễ đọc vẫn nhất quán dù màn hình ở định dạng nào (`16:9`, `4:3`, dọc). - **Màu sắc** — màu nền, màu chữ, màu của các dòng chẵn và dòng lẻ trong lưới tiết học. Mọi mã màu thập lục phân đều được chấp nhận; bạn có thể tái hiện đúng bảng màu của bộ nhận diện. - **Dải tiêu đề** — tổ hợp có thứ tự của: **tiêu đề**, **logo**, **ngày hôm nay**. Bạn chọn nội dung nào xuất hiện ở phần đầu trang và theo thứ tự nào. - **Cột của lưới** — chọn và sắp xếp trong số: **phòng học**, **lớp**, **giáo viên**, **môn học**, **thời gian**. Ẩn một cột (ví dụ cột giáo viên trên bảng thông tin công khai đặt ở lối vào) hay đổi thứ tự cột đều có hiệu lực ngay. - **Định dạng tên giáo viên** — tên-họ, họ-tên, danh xưng + họ (Bà Nguyễn), danh xưng + tên. Các danh xưng `Ông` và `Bà` tự động theo ngôn ngữ của giao diện; điều bạn đặt riêng cho từng bảng là **định dạng** đã chọn. - **Logo** — logo đã tải lên trong phần cấu hình của trường có thể hiển thị trên dải tiêu đề. Các thiết lập này được lưu trong cấu hình của bảng thông tin. Lưu ý: khác với tiết học và thông báo vốn tự làm mới, những tùy chọn **hình ảnh** này (màu sắc, cỡ chữ, cột, dải tiêu đề, định dạng tên) được nhúng vào trang ngay lúc trang được tải. Sau khi lưu, hãy **tải lại các thẻ trình duyệt** đang mở trên những màn hình đó (F5 hoặc khởi động lại trang ở chế độ kiosk) để chúng nhận giao diện mới. #### Thay thế hoàn toàn mẫu trang (giấy phép MIT) Mẫu trang dùng để hiển thị bảng thông tin được ghi rõ là theo **giấy phép MIT** và có thể sao chép rồi chỉnh sửa để tùy biến bảng thông tin của một trường. Điều đó mở ra nhiều hướng đi cho những trường muốn tiến xa hơn các thiết lập có sẵn: - **Làm lại toàn bộ giao diện** — viết lại HTML/CSS của mẫu trang để bám sát một bộ nhận diện mạnh (phông chữ riêng, hiệu ứng động đặc thù, bố cục không theo chuẩn). - **Tích hợp vào hệ thống hiển thị (signage) sẵn có** — nhúng nội dung của một bảng thông tin Omniscol vào một trang hiển thị tổng thể, nơi luân phiên tiết học, thời tiết, tin tức của trường, video… - **Dạng xem riêng theo nghiệp vụ** — chẳng hạn tạo màn hình cho nhân viên giám thị (ai phải làm gì), cho bộ phận kỹ thuật (tình trạng sử dụng phòng học kèm nhu cầu thiết bị), v.v. Để làm việc đó, có hai cách tiếp cận bổ trợ cho nhau: 1. **Fork mẫu trang** — nếu bạn tự lưu trữ Omniscol, hãy nhân bản `panel.dot`, sửa lại rồi triển khai phiên bản của bạn. Giấy phép MIT cho phép rõ ràng việc sửa đổi, phân phối lại và sử dụng cho mục đích thương mại. 2. **API JSON của bảng thông tin** — nếu bạn muốn giữ Omniscol làm nguồn dữ liệu nhưng để bên thứ ba lo phần hiển thị, URL của bảng thông tin còn cung cấp một biến thể JSON (`GET /panels/:accesshash/lessons`). Nó trả về danh sách các tiết học đã lọc theo cấu hình của bảng, sẵn sàng cho một hệ thống signage bên thứ ba sử dụng (Yodeck, Xibo, ScreenCloud, hoặc một trang tổng quan tự xây). URL này mở được bằng khóa truy cập của bảng, không cần thêm mã thông báo nào. Với những tích hợp hệ thống với hệ thống ở quy mô lớn hơn, API REST của Omniscol được mô tả trong [API Omniscol](#page-integrations.api-tokens). #### Khuyến nghị thực tế Vài điểm thường gặp trong các đợt triển khai: - **Độ tương phản** — nền tối kèm chữ sáng dễ chịu cho mắt hơn nền trắng khi màn hình chạy 12 giờ mỗi ngày. - **Cỡ chữ "Lớn"** ngay khi màn hình được đọc từ khoảng cách trên 2 m (điển hình là sảnh lối vào). Giữ "Vừa" cho màn hình đặt trước cửa phòng học, vốn được nhìn ở khoảng cách gần. - **Logo trên dải tiêu đề** — luôn hữu ích để nhận biết nhanh khi nhiều bảng thông tin cùng tồn tại trong một cơ sở lớn. - **Ngày trên dải tiêu đề** — hữu ích ở sảnh (khách đến trường hay xem ngày), ít hữu ích hơn khi đặt trước một phòng học (bối cảnh đã rõ). - **Ẩn cột giáo viên** trên các bảng thông tin công khai nếu trường bạn có quy định nội bộ về việc hiển thị họ tên. #### Hướng dẫn — Áp bộ nhận diện của trường lên một bảng thông tin 1. **Hai mức tùy chỉnh**: (1) thiết lập trong giao diện (đủ dùng trong 90% trường hợp), (2) thay thế hoàn toàn mẫu trang MIT cho những bộ nhận diện mạnh. 2. **Mở cấu hình của bảng thông tin** trong mô-đun **Thời khóa biểu**, qua nút **Bảng thông tin**. Màn hình cho thấy các tùy chọn hiển thị: màu sắc, cỡ chữ, dải tiêu đề, cột, định dạng tên. 3. **Chỉnh màu theo bộ nhận diện của bạn**: màu nền, màu chữ, màu các dòng chẵn/lẻ. Chấp nhận mã màu thập lục phân. Với màn hình chạy 12 giờ mỗi ngày, hãy ưu tiên **nền tối kèm chữ sáng** (dễ chịu cho mắt hơn). 4. **Dải tiêu đề**: chọn thứ tự của **logo**, **tiêu đề**, **ngày**. Logo hữu ích ngay khi một cơ sở có nhiều bảng thông tin. Ngày hữu ích ở sảnh, có thể bỏ khi đặt trước phòng học. 5. **Cột của lưới**: chọn và sắp xếp lại trong số phòng học, lớp, giáo viên, môn học, thời gian. Với bảng thông tin **công khai đặt ở lối vào** mà quy định nội bộ của trường cấm hiển thị họ tên, hãy ẩn cột **giáo viên**. **Định dạng tên** (nếu vẫn giữ cột): tên-họ, họ-tên, danh xưng+họ, danh xưng+tên. 6. **Cỡ chữ**: lớn ngay khi màn hình được đọc từ trên 2 m (sảnh), vừa cho màn hình trước cửa phòng học (nhìn gần). Đơn vị tương đối `vmin` — độ dễ đọc vẫn nhất quán dù màn hình ở định dạng nào. 7. **Lưu lại, rồi tải lại các màn hình.** Những thiết lập hiển thị này được nhúng vào trang lúc tải: hãy tải lại (F5) các thẻ trình duyệt đang mở trên các bảng thông tin để chúng nhận giao diện mới. **Để đi xa hơn** (làm lại toàn bộ giao diện, tích hợp với hệ thống signage bên thứ ba Yodeck/Xibo/ScreenCloud): mẫu trang `panel.dot` nằm dưới **giấy phép MIT**, được phép fork. Biến thể JSON của URL bảng thông tin (`GET /panels/:accesshash/lessons`) cung cấp dữ liệu sẵn sàng cho một hệ thống bên ngoài sử dụng, với khóa truy cập của bảng. Về API REST rộng hơn, xem [API Omniscol](#page-integrations.api-tokens). #### Xem thêm - [Bảng thông tin](#page-panels.lobby-panel) - [Bảng thông tin trước phòng học](#page-panels.room-panel) - [Bảng thông tin](#page-glossary.panel) - [API Omniscol](#page-integrations.api-tokens) --- ## 12. Chuyển đổi từ phần mềm khác ### 12.1 Chuyển đổi từ một phần mềm khác sang Omniscol — Tổng quan *Source: `help/vi/migration/overview.md` · id: migration.overview · Audience: admin · Updated: 2026-05-10* Bạn chuyển sang Omniscol từ một phần mềm quản lý thời khóa biểu khác? Có nhiều cách, tùy theo phần mềm nguồn và mức độ đầy đủ của dữ liệu xuất ra được. #### Các cách chuyển dữ liệu hiện có ##### 1. Bộ nhập định dạng gốc Với hai phần mềm, Omniscol đọc thẳng tệp xuất ra ở định dạng gốc, không cần đi qua bảng tính trung gian: bạn chọn tệp (hoặc các tệp) ngay trên màn hình Nhập và xuất dữ liệu (phần nhập UnDeuxTEMPS, gồm nhiều tệp `.DBF`, nằm trong mục các định dạng của Pháp). | Phần mềm nguồn | Định dạng đọc trực tiếp | Trang riêng | | --- | --- | --- | | ASC Timetables | tệp XML của aSc | [Từ aSc Timetables](#page-migration.from-asc) | | UnDeuxTEMPS | các tệp UDT (`.DBF`) | [migration.from-undeuxtemps](#page-migration.from-undeuxtemps) | Với các phần mềm còn lại (Hyperplanning, EDT / Pronote, ADE), việc chuyển dữ liệu đi qua **nhập hàng loạt** bằng bảng tính, mô tả ở mục 2: bạn xuất dữ liệu từ phần mềm nguồn, sắp xếp lại trong một bảng tính, rồi nhập vào. Mỗi trang dưới đây nêu rõ các điểm tương ứng và những cái bẫy riêng của từng phần mềm: - [Từ Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [Từ EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [Từ ADE / ADE Campus](#page-migration.from-ade) > **Aurion và Auriga** là các hệ thống **ERP** (quản lý hành chính > nhà trường), không phải phần mềm xếp lịch. Omniscol kết nối với > chúng chứ không thay thế chúng. Xem > [integrations.aurion](#page-integrations.aurion) và > [integrations.auriga](#page-integrations.auriga) để biết các cách > tích hợp. ##### 2. Cách nhập tổng quát bằng bảng tính Nếu phần mềm nguồn của bạn không có bộ nhập định dạng gốc, hoặc bạn muốn tự kiểm soát cách trình bày dữ liệu: hãy trích dữ liệu ra một bảng tính (Excel, Google Sheets, Numbers, Calc) rồi dùng chức năng **nhập hàng loạt** của Omniscol. Xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import). ##### 3. Dùng thẳng API Nếu muốn chuyển dữ liệu **tự động** (ví dụ khi bạn cần đồng bộ trong giai đoạn chuyển tiếp giữa hai phần mềm), bạn có thể viết một script đẩy dữ liệu qua API của Omniscol. Xem [API Omniscol](#page-integrations.api-tokens). ##### 4. Nhập lại bằng tay Với những trường nhỏ hoặc khi chỉ chuyển một phần dữ liệu, nhập tay vẫn là cách khả thi. Hãy dự trù từ vài giờ đến vài ngày, tùy quy mô. #### Chiến lược chuyển đổi được khuyến nghị 1. **Rà soát dữ liệu hiện có** — trước hết, hãy lập danh sách những gì bạn muốn mang sang: giáo viên, học sinh, phòng học, môn học, cấu trúc lớp, thời khóa biểu hiện hành, thời gian rảnh, vắng mặt. 2. **Khoanh vùng dữ liệu cần chuyển** — thường thì không phải thứ gì cũng chuyển. Học sinh có thể ở lại hệ thống thông tin học sinh (SIS) rồi đồng bộ sau. Thời khóa biểu của những năm trước có thể để nguyên, lưu trữ riêng. 3. **Nhập thử một phần** — trên một tập nhỏ (một lớp, một khóa) để kiểm chứng chất lượng dữ liệu chuyển sang. 4. **Chọn thời điểm** — thường thì các trường chuyển sang vào **đầu năm học tiếp theo** thay vì giữa năm, để khỏi phải lo chuyện nối tiếp dữ liệu. 5. **Đào tạo người dùng** — Omniscol có những quy ước khác với các phần mềm cạnh tranh. Hãy dành thời gian đào tạo, nhất là về các khái niệm nghiệp vụ ([Phân vùng lớp](#page-glossary.class-division), [Căn chỉnh nhóm](#page-glossary.alignment), [Nhóm của nhóm](#page-glossary.groups-of-groups)). #### Khác biệt thuật ngữ tùy theo phần mềm nguồn | Thuật ngữ của phần mềm cạnh tranh | Tương đương trong Omniscol | | --- | --- | | “ressource” theo nghĩa của Hyperplanning (giáo viên, phòng học, lớp…) | Nhiều thực thể khác nhau, tùy trường hợp | | “cours” theo nghĩa của EDT/Pronote (đơn vị được đặt lên lưới) | [Tiết học / Giờ học](#page-glossary.lesson) | | “cours” theo nghĩa sư phạm (môn học của một lớp) | [Khóa học](#page-glossary.course) | | “bâtiment” (tòa nhà) | Thẻ hoặc tòa nhà gắn trên [Phòng học](#page-glossary.classroom) | | “formation” (chương trình đào tạo) trong giáo dục đại học | [Lớp](#page-glossary.class) hoặc một tập hợp các lớp | | “UE / EC / ECUE” (các đơn vị học phần) | [Môn học](#page-glossary.subject) kèm quy ước đặt tên | #### Xem thêm - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [API Omniscol](#page-integrations.api-tokens) - [FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) ### 12.2 Chuyển đổi từ Hyperplanning (Index Education) *Source: `help/vi/migration/from-hyperplanning.md` · id: migration.from-hyperplanning · Audience: admin · Updated: 2026-06-30* Hyperplanning (Index Education) là công cụ quản lý thời khóa biểu phổ biến nhất trong giáo dục đại học ở Pháp. Chuyển sang Omniscol đòi hỏi bạn mang dữ liệu sẵn có (người dùng, cấu trúc, thời khóa biểu đang chạy) sang và điều chỉnh chúng theo các khái niệm của Omniscol. Trang này tóm tắt các điểm tương ứng và những cái bẫy đã biết. #### Những gì chuyển thẳng được | Hyperplanning | Omniscol | | --- | --- | | Khóa (khối kiến thức chung) | Lớp | | Cách chia nhóm trong một khóa | Các nhóm rời nhau; là **phân vùng** nếu những nhóm đó dùng chung một khung giờ (tiết học bài tập/thực hành diễn ra đồng thời) | | Nhóm bài tập/thực hành (sinh ra từ một cách chia nhóm) | Nhóm trong một phân vùng | | Môn tự chọn | Nhóm | | Regroupement (nhóm gộp) | Nhóm của nhóm (hoặc căn chỉnh nhóm giữa các lớp/khóa khác nhau) | | Khóa học | Khóa học (và các tiết học của nó) | | Môn học / học phần (UE, EC) | Môn học (thường là tùy chỉnh) | | Lịch / các kỳ | Chế độ lịch (thời khóa biểu có ngày cụ thể, Premium); các khoảng ngày để đưa vào hoặc loại trừ từng kỳ | | Phòng | Phòng học (cần chuyển cả chuyên ngành) | | Giảng viên bên ngoài / thỉnh giảng | Giáo viên được đánh dấu “bên ngoài” (tùy chọn Premium) | #### Những gì cần lưu ý - **Căn chỉnh nhóm**: trong Hyperplanning, muốn cho các nhóm bài tập hoặc nhóm môn tự chọn thuộc nhiều khóa khác nhau cùng học một khóa học vào cùng một lúc, bạn phải dùng một **khóa học dùng chung** (thường dựng bằng một nhóm gộp). Khi khóa học dùng chung đó buộc các nhóm thuộc những lớp khác nhau phải cùng khung giờ, cùng phòng học và cùng giáo viên, thì đó chính là **căn chỉnh nhóm** của Omniscol. Xem [Căn chỉnh nhóm](#page-core-concepts.alignments). - **Nhóm gộp**: một nhóm gộp trong Hyperplanning tập hợp nhiều nhóm để cùng học một khóa học; ở Omniscol, đó là một **nhóm của nhóm** (có trong mọi gói). Xem [Nhóm của nhóm](#page-core-concepts.groups-of-groups). Tùy trường hợp, một nhóm gộp trải trên nhiều lớp hoặc nhiều khóa khác nhau cũng có thể thuộc về **căn chỉnh nhóm** nói trên. - **Tiết học liên kết** (luân phiên giữa hai nửa nhóm): Omniscol hỗ trợ sẵn việc này bằng **tiết học liên kết**. Xem [Tiết học phức hợp](#page-core-concepts.complex-lessons). - **Nghĩa vụ giảng dạy**: tính liên tục về mặt sư phạm (giữ nguyên các tài nguyên từ tiết học này sang tiết học khác) được tái lập bằng cách giữ cùng một giáo viên và cùng một phòng học trên các tiết học của một khóa học — không có thực thể riêng cho việc đó. - **Khóa học theo lịch**: nếu bạn dùng Hyperplanning ở chế độ lịch cho những học phần có ngày cụ thể, Omniscol đáp ứng đúng các nhu cầu đó bằng [chế độ lịch](#page-timetables.calendar-mode) của mình, có trong gói Premium. - **Hyperplanning và Aurion**: nếu trường bạn dùng cả Hyperplanning **và** Aurion, việc chuyển đổi chỉ liên quan đến khâu lập kế hoạch; Aurion vẫn tiếp tục cung cấp dữ liệu cho cấu trúc hành chính. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Hướng dẫn 1. **Lấy dữ liệu ra** khỏi Hyperplanning vào một bảng tính — danh sách giảng viên, học sinh, phòng học và khóa học. Tùy phiên bản bạn dùng, việc này được làm bằng cách sao chép một danh sách rồi dán, hoặc bằng chức năng xuất của danh sách đó; hãy xem tài liệu của Hyperplanning. 2. **Chuẩn bị các tệp cho Omniscol** theo định dạng nhập: CSV người dùng, CSV khóa học. Xem [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data). 3. **Tạo một tài khoản Omniscol thử nghiệm** để nhập thử mà không có rủi ro. 4. **Nhập thành nhiều lượt**: - người dùng (giáo viên, học sinh), - lớp và nhóm, - môn học, - khóa học qua [nhập hàng loạt bằng bảng tính](#page-timetables.mass-import). 5. **Dựng lại các khóa học phức hợp** (căn chỉnh nhóm, tiết học liên kết, tuần luân phiên) bằng tay nếu phần nhập dữ liệu đã làm phẳng chúng. 6. **Kiểm tra phần chẩn đoán** và sửa những chỗ chưa nhất quán mà nó phát hiện. 7. **Chạy thử một lần tạo tự động** để kiểm chứng tính khả thi. 8. **Điểm sao lưu** trước khi chuyển sang tài khoản chính thức. #### Chuyển người dùng sang mà không gây xáo trộn Thực hành tốt: hãy nhập người dùng vào Omniscol ở trạng thái **chưa kích hoạt** trước đã. Bạn kiểm tra lại dữ liệu, bạn chuyển cấu hình sang (SSO nếu có), rồi kích hoạt toàn bộ tài khoản trong một lượt duy nhất khi mọi thứ đã sẵn sàng. Cách này tránh việc người dùng nhận được lời mời quá sớm. #### Những gì không chuyển được - **Lịch sử của Hyperplanning** ngoài phạm vi các thời khóa biểu đang chạy — để giữ lại lịch sử, hãy để Hyperplanning ở chế độ chỉ đọc làm kho lưu trữ thay vì chuyển hết mọi thứ sang. - **Các tùy biến hiển thị** của Hyperplanning — hãy làm lại chúng trong Omniscol theo bộ nhận diện của bạn. Xem [Tùy chỉnh bảng thông tin](#page-panels.customization). #### Hướng dẫn — Chuyển đổi Hyperplanning → Omniscol 1. **Chuyển đổi từ Hyperplanning**: trình tự 8 lượt đi theo thứ tự xuất dữ liệu → chuẩn bị → tài khoản thử nghiệm → nhập nhiều lượt → sửa các khóa học phức hợp → chẩn đoán → chạy thử tạo tự động → chuyển sang chính thức. 2. **Lượt 1 — Lấy dữ liệu ra khỏi Hyperplanning**: xuất các danh sách (giảng viên, học sinh, phòng học, khóa học) ra một bảng tính. Tùy phiên bản, bằng cách sao chép một danh sách rồi dán, hoặc bằng chức năng xuất của danh sách đó — xem tài liệu của Hyperplanning. Phía nguồn càng sạch thì các bước sau càng nhanh. 3. **Lượt 2-3 — Chuẩn bị + tài khoản thử nghiệm**: điều chỉnh các cột cho khớp với mẫu của Omniscol (xem [Chuẩn bị dữ liệu](#page-getting-started.preparing-data)). Hãy tạo một **tài khoản Omniscol thử nghiệm** để nhập thử mà không gây rủi ro cho tài khoản chính thức. 4. **Lượt 4 — Nhập nhiều lượt** theo thứ tự: **người dùng** → **lớp và nhóm** → **môn học** → **khóa học** qua [nhập hàng loạt](#page-timetables.mass-import). Thứ tự có ý nghĩa: khóa học tham chiếu đến lớp và giáo viên, nên những dữ liệu này phải có sẵn từ trước. 5. **Lượt 5 — Khóa học phức hợp**: căn chỉnh nhóm (khóa học dùng chung cho nhiều khóa ở phía Hyperplanning → căn chỉnh nhóm của Omniscol), tiết học liên kết (luân phiên giữa hai nửa nhóm), tuần luân phiên A/B. Phần nhập dữ liệu thường làm phẳng chúng — hãy dựng lại bằng tay qua các biểu tượng dành cho khóa học phức hợp trên thẻ khóa học. 6. **Lượt 6-7 — Chẩn đoán + chạy thử tạo tự động**: hãy để phần chẩn đoán chạy, rồi sửa những chỗ chưa nhất quán. Chạy một lần **tạo tự động** để kiểm chứng tính khả thi tổng thể trước khi chuyển sang chính thức. 7. **Lượt 8 — Chuyển sang chính thức**: hãy tạo một **điểm sao lưu** trước khi chuyển. Kích hoạt các tài khoản người dùng (từ đầu đến giờ vẫn được nhập ở trạng thái chưa kích hoạt). Công bố. Hãy giữ Hyperplanning ở chế độ chỉ đọc làm kho lưu trữ — việc chuyển đổi không mang theo lịch sử ngoài phạm vi các thời khóa biểu đang chạy. Nếu bạn còn dùng cả **Aurion**: việc chuyển đổi chỉ liên quan đến khâu lập kế hoạch, Aurion vẫn là nguồn dữ liệu hành chính. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Xem thêm - [Tổng quan về việc chuyển đổi](#page-migration.overview) - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) ### 12.3 Chuyển đổi từ EDT / PRONOTE (Index Education) *Source: `help/vi/migration/from-edt.md` · id: migration.from-edt · Audience: admin · Updated: 2026-06-30* **EDT** và **PRONOTE** (Index Education) là bộ công cụ phổ biến nhất trong giáo dục trung học ở Pháp — cả trung học cơ sở lẫn trung học phổ thông, công lập cũng như tư thục. Bộ đôi này bao quát thời khóa biểu (EDT) và công tác học vụ — điểm số, học bạ, sổ đầu bài (PRONOTE). Việc chuyển sang Omniscol trước hết liên quan đến phần thời khóa biểu; với phần học vụ nâng cao (điểm số, học bạ, liên lạc với phụ huynh), PRONOTE vẫn có thể chạy song song. #### Con đường trực tiếp nhất: bản xuất STSweb EDT dựng cấu trúc của mình từ **STSweb**: các **service** (một giáo viên đảm nhận một khối lượng giờ của một môn học trong một lớp) đến từ STSweb và được đẩy ngược về đó khi khâu chuẩn bị kết thúc. Đó là tin tốt cho việc chuyển đổi, vì **Omniscol nhập trực tiếp một bản xuất STSweb** (tệp STS) từ màn hình [Nhập và xuất dữ liệu](#page-admin.import-export). Bản nhập này dựng lại dữ liệu cấu trúc trong một lần: trường học (mã UAI), năm học, **môn học**, **khối lớp** (MEF) cùng lưới thời gian theo quy định của chúng, **lớp** (division), **nhóm**, **giáo viên**, và các **service** — vốn trở thành **khóa học** của Omniscol. Chi tiết về các định dạng của Pháp được hỗ trợ nằm ở [admin.french-formats](#page-admin.french-formats). Bảng tính vẫn hữu ích cho những gì STSweb không mang theo (phòng học, các cách gộp nhóm đặc thù, thời gian rảnh ở mức chi tiết): xem phần nhập hàng loạt bên dưới. #### Những gì phải chuyển theo cách khác - **Phòng học, cơ sở ở xa**: STSweb không mô tả chi tiết phòng học. Hãy đưa chúng vào bằng bảng tính hoặc nhập lại bằng tay, rồi dựng lại các cơ sở. Với một tập phòng học có thể thay thế cho nhau (tương đương “nhóm phòng” của EDT), hãy dùng một **chuyên ngành** dùng chung mà thuật toán sẽ tôn trọng. Xem [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations). - **Nguyện vọng và thời gian bận của giáo viên**: mức độ chi tiết khác với EDT; hãy dự trù việc nhập lại bằng tay (gửi liên kết khai báo trước ngày khai giảng) hoặc một bản nhập gần đúng rồi chỉnh lại. - **Ngày nghỉ lễ và lịch năm học**: chúng được khai báo trong phần thiết lập năm học (mẫu theo quốc gia hoặc nhập tay), chứ không qua bản xuất. #### Những gì vẫn ở lại PRONOTE Omniscol không tiếp quản (và bạn có thể để chúng lại cho PRONOTE): - điểm số, đánh giá, học bạ, năng lực; - sổ đầu bài, bài tập về nhà; - công tác học vụ theo nghĩa rộng (liên lạc với phụ huynh, khảo sát); - phần vắng mặt có thể ở lại PRONOTE, hoặc được theo dõi trong Omniscol nếu bạn muốn chuyển sang. #### Bảng đối chiếu chính | EDT / STSweb | Omniscol | | --- | --- | | Lớp (division) | Lớp | | Một phần của lớp | Nhóm; **phân vùng** cho quan hệ loại trừ lẫn nhau trên cùng một khung giờ | | Nhóm (theo nhu cầu, môn chuyên sâu, môn tự chọn, ngoại ngữ) | Nhóm (trong cùng một lớp); căn chỉnh nhóm hoặc nhóm của nhóm nếu liên lớp | | Service (STSweb) | Khóa học (các tiết học sinh ra từ đó khi xếp lịch) | | Môn học | Môn học | | Phòng học / nhóm phòng | Phòng học; tập phòng thay thế được cho nhau = để trống phòng học (tự động phân công) hoặc chuyên ngành dùng chung | | Cơ sở ở xa | Cơ sở (kèm thời gian di chuyển) | | Nguyện vọng / thời gian bận của giáo viên | Thời gian rảnh; mức “không thể” (màu đen) cho một khoảng bận | | Luân phiên Q1 / Q2 (theo chu kỳ hai tuần) | Tuần luân phiên A / B | | Giờ tự học / thư viện trường | Quản lý nhân sự (trực giám sát) + một “khóa học tự học” cho nhóm không có tiết học | #### Hướng dẫn 1. **Lấy bản xuất STSweb** (tệp STS) của trường — đây là nguồn chính thức về cấu trúc và các service. 2. **Nhập tệp STS** vào một tài khoản Omniscol thử nghiệm, từ [Nhập và xuất dữ liệu](#page-admin.import-export). Cấu trúc (trường học, năm học, môn học, khối lớp, lớp, nhóm, giáo viên, service → khóa học) được dựng lại trong một lần. Xem [admin.french-formats](#page-admin.french-formats). 3. **Bổ sung bằng bảng tính** những gì STSweb không mang theo (phòng học, chuyên ngành, các cách gộp nhóm đặc thù) qua phần nhập hàng loạt. Xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) và [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data). 4. **Kiểm tra việc luân phiên tuần**: quy ước Q1/Q2 của EDT phải khớp với **tuần luân phiên A/B** của Omniscol. 5. **Chuyển sang nguyện vọng và thời gian bận** của giáo viên — nhập lại bằng tay hoặc nhập gần đúng rồi chỉnh. 6. **Chạy phần chẩn đoán** của Omniscol, rồi chạy thử việc tạo tự động. 7. **Tạo điểm sao lưu** trước khi chuyển sang tài khoản chính thức. #### EDT và Omniscol cùng tồn tại trong giai đoạn chuyển tiếp Trong một giai đoạn chuyển tiếp (thường là một học kỳ), nhiều trường giữ PRONOTE cho công tác học vụ và chuyển thời khóa biểu sang Omniscol. Thông thường PRONOTE nhận thời khóa biểu từ EDT; nếu bạn muốn tiếp tục hiển thị ở đó những thời khóa biểu được quản lý ở nơi khác, hãy kiểm tra với Index Education xem PRONOTE đọc được những gì — đừng mặc định rằng một luồng dữ liệu bên ngoài sẽ được tiếp nhận nguyên trạng. #### Một cuộc chuyển đổi trung học điển hình Trường hợp chuẩn của một trường trung học cơ sở hay trung học phổ thông chuyển từ EDT sang Omniscol: - xuất STSweb vào tháng Sáu, - nhập và thử nghiệm trên Omniscol trong mùa hè, - chuyển đổi chính thức vào đầu năm học tháng Chín, - giữ PRONOTE cho công tác học vụ nếu nhà trường muốn. #### Hướng dẫn — Chuyển đổi trung học điển hình, tháng Sáu → tháng Chín 1. **Trường hợp điển hình của một trường** chuyển từ EDT/PRONOTE sang Omniscol: xuất dữ liệu vào tháng Sáu, thử nghiệm trong mùa hè, chuyển đổi vào đầu năm học. Giữ PRONOTE cho công tác học vụ nếu muốn. 2. **Tháng Sáu — Xuất STSweb**: lấy tệp STS của trường (nguồn chính thức về cấu trúc và các service). Nếu không có, hãy xuất các danh sách của EDT (khóa học, service, lớp) ra bảng tính — tùy phiên bản, bằng cách xuất danh sách hoặc sao chép rồi dán; xem tài liệu của EDT. 3. **Tháng Bảy — Tài khoản Omniscol thử nghiệm**: nhập tệp STS từ [Nhập và xuất dữ liệu](#page-admin.import-export) (xem [admin.french-formats](#page-admin.french-formats)). Cấu trúc được dựng lại trong một lần. Bạn thử mà không chịu áp lực: nếu có gì chưa ổn, bạn cứ bình tĩnh làm lại. 4. **Tháng Tám — Bổ sung bằng bảng tính** những gì STSweb không mang theo (phòng học, chuyên ngành của phòng học, cách gộp nhóm) qua phần nhập hàng loạt (xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import)). Hãy đối chiếu **việc luân phiên tuần** (Q1/Q2 của EDT → A/B của Omniscol). 5. **Tháng Tám — Nguyện vọng và thời gian rảnh** của giáo viên: mức độ chi tiết khác nhau. Hãy dự trù hoặc **nhập lại bằng tay** (gửi liên kết khai báo trước ngày khai giảng), hoặc một **bản nhập gần đúng** để chỉnh lại sau. 6. **Cuối tháng Tám — Chẩn đoán** trên Omniscol để phát hiện những chỗ chưa nhất quán (môn học còn thiếu, lỗi tương thích, thời gian rảnh chưa chuyển sang được). Hãy **chạy thử việc tạo tự động** trên những tuần đầu năm học để kiểm chứng tính khả thi. 7. **Tháng Chín — Chuyển đổi chính thức**: tạo điểm sao lưu trước, rồi công bố thời khóa biểu. **Giữ PRONOTE** cho công tác học vụ nếu bạn muốn. #### Xem thêm - [Tổng quan](#page-migration.overview) - [Từ Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [admin.french-formats](#page-admin.french-formats) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) ### 12.4 Di chuyển dữ liệu từ aSc Timetables *Source: `help/vi/migration/from-asc.md` · id: migration.from-asc · Audience: admin · Updated: 2026-06-30* **aSc Timetables** (Slovakia) là một phần mềm tạo thời khóa biểu lâu đời và rất phổ biến, đặc biệt tại các trường quốc tế và ở nhiều nước Trung Âu. Tin vui: Omniscol đọc và ghi trực tiếp tệp gốc của aSc Timetables, không cần bảng tính trung gian, cũng không phải ánh xạ lại cấu trúc bằng tay. #### Một tệp, đi được cả hai chiều aSc Timetables lưu thời khóa biểu vào một tệp **XML** (định dạng “aSc Timetables 2012”). Omniscol có thể: - **đọc** tệp này để dựng lại một thời khóa biểu hoàn chỉnh (lớp, nhóm, giáo viên, môn học, phòng học, khóa học); - **ghi lại** một tệp cùng loại từ một thời khóa biểu Omniscol, để mở lại trong aSc hoặc Edupage (giải pháp quản lý học vụ của cùng nhà phát hành). Mọi thao tác đều diễn ra trên màn hình [Nhập và xuất dữ liệu](#page-admin.import-export), không cần can thiệp kỹ thuật: để xuất, bạn dùng nút Xuất dữ liệu dưới định dạng aSc (.xml); để nhập, bạn chỉ cần chọn tệp XML do aSc tạo ra. Vòng đi về là **thuận nghịch**: xuất rồi nhập lại sẽ cho đúng cấu trúc cũ ở phía Omniscol, chỉ trừ các quy ước đặt tên. #### Những gì được chuyển sang Được lấy lại tự động khi đọc tệp: - **Lớp** và các **nhóm** của lớp (kể cả các phân vùng dành cho giờ thực hành). - **Môn học** kèm mã của chúng. - **Phòng học** kèm sức chứa. - **Giáo viên** (họ, tên, thông tin liên hệ). - **Khóa học** (môn học, số giờ, giáo viên) và các **tiết học** đã đặt (ngày, khung giờ, phòng học). - **Giờ ra chơi và giờ nghỉ** trong ngày. - **Tuần luân phiên** (A/B) nếu chúng đã được cấu hình trong aSc. #### Những gì cần xem lại sau khi nhập - **Ràng buộc phức tạp** riêng của aSc (ràng buộc trình tự, phòng học có điều kiện, quy tắc cấm xếp nối tiếp rất đặc thù): Omniscol chuyển đổi ở mức tốt nhất có thể, nhưng một số quy tắc được diễn đạt theo cách khác nên đáng để đọc lại. Phòng học có điều kiện thì gần với [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations) hơn cả; những ràng buộc còn lại thuộc về [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) và [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints). - **Khóa học dùng chung cho nhiều lớp** (một môn học chung cho nhiều lớp): được chuyển thành [Nhóm của nhóm](#page-core-concepts.groups-of-groups). Bạn hãy kiểm tra xem kết quả có đúng ý mình không. - **Đổi tên và vòng đi về**: Omniscol không giữ lại các định danh nội bộ của aSc; khi ghi lại một tệp aSc, nó dựng lại các mối tương ứng từ chính các đối tượng, đặc biệt là từ **tên** của chúng. Trên thực tế, nếu bạn định xuất ngược về aSc, đừng đổi tên lớp, giáo viên và môn học trong khoảng thời gian đó, nếu không các mối tương ứng sẽ lệch đi. #### Hướng dẫn 1. **Trong aSc**: lưu thời khóa biểu của bạn ở định dạng **XML** (phiên bản 2012 hoặc phiên bản gần nhất mà aSc của bạn có). 2. **Tạo một tài khoản Omniscol thử nghiệm** để thử mà không có rủi ro. 3. **Nhập tệp** từ màn hình [Nhập và xuất dữ liệu](#page-admin.import-export): chọn tệp XML aSc, rồi xác nhận. 4. **Đọc phần chẩn đoán** của Omniscol để phát hiện những chỗ chưa nhất quán (tiết học đã xếp nhưng thiếu phòng, thời gian rảnh chưa được chuyển sang, v.v.). 5. **Chỉnh lại các ràng buộc phức tạp** mà hệ thống không tự chuyển đổi được. 6. **Chạy thử một lần tạo tự động** để kiểm tra xem các ràng buộc có cho ra kết quả giống những gì bạn đã có trong aSc hay không. 7. **Tạo một điểm sao lưu** trước khi chuyển sang tài khoản chính thức. #### Tiếp tục cập nhật cho aSc song song Nếu bạn giữ lại aSc trong suốt giai đoạn chuyển tiếp, bản xuất ngược cho phép tiếp tục cập nhật dữ liệu cho aSc từ Omniscol — hữu ích chẳng hạn khi các trường đối tác vẫn còn tra cứu trên aSc. Tệp được tạo ra sẽ mở lại được trong aSc Desktop (phiên bản 2012 trở lên). #### Những điểm cần lưu ý - **Ký tự có dấu**: nếu sau một vòng đi về mà vài dấu hiển thị sai, đó là vấn đề bảng mã của tệp. Bản xuất của Omniscol mặc định dùng bảng mã mà aSc Desktop mong đợi; bạn chỉ cần kiểm tra xem một cái tên có dấu còn nguyên vẹn sau khi đi và về hay không. - **Bộ máy tạo tự động khác nhau**: aSc và Omniscol không dùng cùng một kiểu thuật toán tạo tự động. Một thời khóa biểu vốn dễ tạo trong aSc có thể cần vài điều chỉnh trong Omniscol, và ngược lại. - **Các phiên bản aSc**: việc đọc tệp nhắm vào định dạng 2012. Những phiên bản cũ hơn có thể không tương thích trực tiếp — khi đó bạn hãy lưu lại ở định dạng 2012 từ aSc Desktop trước. #### Hướng dẫn — Vòng đi về tệp XML aSc ↔ Omniscol 1. **Omniscol đọc và ghi tệp gốc của aSc Timetables 2012**: vòng đi về trực tiếp, không cần bảng tính trung gian. 2. **Bên phía aSc**: lưu thời khóa biểu ở định dạng **XML 2012** (hoặc phiên bản gần nhất) và giữ tệp trên máy của bạn. 3. **Bên phía tài khoản Omniscol thử nghiệm**: mở [Nhập và xuất dữ liệu](#page-admin.import-export) và chọn tệp XML aSc. Lần nhập này dựng lại lớp, nhóm, môn học, phòng học, giáo viên, khóa học, tuần luân phiên và giờ ra chơi. 4. **Kiểm tra phần chẩn đoán**: tiết học đã xếp nhưng thiếu phòng, thời gian rảnh chưa được chuyển sang, khóa học nhiều lớp đã được chuyển thành [Nhóm của nhóm](#page-core-concepts.groups-of-groups). Nhắc lại: để vòng đi về được sạch sẽ, đừng đổi tên lớp, giáo viên và môn học nếu bạn định xuất ngược — Omniscol dựa vào tên của chúng để dựng lại các mối tương ứng. 5. **Chỉnh lại các ràng buộc phức tạp** riêng của aSc (trình tự, quy tắc cấm xếp nối tiếp rất đặc thù): việc chuyển đổi đã làm hết mức có thể, một số quy tắc được diễn đạt theo cách khác trong Omniscol. Xem [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability). 6. **Chạy thử một lần tạo tự động** trong Omniscol để kiểm tra kết quả có đúng như mong đợi hay không. ⚠ aSc và Omniscol không dùng cùng một kiểu thuật toán tạo tự động; một thời khóa biểu dễ tạo trong aSc có thể cần điều chỉnh trong Omniscol, và ngược lại. 7. **Xuất ngược** (nếu bạn giữ aSc song song): nút Xuất dữ liệu dưới định dạng aSc (.xml) trong [Nhập và xuất dữ liệu](#page-admin.import-export). Tệp mở lại được trong aSc Desktop 2012+; vòng đi về giữ nguyên cấu trúc (chỉ mất mát nhỏ ở các quy ước đặt tên). #### Xem thêm - [Tổng quan](#page-migration.overview) - [Nhập và xuất dữ liệu](#page-admin.import-export) - [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) ### 12.5 Chuyển đổi từ ADE / ADE Campus *Source: `help/vi/migration/from-ade.md` · id: migration.from-ade · Audience: admin · Updated: 2026-06-30* **ADE** (do Adesoft phát hành), thường được dùng ở bản web **ADE Campus**, rất phổ biến trong giáo dục đại học, đặc biệt là ở các trường đại học, trường kinh doanh và trường kỹ thuật. ADE **lấy hoạt động làm trung tâm** (khái niệm “buổi giảng”) và thường xuyên đồng bộ với hệ thống thông tin của trường (Apogée, Pegase, Aurion, UNIT4…). Việc chuyển sang Omniscol trước hết liên quan đến khâu lập kế hoạch; phần đồng bộ với hệ thống thông tin của bạn vẫn phải được cấu hình lại ở phía Omniscol. #### Phạm vi chuyển đổi Những gì chuyển được: - **chương trình đào tạo** (cử nhân, kỹ sư, thạc sĩ…) và các nhóm của chúng (nhóm phụ trợ, nửa khóa); - **giảng viên** (cơ hữu, không cơ hữu, thỉnh giảng); - **hoạt động** (buổi giảng) kèm loại, thời lượng và số lần lặp lại; - **phòng học và trang thiết bị** (theo tòa nhà và tầng, kèm sức chứa); - **thời gian rảnh và thời gian bận** của các tài nguyên. ADE và Omniscol có mô hình dữ liệu về cơ bản tương thích với nhau, nhưng quy ước đặt tên thì khác. Hãy dự trù một bảng ánh xạ ban đầu. #### Bảng đối chiếu | ADE (ADE Campus) | Omniscol | | --- | --- | | Chương trình đào tạo (cử nhân, kỹ sư, thạc sĩ…) | Nhiều lớp (một **khóa**/năm đào tạo = một lớp) | | Nhóm phụ trợ / nửa khóa | Nhóm; **phân vùng** nếu hai nửa khóa theo học những tiết học khác nhau trên cùng một khung giờ | | Giảng viên | Giáo viên | | Hoạt động (buổi giảng) | Khóa học (và các tiết học của nó) | | Phân loại hoạt động (lý thuyết, bài tập, thực hành…) | Loại tiết học | | Hình thức (trực tiếp, từ xa…) | Hình thức (thuộc tính Premium) | | Giới hạn chỗ / số đã đăng ký | Sĩ số dự kiến — không có giới hạn riêng (số chỗ do sức chứa của phòng học quyết định) | | Phòng học / trang thiết bị (tòa nhà, tầng, sức chứa) | Phòng học (cơ sở, sức chứa); chỉ thiết bị **di động** mới trở thành tài nguyên | | Thời gian rảnh / bận (thang màu) | Thời gian rảnh: 4 mức — không thể / không mong muốn / được ưu tiên / trung tính | | Liên kết giữa các hoạt động | Tùy theo kiểu liên kết: căn chỉnh nhóm, nối tiếp hoặc tiết học liên hệ | | Mã CURSUS / UNIT4 | Mã định danh bên ngoài (dấu vết của việc đồng bộ với hệ thống thông tin) | #### Hướng dẫn 1. **Lấy dữ liệu ra** khỏi ADE — chương trình đào tạo, giảng viên, phòng học, hoạt động. ADE trình bày dữ liệu dưới dạng **danh sách tùy biến được** (chế độ xem Listing, tự chọn cột) mà bạn có thể in hoặc xuất sang bảng tính qua menu **In**. 2. **Chuẩn bị các tệp cho Omniscol** từ những bản xuất đó (xem [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data)). 3. **Nhập từ bảng tính** vào một thời khóa biểu thử nghiệm (xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import)). 4. **Dựng lại các liên kết**: căn chỉnh nhóm (chính là các liên kết giữa hoạt động ở phía ADE), tuần luân phiên, phân vùng theo nửa khóa — ADE và Omniscol không dùng đúng cùng những khái niệm cơ sở. 5. **Chạy thử việc tạo tự động**. #### Những điểm cần lưu ý - **ADE xếp lịch theo ngày cụ thể**: chế độ xem **Placement** (tuần, ngày, giờ bắt đầu, giờ kết thúc) cùng thanh chọn tuần khiến ADE mang dáng dấp một công cụ lịch. Để giữ lại cách làm việc này, hãy dùng chế độ lịch của Omniscol, có trong gói Premium (xem [Chế độ lịch](#page-timetables.calendar-mode)). - **Nửa khóa và nhóm phụ trợ**: một chương trình đào tạo thường được chia thành các nhóm phụ trợ và các nửa khóa. Ở phía Omniscol, nửa khóa tương ứng với một **phân vùng** của lớp; hãy tính toán độ mịn của các nhóm ngay từ đầu. - **Phòng học được ấn định hoặc “để tùy chọn”**: trong ADE, một phòng học có thể được ấn định cho một hoạt động, hoặc để cho bộ máy xếp lịch tự chọn. Ở phía Omniscol, phòng học đã ấn định được thuật toán giữ nguyên; còn với phòng học “để tùy chọn”, hãy để tiết học không ghi phòng cụ thể — thuật toán sẽ chọn một phòng trong cơ sở, tôn trọng sức chứa và **chuyên ngành phòng học** bắt buộc nếu có (một tập phòng học thay thế được cho nhau thì mô hình hóa bằng một chuyên ngành dùng chung). Xem [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) và [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment). - **Thời gian rảnh có nhiều mức**: ADE quản lý thời gian rảnh theo nhiều mức (từ xanh lá đến đỏ, cộng thêm một tầng động). Omniscol dùng **thời gian rảnh** với 4 mức (không thể, không mong muốn, được ưu tiên, trung tính) — hãy chuyển trước hết hai mức ở hai đầu (không thể và được ưu tiên), các mức trung gian sẽ chỉnh lại sau. - **Người phụ trách chuyên môn**: ADE gắn một người phụ trách chuyên môn cho từng hoạt động. Omniscol không có vai trò này ở cấp khóa học; nếu thông tin đó hữu ích với bạn, hãy giữ lại bằng một quy ước đặt tên hoặc một ghi chú. - **Luồng iCal**: ADE thường công bố thời khóa biểu dưới dạng luồng iCal. Phần nhập dữ liệu của Omniscol không đọc được iCal; một bản xuất iCal phải được chuyển sang dạng bảng trước đã. - **Đồng bộ với hệ thống thông tin**: nếu ADE từng được đồng bộ với hệ thống thông tin của trường bạn (Apogée, Pegase, Aurion, UNIT4…), bạn sẽ phải cấu hình lại việc đồng bộ đó ở phía Omniscol — thường là qua API hoặc qua cơ chế đồng bộ với các hệ thống bên ngoài. Trường **Mã CURSUS / UNIT4** của ADE chính là dấu vết của việc đó ở phía nguồn. Xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync). #### Hướng dẫn — Chuyển đổi ADE → Omniscol (giáo dục đại học) 1. **ADE (Adesoft), thường ở bản ADE Campus**, rất phổ biến trong giáo dục đại học. Việc chuyển đổi trước hết liên quan đến khâu lập kế hoạch; phần đồng bộ với hệ thống thông tin (Apogée, Pegase, Aurion, UNIT4) vẫn phải được cấu hình lại ở phía Omniscol. 2. **Lấy dữ liệu ra khỏi ADE**: chương trình đào tạo, giảng viên, phòng học, hoạt động (kèm loại, thời lượng, số lần lặp lại, giới hạn chỗ). ADE trình bày những dữ liệu này dưới dạng danh sách tùy biến được (chế độ xem Listing) để in hoặc xuất qua menu **In**. Một luồng iCal phải được chuyển sang dạng bảng trước đã (phần nhập dữ liệu không đọc được iCal). Nếu bạn xếp lịch theo ngày cụ thể, hãy giữ lại cả khía cạnh đó. 3. **Bảng ánh xạ ban đầu**: ADE và Omniscol có mô hình dữ liệu tương thích nhưng quy ước đặt tên khác nhau. Hãy chuẩn bị các tệp theo mẫu của Omniscol (xem [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data)). Hãy tính toán độ mịn của **các nhóm học sinh** (nửa khóa, nhóm phụ trợ) ngay từ đầu — đây là điểm tế nhị ở bậc đại học. 4. **Nhập từ bảng tính** vào một thời khóa biểu thử nghiệm: giảng viên, chương trình đào tạo, môn học, phòng học, rồi đến hoạt động (xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import)). Bảng tính các khóa học không có cột mã định danh bên ngoài; để đối chiếu về sau với hệ thống thông tin của bạn, thay vào đó hãy tính đến cơ chế đồng bộ với hệ thống bên ngoài (xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync)). 5. **Dựng lại các liên kết**: căn chỉnh nhóm giữa nhiều chương trình đào tạo (chính là các **liên kết** giữa hoạt động ở phía ADE), tuần luân phiên, phân vùng theo nửa khóa. Hãy xử lý lại cả những phòng học “để tùy chọn” bằng cách để thuật toán tự gán (dùng một chuyên ngành chung nếu cần). ADE và Omniscol không dùng đúng cùng những khái niệm cơ sở — hãy tính trước một lượt hoàn thiện thủ công. Nếu ADE xếp lịch theo ngày cụ thể, hãy dùng **chế độ lịch** của Omniscol (có trong gói Premium) để giữ nguyên cách làm việc đó (xem [Chế độ lịch](#page-timetables.calendar-mode)). 6. **Chạy thử việc tạo tự động** trên Omniscol để kiểm chứng tính khả thi. Chẩn đoán, sửa lỗi, lặp lại. Bạn càng thử nhiều trước khi chuyển đổi chính thức thì càng ít phải sửa về sau. 7. **Cấu hình lại hệ thống thông tin**: nếu ADE từng được đồng bộ với Apogée, Pegase, Aurion hay UNIT4, bạn sẽ phải cấu hình lại việc đồng bộ đó ở phía Omniscol qua API (xem [API Omniscol](#page-integrations.api-tokens)) hoặc qua cơ chế đồng bộ với các hệ thống bên ngoài (xem [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync)). Riêng với Aurion, xem [integrations.aurion](#page-integrations.aurion) — có 3 chế độ. #### Xem thêm - [Tổng quan](#page-migration.overview) - [API Omniscol](#page-integrations.api-tokens) - [Đồng bộ hóa với các hệ thống bên ngoài](#page-integrations.extsync) - [Chế độ lịch](#page-timetables.calendar-mode) ### 12.6 Di chuyển dữ liệu từ bảng tính Excel tự làm *Source: `help/vi/migration/from-spreadsheet.md` · id: migration.from-spreadsheet · Audience: admin · Updated: 2026-05-12* Nhiều cơ sở đào tạo — nhất là các đơn vị nhỏ, trường tư thục, các chương trình ngắn hạn — vẫn quản lý thời khóa biểu của mình trong một bảng tính Excel tự làm. Trong trường hợp này, việc chuyển sang Omniscol đặc biệt đơn giản: không có định dạng độc quyền nào phải giải mã, chỉ cần một chút kỷ luật để sắp xếp lại dữ liệu. #### Trước khi bắt đầu: phân loại lại dữ liệu Một bảng tính thời khóa biểu thường gộp nhiều “trang tính” có bản chất khác nhau: danh sách giáo viên, danh sách lớp, danh sách môn học, lưới thời khóa biểu, đủ loại ghi chú. Trước khi nhập, bạn hãy làm rõ: - **danh sách giáo viên** (một trang tính riêng), - **danh sách học sinh** (một trang tính riêng, nếu có), - **danh sách lớp** cùng sĩ số của từng lớp, - **danh sách phòng học**, - **tiết học**: mỗi dòng gồm lớp, môn học, giáo viên, phòng học, ngày, giờ, thời lượng. Nếu bảng tính của bạn chưa tách riêng những thông tin này, bạn hãy tách ngay bây giờ — dù sao thì việc nhập cũng đòi hỏi như vậy. #### Định dạng nhập mà Omniscol yêu cầu Việc nhập được thực hiện bằng cách **sao chép rồi dán** từ bảng tính của bạn (Excel, Google Sheets, Numbers, Calc…) vào một khung cột đã được mô tả sẵn. Các cột được nhận diện theo **vị trí** (bạn sắp xếp lại khung cột cho khớp với tệp của mình), chứ không theo tên tiêu đề. Xem [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) để biết chi tiết (thứ tự cột, định dạng ngày tháng, mã môn học, v.v.). Với tiết học, [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) là công cụ chuyên dụng: bạn **sao chép rồi dán** thẳng các dòng của bảng tính vào một vùng soạn thảo, theo cấu trúc mỗi dòng = một tiết học. #### Hướng dẫn 1. **Dọn dẹp** bảng tính nguồn: bỏ các cột không cần thiết, thống nhất cách ghi nhãn (một giáo viên không được xuất hiện với ba cách viết khác nhau). 2. **Chuẩn bị mỗi loại thực thể một trang tính riêng**: giáo viên, học sinh, lớp, phòng học, tiết học — bạn sẽ dán lần lượt từng trang tính. 3. **Tài khoản Omniscol thử nghiệm** để kiểm chứng việc nhập mà không có rủi ro. 4. **Nhập lần lượt nhiều đợt**, bắt đầu từ các dữ liệu nền (giáo viên, phòng học, môn học) trước khi đến tiết học vốn tham chiếu đến chúng. 5. **Kiểm tra phần chẩn đoán** của Omniscol để phát hiện những gì chưa được hiểu đúng. 6. **Chạy thử một lần tạo tự động** (kể cả khi bạn vẫn giữ cách đặt vị trí thủ công như trong bảng tính) để kiểm tra tính khả thi. #### Lợi ích của việc di chuyển dữ liệu - **Một công cụ duy nhất** gom lại bảng tính, các tệp PDF thời khóa biểu và những bản cập nhật trước đây vẫn qua lại bằng e-mail. - **Cập nhật theo thời gian thực**: ai cũng thấy phiên bản mới nhất ngay khi có thay đổi. - **Phân phối tự động**: iCal, bảng thông tin, cổng thông tin cho học sinh và giáo viên. - **Chẩn đoán**: Omniscol phát hiện những lỗi tương thích mà bảng tính của bạn bỏ lọt. #### Giữ bảng tính ở chế độ chỉ đọc để lưu trữ Bạn không cần xóa bảng tính cũ. Hãy giữ nó ở chế độ chỉ đọc để lưu trữ (chẳng hạn trong một thư mục dùng chung) — nó vẫn có ích khi bạn muốn tra lại một cấu hình cũ. Từ lúc đó, Omniscol trở thành nguồn sự thật cho vận hành hằng ngày; bảng tính chỉ còn là một tư liệu lịch sử. #### Hướng dẫn — Di chuyển một thời khóa biểu Excel tự làm 1. **Trường hợp đơn giản nhất**: một thời khóa biểu được quản lý trong tệp Excel tự làm. Không có định dạng độc quyền nào phải giải mã, chỉ cần kỷ luật để sắp xếp dữ liệu trước khi nhập. 2. **Trước khi nhập — phân loại lại** trong bảng tính nguồn. Nếu tệp của bạn trộn lẫn giáo viên, lớp, phòng học, tiết học trên cùng một trang tính, trước hết bạn hãy tách thành các trang tính theo chủ đề: giáo viên, học sinh, lớp, phòng học, tiết học. 3. **Dọn dẹp** từng trang tính: không để cột thừa, **thống nhất cách ghi nhãn** (một giáo viên không được xuất hiện dưới ba cách viết khác nhau), bỏ các dòng gộp ô. Mỗi dòng = một thực thể. 4. **Tài khoản Omniscol thử nghiệm**: bạn hãy tạo một tài khoản thử nghiệm trước khi đụng đến tài khoản chính thức. Nhờ đó bạn kiểm chứng các lần nhập mà không có rủi ro. 5. **Nhập lần lượt nhiều đợt**, theo thứ tự phụ thuộc: **dữ liệu nền trước** (giáo viên, phòng học, môn học), **tiết học sau** (vì chúng tham chiếu đến dữ liệu nền). Với tiết học, bạn hãy dùng [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) — bạn dán thẳng các dòng từ bảng tính vào đó. 6. **Chẩn đoán**: Omniscol phát hiện những chỗ chưa nhất quán (tiết học chưa có phòng học, giáo viên chưa có trong danh sách, lỗi tương thích) mà bảng tính của bạn không nhìn ra. Bạn hãy sửa trước khi chuyển hẳn. 7. **Chạy thử một lần tạo tự động** (không bắt buộc — nếu bạn muốn giữ cách đặt vị trí thủ công) để kiểm tra tính khả thi. **Chuyển hẳn**: tệp Excel cũ của bạn vẫn ở chế độ chỉ đọc để lưu trữ; Omniscol trở thành nguồn sự thật, với phân phối tự động (iCal, bảng thông tin, cổng thông tin) và cập nhật theo thời gian thực. #### Xem thêm - [Tổng quan](#page-migration.overview) - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) --- ## 13. Đặc thù giáo dục đại học ### 13.1 Đặc thù của giáo dục đại học — tổng quan *Source: `help/vi/higher-ed/overview.md` · id: higher-ed.overview · Updated: 2026-06-13* Giáo dục đại học, đào tạo thường xuyên và các trung tâm đào tạo có những ràng buộc rất khác so với bậc tiểu học và trung học. Phần này tập hợp các trang trình bày những đặc thù đó. #### Đặc điểm thường gặp - **Chế độ [lịch](#page-glossary.calendar-mode)** thay vì hằng tuần — việc giảng dạy hiếm khi lặp lại suốt cả năm, các tiết học thường được ấn định theo từng ngày cụ thể. - **Rất nhiều giáo viên bên ngoài** — giáo viên thỉnh giảng, giáo sư thỉnh giảng, chuyên gia. Xem [Giáo viên bên ngoài](#page-higher-ed.external-faculty). - **Nhiều khóa song song** thay vì lớp đơn lẻ — một chương trình thạc sĩ có thể có nhiều lộ trình dùng chung một số khóa học, có chuyên ngành chung nhưng đồ án riêng. - **Đồng giảng dạy** rất phổ biến (cặp giáo viên, hai mảng chuyên môn). - **Kỳ thi nhiều phòng học** (giảng đường tách đôi). Xem [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams). - **Liên kết hội nghị truyền hình cho từng khóa học** (khóa học kết hợp, học từ xa một phần). Xem [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links). - **Học sinh học lại hoặc học ngoài chương trình** cần quản lý. #### Khuyến nghị cấu hình - **Tài khoản [Premium](#page-overview.plans-and-options)** — gói này bao gồm chế độ lịch, thời gian rảnh theo ngày cụ thể, nhiều thời khóa biểu hoạt động cùng lúc và **các sự kiện đơn lẻ** (buổi bảo vệ, hội đồng chấm, ngày hội mở). Việc xác định tiết học là học từ xa hay kết hợp — tức **[hình thức](#page-glossary.lesson-modality)** của tiết học — cũng nằm trong gói này; riêng **liên kết hội nghị truyền hình** thì vẫn có trên mọi tài khoản. - **Chế độ lịch** cho một hoặc nhiều thời khóa biểu chính, không thể thiếu trong phần lớn trường hợp ở bậc đại học. - **Nhiều thời khóa biểu hoạt động song song** nếu bạn kết hợp khóa học lặp lại với khóa học đơn lẻ, nếu trường bạn có nhiều khoa độc lập, hoặc nếu đây là một hệ thống nhiều trường thành viên. - **Nhóm của nhóm** cho những cách gom nhóm hay thay đổi. - **Nhập thời gian rảnh ở chế độ lịch** — giảng viên nhập thời gian rảnh theo từng ngày, được tổng hợp theo thời gian thực. - **API và tích hợp** với hệ thống thông tin của trường hoặc ERP — ở các trường kinh doanh và trường kỹ thuật thường là [đồng bộ với các hệ thống bên ngoài](#page-integrations.extsync). Cơ chế này đồng bộ các thực thể (giáo viên, phòng học) và danh mục chương trình đào tạo, đồng thời đẩy các tiết học lên hệ thống trung tâm dưới dạng các lần giảng dạy — hệ thống đó là nguồn dữ liệu gốc của trường. #### Từ vựng Những gì các trường đại học gọi là **khung chương trình**, **cẩm nang chương trình**, **chương trình đào tạo** hay **đề cương môn học** thì ở phía Omniscol tương ứng với **toàn bộ các [khóa học](#page-glossary.course)** của một lớp hay một chương trình — mỗi khóa học là một môn học có phân loại, được gán cho một lớp, kèm khối lượng giờ và các ràng buộc riêng. **[Tiết học](#page-glossary.lesson)** là các lần xuất hiện đã được xếp lịch của khóa học đó. Các thuật ngữ khác của bậc đại học chỉ những thực thể Omniscol khái quát hơn, đã được ghi trong bảng thuật ngữ: **người học** và **người tham gia** đều quy về [học sinh](#page-glossary.student); **giảng viên**, **giáo viên thỉnh giảng**, **giáo viên cơ hữu** và **chuyên gia** quy về [giáo viên](#page-glossary.teacher); **khóa**, **đợt học** và **khóa tuyển sinh** quy về [lớp](#page-glossary.class). #### Các trường hợp sử dụng ở bậc đại học - [FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) #### Xem thêm - [Chế độ lịch](#page-glossary.calendar-mode) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Giáo viên bên ngoài](#page-higher-ed.external-faculty) - [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) - [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links) ### 13.2 Đợt học, khóa, chương trình, lộ trình *Source: `help/vi/higher-ed/sessions-and-tracks.md` · id: higher-ed.sessions-and-tracks · Updated: 2026-05-12* Ở bậc đại học, cấu trúc đào tạo ít tuyến tính hơn so với bậc phổ thông. Một học sinh thuộc về một **khóa** (nhóm cùng nhập học một thời điểm), nhưng đồng thời cũng thuộc về các **lộ trình** hay **chương trình** (hướng chuyên ngành của mình) và các **nhóm** bài tập hay thực hành. Đôi khi họ theo học nhiều khóa cùng lúc (ngành phụ, chương trình kép). Trang này tóm tắt cách Omniscol mô hình hóa những tình huống đó. #### Khóa = lớp trong Omniscol **Khóa** (quen gọi là “khóa 2026”, “K2026”) tương ứng với lớp của Omniscol theo nghĩa hành chính, ví dụ *“Cử nhân CNTT khóa 2026”* hay *“Thạc sĩ Tài chính 2025-2027”*. Đây là thực thể tập hợp những học sinh cùng nhập học một đợt. Lớp được đặt tên rõ ràng, không gây nhầm lẫn, kèm năm nhập học với những chương trình lớn: - `KTCK K2026` — Cử nhân Kỹ thuật Cơ khí, nhập học năm 2026, - `ThS Marketing 2026-2028` — Thạc sĩ Marketing, hai năm. #### Lộ trình và chuyên ngành **Lộ trình** là một hướng đào tạo bên trong một khóa hoặc trải rộng qua nhiều khóa: *“hướng Dữ liệu”*, *“ngành phụ Khởi nghiệp”*, *“chương trình song bằng XYZ”*. Cách mô hình hóa trong Omniscol tùy theo mức độ phức tạp: - **Lộ trình đơn giản** trong một khóa — một **nhóm** bên trong lớp (ví dụ `CNTT K2026 - Lộ trình Dữ liệu`). - **Lộ trình liên khóa** trải qua nhiều khóa — một **nhóm của nhóm** tập hợp các nhóm tương ứng của nhiều lớp. Xem [Nhóm của nhóm](#page-core-concepts.groups-of-groups). - **Chương trình kép** (học sinh theo trọn hai lộ trình) — trường hợp riêng, khi cùng một học sinh nhận **hai phân công lớp** trong năm. Đây là ngoại lệ của nguyên tắc chung: hai lớp không dùng chung người học. #### Đợt học **Đợt học** là một giai đoạn giảng dạy được xác định rõ: một học kỳ, một quý, một học phần tập trung 2 tuần. Omniscol quản lý các đợt học thông qua: - **khoảng thời gian công bố** thời khóa biểu (mỗi đợt học một thời khóa biểu, công bố trên những tuần tương ứng), - **năm học** (một năm học có thể bao gồm nhiều đợt học). Với các chương trình ngắn hoặc không lặp lại (hội thảo chuyên đề, học phần đào tạo thường xuyên), bạn nên chọn **chế độ lịch** (có trong gói Premium) thay cho lưới hằng tuần thông thường. Xem [Chế độ lịch](#page-higher-ed.calendar-mode). #### Học sinh có lộ trình đặc biệt Những trường hợp thường gặp ở bậc đại học: - **Học sinh học lại** đã đạt một số học phần và chưa đạt những học phần khác. - **Học sinh diện dịch chuyển** (trao đổi học thuật, liên kết quốc tế) — được phân công vào một lớp tiếp nhận, kèm điều chỉnh lộ trình. - **Học sinh vừa học vừa làm** — luân phiên tuần học ở trường / tuần làm ở doanh nghiệp; nhịp này được mô hình hóa bằng tuần luân phiên hoặc bằng một thời khóa biểu theo lịch riêng. #### Xem thêm - [Tổng quan](#page-higher-ed.overview) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [Chế độ lịch](#page-higher-ed.calendar-mode) ### 13.3 Giáo viên bên ngoài (thỉnh giảng, giáo sư thỉnh giảng) *Source: `help/vi/higher-ed/external-faculty.md` · id: higher-ed.external-faculty · Audience: admin · Updated: 2026-06-13* Giáo dục đại học sử dụng rất nhiều **giáo viên bên ngoài**: giáo viên thỉnh giảng theo từng lĩnh vực, những người đang làm nghề và chỉ dạy theo đợt, giáo sư thỉnh giảng từ các trường khác. Cách quản lý họ khác với cách quản lý đội ngũ cơ hữu: ít giờ dạy, lịch dạy do nhà trường phải chiều theo chứ không tự định đoạt, đôi khi là hợp đồng tính theo giờ. #### Đánh dấu một giáo viên là bên ngoài Trong hồ sơ giáo viên ([Quản lý giáo viên](#page-admin.teachers)), nút gạt **Giáo viên bên ngoài** (có trong gói Premium) giúp phân biệt giáo viên thỉnh giảng với đội ngũ cơ hữu. Dấu hiệu này có hai tác dụng cụ thể: - một **biểu tượng** [user-tie] đứng trước tên giáo viên trong các danh sách và trong chú giải khi di chuột trên tiết học, - một **cột riêng** trong các chế độ xem dạng bảng và các bản xuất ra bảng tính, để tách riêng nhóm thỉnh giảng (ví dụ để theo dõi số giờ do đội ngũ cơ hữu dạy so với người bên ngoài). #### Nhập thời gian rảnh Thời gian rảnh của một giáo viên thỉnh giảng thường gắn với **ngày cụ thể** chứ không lặp lại hằng tuần: họ nhận dạy thứ Ba ngày 12 tháng 3 và thứ Ba ngày 19 tháng 3, nhưng không phải mọi thứ Ba. Trong trường hợp đó, việc nhập [thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes), vốn có sẵn trong gói Premium, là giải pháp tự nhiên. Nếu không có gói Premium, hãy nhập **thời gian rảnh theo tuần** ở mức tương đối (chiều thứ Ba) rồi khóa từng tiết học một bằng tay. #### Giờ làm việc và hợp đồng Giáo viên thỉnh giảng thường có một **định mức giờ** được ấn định khi tuyển (`30 giờ trong cả năm`, `một học phần 15 giờ`). Trường **Giờ làm việc** trong hồ sơ dùng để ghi nhận định mức đó; phần chẩn đoán sẽ báo nếu số giờ đã xếp vượt quá. Với hợp đồng tính theo giờ (trả công theo tiết học thay vì theo tháng), bản xuất thống kê theo giáo viên là dữ liệu đầu vào cho quy trình trả lương / lập hóa đơn bên ngoài. #### Liên lạc Giáo viên thỉnh giảng đăng nhập vào ứng dụng ít hơn so với đội ngũ cơ hữu. Có ba tình huống sử dụng: - **Tài khoản đầy đủ** — giáo viên nhận thông tin đăng nhập và xem thời khóa biểu, nhập thời gian rảnh, khai báo vắng mặt từ cổng thông tin giáo viên. - **Chỉ liên kết iCal** — không có tài khoản, chỉ một liên kết đăng ký iCal để đồng bộ các tiết học của họ với lịch cá nhân. - **Nhắc bằng e-mail (bên ngoài ứng dụng)** — quản trị viên báo cho giáo viên qua e-mail trước mỗi lần họ đến dạy; giáo viên không bao giờ đăng nhập. Việc nhắc này là thủ công: Omniscol không gửi thông báo tự động cho từng tiết học. Một cơ chế nhắc như vậy có thể dựng dễ dàng bên ngoài Omniscol bằng API lấy dữ liệu thời khóa biểu, có lọc theo giáo viên. Chẳng hạn, một tác vụ chạy hằng tuần dựng bản tóm tắt rồi đưa vào mẫu thư riêng của trường, sau đó gửi qua dịch vụ thư điện tử của trường. Đi qua dịch vụ đó giúp giữ uy tín người gửi và hạn chế bị bộ lọc thư rác đánh nhầm. Hãy cân nhắc theo từng người (một chuyên gia tư vấn kỳ cựu không có thời gian quản lý thêm một tài khoản nữa; một nghiên cứu sinh dạy vài giờ thì thích nghi dễ dàng). #### Hướng dẫn — Tiếp nhận một giáo viên thỉnh giảng 1. **Một giáo viên thỉnh giảng dạy 15 giờ trong cả năm**: đánh dấu là bên ngoài, thời gian rảnh theo ngày, định mức giờ, cách liên lạc phù hợp. 2. **Tạo hồ sơ giáo viên** trong **Giáo viên**. Điền họ, tên, e-mail rồi bật **Giáo viên bên ngoài**. Dấu hiệu này thêm biểu tượng [user-tie] trước tên và một cột riêng trong các chế độ xem dạng bảng và trong các bản xuất. 3. **Định mức giờ**: ở trường **Giờ làm việc**, hãy nhập định mức theo hợp đồng (`15`). Phần chẩn đoán sẽ báo nếu số giờ đã xếp vượt quá. Tiện cho việc trả lương theo giờ và theo dõi hợp đồng. 4. **Thời gian rảnh**: trên tài khoản Premium, giáo viên tự nhập thời gian rảnh **theo từng ngày** qua [thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) — rất hợp với một lịch dạy mà nhà trường phải chiều theo. Nếu không, dùng **thời gian rảnh theo tuần ở mức tương đối** + khóa từng tiết học một bằng tay. 5. **Cách liên lạc** — hãy chọn theo từng người: - **Tài khoản đầy đủ** — cho một nghiên cứu sinh dạy vài giờ; thông tin đăng nhập, cổng thông tin giáo viên, thời gian rảnh, vắng mặt; - **Chỉ liên kết iCal** — cho một chuyên gia tư vấn kỳ cựu quá bận để thêm một tài khoản nữa; chỉ cần đăng ký lịch; - **Nhắc bằng e-mail (bên ngoài ứng dụng)** — quản trị viên báo cho giáo viên qua e-mail, bằng tay (Omniscol không gửi nhắc tự động cho từng tiết học); giáo viên không bao giờ đăng nhập. 6. **Xuất thống kê** vào cuối tháng hoặc cuối học kỳ phục vụ **trả lương/lập hóa đơn bên ngoài**: số giờ đã dạy theo tiết học, môn học, lớp. Xem [In và chia sẻ](#page-schedules.print-and-export). Cột Bên ngoài trong các bản xuất cho phép tách riêng nhóm thỉnh giảng. #### Xem thêm - [Quản lý giáo viên](#page-admin.teachers) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) - [Giáo viên bên ngoài](#page-glossary.external-teacher) - [Tổng quan](#page-higher-ed.overview) ### 13.4 Phòng học tách đôi và kỳ thi nhiều phòng học *Source: `help/vi/higher-ed/multi-room-exams.md` · id: higher-ed.multi-room-exams · Audience: admin · Updated: 2026-06-13* Ở bậc đại học, một số tiết học chiếm **nhiều phòng học cùng lúc**. Một kỳ thi giữa kỳ tập hợp cả một khóa 200 học sinh, chia ra 5 giảng đường. Một tiết học lý thuyết tách đôi diễn ra ở 2 giảng đường nối với nhau qua hội nghị truyền hình. Một hội đồng bảo vệ huy động 3 phòng học song song. Omniscol xử lý những trường hợp này bằng khái niệm **nhiều phòng học**. #### Nhiều phòng học: nguyên tắc Một tiết học (hoặc một sự kiện) có thể được gán **nhiều phòng học**. Khi đó tất cả các phòng học ấy đều bị chiếm trên khung giờ, và mọi ràng buộc (sức chứa, chuyên ngành, tình trạng khả dụng) đều được kiểm tra song song. Nhiều phòng học khả dụng ở **mọi chế độ thời khóa biểu** (hằng tuần, theo chu kỳ, lịch). Xem [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources). > _Premium_ Các kịch bản thi cử và hội đồng bảo vệ dưới đây dựa trên **sự kiện đơn lẻ** (tiết học có ngày cụ thể, đặt chồng lên lưới thời gian), khả dụng trên các tài khoản **Premium**. Còn **nhiều phòng học** trên một tiết học thông thường thì vẫn khả dụng trên mọi tài khoản. #### Trường hợp điển hình: kỳ thi trên nhiều phòng học Khóa `CNTT K2026` (200 học sinh) thi giữa kỳ môn Thuật toán. Không giảng đường nào của trường đủ 200 chỗ, nên kỳ thi diễn ra đồng thời tại: - `Giảng đường A` (80 chỗ), - `Giảng đường B` (70 chỗ), - `Giảng đường C` (50 chỗ). Cách mô hình hóa trong Omniscol: - tạo một **sự kiện kỳ thi** vào đúng ngày và giờ liên quan (xem [Sự kiện đơn lẻ](#page-schedules.events)), - phần người tham dự: lớp `CNTT K2026`, - phần phòng học: `Giảng đường A`, `Giảng đường B`, `Giảng đường C` (nhiều phòng học), - phần coi thi: 1 đến 3 giám thị mỗi phòng học qua mô-đun **Quản lý nhân sự** (xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview)). Hãy kiểm tra rằng tổng sức chứa của các giảng đường (80 + 70 + 50 = 200) đủ cho sĩ số. Với một kỳ thi được mô hình hóa dưới dạng **sự kiện**, Omniscol không tự cộng tổng này: phần chẩn đoán sức chứa chỉ áp dụng cho các tiết học thông thường đặt trên lưới thời gian. #### Tiết học lý thuyết tách đôi qua hội nghị truyền hình Một tiết học lý thuyết có rất đông người theo học có thể được truyền trực tiếp qua hội nghị truyền hình từ giảng đường chính sang một giảng đường phụ. Cách mô hình hóa: - một tiết học duy nhất với hai phòng học, - giáo viên có mặt thực tế tại giảng đường chính, - **Liên kết hội nghị truyền hình** của tiết học chứa địa chỉ tiếp sóng sang giảng đường phụ (một ghi chú có thể nói rõ thêm cách tổ chức). #### Hội đồng bảo vệ Một hội đồng chấm 10 nghiên cứu sinh song song trong 3 phòng học (luân phiên theo từng phần ba): - mỗi phiên của hội đồng là một sự kiện, - nhiều phòng học cho từng phiên, - **Quản lý nhân sự** để phân công thành viên hội đồng cho từng phòng học. #### Phân chia học sinh tự động Omniscol không tự quyết định học sinh nào vào giảng đường nào. Việc phân chia vẫn là quyết định của nhà trường (thứ tự chữ cái, trình độ, loại bài thi, quy định nội bộ). Việc này được làm thủ công, hoặc qua một bản xuất dạng bảng tính gửi cho giám thị. #### Hướng dẫn — Lên lịch một kỳ thi giữa kỳ trên 3 giảng đường 1. **Trường hợp điển hình ở bậc đại học**: một kỳ thi giữa kỳ 200 học sinh trên 3 giảng đường đồng thời. Chỉ cần nhiều phòng học, sự kiện và mô-đun **Quản lý nhân sự** là đủ. 2. **Tạo sự kiện kỳ thi**: trong mô-đun **Thời khóa biểu**, bật bộ lọc **Các sự kiện** (chế độ Tổ chức lại) rồi **nhấn giữ và kéo** trên lịch để vẽ khung giờ có ngày cụ thể. Tiêu đề: `Thi giữa kỳ Thuật toán CNTT`, rồi ngày giờ bắt đầu và ngày giờ kết thúc. Xem [Sự kiện đơn lẻ](#page-schedules.events). 3. **Người tham dự**: thêm lớp `CNTT K2026` (200 học sinh). Toàn bộ học sinh liên quan tự động có mặt trên sự kiện, bất kể họ sẽ ngồi thi thực tế ở giảng đường nào. 4. **Phòng học — đây chính là nhiều phòng học**: thêm 3 giảng đường (`Giảng đường A` 80, `Giảng đường B` 70, `Giảng đường C` 50). Khi đó cả 3 giảng đường đều bị chiếm đồng thời trên khung giờ. Bạn hãy tự kiểm tra rằng tổng sức chứa (200) đủ cho sĩ số (200): trên một sự kiện, tổng này không được chẩn đoán tự động. 5. **Giám thị**: mở mô-đun **Quản lý nhân sự** và tạo các nhiệm vụ coi thi cho từng giảng đường (1 đến 3 giám thị mỗi phòng học tùy quy định của bạn). Xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview). 6. **Phân chia học sinh giữa các giảng đường**: Omniscol không làm việc này tự động. Lựa chọn đó thuộc về quy định nội bộ của bạn (thứ tự chữ cái, trình độ, cân bằng sĩ số). Hãy xuất danh sách học sinh ra dạng bảng tính, phân chia thủ công hoặc theo quy định của bạn, rồi gửi cho giám thị. Xem [In và chia sẻ](#page-schedules.print-and-export). #### Xem thêm - [Nhiều phòng học](#page-glossary.multi-room) - [Hình thức](#page-glossary.lesson-modality) - [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) - [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [Sự kiện đơn lẻ](#page-schedules.events) ### 13.5 Đồng giảng dạy và luân phiên giáo viên *Source: `help/vi/higher-ed/co-teaching.md` · id: higher-ed.co-teaching · Audience: admin · Updated: 2026-06-13* Hai tình huống thường gặp ở giáo dục đại học: - **đồng giảng dạy** — hai giáo viên trở lên cùng đứng lớp trong cùng một tiết học. Trường hợp điển hình: một người thiên về lý thuyết cùng một người đến từ thực tiễn trong một khóa học về chiến lược, một giáo viên cơ hữu cùng một chuyên gia thỉnh giảng trong một tiết học nghiên cứu tình huống. - **luân phiên giáo viên** — một khóa học kéo dài suốt một giai đoạn (một học phần, một học kỳ) do nhiều giáo viên lần lượt đảm nhiệm, người này nối tiếp người kia. Trường hợp điển hình: một học phần chuyên ngành chia thành các tiết học theo chủ đề, mỗi tiết giao cho một chuyên gia khác nhau. Omniscol hỗ trợ sẵn cả hai cơ chế này. #### Đồng giảng dạy (cùng đứng lớp) Một tiết học có thể mang **nhiều giáo viên cùng lúc**. Trong mô-đun **Quản lý thời khóa biểu**, ô chọn giáo viên **Phân công giáo viên** nhận nhiều tên trên cùng một tiết học. Thời khóa biểu riêng của từng giáo viên liên quan đều hiển thị đó là một tiết học đồng giảng dạy. Hệ quả: - **Thời gian rảnh** của tất cả giáo viên cùng đứng lớp phải tương thích với nhau trên khung giờ đó. - Về **giờ làm việc**, tiết học xuất hiện **trọn vẹn** trong thời khóa biểu của từng người cùng dạy. Nếu quy định của bạn chia giờ đó theo tỉ lệ giữa những người cùng dạy, phép tính ấy diễn ra lúc xuất dữ liệu (bảng lương, hóa đơn). Xem [Tiết học phức hợp](#page-core-concepts.complex-lessons) để biết chi tiết kỹ thuật của các tiết học đồng giảng dạy. #### Luân phiên giáo viên trong một học phần Phức tạp hơn: 12 tiết học của một học phần, mỗi tiết do một giáo viên khác nhau đảm nhiệm. Có hai cách làm: ##### Cách A — Một môn học, nhiều khóa học Hãy tạo **một khóa học cho mỗi giáo viên** trong học phần, mỗi khóa học gắn với giáo viên phụ trách của mình. Việc nhập liệu mất thời gian, nhưng kết quả vẫn rõ ràng với người dạy: ai cũng thấy tiết học của mình trong thời khóa biểu, và học phần hiện ra như một môn học có nhiều khóa học. ##### Cách B — Chế độ lịch với ngày cụ thể Nếu các tiết học đã có ngày cụ thể, hãy dùng [chế độ lịch](#page-timetables.calendar-mode), có trong gói Premium: - một môn học `Học phần Chiến lược doanh nghiệp`, - N tiết học có ngày, mỗi tiết một giáo viên phụ trách, - công cụ tạo tự động tôn trọng thời gian rảnh của từng giáo viên. Cách này gọn hơn và tự nhiên hơn với các học phần tập trung. #### Ghi chú để mô tả trình tự Bạn có thể thêm một **ghi chú** Nhận xét trên từng tiết học để nói rõ vị trí của tiết học đó trong học phần (`Tiết 3 / 12 — Chiến lược tài chính`). Ghi chú hiện ra trong thời khóa biểu và giúp học sinh biết mình đang ở đâu. #### Hướng dẫn — Học phần với 12 giáo viên luân phiên 1. **Trường hợp học phần chuyên ngành**: 12 tiết học, mỗi tiết giao cho một chuyên gia khác nhau. Ở đây bạn kết hợp hai cơ chế: **cách làm theo lịch** để ấn định ngày cho các tiết học nối tiếp nhau, và **đồng giảng dạy** chỉ trên những tiết học do hai người cùng phụ trách. 2. **Với biến thể có ngày cụ thể này**: thời khóa biểu ở **chế độ lịch**. Mọi giáo viên bên ngoài đều được đánh dấu **Bên ngoài** trên hồ sơ giáo viên của họ. Xem [Giáo viên bên ngoài](#page-higher-ed.external-faculty). 3. **Hãy tạo một môn học duy nhất** `Học phần Chiến lược doanh nghiệp`. Đó là khung sư phạm bao trọn học phần. Chọn **Loại bài học** phù hợp: thường là kết hợp giữa bài giảng lý thuyết và nghiên cứu tình huống. 4. **Hãy nhập 12 tiết học** theo ngày cụ thể, mỗi tiết với **giáo viên phụ trách riêng**. Đặt tên tiết học kèm chủ đề (`Tiết 3/12 — Chiến lược tài chính`) vào ghi chú để học sinh theo dõi được tiến độ. 5. **Với những tiết học do hai người cùng dạy** (một người thiên về lý thuyết cùng một người đến từ thực tiễn trong một nghiên cứu tình huống), hãy dùng **đồng giảng dạy**: trên tiết học liên quan, hãy chọn **nhiều giáo viên** trong **Phân công giáo viên**. Thời khóa biểu riêng của từng giáo viên liên quan đều hiển thị đó là một tiết học đồng giảng dạy. 6. **Giờ làm việc**: tiết học xuất hiện **trọn vẹn** trong thời khóa biểu của từng người cùng dạy. Việc chia theo tỉ lệ giữa những người cùng dạy được xử lý lúc xuất dữ liệu (bảng lương, hóa đơn), chứ không phải trong Omniscol. 7. **Kiểm tra lại**: hãy mở cổng thông tin học sinh để xem học phần hiển thị ra sao — 12 tiết học đều có mặt trong thời khóa biểu cùng giáo viên phụ trách tương ứng. Các ghi chú tiến độ (`Tiết N/12`) hiện ra khi rê chuột. #### Xem thêm - [Đồng giảng dạy](#page-glossary.co-teaching) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Giáo viên bên ngoài](#page-higher-ed.external-faculty) - [Chế độ lịch](#page-timetables.calendar-mode) ### 13.6 Chế độ lịch cho các chương trình không lặp lại *Source: `help/vi/higher-ed/calendar-mode.md` · id: higher-ed.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Giáo dục đại học không phải lúc nào cũng theo **nhịp lặp lại hằng tuần**: học phần tập trung trong 2 tuần, hội thảo chuyên đề 3 ngày, các buổi bảo vệ trải dài suốt một tháng, các buổi thực hành đơn lẻ do giáo viên bên ngoài phụ trách. Với những trường hợp đó, **chế độ lịch** của Omniscol tự nhiên hơn một lưới hằng tuần chi chít ngoại lệ. #### Khi nào nên chọn chế độ lịch Các dấu hiệu: - các tiết học có **ngày cụ thể** thay vì một khung giờ lặp lại hằng tuần, - **giáo viên phụ trách thay đổi** từ tiết học này sang tiết học khác, - **địa điểm thay đổi** (đi thực địa, tham quan doanh nghiệp, họp trực tuyến), - **nhịp độ** không theo tuần (lúc thì 3 tiết học trong 2 ngày, lúc thì không có gì suốt 3 tuần). Nếu bạn hình dung học phần đó bằng một cuốn lịch chứ không phải bằng một lưới hằng tuần, thì chế độ lịch chính là dành cho bạn. #### Các trường hợp điển hình ở giáo dục đại học - **Học phần tập trung** — một hội thảo chuyên đề trọn 3 ngày hoặc một đợt học tập trung kéo dài 2 tuần. - **Đào tạo thường xuyên** — các tiết học đơn lẻ không lặp lại trong một lưới cả năm. - **Hội thảo nghiên cứu** — các tiết học đơn lẻ với khách mời khác nhau mỗi tuần. - **Bảo vệ và hội đồng chấm** — trải dài vài tuần, ngày cụ thể, phòng học cụ thể. - **Công tác thực địa / đồ án** — các giai đoạn ngắn, địa điểm thay đổi. #### Cách mô hình hóa Bạn khai báo **một danh sách tiết học có ngày, xếp theo thứ tự**, không cần đi qua một lưới hằng tuần: - **ngày và giờ** cụ thể, - **thời lượng** (tự do), - **địa điểm**, - **giáo viên phụ trách** (có thể thay đổi giữa các tiết học), - **đối tượng tham dự**: lớp, nhóm, nhóm của nhóm. Chế độ lịch dùng đúng cấu trúc lớp / nhóm như chế độ hằng tuần — bạn không mất đi công cụ tổ chức nào. [tạo tự động](#page-timetables.generation) cũng hoạt động ở chế độ lịch: công cụ này xếp các tiết học vào một cửa sổ ngày mục tiêu và có thể dồn nén các ngày học về đầu hoặc cuối giai đoạn. Xem [Chế độ lịch](#page-timetables.calendar-mode). #### Kết hợp với một thời khóa biểu hằng tuần Bạn có thể có **một thời khóa biểu hằng tuần** cho phần đại cương lặp lại vào buổi sáng và **một thời khóa biểu theo lịch** cho các tiết học đơn lẻ vào buổi chiều, cả hai cùng được công bố song song cho cùng những lớp đó; hoặc các lớp năm đầu theo hằng tuần, còn các lớp chuyên ngành năm cuối theo lịch (xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables)). #### Thời gian rảnh của giáo viên phụ trách ở chế độ lịch Việc nhập [thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) đặc biệt hữu ích ở đây: giáo viên thỉnh giảng nhập thời gian rảnh của mình theo đúng những ngày cụ thể, chứ không theo nhịp hằng tuần. #### Xem thêm - [Chế độ lịch — góc nhìn sản phẩm](#page-timetables.calendar-mode) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Giáo viên bên ngoài](#page-higher-ed.external-faculty) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) ### 13.7 Liên kết hội nghị truyền hình theo khóa học *Source: `help/vi/higher-ed/videoconference-links.md` · id: higher-ed.videoconference-links · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Trong giáo dục đại học, nhiều khóa học diễn ra **từ xa** hoặc **kết hợp** (một số học sinh có mặt trực tiếp, số còn lại kết nối trực tuyến). Khi đó mỗi tiết học có một **liên kết hội nghị truyền hình** (Zoom, Teams, Google Meet, Jitsi) cần hiển thị trên thời khóa biểu để mọi người biết phải nhấp vào đâu. #### Cách gắn một liên kết Trên một tiết học hay một sự kiện, trường Liên kết hội nghị truyền hình nhận một địa chỉ URL. Với tiết học, bạn nhập giá trị này trong cửa sổ chọn phòng học. Sau khi bạn nhập xong, thời khóa biểu hiển thị liên kết kèm biểu tượng [video]; liên kết mở ra trong một tab mới. Liên kết xuất hiện: - trên tiết học, trong cổng thông tin học sinh và giáo viên, - trong bản xuất iCal, qua thuộc tính hội nghị hoặc thuộc tính URL khi liên kết đã có, - trong API JSON. #### Khóa học từ xa hoặc kết hợp Trường **[Hình thức](#page-glossary.lesson-modality)** của tiết học cho biết tiết học đó diễn ra theo cách nào: **Trực tiếp**, **Từ xa**, **Kết hợp** hay **Tự học**. Bạn nhập giá trị này trong cùng cửa sổ với phòng học và liên kết hội nghị truyền hình. Với một khóa học **hoàn toàn từ xa**, hãy chọn hình thức **Từ xa**, nhập liên kết hội nghị truyền hình và đừng ép một phòng học vật lý nếu khóa học không dùng đến. Với một khóa học **kết hợp** (học trực tiếp + trực tuyến song song), hãy chọn **Kết hợp**, giữ nguyên phòng học vật lý và nhập thêm liên kết. #### Liên kết cố định hay liên kết theo từng tiết học Tùy theo công cụ hội nghị truyền hình bạn dùng: - **Liên kết cố định** — phòng Zoom cá nhân, cuộc họp Teams lặp lại. Cùng một liên kết dùng cho mọi tiết học của một khóa học. Hãy nhập nó một lần duy nhất trên khóa học (mọi tiết học của khóa đều thừa hưởng), hoặc nhập thẳng trên lớp để áp dụng một liên kết mặc định cho mọi tiết học của lớp. - **Liên kết theo từng tiết học** — mỗi tiết học có địa chỉ URL riêng, nhập ngay trên tiết học (trong cùng cửa sổ với phòng học). Chỉ dùng cách này cho những tiết học có liên kết thay đổi mỗi lần (ví dụ cuộc họp Zoom được tạo tức thời). #### Bảo mật Một vài nguyên tắc nên áp dụng: - **Không đặt liên kết công khai trên khóa học nhạy cảm** — với một khóa học riêng tư hay một kỳ thi có giám sát, hãy đặt phòng họp trực tuyến ở chế độ truy cập có xác thực (chứ không phải vào thẳng bằng liên kết). - **Liên kết trong iCal** — bất kỳ ai có liên kết chia sẻ đều xem được luồng iCal. Một liên kết hội nghị truyền hình đặt trên tiết học vì thế lan theo iCal — hãy kiểm tra xem đó có đúng là điều bạn muốn không. - **Đổi liên kết** — nếu một liên kết cố định bị lộ, hãy tạo lại liên kết bên phía Zoom / Teams rồi cập nhật vào Omniscol (trên khóa học hoặc trên lớp, không phải trên từng tiết học). #### Xem thêm - [Hình thức](#page-glossary.lesson-modality) - [Loại tiết học](#page-admin.lesson-types) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) ### 13.8 Đa cơ sở trong giáo dục đại học *Source: `help/vi/higher-ed/multi-site.md` · id: higher-ed.multi-site · Audience: admin · Updated: 2026-06-13* Đa cơ sở là một chức năng **có từ gói Standard trở lên** (chỉ bị tắt ở gói Lite); các nguyên tắc chung được trình bày trong [Cơ sở, phòng học, tài nguyên, đa phòng học](#page-core-concepts.sites-rooms-resources). Trang này liệt kê những **đặc thù thường gặp trong giáo dục đại học**, nơi việc dùng nhiều cơ sở gần như là chuyện đương nhiên: trường kỹ thuật có nhiều đơn vị, trường kinh tế có cơ sở ở các địa phương, đại học nhiều cơ sở. Lưu ý: trong Omniscol, [đơn vị](#page-glossary.campus) là một khái niệm tổ chức, khác với [cơ sở](#page-glossary.site). Hai khái niệm này thường trùng nhau (mỗi cơ sở một đơn vị, với các lớp riêng của nó). Khi cần quản lý một lưới thời gian, phòng học hay thời gian di chuyển, hãy mô hình hóa địa điểm đó thành một cơ sở. > Những tình huống này cũng đúng với giáo dục phổ thông khi nhà trường > trải trên nhiều địa điểm (trung học cơ sở và trung học phổ thông tách > rời nhau, một trường có thêm điểm trường mầm non, v.v.). #### Trường hợp điển hình: một cơ sở chính + các phân hiệu ở địa phương Trường hợp thường gặp ở các trường kỹ thuật hay kinh tế: - 1 **cơ sở chính** (thường là trụ sở), - 1 đến N **phân hiệu ở địa phương**, nơi các khóa tại chỗ theo học một phần khóa học, - các **giáo viên** đi lại giữa các cơ sở. Cách mô hình hóa trong Omniscol: mỗi địa điểm một cơ sở, thời gian di chuyển khai báo theo từng cặp (tàu hỏa / máy bay / các chặng đi ô tô giữa các cơ sở). Xem [Quy tắc đa cơ sở](#page-core-concepts.sites-rooms-resources) để biết cơ chế cụ thể (ràng buộc chặn, chính xác đến từng phút, giờ nghỉ trưa bị trừ đi thời gian di chuyển, v.v.). #### Thời khóa biểu riêng theo cơ sở hay thời khóa biểu chung Hai cách làm, tùy cách tổ chức nội bộ: - **Thời khóa biểu chung, gộp lại** — một thời khóa biểu duy nhất bao trùm mọi cơ sở. Phù hợp khi đội ngũ xếp lịch tập trung ở một chỗ và giáo viên di chuyển nhiều. Phần chẩn đoán đối chiếu toàn bộ trong một lượt. - **Mỗi cơ sở một thời khóa biểu** — nhờ [nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables), có trong gói Premium. Mỗi cơ sở có đội ngũ tại chỗ, có thời khóa biểu đang hoạt động của riêng mình trên cùng những tuần đó; khi xem, các dạng xem được tự động gộp lại cho học sinh hay giáo viên có liên quan tới nhiều cơ sở. #### Cơ sở ảo và tiết học từ xa Trường hợp đặc biệt: một tiết học được **truyền trực tuyến** từ một cơ sở chính tới một khóa hoàn toàn học từ xa. Có thể mô hình hóa như sau: - tạo một **cơ sở ảo** “Từ xa”, không khai thời gian di chuyển với cơ sở phát, nhờ đó gỡ bỏ mọi ràng buộc thời gian đi lại, - trong đó đặt một phòng học “Trực tuyến” cho mỗi khóa ở xa, - gắn phòng học đó vào tiết học theo kiểu đa phòng học, cùng với giảng đường ban đầu. > Cách mô hình hóa này có giới hạn nếu bạn có **nhiều khóa ở xa**: > nhân bản các phòng học ảo “Trực tuyến” trở nên nặng nề khi bảo trì, > còn việc quản lý sức chứa của chúng thì không mấy ý nghĩa. Trong > trường hợp đó, hãy ghi nhận nhu cầu này như một yêu cầu riêng và ưu > tiên đặt liên kết hội nghị truyền hình thẳng trên tiết học (hoặc, với > gói Premium, đặt mặc định trên lớp), thay vì tạo một phòng học ảo cho > mỗi khóa. Xem [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) để biết cơ chế đa phòng học, và [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links) cho các liên kết Zoom / Teams / Meet đi kèm. #### Bộ lọc và thống kê theo cơ sở Các màn hình của Omniscol có bộ lọc **theo cơ sở**, để tách riêng một địa điểm vật lý. Hữu ích khi cần: - hiển thị thời khóa biểu của một địa điểm cụ thể, - theo dõi riêng mức sử dụng phòng học của một phân hiệu, - lập thống kê theo cơ sở (số giờ đã dạy, tỷ lệ sử dụng). #### Bảng thông tin theo cơ sở Một [bảng thông tin](#page-panels.lobby-panel) có thể lọc theo một cơ sở cụ thể, thường ứng với một bảng thông tin đặt **ở sảnh** của một cơ sở. Xem [Cấu hình bảng thông tin cho sảnh hay hành lang](#page-panels.lobby-panel). #### Xem thêm - [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) - [Cơ sở](#page-glossary.site) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) - [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) - [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links) - [Hình thức](#page-glossary.lesson-modality) - [Cấu hình một bảng thông tin](#page-panels.lobby-panel) - [Tổng quan về giáo dục đại học](#page-higher-ed.overview) --- ## 14. Đặc thù tiểu học / trung học (giáo dục phổ thông) ### 14.1 Đặc thù của bậc tiểu học và trung học — tổng quan *Source: `help/vi/k12/overview.md` · id: k12.overview · Updated: 2026-06-13* Phần này tập hợp các trang trình bày những đặc thù của bậc tiểu học và trung học (trường tiểu học, trung học cơ sở, trung học phổ thông). #### Đặc điểm thường gặp - **Thời khóa biểu [hằng tuần](#page-glossary.weekly-timetable)** — một tuần mẫu lặp lại là chuẩn mực, có hoặc không có [tuần luân phiên](#page-glossary.alternate-lessons) (A/B). - **Phòng học riêng cho từng lớp** — nhiều trường bố trí một phòng học gắn với mỗi lớp; chính giáo viên mới là người di chuyển. - **Nửa lớp / nhóm môn tự chọn** — xử lý bằng [phân vùng](#page-core-concepts.class-divisions) trong cùng một lớp. - **Ngoại ngữ 2, môn tự chọn liên lớp, chuyên đề học tập ở trung học phổ thông** — xử lý bằng [căn chỉnh nhóm](#page-core-concepts.alignments) giữa các lớp. - **Tạo tự động** — công cụ tạo tự động hoạt động tốt, và đó chính là giá trị cốt lõi ở bậc phổ thông. - **Giờ tự học có giám sát** — những khoảng thời gian học sinh có mặt ở trường mà không có tiết học nào được xếp. Xem [Giờ tự học có giám sát](#page-k12.study-halls). - **Lớp ghép nhiều trình độ** — thường gặp ở các trường nhỏ vùng nông thôn. Xem [Lớp ghép nhiều trình độ](#page-k12.multi-grade-classes). #### Khuyến nghị cấu hình - **Tài khoản Standard** là đủ cho phần lớn trường hợp (gói Premium không cần thiết cho nhu cầu thông thường ở bậc phổ thông). - **Chế độ hằng tuần** làm mặc định. - **Bật phần nhập thời gian rảnh của giáo viên** ở chế độ hằng tuần; việc nhập có thể do bộ phận quản trị thực hiện hoặc rà soát lại. - **Một phòng học riêng cho mỗi lớp** khi áp dụng được — khai báo trên lớp. - **Thiết lập kỹ các khối lớp** trong mô-đun **Quản trị**, qua **Tạo mới** (Khối 1, Khối 2, …, Khối 6, Khối 7, …, Khối 10, Khối 11, Khối 12, v.v.). - **Ngày nghỉ lễ chính thức của quốc gia** — khi tạo năm học, Omniscol đề xuất nhập các ngày nghỉ lễ chung của quốc gia. Xem [Năm học và ngày nghỉ lễ](#page-admin.school-year). #### Trường hợp sử dụng ở bậc phổ thông Nền tảng lịch sử của Omniscol là bậc trung học (trung học cơ sở và trung học phổ thông): rất nhiều quy ước mặc định bắt nguồn từ đó. Các kịch bản từng bước áp dụng cho bậc phổ thông được tập hợp trong [các kịch bản sử dụng](#page-use-cases.overview) và [FAQ xây dựng thời khóa biểu](#page-faq.timetables). #### Xem thêm - [Omniscol là gì](#page-overview.what-is-omniscol) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Nửa lớp và môn tự chọn trong phân vùng](#page-k12.half-classes-and-options) - [Giờ tự học có giám sát](#page-k12.study-halls) - [Lớp ghép nhiều trình độ](#page-k12.multi-grade-classes) ### 14.2 Nửa lớp và môn tự chọn trong phân vùng *Source: `help/vi/k12/half-classes-and-options.md` · id: k12.half-classes-and-options · Audience: admin · Updated: 2026-06-13* Ở bậc phổ thông, việc quản lý một lớp nhanh chóng trở nên phức tạp với **nửa lớp** (thực hành / thí nghiệm với sĩ số rút gọn) và các **môn tự chọn** vốn chia học sinh của cùng một lớp thành nhiều nhóm nhỏ học song song. Khái niệm Omniscol dùng để tổ chức việc này là **phân vùng**: những nhóm nhỏ phải học cùng lúc nhưng với nội dung khác nhau. #### Nửa lớp cho giờ thực hành Trường hợp điển hình ở lớp 6 và lớp 7: 28 học sinh học chung cả lớp trong phần lớn thời gian, tách thành 2 nhóm 14 học sinh cho các tiết thực hành môn Khoa học tự nhiên. Hai nửa lớp này phải học thực hành cùng lúc (nếu không, hai nhóm sẽ không thể có tiết học nào khác song song), mỗi nhóm có giáo viên và phòng học riêng. Cách mô hình hóa trong Omniscol: - tạo hai **nhóm** `6A-Thực hành 1` và `6A-Thực hành 2` trong lớp `6A`, - khai báo chúng thành một **phân vùng**: Omniscol bảo đảm rằng chúng luôn bận cùng lúc, - tạo **hai tiết học thực hành môn Khoa học tự nhiên**, mỗi tiết có nhóm, giáo viên và phòng học riêng, trên cùng một khung giờ hằng tuần. Thuật toán tôn trọng phân vùng: không thể có chuyện `6A-Thực hành 1` học Khoa học tự nhiên trong khi `6A-Thực hành 2` học Ngữ văn. #### Môn tự chọn trong phân vùng Trường hợp điển hình ở lớp 8 và lớp 9: trên cùng một khung giờ, một số học sinh học ngoại ngữ 2 tiếng Nhật, một số học tiếng Hàn tăng cường, một số không chọn gì (tự học có giám sát). Ba nhóm học song song trong cùng một lớp. Cách mô hình hóa: - các nhóm `9A-Tiếng Nhật`, `9A-Tiếng Hàn`, `9A-Tự học` trong lớp `9A`, - được khai báo thành một **phân vùng** (cả ba đều học song song), - một tiết học cho mỗi nhóm trên cùng một khung giờ, với giáo viên / phòng học riêng. #### Học sinh đổi môn tự chọn giữa năm học Một môn tự chọn có thể thay đổi trong năm học (chẳng hạn một học sinh bỏ tiếng Nhật để chuyển sang nhóm tự học). Việc phân công vào các nhóm được quản lý **theo từng tuần** trong hồ sơ học sinh: những tuần đã trôi qua giữ nguyên phân công cũ, những tuần tiếp theo nhận phân công mới. #### Phân vùng + căn chỉnh nhóm Với những ngoại ngữ được tổ chức **liên lớp** (ví dụ tiếng Nhật mở cho các lớp 9A, 9B, 9C), hãy kết hợp: - một **phân vùng** trong từng lớp (`9A-Tiếng Nhật` / `9A-Môn khác`, `9B-Tiếng Nhật` / `9B-Môn khác`, v.v.), - một **căn chỉnh nhóm** giữa ba nhóm tiếng Nhật để chúng nằm trên cùng một khung giờ, trong cùng một phòng học, với cùng một giáo viên. Xem [Căn chỉnh nhóm](#page-core-concepts.alignments). #### Hướng dẫn — Tạo một khung giờ tiếng Nhật/tiếng Hàn/tự học cho một lớp 9 1. **Trường hợp điển hình ở lớp 8 và lớp 9**: trên cùng một khung giờ, một số học sinh học tiếng Nhật, một số học tiếng Hàn, một số không học gì (tự học có giám sát). Ba nhóm học song song. Phân vùng của Omniscol xử lý việc này rất nhẹ nhàng. 2. **Hãy tạo ba nhóm** trong lớp `9A`: `9A-Tiếng Nhật`, `9A-Tiếng Hàn`, `9A-Tự học`. Hãy phân công mỗi học sinh vào nhóm tương ứng với môn tự chọn đã đăng ký. 3. **Hãy khai báo phân vùng** `(9A-Tiếng Nhật, 9A-Tiếng Hàn, 9A-Tự học)`: ba nhóm này **loại trừ lẫn nhau và học song song**. Omniscol sẽ bảo đảm rằng cả ba luôn bận trên cùng một khung giờ. 4. **Hãy tạo ba tiết học** trên cùng một khung giờ hằng tuần: - tiếng Nhật cho `9A-Tiếng Nhật` với giáo viên tiếng Nhật và phòng học phù hợp; - tiếng Hàn cho `9A-Tiếng Hàn` với giáo viên tiếng Hàn; - tự học cho `9A-Tự học` với một giám thị (hoặc để trống giáo viên tùy theo quy định của trường bạn). Công cụ tạo tự động tôn trọng phân vùng: cả ba chắc chắn sẽ nằm trên cùng một khung giờ. 5. **Với những môn tự chọn mở cho nhiều lớp** (tiếng Nhật ở 9A + 9B + 9C với một giáo viên duy nhất và một phòng học duy nhất): hãy kết hợp **phân vùng trong từng lớp** (`9A-Tiếng Nhật` loại trừ những nhóm 9A khác, tương tự với 9B, 9C) **+ căn chỉnh nhóm** giữa ba nhóm tiếng Nhật. Xem [Căn chỉnh nhóm](#page-core-concepts.alignments). 6. **Thay đổi giữa năm học** (một học sinh bỏ tiếng Nhật để chuyển sang nhóm tự học): hãy sửa nhóm của học sinh đó trong hồ sơ học sinh, kể từ tuần có thay đổi. Những tuần đã qua giữ nguyên phân công cũ. #### Xem thêm - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Lớp ghép nhiều trình độ](#page-k12.multi-grade-classes) ### 14.3 Giờ tự học có giám sát (phổ thông) *Source: `help/vi/k12/study-halls.md` · id: k12.study-halls · Audience: admin/staff · Updated: 2026-06-13* **Giờ tự học có giám sát** (hay gọi tắt là **giờ tự học**) là những khoảng thời gian mà học sinh không có tiết học được đón vào phòng tự học dưới sự giám sát. Đây là cách tổ chức quen thuộc ở các trường trung học cơ sở và trung học phổ thông: học sinh có môn tự chọn không rơi vào khung giờ đó, học sinh được miễn học thể dục, học sinh có giáo viên vắng mặt. #### Vì sao không xử lý như một tiết học thông thường? Một giờ tự học không được quản lý hoàn toàn giống một tiết học: - **không có môn học** theo nghĩa thông thường, - **thành phần học sinh thay đổi** từ khung giờ này sang khung giờ khác (ai không có tiết học), - **giám sát chứ không giảng dạy** — người phụ trách không dạy, chỉ trông coi, - **yêu cầu công bằng rất cao**: khối lượng giám sát phải được phân bổ giữa các giáo viên (và đội ngũ quản sinh, giám thị) theo một quy tắc công bằng. Vì vậy Omniscol có mô-đun **Quản lý nhân sự** dành riêng cho kiểu quản lý này. Xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview). Mô-đun này là một **tùy chọn** của tài khoản: nếu không có nó, bạn hãy mô hình hóa giờ tự học bằng một **nhóm tự học** (phần bên dưới); còn lưới giám sát thì thuộc về mô-đun. #### Mô hình hóa bằng mô-đun **Quản lý nhân sự** Giờ tự học được chuyển thành các lưới trực ban: - một **lưới hằng tuần** gồm những khung giờ mà học sinh có thể vào phòng tự học, - với mỗi khung giờ, một hoặc nhiều **nhiệm vụ** giám sát (tùy số học sinh dự kiến và tỉ lệ người giám sát trên học sinh mà nhà trường mong muốn), - **phân công** người giám sát (giám thị, hoặc giáo viên có vai trò **Nhân viên**) vào từng nhiệm vụ. Xem [Xây dựng lưới trực ban](#page-staffing.building-grids) và [Phân công nhân viên](#page-staffing.planner). #### Liên hệ với thời khóa biểu của học sinh Khi một học sinh không có tiết học trên một khung giờ (lớp đang học môn tự chọn hoặc nửa lớp đang học thực hành), thời khóa biểu cá nhân của học sinh đó chỉ hiển thị một **khung giờ trống**: Omniscol không tự động hiển thị ở đó một tiết học “Tự học”. Để giờ tự học xuất hiện trong thời khóa biểu của những học sinh liên quan, hãy tạo một **tiết học tự học** cho nhóm không có tiết học trên khung giờ đó, kèm phòng tự học — đó chính là cách làm với nhóm `9A-Tự học` được mô tả trong [Nửa lớp và môn tự chọn trong phân vùng](#page-k12.half-classes-and-options). Còn việc bảo đảm đủ người giám sát thì được điều hành bên phía mô-đun **Quản lý nhân sự** — xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview). #### Tự học có giám sát so với tự học tự do Một phân biệt hữu ích: - **Tự học có giám sát** — có người phụ trách tại chỗ, học sinh làm bài trong yên lặng. Đây là trường hợp điển hình của mô-đun **Quản lý nhân sự**. - **Tự học tự do** (phòng sinh hoạt chung, khu tự học độc lập) — không có người phụ trách riêng, chỉ đơn giản là một nơi để học sinh chờ. Không cần đến mô-đun **Quản lý nhân sự**: bạn hãy mô hình hóa nó như một phòng học dành riêng; nếu cần, một **chuyên ngành phòng học** có thể ngăn các tiết học thông thường được xếp vào đó (nhưng cũng không vì thế mà giữ chỗ phòng học cho chính giờ tự học, vốn không có môn học nào). Xem [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations). #### Xem thêm - [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [Xây dựng lưới trực ban](#page-staffing.building-grids) - [Phân công nhân viên](#page-staffing.planner) - [Nửa lớp và môn tự chọn trong phân vùng](#page-k12.half-classes-and-options) ### 14.4 Lớp ghép nhiều trình độ *Source: `help/vi/k12/multi-grade-classes.md` · id: k12.multi-grade-classes · Audience: admin · Updated: 2026-06-13* **Lớp ghép nhiều trình độ** gom học sinh của nhiều trình độ khác nhau vào cùng một phòng học, dưới sự phụ trách của cùng một giáo viên. Đây là thực tế của các **trường tiểu học nhỏ ở nông thôn**, đôi khi cũng là của các **trường chuyên biệt** hoặc các **trường quốc tế** có sĩ số thấp. #### Vì sao Omniscol xử lý được những trường hợp này Mô hình của Omniscol — tách lớp (đơn vị hành chính) khỏi nhóm (tập hợp con phục vụ việc dạy học) — bao quát sẵn việc ghép trình độ. Cùng một lớp hành chính `Lớp 2-3` có thể mang hai nhóm `Lớp 2` và `Lớp 3`, khi thì có tiết học chung, khi thì có tiết học riêng theo từng trình độ. #### Cách mô hình hóa Có hai cách tiếp cận, tùy theo tính chất của các tiết học được dạy: ##### Cách A — một lớp hành chính, hai nhóm học tập - Lớp hành chính: `Lớp 2-3` (để quản lý học sinh, danh sách phụ huynh, phòng học). - Nhóm học tập: `Lớp 2` và `Lớp 3`. - Các **tiết học chung** (Âm nhạc, Thể dục, sinh hoạt lớp) được gán cho cả lớp `Lớp 2-3`. - Các **tiết học riêng** (Tập đọc / Toán theo trình độ của từng nhóm) dùng hai nhóm `Lớp 2` và `Lớp 3`, được khai báo thành **phân vùng** để chúng diễn ra đồng thời (người giáo viên duy nhất dạy nhóm này trong khi nhóm kia tự học). ##### Cách B — hai lớp hành chính, một giáo viên duy nhất - Hai lớp hành chính tách rời: `Lớp 2` và `Lớp 3`. - Người giáo viên duy nhất được phân công dạy các tiết học của cả hai lớp. - Vì một giáo viên không thể dạy hai tiết học cùng lúc, Omniscol báo lỗi tương thích nếu các tiết học `Lớp 2` và `Lớp 3` của họ được xếp vào cùng một khung giờ. Cách B ít gặp hơn vì nó làm phức tạp việc quản lý hành chính (hai lớp riêng biệt cho cái mà trên thực tế chỉ là một tập hợp học sinh) và nó không có cơ chế nào trực tiếp bằng phân vùng để tổ chức việc luân phiên giữa các trình độ. #### Ghép ba trình độ trở lên Cơ chế này mở rộng được cho ba trình độ trở lên (trường hợp của những trường rất nhỏ: từ `Lớp 1` đến `Lớp 5` trong cùng một phòng học). Omniscol không đặt giới hạn về số lượng — cái khó nằm ở tổ chức dạy học, chứ không nằm ở cách mô hình hóa. #### Giờ tự học có giám sát và việc tự học Khi người giáo viên duy nhất đang dạy một trình độ, trình độ còn lại tự học trong cùng phòng học. Không cần mô hình hóa việc đó thành một giờ tự học có giám sát — đó là đặc điểm vốn có trong cách vận hành của lớp ghép và nó không phải là một nhiệm vụ giám sát riêng. #### Hướng dẫn — Mô hình hóa một lớp ghép Lớp 2-3 1. **Trường hợp điển hình của trường nông thôn**: một lớp `Lớp 2-3` với một giáo viên duy nhất luân phiên giữa hai trình độ. Cách A (khuyến nghị): một lớp hành chính, hai nhóm học tập. 2. **Hãy tạo lớp hành chính** `Lớp 2-3` trong **Lớp**. Chính lớp này mang danh sách học sinh, phụ huynh, phòng học và các thông báo. Trình độ: hãy gán trình độ tiêu biểu nhất hoặc tạo một trình độ riêng `Lớp ghép tiểu học`. 3. **Hãy tạo hai nhóm học tập** `Lớp 2` và `Lớp 3` bên trong lớp. Hãy phân mỗi học sinh vào nhóm tương ứng. Hai nhóm gộp lại = cả lớp. 4. **Hãy khai báo hai nhóm thành phân vùng** `(Lớp 2, Lớp 3)`: phân vùng **cho phép** xếp chúng **đồng thời** (nó gỡ bỏ lỗi tương thích vốn sẽ cấm điều đó) và công cụ tạo tự động **tìm cách** đặt các tiết học của `Lớp 2` và `Lớp 3` vào cùng những khung giờ. Phòng học và giáo viên vẫn được phân công theo từng tiết học. Xem [Phân vùng lớp](#page-core-concepts.class-divisions). 5. **Tiết học chung** (Âm nhạc, Thể dục, sinh hoạt lớp): hãy gán chúng cho cả lớp `Lớp 2-3`. Toàn bộ học sinh cùng học các tiết này. 6. **Tiết học tách theo trình độ** (Tập đọc, Toán): hãy tạo một tiết học cho mỗi nhóm `Lớp 2` và `Lớp 3`, trên cùng một khung giờ (phân vùng đòi hỏi như vậy). Hãy phân công giáo viên vào tiết học mà họ trực tiếp dạy và để tiết học còn lại không có giáo viên (học sinh tự học): cùng một giáo viên được phân công vào hai tiết học đồng thời sẽ làm phát sinh lỗi tương thích. Không cần mô hình hóa một giờ tự học có giám sát, việc tự học là đặc điểm vốn có của lớp ghép. 7. **Với những trường rất nhỏ** (từ `Lớp 1` đến `Lớp 5` trong cùng một phòng học), cơ chế này mở rộng không giới hạn. Bạn tạo số nhóm đúng bằng số trình độ, rồi khai báo chúng thành phân vùng. Cái khó nằm ở tổ chức dạy học, chứ không nằm ở cách mô hình hóa của Omniscol. #### Xem thêm - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Nửa lớp và môn tự chọn trong phân vùng](#page-k12.half-classes-and-options) --- ## 15. Kịch bản sử dụng ### 15.1 Kịch bản sử dụng — tổng quan *Source: `help/vi/use-cases/overview.md` · id: use-cases.overview · Updated: 2026-06-13* Phần này đáp ứng một yêu cầu thường gặp của các cơ sở đào tạo lớn: có trong tay một **danh sách các kịch bản vận hành** theo định dạng *user story*, kèm lời giải thích cụ thể về việc “trong Omniscol thì làm thế nào”. Mỗi kịch bản đã khả dụng đều dẫn tới một trang tham chiếu hoặc một phần hướng dẫn từng bước đã có sẵn; những kịch bản còn đang được nghiên cứu thì được theo dõi riêng và không có trong danh sách này. Các kịch bản được rút ra từ phản hồi thực tế của khách hàng và khách hàng tiềm năng (trường kinh doanh, trường kỹ thuật, trường đại học, đào tạo thường xuyên), đã được ẩn danh và diễn đạt theo cách khái quát. #### Định dạng Mỗi kịch bản đều theo định dạng Agile quen thuộc: > **Với vai trò** *(vai trò người dùng)* > **tôi muốn** *(hành động)* > **nhằm** *(mục tiêu nghiệp vụ)* Tiếp sau đó là một **giải pháp Omniscol**: một đoạn ngắn, liên kết tới trang tham chiếu chi tiết, và phần hướng dẫn tương tác chỉ khi nào đã có sẵn một bản hướng dẫn từng bước đáng tin cậy. #### Trạng thái Mỗi kịch bản đều mang một trạng thái triển khai: | Trạng thái | Ý nghĩa | | --- | --- | | ✓ **Khả dụng** | Chức năng đã đưa vào môi trường vận hành, đã được kiểm thử và xác nhận. | | ◐ **Một phần** | Phạm vi bao phủ chưa đầy đủ; có cách làm thay thế, hoặc chức năng chỉ áp dụng cho một số chế độ. | | △ **Lộ trình** | Chưa có trong giao diện hiện tại; nhu cầu đã được ghi nhận hoặc thuộc một kế hoạch sản phẩm riêng. | | — **Ngoài phạm vi** | Do một công cụ khác trong hệ sinh thái đảm nhiệm, hoặc nằm ngoài phạm vi chức năng của Omniscol. | #### Mục lục theo chủ đề - [Tạo mới và tạo tự động thời khóa biểu](#page-use-cases.creation-and-generation) - [Xếp lịch và chỉnh sửa hằng ngày](#page-use-cases.placement-and-modification) - [Nhiều nhóm, nhiều phòng học, nhiều giảng viên](#page-use-cases.multi-entities) - [Thao tác hàng loạt](#page-use-cases.mass-operations) - [Kỳ thi và sự kiện](#page-use-cases.exams-and-events) - [Vắng mặt và thay thế (kịch bản)](#page-use-cases.absences-and-substitutions) - [Báo cáo và thống kê](#page-use-cases.reporting-and-stats) - [Phổ biến và chia sẻ](#page-use-cases.diffusion-and-sharing) #### Hướng dẫn từng bước và video Khi một kịch bản có kèm phần hướng dẫn từng bước đã được xác nhận, cùng một nội dung có thể phục vụ nhiều kênh hiển thị: - dạng **popover trong bảng trợ giúp** (chế độ tương tác, người dùng bấm qua từng bước), - dạng **phụ đề gắn sẵn trong video** (chế độ thụ động, xem tuần tự), - dạng **tệp WebVTT** đi kèm nếu có video được sản xuất. Phụ đề được đồng bộ với trình tự các bước: chỉ một nguồn duy nhất sinh ra cả ba định dạng. Một kịch bản không có các bước đã kiểm chứng thì vẫn chỉ là một trang tham chiếu đơn thuần, không có phần hướng dẫn từng bước cũng như video đi kèm. #### Cách đọc một kịch bản Một trang kịch bản điển hình gồm có: ```markdown ## Tên ngắn của kịch bản > **Với vai trò** **, **tôi muốn** **, **nhằm** > **. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Đoạn giải thích ngắn gọn, thiết thực. [Liên kết tới trang tham chiếu chi tiết](id:timetables.publication) `` ``` Các kịch bản mang trạng thái ✓ hoặc ◐ là **dùng được ngay hôm nay**. Các kịch bản mang trạng thái △ Lộ trình được theo dõi riêng và không được liệt kê ở đây. #### Xem thêm - [FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - [Đặc thù của giáo dục đại học — tổng quan](#page-higher-ed.overview) ### 15.2 Kịch bản — Tạo mới và tạo tự động thời khóa biểu *Source: `help/vi/use-cases/creation-and-generation.md` · id: use-cases.creation-and-generation · Updated: 2026-06-13* Tạo mới ban đầu, tạo tự động, sandbox và nhân bản thời khóa biểu để thử nghiệm và so sánh. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Chạy một lượt tạo tự động thời khóa biểu > **Với vai trò** người lập thời khóa biểu, **tôi muốn** chạy một lượt tạo tự động thời khóa biểu, **nhằm** nhanh chóng có được một nền tảng đầu tiên dùng được. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Việc tạo tự động khả dụng cho cả ba loại thời khóa biểu — theo tuần, theo chu kỳ và theo lịch. Công cụ tạo tự động xếp những tiết học đã tạo mà chưa được đặt vị trí, và có thể dời những tiết học đã xếp nếu việc đó làm kết quả tốt hơn, trừ các tiết học đã khóa. Nếu không có lời giải đầy đủ nào, Omniscol trả về thời khóa biểu tốt nhất tính được và để những tiết học còn lại trong danh sách thẻ post-it chưa được xếp. [Tạo tự động](#page-timetables.generation) #### Chạy lại một lượt tạo tự động sau khi thay đổi ràng buộc > **Với vai trò** người lập thời khóa biểu, **tôi muốn** chạy lại một lượt tạo tự động sau khi thay đổi ràng buộc, **nhằm** thử nhiều cấu hình khác nhau mà không phải làm lại từ đầu. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy điều chỉnh thời gian rảnh, các ràng buộc hoặc các khóa vị trí, rồi chạy lại việc tạo tự động từ cùng màn hình đó. Các tiết học đã khóa giữ nguyên vị trí; những tiết còn lại có thể được dời nếu việc đó làm kết quả tốt hơn. Để so sánh nhiều cấu hình, hãy làm việc trên các bản sao của thời khóa biểu (“Làm việc trên một bản sao (sandbox) của một thời khóa biểu”). [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) #### Làm việc trên một bản sao (sandbox) của một thời khóa biểu > **Với vai trò** người lập thời khóa biểu, **tôi muốn** làm việc trên một bản sao (sandbox) của một thời khóa biểu, **nhằm** thử nghiệm mà không ảnh hưởng tới phiên bản chính thức. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy nhân bản thời khóa biểu từ mô-đun **Quản lý thời khóa biểu** rồi làm việc trên bản sao: chừng nào bản sao chưa được kích hoạt, phiên bản chính thức vẫn là phiên bản mà người dùng nhìn thấy. Hãy kích hoạt bản sao khi nó đã sẵn sàng. [Hiển thị, nhân bản, tổ chức lại](#page-timetables.visualize-duplicate), [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Tạo tự động](#page-timetables.generation) - [Công cụ tạo tự động](#page-glossary.solver) ### 15.3 Kịch bản — Xếp lịch và chỉnh sửa hằng ngày *Source: `help/vi/use-cases/placement-and-modification.md` · id: use-cases.placement-and-modification · Updated: 2026-06-13* Tìm phòng học và giáo viên còn trống, xếp và chỉnh sửa tiết học, phát hiện lỗi tương thích và những chỗ bỏ sót. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Tìm một phòng học còn trống phù hợp với một tiết học (sức chứa, loại phòng, cơ sở) và gán phòng đó > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tìm một phòng học còn trống phù hợp với một tiết học (sức chứa, loại phòng, cơ sở) và gán phòng đó cho phần giảng dạy tương ứng, **nhằm** nhanh chóng xếp một tiết học mà không gây lỗi tương thích. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Bộ chọn phòng học chấp nhận tìm kiếm theo văn bản và các bộ lọc sức chứa (`>20`, `<=50`, `=30`, `20-30`). Nhiều tiêu chí cách nhau bằng dấu cách được hiểu là VÀ logic; nhiều giá trị cách nhau bằng dấu phẩy được hiểu là HOẶC logic. Chính ô tìm kiếm ấy cũng chấp nhận “ok” (đối lại “ko”) để chỉ giữ những phòng học còn trống trên khung giờ đang xét. #### Tìm một giáo viên còn trống có dạy môn học đó > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tìm một giáo viên còn trống có dạy môn học đó, **nhằm** dễ dàng thay thế hoặc bổ sung một phân công. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Việc chọn một giáo viên có xét đến môn học người đó dạy và đến thời gian rảnh của họ. Tùy màn hình, việc thay thế được thực hiện ngay từ tiết học hoặc từ danh sách khóa học. #### Xác định những khung giờ còn trống cho một lớp hoặc một nhóm > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xác định những khung giờ còn trống cho một lớp hoặc một nhóm, **nhằm** xếp một tiết học thủ công một cách hiệu quả. **Trạng thái**: ◐ Một phần **Giải pháp trong Omniscol.** Hãy xếp chồng thời khóa biểu của lớp hoặc của nhóm trong các chế độ xem nhiều thực thể để nhận ra những khung giờ còn trống (xem “Xem thời khóa biểu”). #### Chỉnh sửa nhanh một tiết học (phòng học, giáo viên, giờ) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** chỉnh sửa nhanh một tiết học (phòng học, giáo viên, giờ), **nhằm** điều chỉnh lịch theo thời gian thực. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy mở tiết học để đổi phòng học, giáo viên hoặc giờ ngay trong cửa sổ chỉnh sửa của nó, hoặc xếp lại vị trí bằng nút ghim [thumbtack] (nhấp vào một khung giờ đã tô màu) trong chế độ xem lịch trình. **Chọn nhiều** (Shift+nhấp lên nhiều tiết học) mở đúng cửa sổ đó ở chế độ gộp: xếp lại vị trí, bỏ khóa hoặc xóa toàn bộ những tiết học đã chọn chỉ trong một thao tác. [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) #### Phát hiện những tiết học chưa có giáo viên hoặc chưa có phòng học > **Với vai trò** người lập thời khóa biểu, **tôi muốn** phát hiện những tiết học chưa có giáo viên hoặc chưa có phòng học, **nhằm** sửa ngay những chỗ bỏ sót nghiêm trọng. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Phần chẩn đoán thời khóa biểu liệt kê rõ những tiết học đã xếp mà chưa có phòng học và những tiết học chưa có giáo viên; các chế độ xem lịch trình cũng báo hiệu chúng. [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) #### Được cảnh báo khi có điều bất nhất (thiếu phòng học, thiếu giáo viên, lỗi tương thích) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** được cảnh báo khi có điều bất nhất (thiếu phòng học, thiếu giáo viên, lỗi tương thích), **nhằm** bảo đảm chất lượng của lịch. **Trạng thái**: ◐ Một phần **Giải pháp trong Omniscol.** Những điều bất nhất được báo hiệu trong phần chẩn đoán và trong các chế độ xem lịch trình: tiết học chưa có phòng học, chưa có giáo viên, lỗi tương thích về phòng học, về lớp hoặc về giáo viên. Bảng chẩn đoán **lọc được rất chi tiết** — theo mức độ nghiêm trọng, theo loại cảnh báo, theo thực thể (lớp, giáo viên, phòng học), theo khối lớp, cơ sở hoặc đơn vị, và theo khoảng ngày ở chế độ lịch (chức năng Premium; xem [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts)). **Giải pháp thay thế (không có Premium).** Hãy dùng danh sách cảnh báo theo thứ tự thời gian và những bộ lọc xem sẵn có để khoanh lại các tiết học liên quan. Hãy sửa những lỗi tương thích gây chặn trước khi phổ biến hoặc trước khi đẩy dữ liệu trở lại một hệ thống bên ngoài. #### Xem nhanh những lỗi tương thích còn lại > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xem nhanh những lỗi tương thích còn lại, **nhằm** hoàn thiện một lịch đáng tin cậy trước khi phổ biến. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Phần chẩn đoán thời khóa biểu và các chế độ xem lịch trình báo hiệu những lỗi tương thích còn lại. Hãy ưu tiên xử lý những lỗi tương thích gây chặn trước khi công bố. [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) #### Thu thập thời gian rảnh / nguyện vọng của giảng viên > **Với vai trò** người lập thời khóa biểu, **tôi muốn** thu thập thời gian rảnh / nguyện vọng của giảng viên. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Giáo viên tự nhập thời gian rảnh và thời gian bận từ không gian riêng của mình; người lập thời khóa biểu cũng có thể nhập thay cho họ. Những thông tin này hiện ra trong lúc xếp lịch thủ công và được việc tạo tự động tính đến. [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) #### Quản lý khung giờ / lưới thời gian / ngoài khung giờ > **Với vai trò** người lập thời khóa biểu, **tôi muốn** quản lý khung giờ / lưới thời gian / ngoài khung giờ. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Lưới thời gian xác định, theo từng cơ sở, những khung giờ mở cho việc xếp lịch, kể cả các giờ nghỉ. > _Premium_ Phần [tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) bao gồm những tiết học không khớp với bất kỳ khung giờ nào của lưới. [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) #### Quản lý giờ nghỉ / ngoài khung giờ > **Với vai trò** người lập thời khóa biểu, **tôi muốn** quản lý giờ nghỉ / ngoài khung giờ. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Xem “Quản lý khung giờ / lưới thời gian / ngoài khung giờ”: các giờ nghỉ được xác định trong lưới thời gian của từng cơ sở, còn phần ngoài khung giờ bao gồm những tiết học nằm ngoài các khung giờ. #### Xem thời khóa biểu (chọn nhiều, chế độ xem tùy chỉnh, xếp chồng) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xem thời khóa biểu (chọn nhiều, chế độ xem tùy chỉnh, xếp chồng, khả năng hiển thị, xuất dữ liệu). **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Các chế độ xem gồm chế độ xem theo tuần, theo ngày, theo tháng, dạng danh sách, dạng cạnh nhau và nhiều cách so sánh khác nhau. Chế độ xem nhiều thực thể cho phép hiển thị nhiều thời khóa biểu song song, theo cột hoặc theo lưới tùy bối cảnh. Chưa có trong giao diện hiện tại: chú thích khi rê chuột có kèm mã môn học, việc tự động ẩn những tuần không có tiết học, và một chế độ xem gộp duy nhất không phân tách theo cột. #### Chỉ hiển thị những phòng học còn trống > **Với vai trò** người lập thời khóa biểu, **tôi muốn** chỉ hiển thị những phòng học còn trống, **nhằm** tiết kiệm thời gian khi gán phòng học. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy dùng bộ lọc tình trạng còn trống trong bộ chọn phòng học để ẩn những phòng đã bị chiếm trên khung giờ đang xét (xem thêm “Tìm một phòng học còn trống phù hợp với một tiết học”). #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Tra cứu và lọc](#page-schedules.consult-and-filter) - [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) - [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) ### 15.4 Kịch bản — Nhiều nhóm, nhiều phòng học, nhiều giảng viên *Source: `help/vi/use-cases/multi-entities.md` · id: use-cases.multi-entities · Updated: 2026-06-13* Dùng chung tiết học giữa nhiều nhóm, nhiều phòng học, nhiều giảng viên: đồng giảng dạy, căn chỉnh nhóm, nhóm của nhóm. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Dùng chung tiết học (1 tiết học cho 2 nhóm cùng ngày giờ, trong cùng một phòng học) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** dùng chung tiết học (1 tiết học cho 2 nhóm cùng ngày giờ, trong cùng một phòng học). **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy mô hình hóa việc dùng chung bằng một [căn chỉnh nhóm](#page-core-concepts.alignments) hoặc một [nhóm của nhóm](#page-core-concepts.groups-of-groups): tiết học dùng chung quy tụ các nhóm vào cùng một khung giờ, trong cùng một phòng học, với cùng một giáo viên. #### Xếp một tiết học có nhiều giảng viên (đồng giảng dạy) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xếp một tiết học có nhiều giảng viên (đồng giảng dạy). **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Một tiết học có thể mang nhiều giáo viên: hãy thêm các đồng giảng viên vào bộ chọn giáo viên **Phân công giáo viên** của biểu mẫu tiết học. [Đồng giảng dạy](#page-higher-ed.co-teaching) #### Xếp một tiết học có nhiều phòng học > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xếp một tiết học có nhiều phòng học. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy gán nhiều phòng học cho cùng một tiết học từ bộ chọn phòng học **Chỉ định phòng học**. [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) #### Xếp một tiết học có nhiều nhóm > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xếp một tiết học có nhiều nhóm. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Bạn có thể **gắn trực tiếp nhiều nhóm** — từ cùng một lớp hoặc từ những lớp khác nhau — vào cùng một tiết học. Với những cách gom nhóm lâu dài hoặc lặp lại, tốt hơn là nên cấu trúc chúng bằng một [nhóm của nhóm](#page-core-concepts.groups-of-groups) hoặc một [căn chỉnh nhóm](#page-core-concepts.alignments) tùy trường hợp. #### Xếp hàng loạt tiết học theo nhóm > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xếp hàng loạt tiết học theo nhóm, **nhằm** gán các nhóm hàng loạt, chỉ bằng một cú nhấp. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hai cách bao quát việc xếp hàng loạt. - **Chọn nhiều, rồi ghim.** Hãy chọn nhiều tiết học cùng lúc — bằng **Shift+nhấp**, hoặc qua menu **Mở rộng vùng chọn** (theo ngày, tuần, tháng, thứ trong tuần, môn học hoặc phân vùng nhóm). **Ghim** khi đó hiển thị những khung giờ tương thích với toàn bộ vùng chọn: chỉ một cú nhấp là xếp tất cả vào cùng một khung giờ. - **Tạo tự động.** Để xếp một lượt toàn bộ tiết học lên lưới thời gian, hãy để công cụ tạo tự động phân bố chúng trong khi vẫn tôn trọng các ràng buộc (xem [Tạo tự động](#page-timetables.generation)). Để quy tụ nhiều nhóm vào cùng một tiết học, xem “Xếp một tiết học có nhiều nhóm” ở trên; để theo dõi khối lượng đã xếp, hãy dựa vào [phân bổ thời gian](#page-timetables.hour-distribution). #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Nhiều phòng học](#page-glossary.multi-room) - [Đồng giảng dạy](#page-glossary.co-teaching) - [Phân vùng lớp](#page-core-concepts.class-divisions) - [Căn chỉnh nhóm](#page-core-concepts.alignments) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) ### 15.5 Kịch bản — Thao tác hàng loạt *Source: `help/vi/use-cases/mass-operations.md` · id: use-cases.mass-operations · Updated: 2026-06-28* Phân bổ hàng loạt, bộ lọc nâng cao và các thao tác tự động để quản lý nhanh phòng học, sức chứa và chương trình đào tạo. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Chỉ phân bổ hàng loạt những phòng học chưa được gán > **Với vai trò** người lập thời khóa biểu, **tôi muốn** chỉ phân bổ hàng loạt những phòng học chưa được gán. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Trong chế độ xem bảng của màn hình **Quản lý thời khóa biểu**, hãy sắp xếp hoặc lọc các cột để khoanh vùng những tiết học **đang chờ phòng học**, tích chọn chúng, rồi chạy phân bổ phòng học tự động trên vùng chọn. Việc tạo tự động cũng có một chế độ chỉ giới hạn ở phòng học: khi chạy với tùy chọn bỏ qua những phòng học đã gán, nó chỉ bổ sung cho các tiết học chưa có phòng, mà không tính lại vị trí đã xếp. [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) #### Phân bổ hàng loạt mọi phòng học >115 chỗ cho các sự kiện > **Với vai trò** người lập thời khóa biểu, **tôi muốn** phân bổ hàng loạt mọi phòng học >115 chỗ cho các sự kiện, **nhằm** tối ưu việc quản lý phòng học. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy tìm những phòng học lớn trong phần thống kê phòng học, nơi ô tìm kiếm chấp nhận các toán tử so sánh sức chứa (ví dụ `>115`). Sau đó hãy chọn những tiết học liên quan trong chế độ xem bảng của màn hình **Quản lý thời khóa biểu** rồi chạy phân bổ phòng học tự động: trong bộ chọn phòng học ứng viên, chỉ tích chọn những phòng học bạn muốn, sức chứa của từng phòng đều được hiển thị để giúp bạn quyết định. #### Giới hạn việc phân bổ phòng học trong một tòa nhà hoặc một tầng > **Với vai trò** người lập thời khóa biểu, **tôi muốn** giới hạn việc phân bổ phòng học hàng loạt trong một tòa nhà hoặc một tầng nhất định, **nhằm** gom các tiết học về cùng một nơi và hạn chế việc đi lại. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Trong phần phân bổ tự động, bộ chọn phòng học ứng viên gom phòng học theo **cơ sở** rồi theo **tòa nhà**: hãy tích chọn cả một cơ sở hoặc cả một tòa nhà để chỉ cho phép dùng phòng học của nơi đó, và thuật toán sẽ chọn trong số này. Xem [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment). #### Phân bổ lại phòng học theo sĩ số thực tế > **Với vai trò** người lập thời khóa biểu, **tôi muốn** phân bổ lại hàng loạt phòng học theo sĩ số thực tế (môn tự chọn, ngoại ngữ, nhóm), **nhằm** điều chỉnh kích thước phòng học cho khớp với số người đã đăng ký. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy khoanh vùng những tiết học liên quan trong chế độ xem bảng (sắp xếp và lọc theo cột), rồi chạy phân bổ tự động: thuật toán đối chiếu **sức chứa** của từng phòng học với **sĩ số** của tiết học và giữ lại phòng học nhỏ nhất còn phù hợp. Xem [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment). #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) - [Thống kê phòng học](#page-dashboard.classrooms) - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) - [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) ### 15.6 Kịch bản — Kỳ thi và sự kiện *Source: `help/vi/use-cases/exams-and-events.md` · id: use-cases.exams-and-events · Updated: 2026-06-13* Tạo các tiết học đặc thù: kỳ thi (trực tiếp hoặc từ xa, với những cấu hình riêng), kỳ thi tuyển sinh, các đợt bảo trì. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Tạo một sự kiện (kỳ thi tuyển sinh) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tạo một sự kiện (kỳ thi tuyển sinh), **nhằm** giữ chỗ các phòng học và có được số liệu thống kê. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy tạo một [sự kiện đơn lẻ](#page-schedules.events) có ngày cụ thể, kèm phòng học, người tham dự và tài nguyên của nó: việc một phòng học, một lớp hay một giáo viên bị chiếm dụng đồng thời sẽ được báo là lỗi tương thích, miễn là sự kiện có đưa vào những người tham dự liên quan. Sự kiện đơn lẻ khả dụng trên các tài khoản **Premium**. #### Tạo một tiết học kỳ thi đặc thù (ngồi cách một chỗ, bố trí thời gian làm bài kéo dài, v.v.) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tạo một tiết học kỳ thi đặc thù (ngồi cách một chỗ, bố trí thời gian làm bài kéo dài, v.v.), **nhằm** giữ chỗ các phòng học và có được số liệu thống kê. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy tạo một tiết học hoặc một sự kiện riêng, kèm các phòng học và thời lượng phù hợp với cách bố trí của buổi thi. [Kỳ thi nhiều phòng học](#page-higher-ed.multi-room-exams) #### Tạo một sự kiện (bảo trì) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tạo một sự kiện (bảo trì), **nhằm** giữ chỗ các phòng học và có được số liệu thống kê. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy tạo một [sự kiện](#page-schedules.events) trên khung giờ liên quan rồi thêm vào đó phòng học hay tài nguyên cần tạm ngừng sử dụng: phòng học hay tài nguyên đó sẽ bị chiếm trên khung giờ này và không còn được coi là còn trống. #### Tạo một kỳ thi (từ xa hoặc trực tiếp, 1 giờ 30 hoặc 3 giờ và các thời lượng khác, tự chọn hoặc khóa học bắt buộc) > **Với vai trò** người lập thời khóa biểu, **tôi muốn** tạo một kỳ thi (từ xa hoặc trực tiếp, 1 giờ 30 hoặc 3 giờ và các thời lượng khác, tự chọn hoặc khóa học bắt buộc), **nhằm** xếp lịch cho các buổi thi. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Một kỳ thi được tạo như một tiết học thuộc loại **Thi** (xem [Loại tiết học](#page-admin.lesson-types)): thời lượng tùy ý (1 giờ 30, 3 giờ…), trực tiếp hay từ xa tùy theo [hình thức](#page-glossary.lesson-modality) của nó, trong một hoặc [nhiều phòng học](#page-glossary.multi-room). Tính chất tự chọn được mô hình hóa bằng một [nhóm](#page-glossary.group) thay vì cả lớp. #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Sự kiện đơn lẻ](#page-schedules.events) - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) ### 15.7 Kịch bản — Vắng mặt và thay thế *Source: `help/vi/use-cases/absences-and-substitutions.md` · id: use-cases.absences-and-substitutions · Updated: 2026-06-13* Khai báo vắng mặt và quản lý việc thay thế giáo viên trong thời gian ngắn hoặc dài. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Khai báo một lần vắng mặt của giáo viên > **Với vai trò** bộ phận giáo vụ, **tôi muốn** khai báo một lần vắng mặt của giáo viên, **nhằm** đánh dấu các tiết học bị ảnh hưởng và tổ chức những lần thay thế cần thiết. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy khai báo lần vắng mặt từ mô-đun **Quản lý vắng mặt** (giáo viên cũng có thể tự khai báo, nhưng phải chờ phê duyệt). Omniscol xác định các tiết học bị ảnh hưởng và cho phép bạn tổ chức việc thay thế. [Khai báo vắng mặt](#page-absences.declaring) #### Thay thế một giáo viên bằng một giáo viên khác trong một giai đoạn nhất định > **Với vai trò** bộ phận giáo vụ, **tôi muốn** thay thế một giáo viên bằng một giáo viên khác trong một giai đoạn nhất định, **nhằm** xử lý những thay đổi mang tính cơ cấu (nghỉ ốm, nghỉ việc…). **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Hãy khai báo một lần vắng mặt nhiều ngày kèm ngày bắt đầu và ngày kết thúc: Omniscol tính ra các tiết học liên quan; chúng có thể được để không có người thay thế, được bao phủ bằng một chính sách thay thế, hoặc được điều chỉnh bằng các thay thế riêng lẻ. [Vắng mặt nhiều ngày](#page-absences.multi-day), [Chính sách thay thế](#page-absences.substitution-policies) #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) - [Khai báo vắng mặt](#page-absences.declaring) - [Chính sách thay thế](#page-absences.substitution-policies) ### 15.8 Kịch bản — Báo cáo và thống kê *Source: `help/vi/use-cases/reporting-and-stats.md` · id: use-cases.reporting-and-stats · Updated: 2026-06-13* Thống kê mức sử dụng, kiểm soát khối lượng giảng dạy, tỷ lệ học từ xa / trực tiếp, khối lượng giờ theo nhóm và môn học. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Theo dõi áp lực sử dụng phòng học > **Với vai trò** người lập thời khóa biểu, **tôi muốn** theo dõi áp lực sử dụng phòng học, **nhằm** lường trước các điểm quá tải. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Phần **thống kê phòng học** của **Trang tổng quan** (xem [Thống kê phòng học](#page-dashboard.classrooms)) cho biết tỷ lệ sử dụng theo từng phòng học và từng giai đoạn; còn mô-đun **Thời khóa biểu** thì cho thấy lịch trình sử dụng của từng phòng học (các khung giờ đã bị chiếm). #### Kiểm tra số giờ giảng dạy của một giáo viên > **Với vai trò** người phụ trách đào tạo, **tôi muốn** kiểm tra số giờ giảng dạy của một giáo viên, **nhằm** kiểm soát khối lượng công việc và mức độ tuân thủ. **Trạng thái**: ◐ Một phần **Giải pháp trong Omniscol.** Khi chỉnh sửa một thời khóa biểu trong mô-đun **Quản lý thời khóa biểu**, tổng số giờ của giáo viên được hiển thị và cập nhật ngay tức thì; **Trang tổng quan** cung cấp tổng số giờ trên cả giai đoạn. **Giải pháp thay thế.** Để kiểm tra một học kỳ cụ thể, hãy chọn khoảng ngày tương ứng trong **Trang tổng quan**: tổng số giờ được tính lại trên đúng giai đoạn đã chọn, không cần trừ thủ công. #### Trích xuất số liệu thống kê hoạt động (giờ, mức sử dụng, phân bổ) > **Với vai trò** người phụ trách chất lượng, **tôi muốn** trích xuất số liệu thống kê hoạt động (giờ, mức sử dụng, phân bổ), **nhằm** đáp ứng yêu cầu của một cuộc kiểm định chất lượng hoặc chứng nhận. **Trạng thái**: ◐ Một phần **Giải pháp trong Omniscol.** Các bản xuất từ **Trang tổng quan** và từ các khung nhìn thời khóa biểu cung cấp những khối lượng hiện có. Tự thân chúng chưa tạo thành một báo cáo chứng nhận hoàn chỉnh: phần khung nghiệp vụ và hồ sơ tài liệu vẫn thuộc trách nhiệm của nhà trường. > _Country: FR_ Tại Pháp, các bản xuất này đặc biệt phục vụ việc theo dõi **Qualiopi**. #### Phân tích mức sử dụng phòng học và tài nguyên > **Với vai trò** ban giám hiệu, **tôi muốn** phân tích mức sử dụng phòng học và tài nguyên, **nhằm** tối ưu việc khai thác cơ sở vật chất. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** **Trang tổng quan** cho biết mức sử dụng phòng học và tài nguyên; các bản xuất cũng chứa chính những khối lượng đó. #### Xem tỷ lệ học từ xa / trực tiếp theo chương trình đào tạo và khóa > **Với vai trò** người lập thời khóa biểu, **tôi muốn** xem tỷ lệ học từ xa / trực tiếp theo chương trình đào tạo và khóa, **nhằm** áp dụng các quy định (tối đa 20% học từ xa, tối thiểu 20% khung giờ không mong muốn vào thứ Bảy). **Trạng thái**: ◐ Một phần > _Premium_ **Giải pháp trong Omniscol.** **Trang tổng quan** trình bày tỷ lệ theo **Hình thức** trên các lớp và các môn học khi các tiết học có gắn hình thức (xem [Chỉnh sửa một tiết học](#page-timetables.lesson-edit)) — **Trực tiếp**, **Từ xa**, **Kết hợp** hoặc **Tự học**. Omniscol không tự động kiểm tra các ngưỡng theo quy định (ví dụ “tối đa 20% học từ xa”). #### Theo dõi khối lượng giờ đã xếp và phần còn phải xếp > **Với vai trò** người phụ trách đào tạo, **tôi muốn** theo dõi khối lượng giờ đã xếp và phần còn phải xếp, **nhằm** kiểm tra sự nhất quán với khung chương trình đào tạo. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Trong lúc chỉnh sửa, màn hình [phân bổ thời gian](#page-timetables.hour-distribution) hiển thị ngay tức thì, theo từng môn học, khối lượng đã xếp và **thời lượng còn phải xếp**. **Trang tổng quan** cho biết kết quả theo dõi về sau, theo lớp, môn học và nhóm. #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [Trang tổng quan](#page-glossary.dashboard) - [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) - [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) ### 15.9 Kịch bản — Phổ biến và chia sẻ *Source: `help/vi/use-cases/diffusion-and-sharing.md` · id: use-cases.diffusion-and-sharing · Updated: 2026-06-13* Xuất dữ liệu, đăng ký luồng iCal cho giảng viên và người học, liên kết công khai ở chế độ chỉ đọc, đặt chỗ tài nguyên. Về cách đọc và bảng chú giải các trạng thái, xem [Kịch bản — tổng quan](#page-use-cases.overview). #### Xuất dữ liệu thời khóa biểu > **Với vai trò** bộ phận giáo vụ, **tôi muốn** xuất dữ liệu thời khóa biểu, **nhằm** dùng lại chúng trong những công cụ khác (ERP, báo cáo…). **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Các khung nhìn thời khóa biểu và Trang tổng quan đều có chức năng xuất dữ liệu; API Omniscol cho phép tự động hóa việc lấy dữ liệu. [In và chia sẻ](#page-schedules.print-and-export), [API Omniscol](#page-integrations.api-tokens) #### Xem thời khóa biểu của mình qua một liên kết web an toàn mà không cần xác thực > **Với vai trò** giáo viên, **tôi muốn** xem thời khóa biểu của mình qua một liên kết web an toàn mà không cần xác thực, **nhằm** truy cập dễ dàng vào các tiết học của mình. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Liên kết chia sẻ được ký và mở quyền truy cập ở chế độ chỉ đọc, không cần đăng nhập; nó có thể mang một ngày hết hạn và luôn gắn với tài khoản đã tạo ra nó (vô hiệu hóa tài khoản đó hoặc đổi mật khẩu của tài khoản sẽ làm liên kết mất hiệu lực). [Chia sẻ thời khóa biểu bằng liên kết công khai](#page-schedules.share-link) #### Đăng ký thời khóa biểu của mình qua một luồng iCal > **Với vai trò** giáo viên hoặc học sinh, **tôi muốn** đăng ký thời khóa biểu của mình qua một luồng iCal, **nhằm** tự động đưa thời khóa biểu đó vào lịch cá nhân của mình. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Mỗi người dùng đều có thể đăng ký thời khóa biểu của mình qua một liên kết iCal động, tương thích với các ứng dụng lịch thông dụng (Google Calendar, Outlook, Apple Calendar); lịch được cập nhật theo nhịp đồng bộ của chính ứng dụng đó. [iCal — đăng ký và liên kết động](#page-integrations.ical) #### Xuất thời khóa biểu của một giáo viên hoặc một nhóm sang định dạng Excel > **Với vai trò** bộ phận giáo vụ, **tôi muốn** xuất thời khóa biểu của một giáo viên hoặc một nhóm sang định dạng Excel, **nhằm** chia sẻ hoặc xử lý lại dữ liệu. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Xem [In và chia sẻ](#page-schedules.print-and-export). #### Phổ biến thời khóa biểu qua một liên kết công khai có kiểm soát > **Với vai trò** nhà trường, **tôi muốn** phổ biến thời khóa biểu qua một liên kết công khai có kiểm soát, **nhằm** truyền đạt thông tin một cách đơn giản đến giảng viên và người học. **Trạng thái**: ✓ Khả dụng **Giải pháp trong Omniscol.** Các liên kết chia sẻ công khai đều được ký, ở chế độ chỉ đọc và **mang một ngày hết hạn** (mặc định là cuối năm học, hoặc +90 ngày, sửa được). Để việc phổ biến mang tính chính thức, hãy đặt các liên kết dưới một tài khoản dịch vụ được xác định rõ ràng, chịu trách nhiệm về việc chia sẻ, thay vì dưới một tài khoản cá nhân. [Liên kết chia sẻ công khai](#page-portal.share-links) #### Đặt chỗ một tài nguyên (phòng học, giảng viên, tiết học hay thứ khác) > **Với vai trò** người dùng, **tôi muốn** đặt chỗ một tài nguyên (phòng học, giảng viên, tiết học hay thứ khác), **nhằm** đặt chỗ các phòng học và có được số liệu thống kê. **Trạng thái**: ◐ Một phần **Giải pháp trong Omniscol.** Hiện chưa có mô-đun đặt chỗ chuyên biệt nào. **Giải pháp thay thế (tài khoản Premium).** Để giữ một tài nguyên trên một khung giờ cụ thể, hãy tạo một [sự kiện](#page-schedules.events); để tài nguyên đó không khả dụng trong suốt cả một **giai đoạn**, hãy dùng một [cửa sổ ngày](#page-glossary.date-windows). #### Xem thêm - [Kịch bản — tổng quan](#page-use-cases.overview) - [iCal — đăng ký và liên kết động](#page-integrations.ical) - [Liên kết chia sẻ](#page-glossary.share-link) - [Liên kết chia sẻ công khai](#page-portal.share-links) - [In và chia sẻ](#page-schedules.print-and-export) --- ## 16. FAQ — câu hỏi thường gặp ### 16.1 FAQ — Câu hỏi chung *Source: `help/vi/faq/general.md` · id: faq.general · Updated: 2026-07-24* Những câu hỏi chung được khách hàng tiềm năng và người dùng mới đặt ra nhiều nhất. Với những câu hỏi chuyên sâu hơn, xem các mục FAQ chuyên biệt: [Xây dựng thời khóa biểu](#page-faq.timetables), [Nhập dữ liệu](#page-faq.data-import), [Cách hoạt động của thuật toán](#page-faq.solver-behavior), [Hiển thị và UX](#page-faq.display-and-ux), [Bảo mật và lưu trữ](#page-faq.security-and-hosting), [Bảng giá và giấy phép](#page-faq.pricing-and-licenses). #### Làm thế nào để được xem demo? Nút Yêu cầu bản demo, hiển thị ở đầu mọi trang của omniscol.com, đặt trước một buổi họp trực tuyến 30 phút với đội ngũ Omniscol. Buổi demo dựa trên những tình huống gần với tình huống của bạn: loại hình trường, quy mô, cách tổ chức giảng dạy. Bạn cũng có thể viết cho đội ngũ qua trang liên hệ để chuẩn bị cuộc hẹn này hoặc đặt câu hỏi trước. Sau đó thường có một giai đoạn dùng thử để đánh giá, cho phép bạn thử Omniscol trên chính dữ liệu của mình với sự đồng hành của đội ngũ. Xem [Bảng giá và giấy phép](#page-faq.pricing-and-licenses). #### Omniscol có chạy được với kết nối internet hạn chế không? Có, với điều kiện là bạn có kết nối đủ tốt vào lúc tải dữ liệu và lúc lưu. Ứng dụng web giữ tạm trong trình duyệt những dữ liệu đã xem, nhờ vậy việc tra cứu chịu được các lần mất mạng ngắn. Ngược lại, việc chỉnh sửa, nhập, xuất và các thao tác quản trị đều cần có mạng vào đúng thời điểm thực hiện. #### Những trình duyệt nào được hỗ trợ? Chrome là lựa chọn được khuyến nghị. Firefox, Safari và Edge cũng chạy được. Internet Explorer không được hỗ trợ. #### Có phải cài đặt phần mềm nào không? Không. Toàn bộ chạy trong trình duyệt. Không cần cài đặt gì trên máy. #### Dữ liệu của tôi có được sao lưu không? Có. Omniscol dựa trên các bản sao lưu và cơ chế dự phòng được mô tả trong khuôn khổ hợp đồng và trong tài liệu bảo mật của tài khoản. Xem [Bảo mật và lưu trữ](#page-faq.security-and-hosting). Để sao lưu thủ công, một **bản xuất đầy đủ ở định dạng JSON** có sẵn từ Nhập và xuất dữ liệu. Nếu xảy ra sự cố lớn, tệp này có thể được gửi lại cho đội ngũ Omniscol để nạp lại. #### Tôi có thể có nhiều thời khóa biểu cùng lúc không? Có. Với tài khoản Standard thì trên những khoảng tuần không chồng lên nhau (ví dụ học kỳ 1 và học kỳ 2). Với tài khoản [Premium](#page-overview.plans-and-options), nhiều thời khóa biểu có thể được công bố **đồng thời** trên cùng những tuần đó, các chế độ xem được hợp nhất linh động — đây là chức năng đã bao gồm sẵn trong gói. Khả năng này cũng có thể được bật theo hợp đồng trên một số tài khoản Standard (trường hợp ngoại lệ, với khuôn khổ phù hợp). Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). #### Bao nhiêu quản trị viên có thể làm việc cùng lúc? Số phiên làm việc đồng thời phụ thuộc vào hợp đồng và cách sử dụng của bạn. Với tùy chọn Cộng tác thời gian thực, các quản trị viên nhìn thấy sự hiện diện của những người dùng khác đang kết nối (một chỉ báo hình tròn màu đỏ báo hiệu nguy cơ chỉnh sửa đồng thời). Các màn hình nghiệp vụ không phải lúc nào cũng được làm mới tự động sau khi một đồng nghiệp lưu dữ liệu. Xem [Cộng tác giữa các quản trị viên](#page-core-concepts.collaboration). #### Làm thế nào để chia sẻ thời khóa biểu với người không có tài khoản? Nút Chung trên màn hình thời khóa biểu tạo ra một [liên kết chia sẻ](#page-glossary.share-link) ở chế độ chỉ đọc, bắt buộc phải có ngày hết hạn. Nếu muốn đăng ký lịch động (tự động đồng bộ), tùy chọn iCal có sẵn trong phần chia sẻ. Xem [iCal — đăng ký và liên kết động](#page-integrations.ical). #### Những ngôn ngữ nào được hỗ trợ? Đến nay: tiếng Pháp, tiếng Anh, tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Hà Lan, tiếng Ba Lan, tiếng Nga, tiếng Trung giản thể, tiếng Ả Rập, tiếng Do Thái, tiếng Kazakh, tiếng Việt. Các ngôn ngữ viết từ phải sang trái (tiếng Ả Rập, tiếng Do Thái) có giao diện được điều chỉnh riêng (RTL). #### Trường của tôi ở một quốc gia không có trong danh sách. Tôi dùng Omniscol được không? Được. Các thông số điền sẵn theo từng quốc gia chỉ là tiện ích, không phải ràng buộc. Trong trường hợp bất lợi nhất, bạn tự thiết lập thủ công các khối lớp, lưới thời gian, ngày nghỉ lễ và môn học. #### Làm thế nào để lấy lại dữ liệu nếu tôi rời Omniscol? Bản xuất JSON đầy đủ từ Nhập và xuất dữ liệu. Bao gồm toàn bộ dữ liệu của trường, ở một định dạng dùng lại được. Bạn vẫn là chủ sở hữu dữ liệu của mình, theo đúng GDPR. #### Khác biệt giữa hai mô-đun **Thời khóa biểu** và **Quản lý thời khóa biểu** là gì? - **Quản lý thời khóa biểu** dùng để **tạo mới, cấu hình, tạo tự động và công bố** các thời khóa biểu. Dùng không thường xuyên (chuẩn bị đầu năm học, thay đổi về cấu trúc). - **Thời khóa biểu** dùng để **xem và chỉnh sửa đơn lẻ** các thời khóa biểu đã công bố. Dùng hằng ngày. Xem [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) và [Tra cứu và lọc](#page-schedules.consult-and-filter). #### Xem thêm - [Xây dựng thời khóa biểu](#page-faq.timetables) - [Nhập dữ liệu](#page-faq.data-import) - [Cách hoạt động của thuật toán](#page-faq.solver-behavior) - [Bảo mật và lưu trữ](#page-faq.security-and-hosting) - [FAQ — Tình huống sử dụng trong giáo dục đại học](#page-faq.higher-ed-cases) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) ### 16.2 FAQ — Xây dựng thời khóa biểu *Source: `help/vi/faq/timetables.md` · id: faq.timetables · Updated: 2026-07-10* Những câu hỏi thường gặp về việc xây dựng và cấu hình thời khóa biểu. Để biết chi tiết từng bước, xem [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview). #### Nên chọn loại thời khóa biểu nào: hằng tuần, theo chu kỳ hay theo lịch? Lựa chọn phụ thuộc vào nhịp hoạt động của trường bạn: - **Hằng tuần** — các tiết học lặp lại trên một tuần mẫu. Phù hợp với bậc tiểu học và trung học. - **Theo chu kỳ** — các tiết học lặp lại trên một chu kỳ N ngày, khác với tuần 5 hoặc 7 ngày (thường gặp ở các hệ thống Bắc Mỹ). - **Theo lịch** — các tiết học được ghi ngày riêng cho từng tiết, không lặp lại (thường gặp ở bậc đại học và đào tạo thường xuyên). Có trên các tài khoản Premium. Chức năng tạo tự động hoạt động với mọi loại thời khóa biểu. Xem [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes). #### Có thể xây dựng song song nhiều thời khóa biểu không? Có. Nhiều thời khóa biểu có thể cùng tồn tại trong một tài khoản (bản nháp, các phiên bản, học kỳ, giai đoạn). Với tài khoản Standard, việc công bố phải nằm trên những khoảng tuần không chồng lên nhau. Với tài khoản Premium, nhiều thời khóa biểu có thể được công bố **đồng thời** trên cùng những tuần đó, với cơ chế hợp nhất động — một khả năng tương đương vẫn có thể được bật theo hợp đồng trên một số tài khoản Standard. Xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). #### Thứ tự nào được khuyến nghị khi cấu hình một thời khóa biểu? Thứ tự các **bước**: Tổng quan, Địa điểm, Giáo viên, Lớp (cùng các nhóm của lớp), Căn chỉnh nhóm, Phân bổ thời gian, Tạo thời khóa biểu, rồi đến Công bố. Bảy bước đầu là các tab của trình chỉnh sửa thời khóa biểu (từ trái sang phải); riêng việc **công bố** được thực hiện từ màn hình quản lý thời khóa biểu. Chi tiết từng bước được trình bày trong phần “Xây dựng thời khóa biểu” của mục lục. #### Vì sao nút tạo thời khóa biểu vẫn bị mờ? Vì phần chẩn đoán ở tab kiểm tra đang báo một cảnh báo chặn (màu đỏ). Trường hợp hay gặp nhất khi mới bắt đầu: **chưa có tiết học nào để xếp**. Chức năng tạo tự động chỉ xếp chỗ cho các tiết học đã có, nó không tạo ra tiết học nào — trước hết bạn phải tạo chúng từ khối lượng giờ, ở bước [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution). Với một cảnh báo chặn thông thường, bạn vẫn khởi chạy được việc tính toán từ menu tùy chọn của nút đó, và tự chịu rủi ro. Với một cảnh báo nghiêm trọng — không có tiết học nào, không có lớp nào dùng được, cơ sở không có lưới thời gian — thì menu đó cũng bị vô hiệu hóa. Chi tiết các trường hợp có trong [Tạo tự động](#page-timetables.generation). #### Chức năng tạo tự động có giới hạn nào không? Công cụ tạo tự động rất mạnh nhưng tuân thủ nghiêm ngặt những ràng buộc được đưa vào. Nếu một cấu hình là bất khả thi ngay từ cấu trúc (thời gian rảnh mâu thuẫn nhau, sức chứa không đủ, căn chỉnh nhóm không nhất quán), Omniscol trả về thời khóa biểu tốt nhất tính được, để lại các tiết học còn thiếu trong danh sách thẻ post-it chưa được xếp và đưa ra chẩn đoán rõ ràng. Xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Một lần tạo tự động mất bao lâu? Thời lượng phụ thuộc vào quy mô thời khóa biểu, số lượng tiết học và các ràng buộc. Mỗi lần tạo tự động sẽ khởi động một môi trường tính toán riêng, chạy song song; phần khởi tạo thường mất khoảng mười giây trước khi việc tính toán thực sự bắt đầu. Bạn có thể đóng cửa sổ trong lúc đang tính; một thông báo sẽ hiện ra khi xong. Để hình dung mức độ, xem [Cách hoạt động của thuật toán](#page-faq.solver-behavior). #### Thời khóa biểu vừa tạo có được công bố tự động không? Không. Việc công bố (“phân bổ thời khóa biểu”) là một bước riêng, phải được thực hiện một cách chủ động sau khi kiểm tra. Nếu chưa công bố, thời khóa biểu vẫn chỉ là bản nháp mà người dùng cuối không nhìn thấy. Xem [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication). #### Có thể quay lại một trạng thái trước đó của thời khóa biểu không? Có, theo hai cách: - **Nhân bản** thời khóa biểu — mỗi thay đổi về cấu trúc đều có thể thực hiện trên một bản sao, còn bản gốc giữ vai trò tham chiếu (có trên mọi gói). - **Snapshots** — các điểm sao lưu khôi phục được của toàn bộ tài khoản, tự động hoặc thủ công (tùy chọn Snapshots, tùy theo hợp đồng). Xem [Điểm sao lưu](#page-admin.snapshots). #### Quản lý tuần luân phiên (A/B) như thế nào? Chức năng này được bật trong [Thông số chung](#page-admin.parameters), phần **Tuần luân phiên** (chữ A/B/C hoặc số 1/2/3, nhịp tùy ý trên bao nhiêu tuần cũng được). Trên một khóa học, Thêm tuần thêm một khoảng cho một tuần luân phiên mới. Xem [Tiết học luân phiên](#page-glossary.alternate-lessons). #### Có thể lệch giờ ra ăn trưa theo khối lớp (hai ca nhà ăn) không? Có, và đây là cách đúng để **giảm tải nhà ăn**. Bạn khai báo một giờ nghỉ trưa rộng và dùng chung — ví dụ **12h – 14h** — với thời lượng ăn trưa cần giữ là **một giờ**, rồi **cố định** ca ăn của từng khối bằng cách tô màu **Bận** lên nửa khung giờ ăn của khối đó, trong ràng buộc thời gian của lớp (Ràng buộc thời gian của lớp). Ví dụ: khối 6, khối 7 và khối 8 bận trong 12h – 13h (ca đầu); khối 9 và khối 10 bận trong 13h – 14h (ca sau). Nhà ăn nhờ vậy đón hai luồng riêng biệt. Xem [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) và [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints). #### Xem thêm - [Tổng quan về mô-đun Quản lý thời khóa biểu](#page-timetables.overview) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Cách hoạt động của thuật toán](#page-faq.solver-behavior) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) ### 16.3 FAQ — Nhập dữ liệu *Source: `help/vi/faq/data-import.md` · id: faq.data-import · Updated: 2026-05-10* #### Những định dạng nhập nào được hỗ trợ? CSV và TSV, bằng cách sao chép rồi dán từ Excel, Google Sheets, Numbers hoặc Calc. Bản **xuất JSON** đầy đủ của tài khoản có sẵn cho quản trị viên (để sao lưu); còn việc **nhập lại** một tài khoản JSON đầy đủ là thao tác khôi phục do Omniscol đảm nhiệm, chứ không phải một thao tác thông thường của màn hình quản trị. Với những lần di chuyển dữ liệu chuyên biệt, xem [Tổng quan](#page-migration.overview). #### Mã định danh có do hệ thống sinh ra không? Có. Khi nhập học sinh, giáo viên hoặc lớp, Omniscol sinh ra một mã định danh nội bộ ổn định: với cá nhân thì mã này lấy từ tên và họ, còn với nhóm thì có kèm lớp cha (`:`). Cấu trúc của **tên đăng nhập** (tên-họ, họ-tên hoặc số hiệu định danh) được thiết lập trong [Thông số chung](#page-admin.parameters), ở ô **Tên đăng nhập**. Bạn cũng có thể ghi mã tham chiếu của riêng bạn vào ô **mã định danh bên ngoài / mã số** — hữu ích để truy vết cùng hệ thống thông tin trường học của bạn và để phân biệt những người trùng tên. #### Với nhóm, có luôn phải ghi rõ lớp không? Có. Nhóm luôn là một phần chia nhỏ của một lớp. Mã định danh của một nhóm có kèm lớp cha. Trong các tệp nhập tiết học, cột “lớp” và cột “nhóm” hoạt động cùng nhau. Xem [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups). #### Thứ tự các cột trong bảng có quan trọng không? Màn hình nhập mở ra một **khung cột** được định kiểu theo vị trí (môn học, giáo viên, phòng học… mỗi mục chiếm một cột đã định sẵn). Bạn **sắp xếp lại các cột của khung** cho khớp với thứ tự trong bảng tính nguồn: nhờ vậy việc sao chép rồi dán vẫn cho kết quả sạch, không phải viết lại tệp của bạn. Xem [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import). #### Dùng dấu phân cách nào cho danh sách (nhiều giáo viên, nhiều nhóm, v.v.)? Các dấu phân cách thông dụng đều được nhận diện ngay bên trong cùng một ô: dấu phẩy, dấu chấm phẩy, dấu gạch chéo, dấu gạch đứng, dấu cộng, dấu và (&) hoặc dấu xuống dòng. Công cụ nhập tự phát hiện quy ước đang dùng trong ô đó. #### Điều gì xảy ra nếu bảng chứa những môn học chưa có? Ở bước 4 của quá trình nhập, Omniscol đề xuất **tạo các thực thể chưa có**. Với môn học tùy chỉnh và một số giáo viên, bạn có thể yêu cầu tạo bên phía **Quản trị** để dùng được trong toàn trường. Các nhãn được chỉnh lại ở bước 3, khi phân định những trường hợp nhập nhằng. #### Tiết học phức hợp có được nhập đúng không? Một phần. Công cụ nhập nhận diện tốt: - tiết học đơn giản (môn học + lớp + giáo viên + phòng học + khung giờ), - tiết học luân phiên cơ bản (`A/B`), - tiết học nhiều giáo viên (đồng giảng), - tiết học nhiều phòng học. Công cụ nhận diện kém hơn, nên cần hoàn thiện thủ công: - tiết học liên kết (luân phiên nửa nhóm), - các chuỗi nối tiếp phức tạp, - nhóm của nhóm, - tiết học ngoài khung giờ với giờ cụ thể. #### Phải làm gì nếu việc nhập thất bại với một tệp lớn? - Kiểm tra xem có dòng trống hay ô đã gộp hay không. - Chia tệp thành các phần nhỏ hơn (theo lớp, theo cơ sở, theo học kỳ). - Ưu tiên một **bản xuất đầy đủ** của tài khoản nguồn, thường sạch hơn một bản xuất từng phần làm bằng tay. #### Xem thêm - [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) - [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) - [Tổng quan](#page-migration.overview) - [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) ### 16.4 FAQ — Cách hoạt động của thuật toán tạo tự động *Source: `help/vi/faq/solver-behavior.md` · id: faq.solver-behavior · Updated: 2026-05-15* Những câu hỏi thường gặp về cách hoạt động của công cụ tạo tự động. Để có mô tả về chính công cụ tạo tự động, xem [Công cụ tạo tự động](#page-glossary.solver); để biết chi tiết vận hành, xem [Tạo tự động](#page-timetables.generation). #### Công cụ tạo tự động chạy được trên những loại thời khóa biểu nào? Trên thời khóa biểu [theo tuần](#page-glossary.weekly-timetable), [theo chu kỳ](#page-glossary.cyclic-timetable) và [theo lịch](#page-glossary.calendar-mode). Ở chế độ lịch, các tiết học được đặt vào ngày thực và các tùy chọn khi tạo tự động bao gồm cả các mốc giới hạn ngày. #### Thuật toán hoạt động như thế nào? Omniscol chạy một tiến trình giải ở chế độ nền. Công cụ tạo tự động đánh giá những tiết học cần xếp, các ràng buộc đã khai báo và các ưu tiên khi tạo. Kết quả phụ thuộc trước hết vào chất lượng dữ liệu: khối lượng giờ, giáo viên, phòng học, nhóm, thời gian rảnh, điểm không tương thích và ràng buộc giữa các cơ sở. Mỗi lần tạo tự động sẽ khởi động một môi trường tính toán riêng, chạy song song. Phía nhà trường không có hàng đợi nào phải quản lý; phần khởi tạo thường mất khoảng mười giây trước khi việc tính toán thực sự bắt đầu. Trong mô-đun **Quản lý thời khóa biểu**, nút **Tạo thời khóa biểu** khởi chạy việc tính toán, theo dõi trạng thái và cho phép xem xét kết quả. Bộ máy này là một AI tối ưu hóa theo hướng **siêu heuristic Monte-Carlo nơ-ron – ký hiệu**: tìm kiếm ngẫu nhiên, ràng buộc ký hiệu và tối ưu hóa điểm số theo từng bước. Đây không phải là lời hứa thành công trên một tập ràng buộc bất khả thi; trong trường hợp đó, Omniscol trả về một chẩn đoán. #### Một lần tạo tự động mất bao lâu? Thời lượng phụ thuộc vào quy mô thời khóa biểu, số tiết học, số ràng buộc và các tùy chọn đã chọn. Để hình dung mức độ, một trường trung học cơ sở khoảng 550 học sinh, 45 giáo viên và 16 lớp, với nhiều thời gian rảnh, có thể có được một thời khóa biểu đầy đủ trong chưa đầy một phút, rất ít hoặc không có giờ trống, khi dữ liệu nhất quán. Một trường hợp dày đặc hơn, bị ràng buộc rất chặt hoặc có những phép tối ưu hóa tốn kém thì có thể mất lâu hơn nhiều. #### Công cụ tạo tự động có tuân thủ mọi ràng buộc không? Các **ràng buộc cứng** được tuân thủ nghiêm ngặt: - một giáo viên chỉ ở một nơi tại cùng một thời điểm; - một lớp không bị xếp trùng hai chỗ, trừ các nhóm nằm trong một phân vùng; - thời gian rảnh và những khung giờ được đánh dấu **bận**; - phòng học tiêu chuẩn chỉ có một tiết học tại một thời điểm; - phòng lớn chỉ được dùng trong giới hạn sức chứa và số lớp cùng lúc của nó; - phòng học chuyên ngành, sức chứa, tài nguyên vật chất và việc di chuyển giữa các cơ sở đều tương thích; - các tiết học đã khóa được giữ nguyên vị trí. Các **ràng buộc mềm** (thời gian rảnh không mong muốn, các ưu tiên, trọng số sư phạm, cân đối giữa các ngày, số ngày có mặt, giờ trống trong thời khóa biểu) được tối ưu hóa ở mức tốt nhất có thể. Chúng sinh ra điểm trừ: công cụ tạo tự động tìm lời giải tích lũy ít điểm trừ nhất, nhưng vẫn có thể giữ lại một số nếu đó là phương án dung hòa tốt nhất còn tương thích với các ràng buộc cứng. #### Nếu việc tạo tự động thất bại thì làm gì? Khi không tìm được lời giải đầy đủ, Omniscol trả về thời khóa biểu tốt nhất tính được và để lại những tiết học chưa xếp trong thanh post-it. Thời khóa biểu chưa hoàn chỉnh vẫn xem được để hiểu những gì đã được xếp, rồi sửa các ràng buộc hoặc tự tay đặt lại một số tiết học. Những nguyên nhân thường gặp nhất được mô tả trong trang [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Có thể tự tay ấn định vị trí của một tiết học không? Có, bằng cách **khóa** một tiết học sau khi đã đặt nó thủ công. Công cụ tạo tự động không di chuyển tiết học đã khóa trong lần tạo tự động mới, mà điều chỉnh những tiết học khác xung quanh. Cách này hữu ích để cố định các tiết học không thể xê dịch (chuyên gia bên ngoài đến giảng vào ngày ấn định, kỳ thi đã định ngày). #### Vì sao công cụ tạo tự động không đề xuất nhiều lời giải? Công cụ tạo tự động tối ưu hóa theo các ràng buộc và ưu tiên đã khai báo, rồi trả về **lời giải tốt nhất tìm được**. Để có nhiều lời giải đem so sánh, hãy nhân bản thời khóa biểu trước mỗi lần tạo tự động và chỉnh nhẹ các ràng buộc hoặc trọng số giữa hai lượt chạy. #### Công cụ tạo tự động có tính đến các vắng mặt đã khai báo không? Công cụ tạo tự động làm việc trên thời khóa biểu **cấu trúc**, độc lập với các vắng mặt. Vắng mặt được xử lý **về sau** trong mô-đun **Quản lý vắng mặt** (xem [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview)), có ảnh hưởng đến cách hiển thị thời khóa biểu đã công bố và đến thống kê của [Trang tổng quan](#page-glossary.dashboard) (không ảnh hưởng đến cấu trúc bên dưới). #### Lỗi tương thích có chủ đích và lỗi tương thích gây chặn Không phải lỗi tương thích nào cũng như nhau: - **Lỗi tương thích không chặn** — có thể để nguyên nếu đó là lựa chọn có chủ đích (ví dụ, một phòng học có sĩ số hiển thị vượt sức chứa vì bạn biết không phải tất cả những người đã đăng ký đều đến). Cảnh báo vẫn hiện nhưng không chặn. - **Lỗi tương thích gây chặn** — khiến việc tạo tự động không thể thành công (không có phòng học nào tương thích, căn chỉnh nhóm không nhất quán, v.v.). Nút Tạo thời khóa biểu vẫn bị vô hiệu hóa chừng nào những lỗi tương thích này còn tồn tại. Xem [Lỗi tương thích](#page-glossary.conflict). #### Xem thêm - [Công cụ tạo tự động](#page-glossary.solver) - [Tạo tự động](#page-timetables.generation) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) - [Lỗi tương thích](#page-glossary.conflict) - [Chẩn đoán](#page-glossary.diagnostic) ### 16.5 FAQ — Hiển thị và giao diện *Source: `help/vi/faq/display-and-ux.md` · id: faq.display-and-ux · Updated: 2026-06-25* Những câu hỏi thường gặp về cách hiển thị, các chế độ xem và trải nghiệm người dùng của giao diện Omniscol. #### Có những chế độ xem nào để tra cứu thời khóa biểu? Thành phần hiển thị kết hợp: - các **kiểu trình bày**: **lưới** (lịch chuẩn), **danh sách**, **bảng** kiểu bảng tính; - các **biến thể đọc**: **ngày**, **tháng**, **lịch trình** (và **lịch trình theo giờ**), **cạnh nhau**. Lịch trình dùng để xem chéo nhiều đối tượng hoặc nhiều ngày trong cùng một chế độ xem; lịch trình theo giờ làm điều tương tự trên thang thời gian tính theo giờ. Bảng là cách trình bày dạng bảng của chế độ xem hiện tại. Xem [Hiển thị thời khóa biểu](#page-schedules.schedule-display) và [Tra cứu và lọc](#page-schedules.consult-and-filter). #### Có chế độ hiển thị thời khóa biểu theo chiều dọc không? Trong mô-đun **Thời khóa biểu**, thành phần hiển thị thời khóa biểu không có chế độ xem theo chiều dọc. Một chế độ xem dọc tương đương có trong mô-đun **Quản lý nhân sự** (xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview)) cho những bối cảnh liên quan (lưới giám sát). #### Giao diện có tự thích ứng với điện thoại và máy tính bảng không? Có, giao diện thích ứng với màn hình mọi kích thước. Trên điện thoại, thao tác vuốt ngang giúp cuộn qua khoảng thời gian đang hiển thị (mặc định là tuần, hoặc ngày khi đang ở chế độ xem Ngày). #### Có những thông số nào để hiển thị họ tên? Họ tên được đưa qua một cơ chế định dạng, được cấu hình theo thiết lập của trường: - Thứ tự tên và họ (theo quy ước của từng quốc gia). - In đậm phần chính (thay đổi tùy quốc gia — có xử lý *tên đệm* theo quy ước của Mỹ, Việt Nam và các nước Ả Rập). - Viết hoa tên, tên đệm nếu được bật, và/hoặc họ thông qua thông số viết hoa họ tên. #### Giao diện có bảo đảm khả năng tiếp cận cho người khuyết tật không? Omniscol có quy trình kiểm định khả năng tiếp cận (RGAA, WCAG). Báo cáo tuân thủ có thể được cung cấp theo yêu cầu. Những điểm cần cải thiện được xử lý liên tục. Với các nhu cầu đặc thù (trình đọc màn hình, tăng độ tương phản, điều hướng bằng bàn phím), bạn hãy liên hệ bộ phận hỗ trợ. #### Các ngôn ngữ viết từ phải sang trái có được hỗ trợ không? Có. Tiếng Ả Rập và tiếng Do Thái có giao diện được điều chỉnh phù hợp cho chiều viết từ phải sang trái. Danh sách 14 ngôn ngữ được hỗ trợ nằm trong [Câu hỏi chung](#page-faq.general). #### Làm thế nào để in thời khóa biểu? Nút **In** trong mô-đun **Thời khóa biểu** khởi động việc in. Bản in được tối ưu cho giấy (không có phần tử tương tác, bố cục được điều chỉnh phù hợp). #### Làm thế nào để xuất thời khóa biểu sang Excel hoặc một lịch bên ngoài? - Xuất Excel / CSV qua **Bảng tính**. - Xuất hoặc đăng ký iCal qua **Tải xuống** (xem [iCal — đăng ký và liên kết động](#page-integrations.ical)). - Liên kết chia sẻ công khai ở chế độ chỉ đọc (xem [Liên kết chia sẻ](#page-glossary.share-link)). #### Có chế độ tối không? Không có trong giao diện hiện tại: Omniscol không cung cấp chế độ tối và cũng không tự chuyển theo thiết lập chế độ tối của hệ điều hành. Bù lại, giao diện có tính đến các tùy chọn hỗ trợ tiếp cận của hệ thống, chẳng hạn như tăng độ tương phản. #### Tôi có thể tùy chỉnh màu của môn học không? Có. Mỗi môn học (xem [Môn học](#page-glossary.subject)) có thể được gán một màu riêng qua **Colorpicker**. Loại tiết học vẫn chỉ là nhãn chữ, không gắn màu hay biểu tượng nào. #### Xem thêm - [Tra cứu và lọc](#page-schedules.consult-and-filter) - [FAQ — Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - [Bảng thông tin](#page-panels.lobby-panel) - [In và chia sẻ](#page-schedules.print-and-export) ### 16.6 FAQ — Tình huống sử dụng trong giáo dục đại học *Source: `help/vi/faq/higher-ed-cases.md` · id: faq.higher-ed-cases · Updated: 2026-06-13* Những câu hỏi thường gặp ở các trường thuộc khối giáo dục đại học (trường kinh doanh, trường kỹ thuật, trường mỹ thuật và thiết kế, đại học, trung tâm đào tạo thường xuyên). Các câu trả lời áp dụng chung cho những loại hình này; về chi tiết nghiệp vụ, xem [Đặc thù của giáo dục đại học](#page-higher-ed.overview). #### Nhiều thời khóa biểu, mỗi người chỉ thấy phần của mình **H.** Làm sao quản lý song song nhiều thời khóa biểu để mỗi người dùng chỉ thấy trong lịch của mình những tiết học liên quan đến họ? **Đ.** Ba cơ chế phối hợp với nhau: - Về phía quản trị viên, nhiều thời khóa biểu có thể được công bố song song trên cùng những tuần, với cơ chế hợp nhất động — có sẵn trong tài khoản Premium (xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables)). - Theo mặc định, mỗi người dùng chỉ thấy những tiết học liên quan đến mình — lớp của mình, các nhóm của mình, hoặc các tiết học của chính mình nếu là giáo viên. Bộ lọc được áp dụng tự động khi đăng nhập, theo vai trò của người đó. - Để xem thông tin của đối tượng khác (lớp khác, giáo viên khác…), người dùng tự đặt bộ lọc, với điều kiện vai trò của họ cho phép. Chẳng hạn, [giới hạn hiển thị](#page-admin.visibility-restrictions) cho phép ẩn thời khóa biểu của đồng nghiệp đối với giáo viên. #### Đồng bộ iCal sau khi sửa thời khóa biểu **H.** Khi một tiết học được sửa trong Omniscol, luồng iCal có được cập nhật tự động không? **Đ.** Có, với điều kiện bạn dùng **liên kết đăng ký iCal** (chứ không phải bản tải về tĩnh). Liên kết đăng ký là liên kết động; ứng dụng lịch sẽ lấy lại luồng theo chu kỳ đều đặn, với độ trễ từ vài phút đến vài giờ tùy ứng dụng và cấu hình của nó. Chính ứng dụng lịch quyết định nhịp làm mới, chứ không phải Omniscol. Xem [iCal](#page-glossary.ical) và [iCal — đăng ký và liên kết động](#page-integrations.ical). #### Thông báo mỗi lần có thay đổi **H.** Có thể gửi thông báo mỗi khi thời khóa biểu thay đổi không? **Đ.** Không có thông báo tự động cho từng thay đổi: khối lượng sẽ vượt sức tiếp nhận của người nhận. Cách làm hiện nay: công bố các thay đổi theo đợt bằng một email tổng hợp gửi tới nhóm người dùng liên quan đã chọn (Gửi email). #### Chọn phòng học trong một nhóm loại lớn / danh mục phòng **H.** Làm sao chỉ định rằng một tiết học phải diễn ra trong một phòng học nhất định thuộc về một nhóm loại lớn — tùy theo việc bạn muốn ép đúng một phòng hay để công cụ tạo tự động chọn trong nhóm đó? **Đ.** Thông qua [**chuyên ngành của phòng học**](#page-glossary.classroom-specialization), vốn là các ô nhập tự do: - Tạo một chuyên ngành tương ứng với nhóm loại lớn đó (ví dụ “XƯỞNG-THỰC-HÀNH”, “PHÒNG-MÁY”, “LAB-HÓA”). - Gán chuyên ngành này cho các phòng học liên quan. - Trên tiết học, ghi rõ chuyên ngành cần có. Omniscol ưu tiên gợi ý các phòng học có chuyên ngành đó và công cụ tạo tự động chọn một phòng trong số các phòng còn trống. - Để **ép đúng một phòng học**, hãy ghi thẳng phòng đó (kèm theo chuyên ngành, hoặc thay cho chuyên ngành). Công cụ tạo tự động tôn trọng lựa chọn bị ép này. Khi nhập hàng loạt, bạn có thể chỉ ghi chuyên ngành; công cụ tạo tự động lo phần gán phòng cuối cùng. #### Kiểm tra mức sử dụng phòng học trước khi tạo tự động **H.** Có báo cáo nào cho phép kiểm tra, trước khi tạo tự động, xem số giờ đã gán cho một phòng học hay cho một nhóm loại phòng có nằm gọn trong tổng số giờ sẵn có hay không? **Đ.** Tab Tạo thời khóa biểu chạy một bước chẩn đoán trước: kiểm tra sức chứa (số tiết học cần xếp so với sức chứa của lưới thời gian) và kiểm tra mức tương thích của chuyên ngành phòng học. Một cảnh báo sẽ hiện lên nếu vượt quá khả năng. [Trang tổng quan](#page-glossary.dashboard) sau khi công bố cho biết chi tiết thực tế (có tính đến vắng mặt và thay thế). #### Thời lượng của từng tiết học khi nhập **H.** Trong tệp nhập, cột “thời lượng” chứa tổng số giờ của một hoạt động, mà hoạt động ấy có thể gộp nhiều tiết học. Vậy ghi thời lượng riêng của từng tiết học ở đâu? **Đ.** **Một dòng nhập tương ứng với một tiết học**. Thời lượng ghi ở đó là của chính tiết học ấy, không phải của cả học phần. Với một học phần gồm nhiều tiết học có thời lượng khác nhau, bạn cần một dòng nhập cho mỗi tiết học. Nếu nguồn dữ liệu đã gộp lại (“Đại số = tổng 30 giờ”), bạn phải tách ra trước khi nhập — hoặc dùng [phân bổ tự động](#page-timetables.hour-distribution) để chia một khối lượng giờ thành từng tiết học riêng. #### Khóa học chỉ diễn ra vào một số tuần **H.** Làm sao chỉ định rằng một khóa học chỉ diễn ra vào một số tuần nhất định trong năm học? **Đ.** Điều đó tùy chế độ: - Ở chế độ [hằng tuần](#page-glossary.weekly-timetable), [tuần luân phiên](#page-glossary.alternate-lessons) xử lý trường hợp một khóa học chỉ lặp lại N tuần một lần. Còn với khóa học chỉ rơi vào vài tuần cụ thể trong năm, chế độ lịch phù hợp hơn. - Ở chế độ [lịch](#page-glossary.calendar-mode), mỗi tiết học được đặt riêng vào đúng ngày của nó: đó là cách hoạt động sẵn có. - Khi nhập, hãy ghi **ngày** của từng tiết học vào cột dành riêng (định dạng `YYYY-MM-DD`), hoặc để trống nếu tiết học đó sẽ được xếp thủ công sau. #### Khóa học liên lớp / liên khóa **H.** Làm sao mô hình hóa những khóa học mà trong cùng một khung giờ và cùng một phòng học, có nhiều nhóm của cùng một lớp hoặc của những lớp khác nhau cùng tham gia, đôi khi với những môn học khác nhau, đôi khi ở những cơ sở khác nhau? **Đ.** Tùy trường hợp: - **Nhiều nhóm của cùng một lớp trong cùng khung giờ, cùng môn học, cùng giáo viên, cùng phòng học** — chỉ một khóa học gán cho một nhóm gộp. Thành phần cố định → [phân vùng](#page-glossary.class-division) nếu áp dụng được. Thành phần hay thay đổi → [nhóm của nhóm](#page-glossary.groups-of-groups), có trên mọi tài khoản và mọi loại thời khóa biểu. - **Nhiều lớp khác nhau trong cùng khung giờ, cùng môn học, cùng giáo viên, cùng phòng học** — dùng [căn chỉnh nhóm](#page-glossary.alignment) khi thành phần đã cố định, hoặc [nhóm của nhóm](#page-glossary.groups-of-groups) (có trên mọi tài khoản, mọi loại thời khóa biểu) khi việc gom nhóm cần giữ được sự linh hoạt. - **Các môn học khác nhau trong cùng khung giờ và cùng phòng học** (trường hợp hiếm) — cần hai khóa học riêng biệt. Trên thời khóa biểu của mình, mỗi học sinh thấy môn học của nhóm mà họ thuộc về. - **Giữa hai cơ sở** (hai lớp ở hai địa điểm khác nhau dùng chung một khóa học) — được hỗ trợ, với điều kiện phòng học dùng chung hoặc buổi họp trực tuyến được mô hình hóa đúng cách (xem [cơ sở ảo](#page-glossary.site)). #### Giáo viên luân phiên trên cùng một khung giờ **H.** Làm sao chỉ định rằng hai giáo viên thay phiên nhau trên cùng một khung giờ, cùng một thứ trong tuần, với cùng lớp / môn học / nhóm — người này một tuần, người kia tuần kế tiếp? **Đ.** Đây là **sự luân phiên giữa hai giáo viên**, chứ không phải [đồng giảng dạy](#page-glossary.co-teaching) theo nghĩa chặt (vốn đòi hỏi hai giáo viên cùng lúc phụ trách một tiết học). Có hai cách làm, tùy nhịp luân phiên: - **Luân phiên đều đặn ở chế độ hằng tuần** — dùng [tuần luân phiên](#page-glossary.alternate-lessons) với mỗi tuần một giáo viên khác nhau. - **Luân phiên theo ngày cụ thể ở chế độ lịch** — tạo một khóa học cho mỗi tiết học, với giáo viên tương ứng. Cách này dài dòng hơn nhưng linh hoạt hơn: từng tiết học có thể được chỉnh riêng. #### Đồng giảng dạy không thường xuyên (giáo sư thỉnh giảng) **H.** Làm sao chỉ định rằng chỉ trong một hoặc vài tiết học, một giáo sư thỉnh giảng cùng dạy một khóa học với giáo viên phụ trách chính? **Đ.** Ở chế độ [lịch](#page-glossary.calendar-mode), hãy tạo các tiết học thông thường chỉ với giáo viên phụ trách chính, rồi ở những tiết học có giáo sư thỉnh giảng tham gia, thêm người đó làm [người đồng giảng](#page-glossary.co-teaching) trên đúng tiết học ấy. Mỗi giáo viên đều được ghi nhận trong thống kê của riêng mình. #### Liên kết họp trực tuyến cho từng khóa học **H.** Liên kết họp trực tuyến chỉ có thể gắn cho cả một lớp, hay có thể gắn cho một khóa học hoặc một tiết học cụ thể? **Đ.** Liên kết họp trực tuyến có thể đặt ở ba cấp: trên **lớp** (khi đó nó mặc định áp dụng cho mọi tiết học của lớp), trên một **khóa học** cụ thể, hoặc trên **một tiết học riêng lẻ** ở chế độ lịch. Cách này phù hợp với hình thức dạy học kết hợp, khi chỉ một số khóa học được dạy từ xa. Xem [Liên kết hội nghị truyền hình theo khóa học](#page-higher-ed.videoconference-links). #### Học sinh học lại và học ngoài chương trình **H.** Làm sao xử lý một học sinh phải học một môn học của năm khác (học lại, học bổ sung, *fuori corso*, v.v.)? **Đ.** Một học sinh có thể được phân công vào nhiều lớp cùng lúc, và bị giới hạn ở một số nhóm nhất định của một lớp. Bốn trường hợp điển hình: 1. **Cả một lớp khác + một nhóm cụ thể của lớp thứ ba** — phân công vào cả hai và chọn nhóm. 2. **Nhiều nhóm của một lớp khác mà không vào cả lớp** — phân công thẳng vào các nhóm. 3. **Chỉ một môn học của lớp khác thông qua một nhóm cụ thể** — tạo một nhóm riêng trong lớp đó và chỉ phân công học sinh vào nhóm ấy. 4. **Học sinh ngoài chương trình học lại một môn học lẻ** — cùng cách làm, với một nhóm riêng. #### Mã định danh của hệ thống thông tin trường làm mã duy nhất **H.** Có thể dùng mã học sinh hoặc mã giáo viên lấy từ hệ thống thông tin của trường chúng tôi làm mã định danh duy nhất trong Omniscol, để tránh nhầm lẫn giữa những người trùng tên không? **Đ.** Có, thông qua ô **mã số / mã định danh bên ngoài** trên hồ sơ người dùng — đó chính là công dụng của ô này. Hãy điền nó khi nhập dữ liệu và Omniscol sẽ dùng nó làm khóa nhận dạng. Đặc biệt hữu ích cho việc đồng bộ hai chiều với hệ thống thông tin của trường bạn (xem [đồng bộ với các hệ thống bên ngoài](#page-integrations.extsync) cho Aurion / Auriga, hoặc [API Omniscol](#page-integrations.api-tokens) cho một tích hợp riêng). #### Nhiều địa chỉ email cho một người dùng **H.** Có thể nhập hai địa chỉ email cho cùng một giáo viên (địa chỉ của trường và địa chỉ cá nhân) không? **Đ.** Giao diện hiện nay thì không: mỗi người dùng có một email chính. Nếu cần lưu địa chỉ thứ hai để tham khảo, hãy dùng ô Nhận xét trên hồ sơ người dùng. Ô này không được dùng làm địa chỉ gửi thư. #### Người học, sinh viên, học viên — dùng thực thể nào? **H.** Bộ danh mục của chúng tôi phân biệt **người học** (thuật ngữ chung), **sinh viên** (đào tạo chính quy), **học viên** (đào tạo thường xuyên). Những sắc thái này ánh xạ ra sao? **Đ.** Tất cả đều quy về thực thể [học sinh](#page-glossary.student) của Omniscol (vai trò `student`). Việc phân biệt đào tạo chính quy / thường xuyên được xử lý bằng một thuộc tính tùy chọn trên hồ sơ (mã số từ hệ thống thông tin của trường, trạng thái), chứ không bằng những thực thể riêng. #### Giảng viên: cơ hữu, hợp đồng theo giờ, chuyên gia, khách mời **H.** Bộ danh mục của chúng tôi phân biệt **giáo viên cơ hữu** (hợp đồng không xác định thời hạn, giờ dạy được phân bổ), **giảng viên hợp đồng theo giờ** (hợp đồng từng đợt), **chuyên gia** (đối tác bên ngoài, hiếm khi tham gia), **giáo sư thỉnh giảng** (giảng viên đại học được mời). Tất cả có ứng với cùng một thực thể Omniscol không? **Đ.** Đúng, tất cả đều quy về thực thể [giáo viên](#page-glossary.teacher) (vai trò `teacher`). **Dấu hiệu “bên ngoài / hợp đồng theo giờ” gắn cho từng người**, vốn phân biệt họ với đội ngũ cơ hữu, là một tùy chọn **Premium** (xem [giáo viên bên ngoài](#page-glossary.external-teacher)); nếu không có Premium, cả bốn kiểu này vẫn là một thực thể giáo viên duy nhất, không có dấu hiệu riêng. Các vai trò “phụ trách học phần” và “phụ trách chương trình” là **vai trò nghiệp vụ** nội bộ của trường bạn. Omniscol không mô hình hóa chúng như những thực thể riêng, nhưng có thể thể hiện chúng qua [vai trò tùy chỉnh](#page-admin.customroles). #### Chương trình, ngành học, lộ trình đào tạo **H.** Chương trình đào tạo của chúng tôi được phân cấp thành **chương trình** (PGE, MBA, MsC, PhD, v.v.), **học phần quản trị** (UE / EC / ECUE), **hoạt động giảng dạy** (các tiết học). Việc này ánh xạ vào Omniscol như thế nào? **Đ.** Cách ánh xạ được khuyến nghị: | Khái niệm nghiệp vụ | Thực thể Omniscol | | --- | --- | | **Chương trình** | Một [lớp](#page-glossary.class) (hoặc một tập hợp lớp khi có nhiều khóa song song) | | **Học phần / module / UE / EC** | Một [môn học](#page-glossary.subject) (có hoặc không có [loại tiết học](#page-glossary.lesson-type)) | | **Tiết học / hoạt động giảng dạy** | Một [tiết học](#page-glossary.lesson) — một lần diễn ra riêng lẻ của một khóa học, đã được xếp lịch | Với các hệ danh mục phân cấp (UE → EC → ECUE), một quy ước đặt tên trên môn học (“UE3-EC2-ECUE1 Đại số tuyến tính”) hoặc việc dùng **nhóm môn học** cho phép thể hiện cách gom nhóm đó. #### Dịch chuyển người học, trao đổi, song bằng **H.** Làm sao quản lý người học đến và người học đi (trao đổi học thuật, chương trình song bằng, *free movers*, *study abroad*)? **Đ.** Về phía thời khóa biểu, những người học này là **học sinh bình thường được phân công vào các lớp cụ thể**. Phần quản lý hành chính (thỏa thuận hợp tác, tín chỉ, ECTS, trạng thái) thuộc về hệ thống thông tin của trường; Omniscol tập trung vào câu hỏi “ai dự tiết học nào, khi nào, ở đâu”. #### Khuyến nghị cấu hình cho giáo dục đại học Với một tài khoản dành cho giáo dục đại học, hãy cân nhắc: - **Tài khoản Premium**: chế độ lịch, thời gian rảnh theo lịch và nhiều thời khóa biểu đang hoạt động đều có sẵn, cũng như MCP (kết nối một trợ lý AI tương thích). Bổ sung thêm theo nhu cầu bằng các tùy chọn theo hợp đồng: vai trò tùy chỉnh, điểm sao lưu, cộng tác thời gian thực. (Riêng **nhóm của nhóm** thì có trên mọi tài khoản.) - **Chế độ lịch** cho phần lớn thời khóa biểu (từng tiết học có ngày riêng, giáo viên thay đổi theo từng lần dạy). - **Nhiều thời khóa biểu hoạt động song song** theo từng chương trình (một thời khóa biểu cho mỗi chương trình thạc sĩ, được hợp nhất động khi có tiết học dùng chung). - **Nhóm của nhóm** cho những cách gom nhóm liên ngành hay thay đổi (khối kiến thức chung cho nhiều lộ trình). - **Nhiều phòng học** cho các kỳ thi phải chia ra nhiều giảng đường hoặc các bài giảng được truyền trực tiếp sang phòng khác. - **Vai trò tùy chỉnh** để mô hình hóa người phụ trách học phần hoặc phụ trách chương trình, với quyền hạn nhắm đúng phần việc của họ. - **Tích hợp hệ thống thông tin của trường** ([đồng bộ với các hệ thống bên ngoài](#page-integrations.extsync) cho Aurion / Auriga, hoặc [API Omniscol](#page-integrations.api-tokens) cho một tích hợp riêng) để đồng bộ người học. - **OIDC / SSO** với nhà cung cấp danh tính của trường (Google Workspace, Microsoft Entra ID, Keycloak, v.v.). #### Xem thêm - [Đặc thù của giáo dục đại học — tổng quan](#page-higher-ed.overview) - [Nhiều phòng học](#page-glossary.multi-room) - [Hình thức](#page-glossary.lesson-modality) - [Đồng giảng dạy](#page-glossary.co-teaching) - [Chế độ lịch](#page-glossary.calendar-mode) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) - [FAQ — Xây dựng thời khóa biểu](#page-faq.timetables) - [FAQ — Nhập dữ liệu](#page-faq.data-import) ### 16.7 FAQ — Trường hợp đặc biệt và cấu hình nâng cao *Source: `help/vi/faq/edge-cases.md` · id: faq.edge-cases · Updated: 2026-06-13* Những câu hỏi về các cấu hình không điển hình hoặc các trường hợp đặc biệt: tiết học không tuân theo lưới thời gian, cách quản lý chi tiết phòng học và chuyên ngành của chúng, lỗi tương thích không chặn thao tác, các kiểu hiển thị riêng, khả năng truy vết những điểm bất nhất. #### Tiết học có giờ tùy chỉnh **H.** Một phần các tiết học tại trường chúng tôi (khoảng 20%) không tuân theo lưới thời gian chuẩn: thời lượng chính xác của một kỳ thi, giờ giấc lệch của một số tiết thực hành. Làm thế nào để xếp một tiết học phải bắt đầu lúc 13:10 trên lưới có bước 10 phút, và có được giờ kết thúc nhất quán? **Đ.** Có. Một tiết học có thể được nhập với giờ bắt đầu và giờ kết thúc riêng, không cần khớp chính xác các mốc của lưới chuẩn. Trong tiết học đã xếp, bạn hãy dùng nút Thời gian tùy chỉnh (Thời gian tùy chỉnh) rồi điền giờ bắt đầu và giờ kết thúc. Tiết học vẫn được tính vào lỗi tương thích: giáo viên, phòng học, lớp, nhóm và tài nguyên đều được coi là bận ngay khi giờ tùy chỉnh chồng lấn một khung giờ. Với phần tạo tự động, vị trí này bị khóa. Cấu hình **Ngoài khung giờ** của một lớp lại là trường hợp khác: nó dành cho các lớp ở chế độ lịch được cấu hình ngoài khung giờ, mà mọi tiết học đều phải được lưu với giờ giấc cụ thể. Xem [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) để biết chi tiết. #### Tạo môn học với môn học cha và nhóm môn học có sẵn **H.** Khi tạo một môn học tùy chỉnh, tôi có thể chọn một **môn học cha** đã tạo và một **nhóm môn học** có sẵn mà không phải nhập lại từ một hệ thống bên ngoài không? **Đ.** Có. Cửa sổ tạo hoặc sửa một môn học tùy chỉnh cho phép chọn trực tiếp một môn học cha có sẵn (trường Môn học cha) và một nhóm môn học có sẵn (trường Nhóm môn học), không cần nhập lại từ bên ngoài. Xem [Quản lý môn học](#page-admin.subjects). #### Sửa hoặc xóa một chuyên ngành phòng học **H.** Vì sao không có thao tác sửa hoặc xóa trực tiếp một chuyên ngành phòng học (chẳng hạn để sửa một lỗi chính tả)? **Đ.** Danh sách chuyên ngành được tính **động** từ chính các phòng học. Để một chuyên ngành biến mất: - Hãy gỡ nó khỏi tất cả các phòng học đang mang nó. Ở lần lưu tiếp theo, nó tự động biến mất khỏi danh mục. - Để **đổi tên**, bạn hãy tạo chuyên ngành mới với đúng tên gọi, thay thế trên những phòng học liên quan; chuyên ngành cũ sau đó tự biến mất. Vì vậy giao diện không có nút sửa hoặc xóa trực tiếp một chuyên ngành. Xem [Chuyên ngành phòng học](#page-glossary.classroom-specialization). #### Lọc thời khóa biểu theo môn học: phân biệt môn học đơn thuần và môn học kèm loại **H.** Khi tôi lọc thời khóa biểu theo môn học, một số tiết học không hiện ra dù chúng vẫn hiển thị rõ khi tôi lọc theo lớp. Nguyên nhân là gì? **Đ.** Cặp **(môn học, loại tiết học)** được xử lý như một mục độc lập với môn học đơn thuần. Hệ quả: - “Đại số” không có loại và “Đại số — Bài tập” tương ứng với **hai mục khác nhau** trong thời khóa biểu. - Để lọc cả hai cùng lúc, bạn đừng chỉ định loại nào trong bộ lọc. - Nếu bạn cần rà soát toàn bộ các loại của cùng một môn học, hãy dùng các bộ lọc có sẵn trong chế độ xem rồi kiểm tra kết quả trong danh sách tiết học. #### Hiển thị họ bằng chữ in hoa **H.** Có thể hiển thị họ bằng chữ in hoa không? Điều này hữu ích, nhất là khi họ cũng là một tên riêng phổ biến (ví dụ “Anh Vũ” so với “Anh VŨ”). **Đ.** Có. Thông số viết hoa họ tên được đặt trong thông số của trường. Nó áp dụng được cho tên, cho tên đệm nếu tùy chọn này đang bật, và/hoặc cho họ, tùy theo thứ tự tên đã cấu hình cho trường. #### Khóa tiết học không hiện ra ở mọi chế độ xem **H.** Dấu khóa vị trí của một tiết học không phải lúc nào cũng hiển thị khi chuyển chế độ xem (thẻ post-it ↔ danh sách). **Đ.** Dấu khóa phụ thuộc vào chế độ xem và vào bản chất của tiết học. Trong các chế độ xem phân bổ và ở một số dòng tiết học, khóa được thể hiện bằng biểu tượng [lock]. Nếu một chế độ xem không hiển thị dấu này, bạn hãy kiểm tra chi tiết của tiết học trước khi kết luận rằng thuật toán có thể thay đổi nó. #### Phân công phòng học: cơ sở ưa thích và chuyên ngành được ưu tiên **H.** Khi phân công phòng học, phòng học của một cơ sở khác lại xuất hiện trước, dù cơ sở ưa thích đã được đánh dấu. Vì sao? **Đ.** Mặc định, thứ tự sắp xếp lấy **cơ sở gắn với lớp**, chứ không phải cơ sở ưa thích của người dùng. Đây là cách vận hành có chủ đích: chính lớp quyết định việc chọn phòng học. Nếu thứ tự đề xuất không như mong đợi, bạn hãy kiểm tra xem lớp đã được gắn đúng cơ sở mong muốn trong Chỉnh sửa hay chưa. Với **chuyên ngành**, bạn hãy kiểm tra các phòng học được đề xuất và cảnh báo tương thích của chúng ngay trong bộ chọn. Đừng mặc định rằng danh sách được sắp xếp ưu tiên theo mức tương thích tốt nhất. #### Sức chứa tổng = tổng của các phòng học (nhiều phòng học) **H.** Khi nhiều phòng học được phân công cho cùng một tiết học, Omniscol có tính **sức chứa tổng** bằng tổng các sức chứa riêng lẻ, và nhờ đó tránh được các cảnh báo vượt sức chứa sai không? **Đ.** Có. Sức chứa tổng được tính bằng **tổng** sức chứa của những phòng học đã phân công. Nếu nhóm nằm gọn trong tổng đó, không có cảnh báo nào được kích hoạt. Chức năng này khả dụng **trên mọi loại thời khóa biểu**: theo tuần, theo chu kỳ, theo lịch. Nếu tổng vẫn nhỏ hơn sĩ số nhóm, lỗi tương thích sẽ được báo. Khi đó quản trị viên có thể: - thêm một phòng học nữa, - giảm sĩ số nhóm, - chấp nhận lỗi tương thích nếu điều đó là có chủ đích (trường hợp điển hình: đã biết trước là không phải người đăng ký nào cũng đến). Xem [Nhiều phòng học](#page-glossary.multi-room). #### Phát hiện điểm bất nhất giữa các nhóm trong phân vùng **H.** Omniscol báo “số tiết học khác nhau giữa các nhóm trong phân vùng” mà không nói rõ những điểm bất nhất nằm ở môn học nào. Làm thế nào để điều tra chi tiết? **Đ.** Bảng **thống kê nâng cao** của màn hình phân bổ thời gian cho phép kiểm tra chi tiết, đặc biệt bằng cách tách riêng những nhóm có tương tác trên các khung giờ liên quan. Với những trường có nhiều chênh lệch và các chênh lệch đó là cố ý, một quy tắc suy đoán sẽ giới hạn việc hiển thị cảnh báo khi vượt một ngưỡng, để tránh một danh sách không thể quản lý nổi. Bạn vẫn luôn có thể xuất danh sách tiết học và lọc trong bảng tính để chẩn đoán đầy đủ. #### Nhiều ghi chú với các giới hạn khác nhau **H.** Trên cùng một tiết học, tôi có thể thêm hai ghi chú với hai giới hạn công bố khác nhau (một dành riêng cho quản trị viên, một dành cho giáo viên) không? **Đ.** Có. Mỗi ghi chú có giới hạn công bố riêng: quản trị viên, giáo viên, hoặc tất cả người dùng. Bạn hãy dùng nút Nhận xét để thêm nhiều ghi chú và đặt mức hiển thị riêng cho từng ghi chú. #### Hiển thị thời khóa biểu theo chiều dọc (khối lượng theo tuần) **H.** Để xem khối lượng của một nhóm hoặc mức sử dụng của một loại phòng học trong trọn một tuần, cách hiển thị theo chiều ngang buộc phải cuộn màn hình. Có cách hiển thị theo chiều dọc không? **Đ.** Trong mô-đun **Thời khóa biểu**, thời khóa biểu được hiển thị theo chiều ngang. Một chế độ xem dọc tương đương có trong mô-đun **Quản lý nhân sự** cho những bối cảnh liên quan (lưới giám sát). Xem [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) và [Hiển thị và UX](#page-faq.display-and-ux). #### Thống kê: tiết học đã xếp so với tiết học đã tạo **H.** Bộ đếm của màn hình “phân bổ thời gian” cho biết có bao nhiêu tiết học đã được tạo. Xem ở đâu để biết thực sự có bao nhiêu giờ đã được **xếp** vào thời khóa biểu (so với số giờ đã tạo mà chưa xếp)? **Đ.** Hai màn hình cho hai số đo bổ sung cho nhau: - **Trang tổng quan** làm việc trên **thời khóa biểu vận hành** (những tiết học thực sự đã được xếp, có thể là hợp nhất của nhiều thời khóa biểu đã công bố, có tính đến vắng mặt). Các tỷ lệ phần trăm hiển thị ở đây là tỷ lệ tương đối (“93% số giờ của lớp này”), không phải tỷ lệ đã xếp lịch. - Màn hình **phân bổ thời gian** đo số tiết học đã khai báo và khối lượng đã tạo. Nếu bạn cần tỷ lệ đã xếp lịch, hãy kiểm tra các tiết học trong chế độ xem lập kế hoạch hoặc xuất danh sách ra để lọc những tiết học chưa có vị trí. #### Giáo viên thỉnh giảng / bên ngoài hiển thị trên thời khóa biểu **H.** Biểu tượng phân biệt giáo viên thỉnh giảng với giáo viên cơ hữu có xuất hiện bên cạnh tên giáo viên trong các chế độ xem thời khóa biểu không? **Đ.** Tùy theo chế độ xem: - **Chế độ xem lưới** — không gian hẹp nên tên có thể bị viết tắt hoặc cắt bớt dưới dạng văn bản thuần; biểu tượng không phải lúc nào cũng xuất hiện ở đây. - **Danh sách, chú giải khi di chuột và bộ chọn** — ở mọi nơi hiển thị tên đầy đủ, biểu tượng [user-tie] đứng trước tên những người có hồ sơ mang dấu Giáo viên bên ngoài. Dấu “bên ngoài” này là một tùy chọn **Premium**; nếu không có nó, không có biểu tượng nào phân biệt giáo viên thỉnh giảng. Xem [Giáo viên bên ngoài](#page-glossary.external-teacher). > _Premium_ #### Sự kiện đơn lẻ: những điểm hay được hỏi Vài điểm cần nói rõ về màn hình sự kiện (xem [Sự kiện đơn lẻ](#page-schedules.events)): - **Giờ giấc được đề xuất** — dải giờ của một sự kiện tuân theo Giờ mở cửa của cơ sở; nếu dải này quá hẹp (ví dụ sự kiện buổi tối), bạn hãy mở rộng giờ mở cửa đó trong hồ sơ của cơ sở. - **Sửa giờ ngay tại chỗ** — giờ của một sự kiện được sửa trực tiếp, chỉ bằng một cú nhấp vào sự kiện. - **Người tham dự** — danh sách người tham dự đề xuất các lớp và các nhóm, cũng như từng giáo viên và từng học sinh. #### Xem thêm - [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) - [Sự kiện đơn lẻ](#page-schedules.events) - [Nhiều phòng học](#page-glossary.multi-room) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) - [Hiển thị và UX](#page-faq.display-and-ux) - [Cách hoạt động của thuật toán](#page-faq.solver-behavior) ### 16.8 FAQ — Bảo mật và lưu trữ dữ liệu *Source: `help/vi/faq/security-and-hosting.md` · id: faq.security-and-hosting · Updated: 2026-05-10* Trang này tóm tắt những vấn đề thường gặp nhất về bảo mật và lưu trữ dữ liệu. Nếu cần mô tả đầy đủ, Omniscol cung cấp theo yêu cầu (hoặc theo thỏa thuận bảo mật NDA tùy trường hợp) các tài liệu chính thức: - `SECURITY_OVERVIEW.md` — tổng quan công khai, - `SECURITY_ONE_PAGER.md` — bản tóm tắt dành cho giám đốc an toàn thông tin (CISO), - `SECURITY_FULL.md` — tài liệu đầy đủ (quản trị, hạ tầng, biện pháp kiểm soát, tuân thủ, ứng phó sự cố), - `ISO27001_MAPPING.md` — ánh xạ sang các biện pháp kiểm soát ISO 27001, - `SSI_QUESTIONNAIRE_STANDARD.md` — trả lời bộ câu hỏi an toàn thông tin chuẩn. Mọi câu hỏi về bảo mật xin gửi tới: **[security@omniscol.com](mailto:security@omniscol.com)**. #### Dữ liệu của tôi được lưu trữ ở đâu? Thông tin pháp lý cho biết dữ liệu được lưu trữ trong Liên minh châu Âu, trên AWS Paris và Scaleway. Các cam kết cụ thể về dự phòng, sao lưu, thời gian lưu giữ và tính sẵn sàng phụ thuộc vào khuôn khổ hợp đồng áp dụng cho tài khoản của bạn. #### Omniscol có tuân thủ GDPR không? Omniscol được thiết kế để sử dụng phù hợp với GDPR. Những hệ quả thực tế: - Lưu trữ dữ liệu hoàn toàn trong EU (Pháp). - **Cách ly logic** theo từng khách hàng: không thể truy cập chéo giữa các tài khoản. - Không **lập hồ sơ người dùng**, không **bán lại** dữ liệu, không **sử dụng thứ cấp** nội dung của trường bạn. - **Khả năng lấy lại dữ liệu**: xuất toàn bộ ở định dạng JSON từ **Tải xuống**. - Xử lý yêu cầu của chủ thể dữ liệu theo khuôn khổ hợp đồng và quy định hiện hành. #### Omniscol có chứng nhận ISO 27001 không? Đến nay chưa có chứng nhận, nhưng **các thực hành đều bám sát** những nguyên tắc của tiêu chuẩn này và theo cách tiếp cận dựa trên rủi ro, được rà soát liên tục. Chi tiết các biện pháp kiểm soát có thể được cung cấp trong khuôn khổ hợp đồng hoặc khuôn khổ bảo mật phù hợp. #### Mật khẩu được bảo vệ như thế nào? Omniscol bảo vệ mật khẩu theo cách sau: - **Băm trước ở phía máy khách** bằng **scrypt** — mật khẩu dạng rõ của bạn không bao giờ đến máy chủ. - Lưu trên máy chủ dưới dạng mã băm có salt. - Không có mật khẩu dạng rõ nào được truyền đi hay lưu lại. - Không quản trị viên nào của Omniscol có thể đọc, truy xuất hay khôi phục mật khẩu của người dùng. Khi nghi ngờ một tài khoản bị xâm phạm, việc đổi mật khẩu sẽ làm mất hiệu lực những quyền truy cập phái sinh phụ thuộc vào bí mật này, đặc biệt là các liên kết chia sẻ gắn với mật khẩu của người tạo. #### Dữ liệu truyền đi có được mã hóa không? Các truy cập ứng dụng công khai đều đi qua HTTPS. Cách hệ thống được mở ra bên ngoài mạng phụ thuộc vào phương án triển khai được chọn và cần được kiểm tra trong khuôn khổ bảo mật hoặc hợp đồng của tài khoản liên quan. #### Cơ chế xác thực hoạt động ra sao? Các phiên làm việc của Omniscol dùng mã thông báo có chữ ký với thời hạn giới hạn; quyền truy cập được gia hạn trong khi người dùng đang làm việc trong giao diện. Liên kết chia sẻ và mã thông báo API tuân theo những quy tắc riêng: - một liên kết chia sẻ có thể có ngày hết hạn và còn phụ thuộc vào tài khoản đã tạo ra nó; đổi mật khẩu của tài khoản đó hoặc vô hiệu hóa tài khoản sẽ làm mất hiệu lực các quyền truy cập liên quan; - một mã thông báo API phụ thuộc vào một khóa được tạo trong giao diện; xóa khóa đó hoặc khi khóa hết hạn thì các mã thông báo gắn với nó cũng mất hiệu lực. Xem thêm [Liên kết chia sẻ](#page-glossary.share-link) và [API Omniscol](#page-integrations.api-tokens). #### API: khóa và mã thông báo Việc truy cập API được quản lý từ giao diện với hai đối tượng hiển thị: 1. **Khóa** — được tạo kèm một nhãn và, nếu cần, một ngày hết hạn. Ngày hết hạn này có thể sửa lại sau. 2. **Mã thông báo** — được sinh ra từ một khóa, kèm danh sách các điểm truy cập API được phép và thời hạn riêng. Thời hạn này không sửa được sau khi đã sinh ra; phải tạo một mã thông báo mới. Thực hành tốt: mỗi tích hợp một khóa, với nhãn rõ ràng và thời hạn phù hợp với nhu cầu. Khi có nghi ngờ, hãy xóa khóa đó và tạo một khóa mới. Xem [API Omniscol](#page-integrations.api-tokens). #### Người dùng của tôi có dùng được tài khoản doanh nghiệp (SSO) không? Có, qua [OIDC / SSO](#page-integrations.oauth2), khi cấu hình này được bật trên tài khoản. Omniscol hỗ trợ Google Workspace, Microsoft Entra ID và các nhà cung cấp OIDC tiêu chuẩn. Khi đó mỗi người dùng đăng nhập bằng danh tính doanh nghiệp của mình và vẫn giữ nguyên các quyền đã cấu hình trong Omniscol. #### Có những biện pháp nào chống lại việc thử đăng nhập lạm dụng? - Các phản hồi xác thực thất bại được cố ý làm chậm lại. - Những màn hình quản trị được bảo vệ chặt chẽ hơn. - Omniscol không cho biết tên đăng nhập có tồn tại hay không: thông báo luôn ở dạng chung chung. #### Vòng đời của tài khoản người dùng - **Vô hiệu hóa mà không xóa** — tài khoản bị vô hiệu hóa không còn đăng nhập được nữa, nhưng dữ liệu liên quan vẫn được giữ lại. - **Bắt buộc đổi ở lần truy cập đầu tiên** — khi mật khẩu được đặt thủ công, người dùng phải đổi mật khẩu ở lần đăng nhập đầu tiên. - **Đặt lại** — một quản trị viên có thể khởi động việc đặt lại mật khẩu mà không cần biết mật khẩu hiện tại. #### Bảo mật mạng và vận hành Các tài liệu bảo mật cung cấp theo yêu cầu mô tả chi tiết việc lưu trữ dữ liệu, phân tách mạng, quy tắc truy cập dữ liệu và các quy trình vận hành áp dụng cho tài khoản liên quan. #### Có nhật ký kiểm toán không? Có, khi tùy chọn nhật ký và thời gian lưu giữ tương ứng được bật cho tài khoản. Phạm vi nhìn thấy được phụ thuộc vào các thao tác được ghi nhật ký và độ sâu do Omniscol cấu hình. Xem [Nhật ký hoạt động (logs)](#page-admin.logs). #### OWASP Top 10 Omniscol áp dụng các biện pháp kiểm soát bám sát những rủi ro trong OWASP Top 10: kiểm soát truy cập, mã hóa, kiểm tra dữ liệu đầu vào, cấu hình an toàn, theo dõi thư viện phụ thuộc, bảo vệ phiên làm việc và ghi nhật ký. Phạm vi chính xác có thể được nêu chi tiết trong các tài liệu bảo mật cung cấp theo yêu cầu. #### Kiểm thử bảo mật tự động Các kiểm tra tự động được tích hợp vào quy trình phát triển và triển khai của Omniscol. Phạm vi của chúng thay đổi cùng với sản phẩm; các thông tin chi tiết có thể được cung cấp trong khuôn khổ bảo mật phù hợp. #### Sao lưu thủ công bằng cách nào? Nút **Tải xuống** tải xuống một bản xuất đầy đủ của tài khoản ở định dạng JSON. Tệp này phải được giữ gìn cẩn thận: nó chứa mã băm mật khẩu và toàn bộ dữ liệu cá nhân. Nếu xảy ra sự cố lớn, tệp này có thể được gửi lại cho đội ngũ Omniscol để nạp lại. Nếu tùy chọn **Snapshots** được bật trên tài khoản, bạn cũng có thể tự động hóa việc tạo các điểm sao lưu có thể khôi phục. Xem [Điểm sao lưu](#page-admin.snapshots). #### Lịch sử sự cố Theo lần rà soát gần nhất (tháng 2 năm 2026): - **0 vụ rò rỉ dữ liệu khách hàng** (tính trên toàn bộ lịch sử). - **0 sự cố bảo mật** trong năm 2025. Những con số này được công bố trong `SECURITY_ONE_PAGER.md`, tài liệu được rà soát hằng quý. #### Xem thêm - [Kiến trúc và vai trò](#page-overview.architecture-and-roles) - [Liên kết chia sẻ](#page-glossary.share-link) - [Mã thông báo API](#page-glossary.api-token) - [API Omniscol](#page-integrations.api-tokens) - [OIDC / SSO](#page-integrations.oauth2) - [Bản sao lưu và snapshot](#page-admin.snapshots) - [Nhật ký hoạt động (logs)](#page-admin.logs) ### 16.9 FAQ — Bảng giá và giấy phép *Source: `help/vi/faq/pricing-and-licenses.md` · id: faq.pricing-and-licenses · Updated: 2026-07-24* Những câu hỏi thường gặp về các gói thuê bao, các chức năng đã bao gồm và các tùy chọn mua lẻ, cũng như việc lập hóa đơn. Để biết chi tiết chức năng theo từng gói / tùy chọn, xem [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options). #### Có những gói thuê bao nào? Ba gói chính, cùng một danh mục các tùy chọn mua lẻ: | Gói | Đối tượng phù hợp | | --- | --- | | **Lite** | Cơ sở đào tạo rất nhỏ, người hành nghề tự do, người đào tạo cá nhân, dùng thử — chỉ tạo thời khóa biểu và in ấn (không công bố, không quản lý học sinh) | | **Standard** | Trường học thông thường (tiểu học, trung học cơ sở, trung học phổ thông), một tổ xếp thời khóa biểu duy nhất, thời khóa biểu theo tuần | | **Premium** | Giáo dục đại học, đào tạo thường xuyên, khối lượng lớn, mô hình nhiều cơ sở phức tạp | Ngoài ra còn có **Standard Plus** (gói Standard bổ sung mô-đun **Quản lý nhân sự**) và gói độc lập **Quản lý nhân sự** (quản lý trực ban và giám sát mà không kèm phần còn lại của Omniscol). Xem [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) để biết chi tiết các chức năng. #### Gói Premium bao gồm những chức năng nào? Mặc định trên tài khoản Premium: - Chế độ lịch — thời khóa biểu ghi ngày cho từng tiết học; - Thời gian rảnh theo lịch — thời gian rảnh nhập theo từng ngày; - Nhiều thời khóa biểu cùng hoạt động — công bố đồng thời cho cùng những tuần. (**Nhóm của nhóm** không phải là chức năng Premium: chức năng này có trên mọi tài khoản, bất kể gói nào.) #### Có thể đăng ký thêm những tùy chọn mua lẻ nào? Các tùy chọn hợp đồng còn lại có thể được bật theo nhu cầu của tài khoản, bổ sung cho gói đã chọn: - Nhiều thời khóa biểu cùng hoạt động trên tài khoản Standard — trường hợp bật theo hợp đồng mang tính ngoại lệ, có khuôn khổ và cách tính phí riêng (chức năng này đã có sẵn mặc định trong gói Premium); - Tài khoản liên kết — tài khoản liên kết và chia sẻ tình trạng sử dụng tài nguyên, do Omniscol bật theo yêu cầu; - Vai trò tùy chỉnh — vai trò tùy chỉnh kèm ma trận quyền; - Điểm sao lưu — các trạng thái tài khoản có thể khôi phục; - Cộng tác — chỉnh sửa cộng tác theo thời gian thực; - **Quản lý nhân sự** — mô-đun trực ban và giám sát (cũng có ở dạng gói độc lập, không kèm phần còn lại của Omniscol); - Đồng bộ với hệ thống bên ngoài — đồng bộ với một ERP / hệ thống thông tin bên ngoài (Aurion, Auriga, hoặc trình kết nối được bổ sung theo dự án); - Nhật ký hoạt động — tra cứu nhật ký khi tài khoản đã được cấu hình thời gian lưu giữ; - Mô-đun bổ sung — các mô-đun tùy chọn khác, tùy theo mô-đun và hợp đồng. #### Có gói “chỉ Quản lý nhân sự” không? Có. Với những cơ sở đào tạo chỉ cần quản lý trực ban và giám sát, mô-đun **Quản lý nhân sự** cũng được bán riêng, không kèm phần còn lại của Omniscol. Khi đó tài khoản chỉ hiển thị mô-đun **Quản lý nhân sự** và những màn hình người dùng tối thiểu. #### Xem bảng giá ở đâu? Mỗi cơ sở đào tạo mỗi khác: giá phụ thuộc vào quy mô, các chức năng được chọn, thời hạn cam kết và mức độ đồng hành mong muốn. Thay vì một bảng giá công khai, đội ngũ Omniscol cùng bạn xem xét tình hình cụ thể và lập một báo giá phù hợp. Hãy viết cho **[contact@omniscol.com](mailto:contact@omniscol.com)**, hoặc yêu cầu một buổi demo để trao đổi trực tiếp (xem [Câu hỏi chung](#page-faq.general)). #### Làm thế nào để biết tài khoản của tôi đang dùng gói nào? Gói đang hoạt động và các tùy chọn đã đăng ký không hiển thị trong giao diện quản trị thông thường (mục tương ứng trong **Thông số** dành riêng cho Omniscol). Để biết gói của một tài khoản, hãy liên hệ đội ngũ Omniscol. #### Có thể đổi gói hoặc thêm tùy chọn giữa năm học không? Được. Việc thêm một tùy chọn có hiệu lực ngay, không gián đoạn dịch vụ. Việc chuyển từ Standard lên Premium cũng theo nguyên tắc đó. Muốn tắt một tùy chọn thì các chức năng tương ứng phải không còn được dùng trên tài khoản nữa (ví dụ không còn chia sẻ tài nguyên giữa các tài khoản nếu bỏ tài khoản liên kết, hoặc không còn công bố đồng thời nếu bỏ nhiều thời khóa biểu cùng hoạt động trên tài khoản Standard liên quan). #### Có thời gian dùng thử không? Có. Thông thường, tài khoản mới có một giai đoạn dùng thử để đánh giá, với sự đồng hành của đội ngũ Omniscol trong việc thiết lập ban đầu. Điều kiện cụ thể được cung cấp theo yêu cầu. #### Việc lập hóa đơn diễn ra thế nào? Mặc định hóa đơn được lập theo năm, kèm cam kết trong thời hạn đã chọn. Các điều kiện riêng (chu kỳ lập hóa đơn, phương thức thanh toán) được quy định trong hợp đồng. #### Khi hết hợp đồng thì sao? Dữ liệu của bạn vẫn truy cập được trong một giai đoạn chuyển tiếp được quy định trong hợp đồng, và trong suốt giai đoạn đó bản xuất JSON đầy đủ vẫn có sẵn. Khả năng lấy lại toàn bộ dữ liệu được hợp đồng bảo đảm (GDPR). #### Xem thêm - [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) - [Omniscol là gì?](#page-overview.what-is-omniscol) - [Bảo mật và lưu trữ](#page-faq.security-and-hosting) --- ## Bảng thuật ngữ **Bảng thuật ngữ** — 54 terms - [Bảng thông tin](#page-glossary.panel) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Chẩn đoán](#page-glossary.diagnostic) - [Chế độ hiển thị thời khóa biểu](#page-glossary.schedule-view-mode) - [Chế độ lịch](#page-glossary.calendar-mode) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) - [Công bố / Kích hoạt thời khóa biểu](#page-glossary.publication) - [Công cụ tạo tự động / Thuật toán tạo thời khóa biểu](#page-glossary.solver) - [Cơ sở](#page-glossary.site) - [Cửa sổ ngày](#page-glossary.date-windows) - [Dải thời gian](#page-glossary.timeline) - [Đồng giảng dạy](#page-glossary.co-teaching) - [Đơn vị](#page-glossary.campus) - [Giáo viên / Giảng viên](#page-glossary.teacher) - [Giáo viên bên ngoài / Giáo viên thỉnh giảng](#page-glossary.external-teacher) - [Hình thức của tiết học](#page-glossary.lesson-modality) - [Học sinh / Sinh viên / Người học](#page-glossary.student) - [iCal (xuất lịch)](#page-glossary.ical) - [Khóa học](#page-glossary.course) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Khối lớp](#page-glossary.level) - [Không tương thích (giữa các môn học)](#page-glossary.incompatibility) - [Liên kết chia sẻ](#page-glossary.share-link) - [Loại tiết học](#page-glossary.lesson-type) - [Lỗi tương thích](#page-glossary.conflict) - [Lớp](#page-glossary.class) - [Lưới thời gian](#page-glossary.timetable-grid) - [Mã thông báo API](#page-glossary.api-token) - [Môn học](#page-glossary.subject) - [Năm học](#page-glossary.school-year) - [Ngày nghỉ lễ](#page-glossary.holidays) - [Ngoài khung giờ](#page-glossary.off-grid) - [Nhiều phòng học (một tiết học trong nhiều phòng)](#page-glossary.multi-room) - [Nhóm](#page-glossary.group) - [Nhóm của nhóm](#page-glossary.groups-of-groups) - [Nhóm tự do](#page-glossary.free-group) - [Phạm vi lập kế hoạch](#page-glossary.planning-domain) - [Phân vùng lớp](#page-glossary.class-division) - [Phòng học](#page-glossary.classroom) - [Phòng lớn (nhiều tiết học cùng lúc)](#page-glossary.large-room) - [Quản lý nhân sự](#page-glossary.staffing) - [Tài nguyên](#page-glossary.resource) - [Thay thế / dạy thay](#page-glossary.substitution) - [Thời gian rảnh của giáo viên (nguyện vọng)](#page-glossary.wishes) - [Thời khóa biểu](#page-glossary.timetable) - [Thời khóa biểu hằng tuần](#page-glossary.weekly-timetable) - [Thời khóa biểu theo chu kỳ](#page-glossary.cyclic-timetable) - [Tiết học / Giờ học](#page-glossary.lesson) - [Tiết học liên hệ (luân phiên nửa lớp)](#page-glossary.associated-lessons) - [Tiết học luân phiên / Tuần A-B](#page-glossary.alternate-lessons) - [Tiết học nối tiếp](#page-glossary.concatenated-lessons) - [Trạng thái của tiết học](#page-glossary.lesson-status) - [Trang tổng quan](#page-glossary.dashboard) - [Vắng mặt](#page-glossary.absence) ### Bảng thông tin *Source: `help/vi/glossary/panel.md` · id: glossary.panel · Updated: 2026-06-13* *Also known as : bảng thông tin điện tử · màn hình lối vào · màn hình sảnh đón tiếp* Một **bảng thông tin** trong Omniscol là một màn hình công cộng, được cấu hình để hiển thị liên tục một thời khóa biểu đã lọc. Các trường hợp điển hình: - **bảng thông tin ở sảnh** — màn hình đặt tại lối vào trường, chạy lần lượt các tiết học trong ngày của mọi lớp, - **bảng thông tin trước cửa một phòng học** — màn hình gắn cạnh cửa ra vào, hiển thị tình hình sử dụng của phòng học đó trong ngày, - **bảng thông tin giảng đường / phòng thí nghiệm** — hiển thị các tiết học sắp tới trong một không gian chuyên biệt. #### URL riêng cho từng bảng thông tin Mỗi bảng thông tin được tạo đều có một **URL riêng** để mở ở chế độ toàn màn hình trong trình duyệt. Việc cuộn nội dung và làm mới diễn ra tự động. #### Tùy chỉnh Khi định nghĩa một bảng thông tin, bạn cấu hình: - **bộ lọc các tiết học được hiển thị**: khối lớp nào, lớp nào, cơ sở nào, phòng học nào, - **khoảng giờ** được hiển thị, - **cỡ chữ**, - **thanh thông tin** (dòng chữ chạy, logo), - **màu sắc và giao diện**. Với những triển khai có yêu cầu cao về nhận diện thương hiệu, bạn còn có thể thay thế hoàn toàn trang web hiển thị bảng thông tin, để tích hợp nó vào một hệ thống hiển thị kỹ thuật số sẵn có. Xem [Tùy chỉnh giao diện](#page-panels.customization). #### Xem thêm - [Bảng thông tin ở sảnh](#page-panels.lobby-panel) - [Bảng thông tin trước phòng học](#page-panels.room-panel) - [Tùy chỉnh giao diện](#page-panels.customization) ### Căn chỉnh nhóm *Source: `help/vi/glossary/alignment.md` · id: glossary.alignment · Updated: 2026-06-26* *Also known as : căn chỉnh nhóm liên lớp* Một **căn chỉnh nhóm** gom nhiều [nhóm](#page-glossary.group) thuộc **các lớp khác nhau**, những nhóm này phải dùng chung **cùng một khung giờ, cùng một giáo viên và cùng một phòng học**. Ví dụ điển hình: học sinh học tiếng Nhật ở các lớp 10A1, 10A2 và 10A3 cùng học chung một tiết tiếng Nhật duy nhất. Thay vì tạo ba tiết học song song (ba tiết này sẽ tranh nhau giáo viên và phòng học), bạn tạo một **nhóm “Tiếng Nhật”** ở mỗi lớp trong ba lớp đó, rồi **căn chỉnh** chúng lại. Khi ấy công cụ tạo tự động xếp một tiết học duy nhất, gắn đồng thời với cả ba nhóm. Các trường hợp thường gặp: - ngoại ngữ 1 / ngoại ngữ 2 liên lớp (các nhóm tiếng Anh gom từ nhiều lớp), - môn tự chọn liên lớp (âm nhạc, mỹ thuật, giáo dục kinh tế và pháp luật), - các chuyên đề học tập ở bậc trung học phổ thông (theo chương trình mới), - học phần dùng chung ở bậc đại học (cùng một khóa học thuộc khối kiến thức chung cho nhiều chương trình đào tạo). #### Sức mạnh và giới hạn Căn chỉnh nhóm là một công cụ cực kỳ mạnh — nó tránh trùng lặp, bảo đảm mọi thay đổi luôn nhất quán (một tiết học được di chuyển thì cũng di chuyển ở mọi nơi) và giúp việc tra cứu đơn giản hơn. **Nhưng nó cũng rất ràng buộc**: - Sau khi được căn chỉnh, một nhóm không thể có tiết học riêng vào đúng khung giờ đó nữa: nếu một trong ba lớp có một tiết học ngoại lệ, bạn phải **nhân bản** nhóm của lớp đó rồi bỏ căn chỉnh cho bản sao. - Tất cả các nhóm được căn chỉnh phải có đúng cùng một số giờ và cùng một cách cấu hình trong lớp của mình. Mọi chênh lệch đều sinh ra một cảnh báo về tính nhất quán (xem thẻ Tạo thời khóa biểu). - Các thay đổi (thêm một tiết học, đổi phòng học) phải được thực hiện đúng một lần, trên căn chỉnh nhóm — Omniscol sẽ lan truyền cho phần còn lại. Nhưng nếu bạn sửa tiết học từ chỉ một lớp trong số đó thì có thể gây ra tác động phụ. #### Những khác biệt quan trọng | Khái niệm | Áp dụng cho | Ràng buộc | | --- | --- | --- | | [Phân vùng](#page-glossary.class-division) | Nhóm trong **một** lớp | Cùng khung giờ, **khác** giáo viên/phòng học | | **Căn chỉnh nhóm** | Nhóm từ **nhiều** lớp | Cùng khung giờ, **cùng** giáo viên, **cùng** phòng học | | [Nhóm của nhóm](#page-glossary.groups-of-groups) | Giống như căn chỉnh nhóm | Cùng khung giờ, một giáo viên/phòng học duy nhất, **chỉnh sửa linh hoạt về sau** | #### Ở chế độ lịch Trong một thời khóa biểu ở chế độ [lịch](#page-glossary.calendar-mode), nên dùng [nhóm của nhóm](#page-glossary.groups-of-groups) thay cho căn chỉnh nhóm: dễ chỉnh sửa hơn, bạn có thể thêm hoặc bớt một nhóm dần dần mà không phải tạo lại toàn bộ cấu trúc. #### Xem thêm - [Nhóm](#page-glossary.group) - [Phân vùng](#page-glossary.class-division) - [Nhóm của nhóm](#page-glossary.groups-of-groups) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Căn chỉnh nhóm](#page-core-concepts.alignments) ### Chẩn đoán *Source: `help/vi/glossary/diagnostic.md` · id: glossary.diagnostic · Updated: 2026-06-26* *Also known as : kiểm tra · xác minh · cảnh báo cấu hình · cảnh báo tính nhất quán* Trong Omniscol, **chẩn đoán** là một bước kiểm tra tính nhất quán được hệ thống chạy liên tục, chỉ ra những vấn đề trong cấu hình thời khóa biểu trước khi chúng làm cho việc tạo tự động thất bại hoặc cho ra một kết quả sai. #### Mức độ nghiêm trọng - **Nghiêm trọng** (đỏ, gây chặn) — khiến việc tạo tự động không thể thành công: căn chỉnh nhóm bất khả thi về mặt cấu trúc, tổng sức chứa không đủ, giáo viên không còn một khung giờ trống nào… - **Cảnh báo** (cam) — có thể để nguyên nhưng báo hiệu một rủi ro hoặc một điểm thiếu nhất quán cần xem lại: số giờ giữa các nhóm được căn chỉnh không cân đối, phòng học hơi nhỏ so với nhu cầu, thời gian rảnh rất hạn chế. - **Thông tin** (xanh lam) — ghi chú không gây chặn: “một số phòng học không bao giờ được dùng đến”, “một giáo viên có giờ làm việc thấp hơn hẳn so với các đồng nghiệp”. #### Xem chẩn đoán ở đâu - Trên **dải thông báo ở đầu trang** của màn hình phân bổ thời gian và màn hình xem thời khóa biểu. - Bên cạnh **tên lớp** hoặc tên giáo viên liên quan trong các danh sách. - Chi tiết trong thẻ Tạo thời khóa biểu (hoặc đang kiểm tra tùy theo chế độ của thời khóa biểu) kèm một giải thích theo ngữ cảnh cho từng chẩn đoán. #### Các chẩn đoán thường gặp | Chẩn đoán | Nguyên nhân thường gặp | Cách xử lý | | --- | --- | --- | | Không có phòng học tương thích | Có yêu cầu chuyên ngành nhưng không có phòng học tương ứng | Tạo phòng học hoặc bỏ yêu cầu chuyên ngành | | Số giờ không nhất quán trong một căn chỉnh nhóm | Một lớp có 2 giờ, lớp kia có 3 giờ trên cùng một nhóm được căn chỉnh | Chỉnh cho số giờ bằng nhau, hoặc bỏ căn chỉnh | | Sức chứa không đủ | Sĩ số > sức chứa của phòng học | Gán một phòng học lớn hơn, hoặc gán [nhiều phòng học](#page-glossary.multi-room) | | Thời gian rảnh không còn khung giờ khả dụng | Mọi khung giờ đều bị đánh dấu là không thể đối với giáo viên này | Nới lỏng thời gian rảnh hoặc phân bổ lại các tiết học | | Tiết học rơi vào thời gian vắng mặt | Tiết học được đặt vào khoảng thời gian mà giáo viên vắng mặt | Chuyển tiết học sang thời điểm khác hoặc gỡ bỏ vắng mặt | #### Xem thêm - [Lỗi tương thích](#page-glossary.conflict) - [Công cụ tạo tự động](#page-glossary.solver) - [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) ### Chế độ hiển thị thời khóa biểu *Source: `help/vi/glossary/schedule-view-mode.md` · id: glossary.schedule-view-mode · Updated: 2026-06-13* *Also known as : chế độ xem lưới · chế độ xem danh sách · chế độ xem bảng · chuyển chế độ xem* Ba cách hiển thị cùng một tập tiết học trên cùng một thời khóa biểu, có thể hoán đổi cho nhau, chọn bằng các nút trên thanh tiêu đề: - **Lưới** (Chế độ xem lưới): chế độ xem dạng lịch quen thuộc, các tiết học được đặt trên một lưới ngày × giờ. Chế độ mặc định để xem nhanh. - **Danh sách** (Chế độ xem danh sách): các tiết học nối tiếp nhau theo trình tự thời gian, mỗi tiết một dòng, kèm ngày, giờ, thời lượng, lớp, nhóm, môn học, giáo viên, cơ sở và phòng học. Tiện khi cần xem lần lượt. - **Bảng** (Bảng tính): trình bày chế độ xem hiện tại theo kiểu bảng tính — ngày theo cột và khung giờ theo hàng (hoặc ngược lại), hoặc mỗi tiết học một hàng khi chế độ xem danh sách đang bật. Hữu ích để rà soát, sao chép sang bảng tính, hoặc xuất ra tệp tùy theo màn hình (PDF, CSV, Excel / XLSX). Chế độ này chỉ dành cho quản trị viên, trên máy tính. Cả ba chế độ đều hoạt động trên **cùng một tập dữ liệu**; việc chuyển qua lại không sửa đổi cũng không lọc bất cứ thứ gì, đó thuần túy là một cách trình bày khác. Lựa chọn này không được lưu: nó chỉ áp dụng cho lần hiển thị hiện tại. ### Chế độ lịch *Source: `help/vi/glossary/calendar-mode.md` · id: glossary.calendar-mode · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : chế độ lịch trình · lịch trình theo ngày · không lặp lại* > _Premium_ Thời khóa biểu ở **chế độ lịch** tổ chức các tiết học **theo ngày**, không có tuần mẫu lặp lại. Mỗi tiết học được đặt riêng vào một ngày cụ thể, như trong một cuốn lịch công tác. Đây là chế độ được ưu tiên dùng cho: - **giáo dục đại học** (trường kỹ thuật, trường kinh doanh, trường đại học), - **đào tạo thường xuyên** (tiết học đơn lẻ, chương trình ngắn hạn), - **các trung tâm đào tạo** nơi các tiết học không lặp lại mỗi tuần. Chế độ này khả dụng trên các tài khoản **Premium**. #### Khác biệt so với chế độ hằng tuần | Khía cạnh | Hằng tuần | Theo lịch | | --- | --- | --- | | Tính lặp lại | Tuần mẫu | Theo từng ngày | | Tạo tự động | Có | Có (với cửa sổ ngày và dồn nén ngày học) | | Thời gian rảnh | Xác nhận trước | Hợp nhất theo thời gian thực | | Chỉnh sửa một tiết học | Ảnh hưởng đến mọi tuần đang hoạt động | Chỉ ảnh hưởng đến một ngày cụ thể | | Nhóm của nhóm | Có | Có | | Công bố | Theo khoảng tuần | Hai trạng thái (đã công bố hoặc chưa công bố) | | Hiển thị mặc định | Chế độ xem tuần | Chế độ xem tuần hoặc tháng | | Xóa theo ngày nghỉ lễ | Tự động | Không có (tiết học đã được gắn ngày) | #### Tạo tự động ở chế độ lịch Công cụ tạo tự động cũng hoạt động ở chế độ lịch: nó xếp những tiết học chưa có vị trí vào các ngày còn trống, vẫn tôn trọng cùng những ràng buộc (một giáo viên hay một lớp không thể có mặt ở hai nơi cùng lúc, phòng học phải phù hợp, thời gian rảnh mang tính chặn). Màn hình tạo thời khóa biểu còn có thêm những thiết lập riêng cho chế độ lịch: một **cửa sổ ngày mục tiêu** để giới hạn việc tính toán trong một giai đoạn, và **dồn nén ngày học** (gom về đầu hoặc cuối cửa sổ, hoặc để công cụ tạo tự động tự quyết định). Phần hỗ trợ đặt tiết học thủ công vẫn dùng được song song: lỗi tương thích được phát hiện theo thời gian thực, gợi ý phòng học đã được lọc sẵn, thời gian rảnh được tính đến ngay lập tức. #### Thời gian rảnh ở chế độ lịch Trên một thời khóa biểu theo lịch, thời gian rảnh của các giáo viên thỉnh giảng có thể thay đổi theo thời gian. Omniscol hợp nhất theo thời gian thực và phát cảnh báo lỗi tương thích mỗi khi thời gian rảnh thay đổi. Xem [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes). #### Kết hợp hằng tuần + theo lịch trong cùng một trường Với bản Premium, bạn có thể **công bố đồng thời** một thời khóa biểu hằng tuần (các tiết học lặp lại vào buổi sáng, giai đoạn đại cương) và một thời khóa biểu theo lịch (các masterclass đơn lẻ vào buổi chiều, giai đoạn chuyên ngành) trên cùng những tuần đó, nhờ [nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). Nếu hai thời khóa biểu dùng chung một số đối tượng (giáo viên, phòng học), Omniscol sẽ hợp nhất linh động các chế độ xem và phát hiện lỗi tương thích chéo giữa chúng. #### Xem thêm - [Thời khóa biểu](#page-glossary.timetable) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Chế độ lịch](#page-timetables.calendar-mode) - [Nhóm của nhóm](#page-glossary.groups-of-groups) ### Chuyên ngành phòng học *Source: `help/vi/glossary/classroom-specialization.md` · id: glossary.classroom-specialization · Updated: 2026-05-10* *Also known as : loại phòng học · phòng học chuyên biệt · phòng học dành riêng cho môn học* **Chuyên ngành phòng học** cho biết một phòng học được dành riêng cho một loại hoạt động nhất định: phòng thí nghiệm hóa học, phòng máy tính, nhà thi đấu, phòng đa phương tiện, phòng thi, xưởng mỹ thuật, studio âm nhạc, v.v. Đây là một trường **tự do** — bạn tạo ra những chuyên ngành mình cần, theo cách gọi riêng của mình. Omniscol không áp đặt danh sách đóng nào. #### Cách xử lý khi tạo tự động Khi một môn học yêu cầu một chuyên ngành, việc tạo tự động **chỉ** xếp những phòng học mang chuyên ngành đó. Một phòng thí nghiệm hóa học sẽ không bao giờ được dùng cho một tiết học văn học nếu bạn đã yêu cầu “hóa học” trên môn học thực hành. Việc áp đặt một phân công không nhất quán (tự tay gán cho một tiết học hóa học một phòng học không có chuyên ngành hóa học) **không bị chặn** nhưng sẽ hiển thị một cảnh báo. #### Dọn dẹp hoặc xóa một chuyên ngành Một chuyên ngành còn tồn tại chừng nào còn ít nhất một phòng học sử dụng nó. Để xóa, hãy gỡ chuyên ngành đó khỏi tất cả các phòng học đang mang nó — ở lần lưu tiếp theo, nó biến mất khỏi danh mục. Để **đổi tên**, hãy tạo chuyên ngành mới với tên đúng, thay chuyên ngành cũ trên các phòng học, và chuyên ngành cũ sẽ tự động biến mất (với điều kiện nó không còn được tham chiếu ở bất cứ đâu, kể cả phía môn học). #### Xem thêm - [Phòng học](#page-glossary.classroom) - [Môn học](#page-glossary.subject) - [Chuyên ngành phòng học](#page-core-concepts.classroom-specializations) ### Công bố / Kích hoạt thời khóa biểu *Source: `help/vi/glossary/publication.md` · id: glossary.publication · Updated: 2026-06-13* *Also known as : đưa vào sử dụng · kích hoạt một thời khóa biểu · tuần hoạt động* **Công bố** (hay *kích hoạt*) một thời khóa biểu là làm cho nó **hiển thị** trong mô-đun Thời khóa biểu mà mọi người đều xem được, trên những **tuần của năm học** mà bạn chọn. Một thời khóa biểu vừa được tạo **không tự động được công bố**. Chừng nào chưa công bố, nó vẫn là bản nháp: chỉ hiển thị trong mô-đun Quản lý thời khóa biểu, và chỉ với các quản trị viên. #### Cách công bố Trên trang chính của mô-đun Quản lý thời khóa biểu: 1. Chọn năm học liên quan. 2. Nhấp vào Thêm kì học (Phân bổ thời khóa biểu). 3. Trên lưới hiện ra, chọn các tuần cho từng thời khóa biểu. 4. Lưu lại. #### Mỗi tuần chỉ một thời khóa biểu được công bố (tài khoản Standard) Với tài khoản Standard, mỗi tuần chỉ được phép có **một thời khóa biểu được công bố**. Nếu bạn muốn công bố hai thời khóa biểu khác nhau, chúng phải nằm trên những khoảng tuần không chồng lên nhau. #### Công bố đồng thời Với bản Premium — hoặc, trong trường hợp ngoại lệ, trên một tài khoản Standard có chức năng này được bật theo khuôn khổ hợp đồng — nhiều thời khóa biểu có thể được công bố trên cùng những tuần đó và được hợp nhất khi người dùng xem. Trường hợp này được trình bày chi tiết trong [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) và trong trang đầy đủ về việc công bố. #### Thời khóa biểu theo lịch: công bố hai trạng thái Thời khóa biểu ở [chế độ lịch](#page-glossary.calendar-mode) không được công bố theo khoảng tuần (mỗi tiết học đã được đặt vào một ngày cụ thể): việc công bố chỉ có hai trạng thái — thời khóa biểu đã công bố, hoặc chưa công bố. #### Xem thêm - [Thời khóa biểu](#page-glossary.timetable) - [Năm học](#page-glossary.school-year) - [Công bố một thời khóa biểu — trang đầy đủ](#page-timetables.publication) - [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) ### Công cụ tạo tự động / Thuật toán tạo thời khóa biểu *Source: `help/vi/glossary/solver.md` · id: glossary.solver · Updated: 2026-06-13* **Công cụ tạo tự động** của Omniscol tính toán vị trí của các tiết học trong một thời khóa biểu [theo tuần](#page-glossary.weekly-timetable), [theo chu kỳ](#page-glossary.cyclic-timetable) hoặc [theo lịch](#page-glossary.calendar-mode). Nó xếp những tiết học đã tạo mà chưa được đặt vị trí, có thể di chuyển những tiết học đã đặt nếu việc đó làm thời khóa biểu tốt hơn, và giữ nguyên vị trí của các tiết học đã khóa. #### Cách hoạt động Khi bạn khởi chạy một lượt tạo tự động, Omniscol khởi động một môi trường tính toán riêng, chạy song song. Phía nhà trường không có hàng đợi nào phải quản lý; phần khởi tạo thường mất khoảng mười giây trước khi thấy được những bước tính toán đầu tiên. Kết quả phụ thuộc vào chất lượng dữ liệu đã nhập: cơ sở, phòng học, giáo viên, nhóm, khối lượng giờ, thời gian rảnh và các điểm không tương thích. Ràng buộc càng nhiều hoặc càng mâu thuẫn với nhau thì việc tạo tự động càng có thể kéo dài hoặc chỉ cho ra kết quả một phần. Bộ máy này là một AI tối ưu hóa theo hướng **siêu heuristic Monte-Carlo nơ-ron – ký hiệu**: nó kết hợp tìm kiếm ngẫu nhiên, các quy tắc nghiệp vụ dạng ký hiệu và việc chấm điểm ràng buộc. Điều quan trọng ở đây mang tính vận hành: công cụ tạo tự động được thiết kế cho những trường hợp bị ràng buộc rất chặt, đồng thời báo hiệu các tình huống bất khả thi thay vì che giấu lỗi tương thích. #### Ràng buộc cứng Công cụ tạo tự động tuân thủ nghiêm ngặt những ràng buộc mà nếu vi phạm sẽ làm thời khóa biểu không hợp lệ: - một giáo viên không thể có mặt ở hai nơi cùng một lúc; - một lớp không thể học hai tiết học cùng một lúc, trừ các nhóm nằm trong một phân vùng; - thời gian rảnh và ràng buộc thời gian ở mức **không thể** sẽ chặn việc xếp tiết học; - một phòng học tiêu chuẩn không thể chứa hai tiết học vào cùng một thời điểm; - một phòng lớn chỉ chứa được nhiều tiết học trong giới hạn sức chứa và số lớp đã cấu hình; - phòng học chuyên ngành, sức chứa, tài nguyên vật chất và việc di chuyển giữa các cơ sở phải luôn tương thích với nhau; - một tiết học đã khóa thì giữ nguyên vị trí. #### Ràng buộc tối ưu hóa Các ràng buộc mềm dùng để chấm điểm và cải thiện những lời giải tìm được. Chúng không bị bỏ qua: chúng trở thành các điểm trừ mà công cụ tạo tự động tìm cách giảm bớt. Các ví dụ thường gặp: - thời gian rảnh hoặc ràng buộc thời gian ở mức **không mong muốn** đối với một giáo viên, một phòng học, một môn học, một nhóm hay một lớp; - điểm không tương thích về mặt sư phạm giữa các môn học, ví dụ tránh xếp một tiết thực hành trước tiết học lý thuyết tương ứng, tránh xếp giờ thể dục ngay sau một tiết học có cường độ rất cao, hoặc buộc phải theo đúng thứ tự của tiến trình dạy học; - tránh xếp cùng một môn học hai lần trong cùng một ngày cho một lớp; - số giờ học tối thiểu hoặc tối đa mỗi ngày hay mỗi tuần; - sự cân đối giữa các ngày; - giảm bớt giờ trống trong thời khóa biểu của các lớp và của giáo viên; - số ngày có mặt của giáo viên, tùy theo thông lệ của nhà trường hoặc của quốc gia. Tìm ra một lời giải hợp lệ là bước đầu tiên. Sau đó, việc tối ưu hóa các điểm trừ có thể trở thành phần tốn thời gian nhất của quá trình tính toán. #### Khả dụng - **Thời khóa biểu theo tuần** — khả dụng. - **Thời khóa biểu theo chu kỳ** — khả dụng. - **Thời khóa biểu theo lịch** — khả dụng, với các tiết học có ngày cụ thể và một khoảng ngày. #### Phải làm gì nếu việc tạo tự động thất bại Nếu không tìm được lời giải đầy đủ, Omniscol giữ lại thời khóa biểu tốt nhất đã tính được và để lại những tiết học không thể xếp trong danh sách thẻ post-it chưa được xếp. Khi đó bạn có thể xem xét thời khóa biểu chưa hoàn chỉnh, đọc chẩn đoán và sửa lại các ràng buộc. Các nguyên nhân thường gặp: - thời gian rảnh quá hạn chế (một giáo viên không còn khung giờ trống nào tương thích), - không đủ phòng học, hoặc không có phòng học chuyên ngành nào còn trống, - căn chỉnh nhóm không nhất quán (khối lượng giờ khác nhau giữa các nhóm được căn chỉnh), - các điểm không tương thích quá nhiều hoặc quá chặt, - sĩ số lý thuyết của lớp > sức chứa của mọi phòng học ứng viên. Xem [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation). #### Ấn định vị trí của một tiết học Bạn có thể **khóa** vị trí của một tiết học trước khi chạy lại việc tạo tự động: khi đó công cụ tạo tự động không di chuyển tiết học ấy nữa, mà điều chỉnh những tiết học khác xung quanh. Cách này tiện để cố định những tiết học “không thể xê dịch” (chuyên gia bên ngoài đến giảng theo hợp đồng đã ấn định, kỳ thi đã định ngày, v.v.). #### Xem thêm - [Thời khóa biểu hằng tuần](#page-glossary.weekly-timetable) - [Thời gian rảnh](#page-glossary.wishes) - [Chẩn đoán và lỗi tương thích](#page-glossary.conflict) - [Tạo tự động](#page-timetables.generation) ### Cơ sở *Source: `help/vi/glossary/site.md` · id: glossary.site · Updated: 2026-05-10* *Also known as : site · địa điểm · tòa nhà chính · điểm trường* **Cơ sở** trong Omniscol là một địa điểm vật lý nơi diễn ra các tiết học. Mỗi cơ sở chứa các [phòng học](#page-glossary.classroom) và các [tài nguyên](#page-glossary.resource). Không nên nhầm cơ sở với [đơn vị](#page-glossary.campus), vốn là một khái niệm mang tính tổ chức: phân hiệu, khoa, khối hay một cách gom nhóm nội bộ. Cơ sở mang giờ giấc, phòng học và thời gian di chuyển; đơn vị thì thiên về việc phân loại và lọc. Mỗi thời khóa biểu có ít nhất một cơ sở. Nếu mọi tòa nhà của bạn đều ở cùng một vị trí địa lý, một cơ sở duy nhất là đủ. Nếu trường của bạn có nhiều cơ sở và có người giảng dạy hoặc học sinh phải đi lại giữa các nơi đó, hãy tạo đủ số cơ sở cần thiết — và **khai báo thời gian di chuyển giữa chúng**, nếu không công cụ tạo tự động có thể “dịch chuyển tức thời” giáo viên hoặc học sinh của bạn. #### Lưới thời gian ở cấp cơ sở Mỗi cơ sở mang **lưới thời gian** riêng của mình (giờ học, giờ nghỉ, giờ ăn trưa, thời gian đóng cửa). Lưới này được đoán tự động từ những thông tin bạn đã nhập, nhưng bạn nên tùy chỉnh lại bằng cách thêm các giờ nghỉ, giờ nghỉ trưa và các khoảng đóng cửa (chiều thứ Bảy, Chủ nhật). #### Trường hợp thực tế: hai cơ sở ảo cho cùng một địa điểm Đôi khi có một cách cấu hình hữu ích (nhưng hiếm gặp): tạo hai “cơ sở ảo” cho một địa điểm vật lý duy nhất được hai trường dùng chung (một trường THCS và một trường THPT) — hai trường này không có cùng lưới thời gian nhưng lại dùng chung giáo viên. Khi đó thời gian di chuyển giữa hai cơ sở ảo bằng không. Hãy chú ý tạo bản sao của các phòng học dùng chung trong cả hai cơ sở và khai báo giờ mở cửa không chồng lấn nhau (xem [phòng học](#page-glossary.classroom)). #### Khi nào nên dùng hai tài khoản thay vì hai cơ sở Nếu hai trường riêng biệt **không có người giảng dạy nào chung** (hoặc nếu vài giáo viên chung hiếm hoi đó được phân công lần lượt cho cơ sở này rồi đến cơ sở kia vào những ngày đã xác định rõ), thường sẽ đơn giản hơn khi dùng hai tài khoản Omniscol riêng. Việc dùng nhiều cơ sở trở nên cần thiết ngay khi có một luồng đi lại thật sự của người giảng dạy hoặc học sinh cần được mô hình hóa. Với bản **Premium**, một lựa chọn khác là công bố **hai thời khóa biểu cùng hoạt động đồng thời** trên cùng một tài khoản (xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables)), mỗi thời khóa biểu ứng với một cơ sở, thay vì cấu hình hai cơ sở trong cùng một thời khóa biểu. Dù là với nhiều tài khoản hay với nhiều thời khóa biểu chạy song song, bạn vẫn có thể chia sẻ tình trạng bận của giáo viên và phòng học, kèm cơ chế phát hiện lỗi tương thích chéo (người lập thời khóa biểu có thể tắt cơ chế này). Nếu là nhiều tài khoản, bạn cần liên hệ đội ngũ Omniscol để thiết lập liên kết giữa chúng. Chỉ những thời khóa biểu đang vận hành, đã công bố, mới được dùng làm nguồn để xác định tình trạng bận của các thực thể dùng chung. #### Xem thêm - [Phòng học](#page-glossary.classroom) - [Tài nguyên](#page-glossary.resource) - [Đơn vị](#page-glossary.campus) - [Nhiều cơ sở trong giáo dục đại học](#page-higher-ed.multi-site) ### Cửa sổ ngày *Source: `help/vi/glossary/date-windows.md` · id: glossary.date-windows · Plan: premium · Updated: 2026-06-20* > **Premium** *Also known as : các cửa sổ ngày · cửa sổ bao gồm · cửa sổ loại trừ · lớp phủ ngày* > _Premium_ **Cửa sổ ngày** là một giai đoạn **bao gồm** hoặc **loại trừ** ngày, **có thể dùng lại**, giới hạn thời điểm một số tiết học có thể được xếp lịch. Cửa sổ này được xác định một lần trên màn hình chỉnh sửa của một thời khóa biểu theo lịch, rồi được áp dụng như một **lớp phủ** lên ràng buộc thời gian của nhiều đối tượng — lớp, nhóm, môn học hoặc phòng học. Chỉ dành cho **thời khóa biểu theo lịch**, trên các tài khoản **Premium**. #### Hai loại - **Tiết học được phép** — các tiết học chỉ có thể được xếp lịch trong các ngày này. - **Tiết học bị loại trừ** — các tiết học không thể được xếp lịch trong các ngày đó. Nhiều cửa sổ cộng dồn với nhau; trong trường hợp chồng lấn, một cửa sổ loại trừ được ưu tiên hơn một cửa sổ cho phép. #### Xem thêm - [Cửa sổ ngày](#page-timetables.date-windows) - [Chế độ lịch](#page-glossary.calendar-mode) ### Dải thời gian *Source: `help/vi/glossary/timeline.md` · id: glossary.timeline · Updated: 2026-06-29* *Also known as : thanh thời gian · thanh điều hướng thời gian · trục thời gian* **Dải thời gian** là dải ngang nằm ở đầu mọi màn hình có hiển thị lịch hoặc số liệu thống kê. Bạn dùng nó để **di chuyển trong thời gian**: chọn năm học, chọn khoảng thời gian hiển thị và — tùy theo màn hình — chuyển đổi giữa chế độ xem tuần, tháng hoặc năm. **Mũi tên trái / phải** của dải này đưa bạn lùi lại hoặc tiến tới trọn một năm học. Năm (hoặc khoảng thời gian) đang hiển thị được ghi rõ ngay phía trên dải thời gian. [Dải thời gian và điều hướng theo thời gian](#page-core-concepts.timeline-navigation) ### Đồng giảng dạy *Source: `help/vi/glossary/co-teaching.md` · id: glossary.co-teaching · Updated: 2026-05-10* *Also known as : dạy theo cặp · hai giáo viên cùng dạy · giáo viên chính và giáo viên phụ* **Đồng giảng dạy** là hình thức một tiết học được **hai giáo viên trở lên** cùng đảm nhiệm một lúc, trong cùng một phòng học, với cùng một tập thể học sinh. Omniscol mô hình hóa trường hợp này một cách đơn giản: một tiết học có thể có **nhiều giáo viên phụ trách**. Mỗi người đều được ghi nhận tiết học đó trong thống kê và trong giờ làm việc của mình. #### Các trường hợp điển hình - **Tăng cường kèm cặp** — một giáo viên phụ trách chính cùng một trợ giảng, hoặc hai giáo viên cho một lớp đông học sinh. - **Giáo sư thỉnh giảng không thường xuyên** — một tiết học mà riêng hôm đó có thêm một giáo viên bên ngoài cùng đứng lớp (xem [giáo viên thỉnh giảng / giáo viên bên ngoài](#page-glossary.external-teacher)). - **Đồng phụ trách** — một học phần do hai giáo viên cùng dạy trong suốt học kỳ. - **Chuyên môn kép** — một học phần liên ngành (ví dụ “tin học y tế” với một bác sĩ và một chuyên gia tin học). #### Phân biệt với luân phiên Đồng giảng dạy là **hai giáo viên cùng lúc trên cùng một tiết học**. Còn **luân phiên** ([tiết học luân phiên](#page-glossary.alternate-lessons)) là **hai giáo viên trên cùng một khung giờ, nhưng ở những tuần khác nhau**. Nếu hai giáo viên của bạn thay nhau dạy mỗi tuần mà không bao giờ cùng đứng lớp, thì đó là tiết học luân phiên, không phải đồng giảng dạy. Nếu một trong hai người chỉ tham gia vài tiết học lẻ, cách đơn giản nhất là tạo một tiết học riêng cho đúng những ngày đó với giáo sư thỉnh giảng, bên cạnh tiết học chính — nhất là ở [chế độ lịch](#page-glossary.calendar-mode). #### Xem thêm - [Tiết học / Giờ học](#page-glossary.lesson) - [Giáo viên bên ngoài](#page-glossary.external-teacher) - [Đồng giảng dạy trong giáo dục đại học](#page-higher-ed.co-teaching) ### Đơn vị *Source: `help/vi/glossary/campus.md` · id: glossary.campus · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : campus · phân hiệu · khoa* > _Premium_ Một **đơn vị** cho phép phân biệt nhiều phân hiệu, nhiều khoa hoặc nhiều khối trong cùng một tài khoản Omniscol. Khái niệm đơn vị **chỉ dành cho tài khoản Premium** và vẫn là tùy chọn: chỉ nên tạo đơn vị khi nó thực sự giúp bạn phản ánh đúng cách tổ chức của trường. Đây là một khái niệm **mang tính tổ chức**. Nó không thay thế [cơ sở](#page-glossary.site), vốn thiên về mô tả một thực tế địa lý hoặc vật lý: địa điểm, lưới thời gian, phòng học, thời gian di chuyển. Đơn vị trở nên đặc biệt hữu ích khi khái niệm cơ sở không trùng khớp với cách tổ chức logic của trường. Ví dụ: - nhiều khoa dùng chung cùng những tòa nhà; - nhiều trường trong cùng một tập đoàn giáo dục dùng chung nhiều cơ sở theo kiểu đan xen; - cùng một cơ sở vật lý chứa nhiều khối hoặc nhiều chương trình đào tạo. Ngay cả khi đơn vị và cơ sở phần lớn trùng khớp, khái niệm này vẫn hữu ích, giúp việc lọc và gom nhóm dễ dàng hơn. #### Đơn vị dùng để làm gì Đơn vị chủ yếu dùng để: - gom các lớp theo cùng một cách tổ chức; - giúp một số thao tác lọc và gom nhóm dễ dàng hơn, đặc biệt trong phần chẩn đoán lỗi tương thích. Bản thân đơn vị không định nghĩa lưới thời gian, thời gian di chuyển hay một ràng buộc xếp lịch chặt chẽ nào. Những hành vi đó vẫn do cơ sở, phòng học, tài nguyên và các ràng buộc của thời khóa biểu đảm nhiệm. #### Cấu hình ở đâu Đơn vị được tạo trong [thông số chung](#page-admin.parameters), bên dưới các khối lớp. Sau đó mỗi lớp có thể được gắn với một đơn vị, và thông tin này cung cấp dữ liệu cho các bộ lọc và cách gom nhóm tương ứng. #### Xem thêm - [Cơ sở](#page-glossary.site) - [Phòng học](#page-glossary.classroom) - [Lớp](#page-glossary.class) - [Khối lớp](#page-glossary.level) - [Phát hiện và xử lý lỗi tương thích](#page-timetables.conflicts) ### Giáo viên / Giảng viên *Source: `help/vi/glossary/teacher.md` · id: glossary.teacher · Updated: 2026-05-10* *Also known as : nhà giáo · giảng viên thỉnh giảng · người đào tạo · giáo sư* Trong Omniscol, **giáo viên** dùng để chỉ bất kỳ ai đảm nhiệm việc giảng dạy một tiết học. Thuật ngữ này bao gồm: - **giáo viên cơ hữu** (biên chế, faculty), - **giáo viên thỉnh giảng** (người bên ngoài dạy theo từng đợt), - **giáo sư thỉnh giảng** (học giả được mời, diễn giả), - **người đào tạo** (đào tạo thường xuyên, tập huấn), - **chuyên gia** (người được mời theo từng đợt vì chuyên môn của họ). Tùy theo văn hóa của trường bạn, cách gọi thường ngày sẽ là “giáo viên”, “nhà giáo”, “giảng viên” hay “người đào tạo” — Omniscol thích ứng với vốn từ của bạn qua các nhãn hiển thị (xem thông số), nhưng về bản chất, tất cả đều được biểu diễn bằng cùng một thực thể. #### Tạo giáo viên Giáo viên được tạo ở cấp trường, trên màn hình Giáo viên. Bạn điền: - họ, tên, tên đăng nhập, mật khẩu, - e-mail (dùng cho lời mời và cho quy trình “quên mật khẩu”), - nếu cần, một mã định danh bên ngoài (mã số nhân sự, mã số SIS), - **các môn học giảng dạy** (giúp việc phân công vào các tiết học sau này dễ hơn), - **giờ làm việc** (số giờ dự kiến mỗi tuần, được lấy làm mặc định trong các thời khóa biểu mới). #### Phân công vào một thời khóa biểu Sau khi được tạo ở cấp trường, giáo viên còn phải được **phân công vào một thời khóa biểu** từ Giao cho giáo viên. Bước này phân biệt “nhân sự sẵn có” (ở cấp trường) với “nhân sự được huy động cho kế hoạch này” (ở cấp thời khóa biểu). #### Thời gian rảnh Giáo viên có thể tự nhập [thời gian rảnh](#page-glossary.wishes) của mình (các khung giờ không thể, không mong muốn, được ưu tiên). Với thời khóa biểu hàng tuần, chúng cần được quản trị viên phê duyệt; với thời khóa biểu ở chế độ lịch, chúng được tổng hợp theo thời gian thực. Ở bậc trung học, người ta còn gọi đây là **nguyện vọng**. #### Giáo viên thỉnh giảng (giáo viên bên ngoài) Về **giáo viên thỉnh giảng**, xem mục riêng: [Giáo viên bên ngoài / giáo viên thỉnh giảng](#page-glossary.external-teacher). #### Giáo viên ảo Nút Giáo viên ảo tạo ra một *giáo viên ảo* — một hồ sơ tạm thời cho một vị trí còn trống, hiển thị kèm một biểu tượng bóng ma bên cạnh tên. Khi đã tuyển được người thật, bạn chuyển hồ sơ đó thành giáo viên thật bằng nút trên dòng của họ. Rất tiện để chuẩn bị cho đầu năm học trước khi mọi việc tuyển dụng hoàn tất. #### Xem thêm - [Giáo viên thỉnh giảng (giáo viên bên ngoài)](#page-glossary.external-teacher) - [Thời gian rảnh](#page-glossary.wishes) - [Quản lý giáo viên](#page-admin.teachers) - [Phân công giáo viên vào một thời khóa biểu](#page-timetables.assigning-teachers) ### Giáo viên bên ngoài / Giáo viên thỉnh giảng *Source: `help/vi/glossary/external-teacher.md` · id: glossary.external-teacher · Updated: 2026-06-13* *Also known as : giảng viên hợp đồng theo giờ · giáo sư thỉnh giảng · visiting professor* **Giáo viên bên ngoài** (hay *giáo viên thỉnh giảng*, *giáo sư thỉnh giảng*, *chuyên gia* tùy theo bối cảnh) là giáo viên có quan hệ hợp đồng tạm thời hoặc không thường xuyên với nhà trường. Đối với công cụ tạo tự động, giáo viên bên ngoài cũng là một [giáo viên](#page-glossary.teacher) như mọi người khác — cùng cách nhập thời gian rảnh, cùng cách phân công. Sự khác biệt chủ yếu nằm ở khía cạnh **hành chính**: - hợp đồng ngắn hạn (theo giờ, theo tiết học, theo từng đợt), - khối lượng giờ ít hơn so với đội ngũ cơ hữu, - người dùng thường không nằm trên cùng hệ thống với đội ngũ cơ hữu (e-mail khác, không truy cập được cùng những công cụ nội bộ). > _Premium_ Dấu hiệu riêng Giáo viên bên ngoài, được tích trên hồ sơ người dùng, chỉ có ở các tài khoản Premium. Nó dùng để chỉ rõ ai là giáo viên bên ngoài và là căn cứ cho cách hiển thị riêng mô tả dưới đây. #### Hiển thị riêng Biểu tượng [user-tie] phân biệt giáo viên bên ngoài với đội ngũ cơ hữu trên một số màn hình (nhất là chú giải khi di chuột trên tiết học và chế độ xem danh sách của thời khóa biểu). Trên lưới thời gian chính, cách hiển thị mặc định không phân biệt vì thiếu chỗ, nhưng thông tin vẫn đọc được ở chú giải khi di chuột. #### Trường hợp đặc biệt: giáo sư thỉnh giảng dạy vài tiết học Với một tiết học lẻ mà giáo sư thỉnh giảng cùng đứng lớp với giáo viên phụ trách chính chứ không luân phiên, xem [đồng giảng dạy](#page-glossary.co-teaching). Với hai giáo viên thay nhau dạy theo từng tuần trên cùng một khung giờ, xem [tiết học luân phiên](#page-glossary.alternate-lessons). #### Xem thêm - [Giáo viên](#page-glossary.teacher) - [Đồng giảng dạy](#page-glossary.co-teaching) - [Giáo viên bên ngoài trong giáo dục đại học](#page-higher-ed.external-faculty) ### Hình thức của tiết học *Source: `help/vi/glossary/lesson-modality.md` · id: glossary.lesson-modality · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : học trực tiếp · tiết học từ xa · kết hợp · tự học · hội nghị truyền hình* > _Premium_ Trên các tài khoản **Premium**, **Hình thức** cho biết một [tiết học](#page-glossary.lesson) diễn ra **theo cách nào**. Bạn chọn giá trị này trong bộ chọn phòng học Chỉ định phòng học, ngay cạnh phần phân công phòng học. Có bốn giá trị, mỗi giá trị mang một biểu tượng riêng trên tiết học: - **Trực tiếp** — tiết học diễn ra trong một [phòng học](#page-glossary.classroom) (trường hợp mặc định). - **Từ xa** — tiết học diễn ra từ xa (biểu tượng [video]); không cần phòng học. - **Kết hợp** — tiết học diễn ra tại phòng học **và** đồng thời được truyền trực tuyến cho người ở xa (ví dụ một bài giảng lý thuyết phát qua hội nghị truyền hình): vì vậy tiết học vừa chiếm một phòng học vừa cần một liên kết. - **Tự học** — hoạt động học tập tự chủ, không cần phòng học. Cách này tương đương với việc khóa tiết học ở trạng thái không có phòng học (thao tác này tắt cảnh báo khi tiết học chưa được gán phòng học). #### Ảnh hưởng đến phòng học và việc tạo tự động Hình thức có tác động cụ thể đến việc xếp lịch: một tiết học **Từ xa** hoặc **Tự học** **không cần phòng học**. [Công cụ tạo tự động](#page-glossary.solver) không dành phòng học cho tiết học đó, và việc phân bổ phòng học tự động cũng bỏ qua nó. Ngược lại, các tiết học **Trực tiếp** và **Kết hợp** đều đòi hỏi một phòng học. #### Liên kết hội nghị truyền hình Với những tiết học từ xa hoặc kết hợp, bạn có thể nhập một **liên kết hội nghị truyền hình** trong chính bộ chọn phòng học đó. Liên kết cũng có thể được đặt mặc định trên lớp và khi đó áp dụng cho các tiết học của lớp. Nếu thiếu liên kết, Omniscol sẽ hiển thị một cảnh báo. #### Thống kê theo hình thức Phần [chẩn đoán](#page-glossary.diagnostic) có một bảng phân bổ **theo hình thức**: bảng này cộng tổng thời lượng giảng dạy được thực hiện trực tiếp, từ xa, kết hợp và tự học. Điều này hữu ích chẳng hạn khi bạn cần đo tỷ trọng học từ xa của một chương trình đào tạo. Khi hình thức không được khai báo rõ ràng, Omniscol **suy ra** hình thức đó từ những yếu tố đang có: có phòng học **và** có liên kết hội nghị truyền hình thì tiết học là kết hợp; chỉ có phòng học thì là trực tiếp; chỉ có liên kết hội nghị truyền hình thì là từ xa; tiết học được khai báo rõ là không có phòng học thì là tự học. Lựa chọn khai báo rõ ràng luôn được ưu tiên hơn suy luận này. #### Xem thêm - [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) - [Trạng thái](#page-glossary.lesson-status) - [Tiết học / Giờ học](#page-glossary.lesson) - [Phòng học](#page-glossary.classroom) ### Học sinh / Sinh viên / Người học *Source: `help/vi/glossary/student.md` · id: glossary.student · Updated: 2026-05-14* *Also known as : người tham gia · học viên* Trong Omniscol, một **học sinh** là một cá nhân được ghi danh vào một [lớp](#page-glossary.class), theo học các tiết học và có thể là thành viên của một hay nhiều [nhóm](#page-glossary.group) bên trong lớp đó. **Học sinh** là thuật ngữ chuẩn của giao diện; tùy theo bối cảnh của cơ sở đào tạo, cách gọi thường ngày sẽ thay đổi: - **Tiểu học / trung học** — “học sinh”, - **Giáo dục đại học** — “sinh viên”, - **Đào tạo thường xuyên** — “người học”, “người tham gia”, “học viên”. Tất cả đều quy về cùng một thực thể của Omniscol. #### Học sinh là **tùy chọn** Điểm quan trọng: Omniscol vẫn chạy rất tốt **khi chưa nhập một học sinh nào**. Thời khóa biểu, thời gian rảnh của giáo viên, việc tạo tự động và thống kê của trang tổng quan đều hoạt động ở cấp lớp / nhóm / giáo viên. Lợi ích của việc nhập từng học sinh: - **Thời khóa biểu cá nhân hóa** — mỗi học sinh nhìn thấy thời khóa biểu của riêng mình sau khi đăng nhập, được lọc theo lớp và các nhóm của mình. - **Thống kê chi tiết** — trang tổng quan theo từng học sinh (số giờ học, số ngày có mặt). - **Vắng mặt** — học sinh có thể tự khai báo vắng mặt của mình (chờ quản trị viên phê duyệt). - **Học sinh học lại / học ngoài chương trình** — quản lý những học sinh phải theo học các tiết học của một lớp khác với lớp của mình. Nếu bạn không cần những tính năng này, đừng nhập danh sách học sinh — bạn không mất gì thiết yếu cả. #### Phân công vào lớp và vào các nhóm Việc phân công một học sinh vào lớp và vào các nhóm của mình được thực hiện ở màn hình Học sinh, sau khi thời khóa biểu đầu tiên của năm học đã được công bố. Bạn cũng có thể phân công hàng loạt bằng thao tác Phân công vào lớp trên một lựa chọn nhiều mục. #### Trường hợp học lại và học ngoài chương trình Một học sinh có thể được phân công vào nhiều lớp (ví dụ một học sinh năm thứ ba còn phải theo học một học phần của năm thứ hai) hoặc chỉ được phân công vào một số nhóm của một lớp (một học sinh học lại chỉ một môn học duy nhất). Những trường hợp này được xử lý qua lựa chọn nhiều lớp / nhiều nhóm trên màn hình phân công. #### Xem thêm - [Lớp](#page-glossary.class) - [Nhóm](#page-glossary.group) - [Quản lý học sinh](#page-admin.students) ### iCal (xuất lịch) *Source: `help/vi/glossary/ical.md` · id: glossary.ical · Updated: 2026-05-15* *Also known as : ics · đăng ký lịch · liên kết ical · xuất ical* **iCal** (phần mở rộng `.ics`) là định dạng chuẩn để trao đổi lịch, được mọi ứng dụng lịch trên thị trường đọc được: Apple Calendar, Google Calendar, Outlook, Thunderbird, Fastmail, v.v. Omniscol cung cấp hai kiểu xuất iCal: #### 1. Tải xuống tĩnh Nút Tải xuống trên một thời khóa biểu đã chọn. Bạn nhận được một tệp `.ics` để nhập vào ứng dụng lịch của mình. Đây là **ảnh chụp** tại thời điểm tải xuống: tệp không được cập nhật nếu thời khóa biểu thay đổi sau đó. Hữu ích khi cần chia sẻ một lịch trình dùng một lần qua email. #### 2. Liên kết đăng ký động Nút Tải xuống trên một thời khóa biểu (hoặc trên màn hình của một giáo viên, v.v.) tạo ra một URL đăng ký iCal. Sau khi bạn sao chép URL đó vào ứng dụng lịch của mình dưới dạng **đăng ký**, lịch sẽ tự động cập nhật theo từng thay đổi của thời khóa biểu trong Omniscol. Đây chính là cách các giáo viên và học sinh đồng bộ thời khóa biểu Omniscol với lịch cá nhân, mà không phải tải lại tệp sau mỗi lần chỉnh sửa. Các liên kết iCal của Omniscol đều được ký, có thời hạn và gắn với tài khoản đã tạo ra chúng. Thời hạn được ghi trong mã thông báo của URL; muốn thay đổi thời hạn, bạn phải tạo một liên kết mới. Việc đổi mật khẩu, vô hiệu hóa hoặc xóa tài khoản sở hữu sẽ làm mất hiệu lực các liên kết liên quan. #### Đồng bộ và cập nhật iCal dạng đăng ký được **ứng dụng lịch làm mới**, với nhịp độ khác nhau tùy từng ứng dụng: - Apple Calendar: thường là 5-15 phút. - Google Calendar: tối đa 24 giờ trong trường hợp xấu nhất (nhưng thường nhanh hơn). - Outlook: không cố định. Độ trễ này thuộc về bản chất của giao thức iCal và không phụ thuộc vào Omniscol — một thay đổi trong thời khóa biểu Omniscol sẽ xuất hiện trong lịch đã đăng ký ngay khi ứng dụng đó tải lại luồng dữ liệu. #### Xem thêm - [Liên kết chia sẻ](#page-glossary.share-link) - [iCal — đăng ký và liên kết động](#page-integrations.ical) ### Khóa học *Source: `help/vi/glossary/course.md` · id: glossary.course · Updated: 2026-06-26* *Also known as : môn học của lớp · khóa học của một lớp · dòng khóa học* Một **khóa học** là việc giảng dạy một [môn học](#page-glossary.subject) cho một [lớp](#page-glossary.class) (hoặc cho một [nhóm](#page-glossary.group) của lớp đó), trong một khoảng thời gian nhất định. Đây là đơn vị cơ bản của **chương trình giảng dạy** ở trường bạn: dạy cái gì, dạy cho ai và với khối lượng bao nhiêu — không phụ thuộc vào thời điểm nội dung đó được xếp vào thời khóa biểu. Một khóa học mang theo: - một **môn học** (bộ môn được giảng dạy), - có thể có một **[loại tiết học](#page-glossary.lesson-type)** (lý thuyết, bài tập, thực hành, kiểm tra…) — cặp `(môn học, loại)` tạo thành một khóa học riêng biệt, - một **khối lượng giờ** dự kiến (số giờ mỗi tuần, hoặc số tiết học), - một hoặc nhiều **giáo viên** được phân công, - có thể có các **ràng buộc**: trọng số giảng dạy, phòng học chuyên ngành bắt buộc, các điểm không tương thích, ưu tiên về vị trí xếp lịch. #### Khóa học, môn học, tiết học: đừng nhầm lẫn - [Môn học](#page-glossary.subject) là bản thân bộ môn (chẳng hạn Toán), nằm trong danh mục của trường. - **Khóa học** là môn học đó *gắn với một lớp cụ thể*, kèm khối lượng giờ và các thuộc tính: “Toán ở lớp 9A, 4 giờ mỗi tuần, dạng bài tập”. - [Tiết học](#page-glossary.lesson) là những **lần xuất hiện** cụ thể, hiện thực hóa khóa học trên lưới thời gian (bốn khung giờ hằng tuần thực sự được đặt). Vậy nên một khóa học sinh ra một hoặc nhiều tiết học; xóa một tiết học không xóa khóa học. #### Một khái niệm ngầm định trong giao diện Giao diện không gọi tên “khóa học” ở chỗ này: bạn xây dựng nó bằng cách **gán một môn học cho một lớp** (tab Khóa học của một lớp), rồi điền khối lượng giờ, loại và giáo viên. Khái niệm này vẫn hữu ích để tư duy — nhất là ở bậc đại học, nơi người ta phân biệt rõ khóa học (định nghĩa) với các tiết học của nó (các lần xuất hiện). #### Toàn bộ các khóa học: chương trình học Tập hợp các khóa học của một lớp — hay của một ngành đào tạo — tạo thành **chương trình học** của lớp hay ngành đó. Tùy theo bậc học và cách gọi của từng trường, người ta còn nói **khung chương trình**, **danh mục học phần**, **lộ trình đào tạo** hay **syllabus**. Omniscol không áp đặt cách gọi nào: nó làm việc với các khóa học (các môn học gắn với lớp, có thể có loại); tổng của chúng *chính là* khung chương trình. #### Xem thêm - [Môn học](#page-glossary.subject) - [Tiết học / Giờ học](#page-glossary.lesson) - [Loại tiết học](#page-glossary.lesson-type) - [Khóa học, tiết học, loại tiết học](#page-core-concepts.lessons-and-types) - [Tổ chức dữ liệu: môn học, lớp, thời khóa biểu](#page-core-concepts.data-model) - [Cấu hình môn học theo từng lớp](#page-timetables.creating-classes) ### Khóa học dùng chung *Source: `help/vi/glossary/transverse-course.md` · id: glossary.transverse-course · Updated: 2026-06-21* *Also known as : khóa học liên ngành · khóa học chung · môn học chung · khóa học liên lớp · khóa học liên khóa · học phần dùng chung* Một **khóa học dùng chung** tập hợp học sinh từ **nhiều lớp, nhiều chương trình đào tạo hoặc nhiều khóa** vào cùng một khóa học — khối kiến thức chung, ngành phụ, môn tự chọn liên chương trình đào tạo, bài giảng chung liên khóa. Trong Omniscol, cách dựng thường dùng nhất là **[nhóm của nhóm](#page-glossary.groups-of-groups)** (một số phần mềm khác gọi là “gom nhóm”): bạn gộp các nhóm liên quan thành một thực thể duy nhất, rồi đặt khóa học lên thực thể đó. Khóa học khi ấy hiển thị trong mọi lớp cha và vẫn **có thể chỉnh sửa về sau** — thêm hoặc bớt một nhóm mà không phải động đến cấu trúc. Đây là lựa chọn nên ưu tiên, nhất là ở bậc đại học và ở chế độ lịch. Với nhu cầu **nhất thời**, không cần tạo một thực thể có tên, bạn cũng có thể **gán trực tiếp nhiều nhóm cho tiết học** từ bộ chọn nhóm của tiết học đó. Cách này nhanh hơn, nhưng kém rõ ràng hơn và khó tái sử dụng hơn. Khi các lớp **song song và có cấu trúc giống hệt nhau** (cùng khối lượng giờ), nhất là với thời khóa biểu hằng tuần hoặc theo chu kỳ, **[căn chỉnh nhóm](#page-glossary.alignment)** vẫn là lựa chọn phù hợp: một tiết học duy nhất dùng chung cho các nhóm, cùng khung giờ, cùng giáo viên, cùng phòng học — đổi lại, thành phần nhóm bị cố định. #### Xem thêm - [Nhóm của nhóm](#page-glossary.groups-of-groups) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) ### Khối lớp *Source: `help/vi/glossary/level.md` · id: glossary.level · Updated: 2026-06-21* *Also known as : trình độ · cấp học · bậc học* **Khối lớp** sắp xếp các [lớp](#page-glossary.class) theo **tiến trình học tập**: khối 6, khối 7, khối 8, khối 9 ở trung học cơ sở; năm thứ nhất, năm thứ hai, năm thứ ba ở bậc đại học; Cử nhân, Thạc sĩ, năm 1, năm 2… tùy theo từng trường. Đây là một **nhãn tổ chức**, không phải một ràng buộc xếp lịch: khối lớp không áp đặt điều gì lên công cụ tạo tự động. Nó dùng để **sắp xếp và tìm lại** các lớp — trong các màn hình lớp, trong nhiều bộ lọc và trong một số dạng xem chẩn đoán. #### Cấu hình ở đâu Khối lớp thuộc nhóm thiết lập **chung** của tài khoản. Từ [thông số chung](#page-admin.parameters), bên dưới mục **Khối lớp**, bạn có thể tạo thêm bằng Tạo mới, xóa bớt, và **kéo thả để sắp xếp lại** — thứ tự này thể hiện tiến trình học tập. Sau đó mỗi lớp được gắn một khối lớp ngay khi tạo lớp (xem [Tạo các lớp](#page-timetables.creating-classes)). #### Khối lớp, đơn vị và cơ sở Ba khái niệm gần nhau, không nên nhầm lẫn: - **khối lớp** cho biết lớp đang ở đâu trong **tiến trình học tập** (lớp đã đi tới chặng nào của chương trình đào tạo); - [đơn vị](#page-glossary.campus) gắn lớp với một **thực thể tổ chức** (khoa, khối ngành, phân hiệu); - [cơ sở](#page-glossary.site) cho biết **địa điểm vật lý** của lớp và những phòng học được dùng mặc định. Thông thường một lớp mang cả ba: một khối lớp, có thể có một đơn vị, và một cơ sở mặc định. #### Xem thêm - [Lớp](#page-glossary.class) - [Đơn vị](#page-glossary.campus) - [Cơ sở](#page-glossary.site) - [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) - [Thông số chung](#page-admin.parameters) ### Không tương thích (giữa các môn học) *Source: `help/vi/glossary/incompatibility.md` · id: glossary.incompatibility · Updated: 2026-06-13* *Also known as : điểm không tương thích · loại trừ giữa các môn học · cấm xếp nối tiếp* Một **điểm không tương thích** là ràng buộc sư phạm cấm một môn học **theo sau** một môn học khác. Đây là quy tắc **có chiều**: bạn khai báo rằng “sau môn học A không được xếp môn học B” — chiều của quy tắc là điều quan trọng, A-rồi-B và B-rồi-A là hai quy tắc khác nhau. Trường hợp điển hình: “không xếp tiết học Toán ngay sau tiết Thể dục”. Được thiết lập ở cấp lớp, trong tab Không tương thích của thời khóa biểu hiện hành. #### Lệnh cấm áp dụng đến đâu Bạn chọn khoảng thời gian mà lệnh cấm có hiệu lực ngay lúc tạo quy tắc: - **Liên tiếp** — không được xếp vào tiết học kế ngay sau đó, trong cùng một ngày. - **Buổi sáng/chiều** — không được xếp muộn hơn trong cùng buổi. - **Ngày** — không được xếp muộn hơn trong cùng ngày. - **Tuần** — không được xếp muộn hơn trong cùng tuần. - **Mọi lúc** *(thời khóa biểu theo chu kỳ hoặc theo lịch)* — không bao giờ được xếp sau, trong suốt cả giai đoạn. Đây là công cụ **sắp xếp trình tự**: học xong một học phần rồi mới sang học phần phụ thuộc vào nó. Ngoài ra: tùy chọn để một môn học **không tương thích với chính nó** (thông số toàn cục) ngăn cùng một môn học quay lại hai lần trong ngày đối với một học sinh — thường đơn giản hơn hàng loạt quy tắc theo từng cặp. #### Khác biệt so với ràng buộc thời gian của môn học Đừng nhầm với **ràng buộc thời gian** của một môn học ([clock]), vốn ấn định vị trí **tuyệt đối** của riêng một môn học trong lưới thời gian. Còn điểm không tương thích thì chi phối thứ tự **tương đối** giữa hai môn học. | Ràng buộc | Chi phối | Ví dụ | | --- | --- | --- | | **Không tương thích** | **thứ tự** của hai môn học | “không xếp Toán sau Thể dục” | | Ràng buộc thời gian của môn học | **vị trí** tuyệt đối của một môn học | “không xếp Toán vào tiết đầu tiên” | | Chuyên ngành | **phòng học** mà một môn học đòi hỏi | “Hóa học cần phòng thí nghiệm” | #### Ràng buộc để tối ưu, không phải rào chặn Điểm không tương thích không phải là ràng buộc gây chặn: công cụ tạo tự động xử lý nó như một điểm trừ mà nó tìm cách loại bỏ, y như với thời gian rảnh không mong muốn. Nếu các ràng buộc khác không để lại phương án nào, một điểm không tương thích vẫn có thể tồn tại trong thời khóa biểu được tạo ra; khi đó [chẩn đoán](#page-glossary.diagnostic) sẽ báo lên để bạn quyết định. Hãy tránh dồn quá nhiều điểm không tương thích: mỗi điểm đều thu hẹp khoảng tự do của công cụ tạo tự động và kéo dài thời gian tính toán. Để dàn đều một môn học trong tuần, trọng số sư phạm của môn học đó thường hiệu quả hơn. #### Xem thêm - [Môn học](#page-glossary.subject) - [Công cụ tạo tự động — cách nó cân nhắc các ràng buộc](#page-glossary.solver) ### Liên kết chia sẻ *Source: `help/vi/glossary/share-link.md` · id: glossary.share-link · Updated: 2026-06-13* *Also known as : liên kết đã chia sẻ · liên kết công khai · chia sẻ bằng mã thông báo* Trong Omniscol, **liên kết chia sẻ** là một URL có chữ ký, cho phép truy cập vào một tài nguyên web mà không cần đăng nhập trước: - thời khóa biểu của một lớp hoặc của một giáo viên, - một màn hình nhập liệu có mục đích cụ thể, ví dụ để nhập thời gian rảnh, - mô-đun Quản lý vắng mặt ở chế độ chỉ xem, - một khung nhìn riêng dành cho một đội ngũ bên ngoài (kiểm toán, truyền thông). Với thời khóa biểu công khai, quyền truy cập là chỉ đọc. Tuy nhiên, một số liên kết chia sẻ nội bộ vẫn có thể cho phép một thao tác giới hạn, chẳng hạn điền vào một biểu mẫu cụ thể. Trường hợp điển hình là liên kết nhập thời gian rảnh của giáo viên: nhà trường có thể gửi liên kết đó cho một giáo viên kèm thời hạn, mà không phải tạo tài khoản đăng nhập Omniscol cho họ. #### Bảo mật Mỗi liên kết đều mang theo một **JWT** có chữ ký. Với liên kết web và API, chữ ký phụ thuộc vào tài khoản đã tạo ra liên kết và vào mã băm mật khẩu của tài khoản đó. Với liên kết iCal, mã băm kiểm tra cũng được dựng theo cùng nguyên tắc. Bốn hệ quả: 1. **Bắt buộc có ngày hết hạn** — liên kết tự động hết hiệu lực vào ngày bạn chọn. Đây là một hàng rào an toàn quan trọng: không có liên kết vĩnh viễn. 2. **Mất hiệu lực khi đổi mật khẩu** — nếu tài khoản sở hữu đổi mật khẩu (hoặc đặt lại đúng mật khẩu cũ, việc này vẫn làm thay đổi salt ngẫu nhiên), mọi liên kết do tài khoản đó tạo ra đều mất hiệu lực ngay lập tức. 3. **Mất hiệu lực theo tài khoản sở hữu** — nếu tài khoản sở hữu bị vô hiệu hóa hoặc bị xóa, mọi liên kết thuộc về tài khoản đó sẽ ngừng hoạt động. 4. **Phạm vi giới hạn** — liên kết chỉ mở đúng khung nhìn hoặc thao tác đã định. Đừng mô tả nó như một quyền truy cập toàn bộ tài khoản. Để phát cho nhiều người, hãy dùng một tài khoản dịch vụ được đặt tên rõ ràng thay vì một tài khoản cá nhân. Tài khoản dịch vụ trở thành bên sở hữu về mặt quản trị của các liên kết đã phát hành, và có thể được thay mới hoặc vô hiệu hóa nếu cần hủy hiệu lực cả một đợt chia sẻ. #### Khác biệt so với mã thông báo API | Khía cạnh | Liên kết chia sẻ | [Mã thông báo API](#page-glossary.api-token) | | --- | --- | --- | | Đối tượng | Người dùng trên trình duyệt | Phần mềm bên thứ ba | | Quyền | Phạm vi giới hạn, thường là chỉ đọc | Tùy theo các điểm truy cập API được chọn | | Trường hợp sử dụng | Chia sẻ theo từng đợt | Tích hợp phần mềm | | Xác thực | JWT trong URL | JWT trong tiêu đề `Authorization` | | Cấp quyền yêu cầu | Vai trò của người tạo | Quyền quản trị | #### Tạo một liên kết Nút Chung xuất hiện trên các màn hình có thể chia sẻ (thời khóa biểu, thời gian rảnh, vắng mặt). Hãy bấm vào nút đó, chọn ngày hết hạn, rồi sao chép URL ở định dạng bạn cần. #### Xem thêm - [Mã thông báo API](#page-glossary.api-token) - [Chia sẻ một thời khóa biểu](#page-schedules.share-link) - [Liên kết chia sẻ công khai](#page-portal.share-links) ### Loại tiết học *Source: `help/vi/glossary/lesson-type.md` · id: glossary.lesson-type · Updated: 2026-05-10* *Also known as : lý thuyết · bài tập · thực hành · thí nghiệm · kiểm tra · chuyên đề* Một **loại tiết học** cho biết hình thức tổ chức dạy học của một tiết học. Những ví dụ điển hình: - **Lý thuyết** — giờ giảng chung cho cả lớp, - **Bài tập** — làm bài có hướng dẫn theo nhóm nhỏ, - **Thực hành** — làm việc trực tiếp tại phòng thí nghiệm hoặc xưởng, - **Kiểm tra** — bài đánh giá, - **Chuyên đề** — báo cáo của diễn giả khách mời, - **Thảo luận**, **Đồ án**, **Thực tập**, **Bảo vệ đồ án**… Các loại tiết học được định nghĩa ở cấp trường trong Tạo mới. Bạn có thể tạo bao nhiêu loại tùy ý, theo đúng cách phân loại giảng dạy ở trường bạn (các trường đại học đôi khi có tới 25-30 loại). #### Ghép cặp môn học + loại Một loại tiết học được gán cho một khóa học, bổ sung cho [môn học](#page-glossary.subject) của khóa học đó. Cặp `(môn học, loại)` được xử lý như một mục độc lập: chẳng hạn trong thống kê hay trong các bộ lọc, “Toán” và “Toán — Bài tập” xuất hiện riêng biệt. Nếu bạn muốn truy vấn cả hai cùng lúc (không phân biệt loại), hãy dùng một bộ lọc mở, không chỉ định loại. #### Lọc và hiển thị - **Bộ lọc trong mô-đun Thời khóa biểu** — chọn một loại để chỉ xem các tiết thực hành, hoặc chỉ xem các tiết lý thuyết. - **Thống kê** — đếm riêng số giờ bài tập, số giờ thực hành và số giờ lý thuyết theo từng lớp hoặc từng giáo viên. - **Hiển thị** — màu sắc hoặc dấu hiệu nhận biết theo loại trên lưới thời gian, tùy theo thông số hiển thị. #### Xem thêm - [Khóa học](#page-glossary.course) - [Môn học](#page-glossary.subject) - [Tiết học / Giờ học](#page-glossary.lesson) - [Cấu hình các loại tiết học](#page-admin.lesson-types) ### Lỗi tương thích *Source: `help/vi/glossary/conflict.md` · id: glossary.conflict · Updated: 2026-06-25* *Also known as : cảnh báo · sự không tương thích được phát hiện · chồng chéo lịch · trùng lịch* Trong Omniscol, **lỗi tương thích** là tình huống mà hai ràng buộc không thể cùng được đáp ứng. Ví dụ: - một giáo viên bị phân công hai tiết học vào cùng một khung giờ, - một phòng học bị hai tiết học đặt cùng một lúc, - một nhóm học sinh phải có mặt ở hai nơi cùng một lúc, - một tiết học không đáp ứng chuyên ngành mà môn học của nó yêu cầu, - một tiết học có tổng sức chứa (cộng gộp các phòng học được phân công) thấp hơn sĩ số của nhóm, - một căn chỉnh nhóm mà các nhóm được căn chỉnh có số giờ khác nhau. #### Phát hiện theo thời gian thực Omniscol phát hiện lỗi tương thích **ngay trong lúc bạn nhập liệu**, chứ không chỉ vào lúc tạo tự động: - dải thông báo màu đỏ ở đầu màn hình phân bổ thời gian, - biểu tượng [triangle-exclamation] trên các tiết học và các lớp liên quan, - danh sách lỗi tương thích có thể nhấn vào (“kính lúp” dẫn tới chi tiết). #### Lỗi tương thích có chủ đích Không phải lỗi tương thích nào cũng cần được xử lý. Một số là có chủ đích: - cùng một nhóm được xếp vào một kỳ thi + một phòng học dành cho thí sinh được kéo dài thời gian làm bài (cùng những học sinh đó được dự kiến ở hai phòng học tùy theo điều kiện), - sĩ số > sức chứa của phòng học khi bạn biết không phải tất cả những người đã đăng ký đều đến. Bạn có thể **để nguyên lỗi tương thích**; cảnh báo vẫn hiển thị nhưng không chặn hoạt động. #### Lỗi tương thích gây chặn Một số mâu thuẫn khiến việc **tạo tự động** không thể thành công: - không có phòng học nào tương thích với một môn học kèm một số giờ nhất định, - thời gian rảnh của một giáo viên hoàn toàn không tương thích với các tiết học mà họ phải dạy, - một căn chỉnh nhóm bất khả thi về mặt cấu trúc. Những lỗi tương thích này được đánh dấu là **nghiêm trọng**; chừng nào chúng còn tồn tại, nút Tạo thời khóa biểu vẫn không khả dụng. #### Xem thêm - [Chẩn đoán](#page-glossary.diagnostic) - [Công cụ tạo tự động](#page-glossary.solver) - [Phát hiện và xử lý lỗi tương thích](#page-timetables.conflicts) ### Lớp *Source: `help/vi/glossary/class.md` · id: glossary.class · Updated: 2026-07-05* *Also known as : khóa tuyển sinh · đợt học · lớp hành chính* Trong Omniscol, một **lớp** là thực thể chính tập hợp những học sinh cùng theo một chương trình học trong cùng một trường, trong một khoảng thời gian nhất định. Đó là đối tượng của các tiết học: một tiết học dành cho một lớp (toàn bộ lớp, hoặc thông qua một [nhóm](#page-glossary.group) vốn là một phần chia nhỏ của lớp), chứ không phải ngược lại. Một lớp có: - một **tên** (ví dụ “6A”, “K65-CNTT-02”, “Cao học Marketing 1”), - một **khối lớp** (các khối lớp được định nghĩa trong Tạo mới — ví dụ khối 6/7/8/9 ở trung học cơ sở, năm thứ nhất/thứ hai/thứ ba ở bậc cử nhân), - có thể có một **đơn vị** (tùy chọn Premium; phân hiệu, khoa, khối hoặc một cách gom nhóm tổ chức khác), - một **cơ sở** mặc định (địa điểm vật lý và các phòng học được dùng mặc định), - có thể có một **phòng học riêng**, nơi các tiết học của lớp diễn ra theo mặc định, - một **sĩ số dự kiến** (số học sinh dự kiến; không bắt buộc nhưng hữu ích khi tính toán quy mô phòng học). #### Cách gọi tùy theo bối cảnh Từ “lớp” mang những sắc thái rất khác nhau tùy theo loại hình trường. Tất cả đều quy về cùng một thực thể của Omniscol: - **Tiểu học / trung học** — “lớp” theo nghĩa nhà trường quen thuộc (5A, 6A, 12A1). - **Giáo dục đại học** — thường là “khóa”, “khóa tuyển sinh”, “đợt học”, “lớp hành chính”, đôi khi là “định hướng” hoặc “chuyên ngành”. Một khóa 200 học sinh vẫn là một lớp; các nhóm bài tập hay nhóm thực hành là [nhóm](#page-glossary.group), không phải lớp. - **Đào tạo thường xuyên** — “đợt học”, “khóa”, “nhóm học viên”. > _Premium_ Ở bậc đại học, “lớp” ở đây chỉ một tập hợp học sinh ổn định cùng dùng chung một thời khóa biểu hoặc một lộ trình đào tạo tổng thể. Nó thường tương ứng với một khóa, một lớp đào tạo hoặc đôi khi là một lộ trình đào tạo. Không nên nhầm lẫn với một học phần, một mô-đun hay một khóa học. Khi bạn đọc thấy “lớp” trong Omniscol, hãy hiểu đó là “tập hợp học sinh cùng theo lộ trình đào tạo này trong khoảng thời gian này”, chứ không phải “căn phòng vật lý” (căn phòng là [phòng học](#page-glossary.classroom)). #### Phân biệt lớp và nhóm Một nhầm lẫn kinh điển: lẫn lộn giữa lớp và nhóm. Nhóm **luôn luôn** là phần chia nhỏ của một lớp. Nếu bạn cần gom học sinh đến từ nhiều lớp khác nhau (ví dụ học sinh học tiếng Nhật ở các lớp 10A1, 10A2 và 10A3 cùng học chung một tiết tiếng Nhật), bạn không tạo một lớp mới: bạn dùng [căn chỉnh nhóm](#page-glossary.alignment) hoặc [nhóm của nhóm](#page-glossary.groups-of-groups). #### Xem thêm - [Nhóm](#page-glossary.group) - [Khối lớp](#page-glossary.level) - [Phân vùng lớp](#page-glossary.class-division) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Đơn vị](#page-glossary.campus) - [Cơ sở](#page-glossary.site) - [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) ### Lưới thời gian *Source: `help/vi/glossary/timetable-grid.md` · id: glossary.timetable-grid · Plan: standard · Updated: 2026-08-24* *Also known as : lưới giờ · bảng giờ học · khung giờ học* **Lưới thời gian** là cách phân chia giờ giấc của một **cơ sở**: các khung giờ mà các tiết học được đặt lên, kèm giờ bắt đầu và giờ kết thúc, các giờ nghỉ và các khoảng đóng cửa. Mỗi cơ sở có lưới riêng của mình, nên hai cơ sở thuộc cùng một trường có thể có ngày học khác nhau. Lưới thời gian được dùng cho việc hiển thị thời khóa biểu, kiểm tra thời gian rảnh và tạo tự động. Một lớp có thể tách khỏi lưới này: xem **ngoài khung giờ**. ### Mã thông báo API *Source: `help/vi/glossary/api-token.md` · id: glossary.api-token · Updated: 2026-05-15* *Also known as : token api · khóa api · mã thông báo xác thực* Một **mã thông báo API** (token) cho phép phần mềm của bên thứ ba gọi các điểm truy cập API của Omniscol thay mặt cho nhà trường, ở chế độ đọc và, nếu có chọn các điểm truy cập API ghi dữ liệu, ở cả chế độ ghi. Công cụ này rất mạnh — vì vậy phải sử dụng hết sức thận trọng. #### Tạo mã thông báo Mã thông báo được tạo trong Chung (Nhập và xuất dữ liệu > Chung). Bạn cần cung cấp: - một khóa (được tạo trong Omniscol, kèm nhãn và thời hạn nếu cần; ngày hết hạn của khóa có thể sửa lại sau), - một phạm vi: danh sách các điểm truy cập API mà mã thông báo này được phép gọi (chỉ cấp đúng những gì thật sự cần thiết), - tùy chọn thêm **thời hạn của mã thông báo**. Ngày này được ghi thẳng vào JWT sinh ra và sau đó không thể sửa được nữa. Xóa khóa, hoặc khi khóa hết hạn, sẽ lập tức thu hồi mọi mã thông báo sinh ra từ khóa đó. Muốn đổi thời hạn của một mã thông báo riêng lẻ, bạn hãy tạo một JWT mới. #### Cách sử dụng Mã thông báo được gửi trong tiêu đề HTTP `Authorization: Bearer `, hoặc (ít được khuyến nghị cho môi trường vận hành) trong URL qua `?auth=`. #### Khuyến nghị sử dụng - **Mỗi tích hợp một khóa riêng** — giúp việc thu hồi từng khóa trở nên độc lập và dễ dàng hơn. - **Phạm vi tối thiểu** — chỉ tích chọn những API cần dùng, chứ không chọn hết theo mặc định. - **Đặt thời hạn đúng chỗ** — dùng thời hạn của khóa để quản lý một tích hợp lâu dài; dùng thời hạn của mã thông báo cho một quyền truy cập tạm thời, không sửa đổi được. - **Thay khóa định kỳ** — tạo lại khóa sau mỗi 6-12 tháng. - **Không đưa vào Git** — mã thông báo không được nằm trong một kho mã nguồn công khai. Hãy dùng biến môi trường của máy chủ. #### Khác biệt so với OIDC / SSO Để cho người dùng thật đăng nhập bằng danh tính do nhà trường cấp, hãy dùng [OIDC / SSO](#page-integrations.oauth2). Mã thông báo API dành cho các tích hợp kỹ thuật giữa máy chủ với máy chủ, không dành cho việc đăng nhập hằng ngày của người dùng. #### Xem thêm - [Liên kết chia sẻ](#page-glossary.share-link) - [API Omniscol](#page-integrations.api-tokens) - [MCP — kết nối một tác nhân AI bên ngoài](#page-integrations.mcp) ### Môn học *Source: `help/vi/glossary/subject.md` · id: glossary.subject · Updated: 2026-05-10* *Also known as : bộ môn · khối kiến thức · học phần · UE · mô-đun* Một **môn học** là bộ môn được giảng dạy trong một [khóa học](#page-glossary.course): toán, vật lý, tiếng Anh, luật kế toán, học máy, phương pháp luận dự án… Môn học là bộ môn thuần túy; còn khóa học là chính môn học đó gắn với một lớp cụ thể. Với mỗi quốc gia, Omniscol cung cấp một **danh mục môn học chung** (có khi vài trăm, có khi vài nghìn môn tùy theo cách phân loại chính thức), được điền sẵn ở cấp tài khoản. Nếu thiếu một môn học, bạn tạo một **môn học tùy chỉnh** trong Tạo mới. #### Cách gọi ở bậc đại học Cách phân loại chương trình đào tạo ở bậc đại học Việt Nam dùng nhiều cấp gộp khác nhau: - **khối kiến thức** — nhóm các học phần hoặc mô-đun, - **học phần** — đơn vị nhỏ hơn nằm trong một khối kiến thức, tính bằng tín chỉ, - **thành tố** — phần còn nhỏ hơn nữa của một học phần, - **mô-đun** — cách gọi chung trong đào tạo thường xuyên. Tất cả các cấp này đều quy về một thực thể duy nhất của Omniscol: “môn học”. Nếu bạn cần thể hiện chính cấu trúc phân cấp đó (khối kiến thức → học phần → thành tố), hãy dùng một quy ước đặt tên (chẳng hạn thêm tiền tố vào mã: `KT3-HP2-TT1 Đại số tuyến tính`) hoặc dùng [nhóm môn học](#page-admin.subjects). #### Môn học được sao chép vào thời khóa biểu Khi bạn gán một môn học cho một lớp trong một thời khóa biểu, Omniscol tạo một **bản sao cục bộ** của môn học đó trong cấu trúc của thời khóa biểu. Đây là lựa chọn có chủ đích: nếu sau này bạn xóa hoặc đổi tên môn học ở cấp trường, các thời khóa biểu hiện có vẫn giữ nguyên phiên bản đã lưu trong đó. Vì vậy, hãy **viết đúng chính tả** tên các môn học tùy chỉnh trước khi dùng chúng trong thời khóa biểu — sửa lại về sau sẽ không lan sang những thời khóa biểu đã cấu hình xong. #### Loại tiết học đi kèm Khi gán một môn học cho một lớp, bạn có thể nêu rõ một **[loại tiết học](#page-glossary.lesson-type)** (bài tập, thực hành, kiểm tra, lý thuyết…). Cặp `(môn học, loại)` tạo thành một mã định danh độc lập: chẳng hạn “Toán” và “Toán — Bài tập” là hai mục riêng biệt trong cấu trúc của thời khóa biểu. #### Chuyên ngành phòng học bắt buộc Một môn học có thể **yêu cầu một chuyên ngành phòng học** (hóa học → phòng thí nghiệm hóa học, thể dục → nhà thi đấu). Việc tạo tự động tuân thủ nghiêm ngặt ràng buộc này. Xem [chuyên ngành phòng học](#page-glossary.classroom-specialization). #### Trọng số sư phạm Bạn có thể đặt một **trọng số sư phạm** cho một môn học trong một lớp: khi đó việc tạo tự động sẽ tìm cách phân bổ đều môn học ấy trên các ngày trong tuần thay vì dồn tất cả vào một chỗ. #### Xem thêm - [Khóa học](#page-glossary.course) - [Loại tiết học](#page-glossary.lesson-type) - [Tiết học / Giờ học](#page-glossary.lesson) - [Quản lý môn học](#page-admin.subjects) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) ### Năm học *Source: `help/vi/glossary/school-year.md` · id: glossary.school-year · Updated: 2026-05-10* *Also known as : niên khóa · năm đào tạo · niên học* **Năm học** trong Omniscol là khoảng thời gian tham chiếu để công bố thời khóa biểu. Đây là một đối tượng được khai báo ở cấp nhà trường, trong màn hình Năm học. #### Vì sao đây là điều bắt buộc Bạn phải khai báo ít nhất **một** năm học thì mới công bố được thời khóa biểu. Năm học cụ thể hóa **dải thời gian**: sau đó, bạn kích hoạt thời khóa biểu trên từng khoảng nhất định của dải này. #### Quy ước đặt tên Để phần hiển thị gọn gàng, hãy đặt tên năm học theo mốc thời gian: “2025-2026” thay vì “Năm hiện tại”. Nhờ vậy bạn giữ được lịch sử các năm đã qua và chuẩn bị song song cho năm tiếp theo. #### Ngày nghỉ lễ Bạn có thể khai báo ngày nghỉ lễ của năm học: - **bằng cách sao chép và dán** một bảng (từ Excel, Numbers, v.v.), - **bằng cách nhập tự động** các ngày đã điền sẵn cho quốc gia của bạn (được đề xuất khi tạo năm học, nếu cơ sở dữ liệu có sẵn dữ liệu này), - **bằng cách nhập thủ công** từng giai đoạn. Ngày nghỉ lễ được gỡ khỏi dải thời gian — thời khóa biểu đã công bố không áp dụng cho những ngày đó. #### Dịch nhịp luân phiên Nếu trường bạn dùng [tuần luân phiên](#page-glossary.alternate-lessons) (A/B), ngày nghỉ lễ có thể làm lệch nhịp luân phiên. Bạn có thể tạo một **điểm dịch ảo** để xử lý các trường hợp này (nhấn vào các tuần liên quan trên dải thời gian). #### Nhiều năm học song song Vào bất kỳ lúc nào, bạn cũng có thể có nhiều năm học cùng được khai báo: năm đang diễn ra, năm trước đó (để tra cứu lịch sử) và năm tiếp theo đang chuẩn bị. Nút Năm học sau (▶︎) trên dải thời gian dùng để chuyển qua lại giữa các năm. **Năm học hiện tại** được thiết lập ở thông số Năm học hiện tại. Chính năm học này quyết định những gì người dùng nhìn thấy theo mặc định. #### Xem thêm - [Tiết học luân phiên / tuần A-B](#page-glossary.alternate-lessons) - [Quản lý một năm học](#page-admin.school-year) - [Chuẩn bị cho năm học tiếp theo](#page-timetables.next-school-year) ### Ngày nghỉ lễ *Source: `help/vi/glossary/holidays.md` · id: glossary.holidays · Updated: 2026-06-26* *Also known as : ngày lễ · kỳ nghỉ của trường* **Ngày nghỉ lễ** là những giai đoạn nhà trường đóng cửa, gắn với một [năm học](#page-glossary.school-year): kỳ nghỉ của trường, ngày nghỉ bù và ngày lễ chính thức. Mỗi giai đoạn có một tên, một ngày bắt đầu và một ngày kết thúc. Khi tạo một năm học, Omniscol có thể đề xuất nhập các ngày nghỉ lễ chung của quốc gia đã cấu hình, nếu có sẵn dữ liệu cho khoảng thời gian bạn chọn. Sau đó, danh sách được bổ sung và điều chỉnh bằng tay. #### Ảnh hưởng đến thời khóa biểu Ảnh hưởng của một đợt nghỉ lễ phụ thuộc vào loại thời khóa biểu: - **Thời khóa biểu lặp lại (hằng tuần hoặc theo chu kỳ)**: khi công bố, ngày nghỉ lễ sẽ hủy các tiết học của những ngày liên quan — các tiết học lặp lại không diễn ra vào những ngày đó và phần thống kê có tính đến điều này. - **Thời khóa biểu theo lịch**: một tiết học vẫn có thể được đặt vào một ngày nghỉ lễ, nhưng điều đó tạo ra lỗi tương thích; khi ấy chức năng tạo tự động có quyền xếp lại tiết học này nếu nó chưa bị khóa. Ngày nghỉ lễ mô tả việc đóng cửa **toàn trường**. Để vô hiệu hóa một giai đoạn trên quy mô hẹp hơn: - một [trường hợp vắng mặt của lớp](#page-absences.class-and-student-absences) gỡ các tiết học của một lớp khỏi phần hiển thị trong một khoảng thời gian nhất định; - với thời khóa biểu theo lịch, [cửa sổ ngày](#page-glossary.date-windows) giới hạn khoảng thời gian hoạt động của một khóa học cụ thể. #### Cấu hình ở đâu Ngày nghỉ lễ được quản lý theo từng năm học, trong màn hình [năm học](#page-admin.school-year), theo từng mục một hoặc dưới dạng bảng. #### Xem thêm - [Năm học](#page-glossary.school-year) - [Cửa sổ ngày](#page-glossary.date-windows) - [Năm học](#page-admin.school-year) ### Ngoài khung giờ *Source: `help/vi/glossary/off-grid.md` · id: glossary.off-grid · Plan: premium · Updated: 2026-08-24* > **Premium** *Also known as : lớp ngoài khung giờ · tiết học ngoài khung giờ · giờ học tự do* > _Premium_ Khi bật chế độ **ngoài khung giờ** cho một lớp, mọi tiết học của lớp đó đều độc lập với lưới thời gian của các cơ sở: giờ bắt đầu và giờ kết thúc được đặt tự do. Omniscol chỉ giữ lại một bước thời gian (10, 15, 20, 30 hoặc 60 phút) để việc sắp xếp các tiết học dễ dàng hơn. Chế độ này phù hợp với các chương trình đào tạo thường xuyên hoặc các lộ trình học song song dùng chung cơ sở vật chất mà không theo lưới thời gian chung. ### Nhiều phòng học (một tiết học trong nhiều phòng) *Source: `help/vi/glossary/multi-room.md` · id: glossary.multi-room · Updated: 2026-06-13* *Also known as : vài phòng học · tách phòng · chia phòng · thi nhiều phòng* Omniscol cho phép gán **nhiều phòng học** cho cùng một tiết học. Tính năng này khả dụng trên **mọi loại thời khóa biểu**: [theo tuần](#page-glossary.weekly-timetable), [theo chu kỳ](#page-glossary.cyclic-timetable) và [lịch](#page-glossary.calendar-mode). #### Những tình huống thường gặp - **Kỳ thi chia ra nhiều giảng đường** — một kỳ thi 200 thí sinh chia vào ba giảng đường (sức chứa 70 + 60 + 80) với một người phụ trách duy nhất. Sức chứa được tính bằng tổng sức chứa của các phòng học đã gán. - **Bài giảng truyền trực tiếp** — một bài giảng tại giảng đường chính, được truyền trực tiếp qua hội nghị truyền hình sang một phòng học vệ tinh (ví dụ ở một cơ sở khác, thậm chí cho cả một khóa hoàn toàn học từ xa). - **Tiết thực hành tách phòng mà không tách nhóm** — khi một tiết thực hành 30 học sinh không đủ chỗ trong bất kỳ phòng máy tính đơn lẻ nào, nhưng cùng một giáo viên có thể giám sát đồng thời ở hai phòng học liền kề (15 + 15). #### Tổng sức chứa = tổng của các phòng học Khi bạn gán nhiều phòng học cho một tiết học, Omniscol cộng sức chứa của chúng lại để kiểm tra xem nhóm có đủ chỗ không. Sẽ không còn cảnh báo vượt sức chứa sai chừng nào tổng đó còn đủ. > **Mẹo.** Nếu bạn thấy các cảnh báo vượt sức chứa biến mất sau khi thêm > phòng học thứ hai, đó đúng là hành vi mong đợi: tổng sức chứa giờ đã > đủ cho sĩ số. #### Giới hạn cần biết Nếu tổng sức chứa vẫn **nhỏ hơn** sĩ số của nhóm, Omniscol luôn hiển thị một lỗi tương thích — quản trị viên là người quyết định cách xử lý (thêm một phòng học, giảm sĩ số nhóm, hoặc chấp nhận lỗi tương thích nếu đó là chủ ý, ví dụ khi biết chắc không phải ai đã đăng ký cũng sẽ đến). #### Xem thêm - [Phòng học](#page-glossary.classroom) - [Kỳ thi nhiều phòng trong giáo dục đại học](#page-higher-ed.multi-room-exams) - [Cơ sở](#page-glossary.site) ### Nhóm *Source: `help/vi/glossary/group.md` · id: glossary.group · Updated: 2026-05-10* *Also known as : nhóm con · nửa lớp · nhóm môn tự chọn · nhóm thực hành a · nhóm thực hành b* Trong Omniscol, một **nhóm** là một **phần chia nhỏ của một lớp**. Mọi học sinh trong một nhóm đều đồng thời là học sinh của lớp chứa nhóm đó. Bạn tạo một nhóm mỗi khi một bộ phận học sinh trong lớp phải học một nội dung khác với phần còn lại của lớp — dù chỉ tạm thời, chỉ cho một tiết học duy nhất. Ví dụ: - nửa nhóm thực hành (“Thực hành A”, “Thực hành B”), - nhóm môn tự chọn (“Chuyên đề Vật lí”, “Chuyên đề Hóa học”, “Ngoại ngữ 2 tiếng Nhật”, “Ngoại ngữ 2 tiếng Hàn”), - nhóm theo trình độ (“Tiếng Anh nâng cao”, “Tiếng Anh cơ bản”). #### Khuyến nghị quan trọng: mỗi khóa học/môn học một nhóm riêng Ngay cả khi nhóm “Chuyên đề Vật lí” và nhóm “Chuyên đề Hóa học” của một lớp trên thực tế gồm cùng những học sinh như nhau, **hãy tạo hai nhóm riêng biệt**. Nếu không, các [căn chỉnh nhóm](#page-glossary.alignment) với những lớp khác sẽ trở nên mập mờ và các lỗi tương thích sẽ khó chẩn đoán. Ngược lại: không cần tạo một nhóm “Cả lớp”. Khi một tiết học dành cho toàn bộ lớp, bạn không gắn nhóm nào cả — tiết học được phân công thẳng cho lớp. #### Sĩ số dự kiến Hãy nhập số học sinh dự kiến của nhóm. Đây là trường không bắt buộc nhưng nên điền: [công cụ tạo tự động](#page-glossary.solver) dùng nó để chọn [phòng học](#page-glossary.classroom) có sức chứa phù hợp. #### Để gom học sinh từ nhiều lớp khác nhau Khái niệm nhóm dừng lại ở ranh giới của một lớp. Để gom những học sinh học “Chuyên đề Vật lí” ở các lớp 10A1, 10A2 và 10A3 vốn học chung với nhau: - hãy tạo một nhóm “Chuyên đề Vật lí” ở mỗi lớp trong ba lớp đó, - rồi tạo một [căn chỉnh nhóm](#page-glossary.alignment) liên kết cả ba nhóm lại. Bạn cũng có thể dùng một [nhóm của nhóm](#page-glossary.groups-of-groups), linh hoạt hơn khi chỉnh sửa nếu cách gom nhóm còn phải thay đổi về sau. #### Nhóm tự do Với những trường hợp ghi danh mở (xưởng thực hành buổi tối, môn tự chọn không bị ràng buộc theo lớp), hãy xem khái niệm [nhóm tự do](#page-glossary.free-group) — thành phần nhóm không được ấn định trước, học sinh có thể tham gia hoặc rời đi mà không sinh ra lỗi tương thích. Đây là trường hợp **ngoại lệ** (một nhóm con vệ tinh bán tự chủ): nếu chỉ cần **gom hoặc ghép các nhóm sẵn có** vào một tiết học chung, hãy dùng nhóm của nhóm, chứ không phải nhóm tự do. #### Xem thêm - [Lớp](#page-glossary.class) - [Phân vùng lớp](#page-glossary.class-division) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Nhóm của nhóm](#page-glossary.groups-of-groups) - [Nhóm tự do](#page-glossary.free-group) ### Nhóm của nhóm *Source: `help/vi/glossary/groups-of-groups.md` · id: glossary.groups-of-groups · Updated: 2026-05-10* *Also known as : siêu nhóm · gom nhóm* **Nhóm của nhóm** là cách gom nhiều [nhóm](#page-glossary.group) đến từ cùng một lớp hoặc từ nhiều lớp khác nhau, linh hoạt hơn so với [căn chỉnh nhóm](#page-glossary.alignment). Có sẵn trong Omniscol như một cơ chế gom nhóm cơ bản. #### Khác biệt cốt lõi so với căn chỉnh nhóm Căn chỉnh nhóm **được cố định ngay khi tạo**: danh sách các nhóm được căn chỉnh là bất biến, và muốn bỏ căn chỉnh thì bạn phải nhân bản nhóm. Ngược lại, nhóm của nhóm **có thể chỉnh sửa về sau**. Bạn có thể thêm hoặc bớt nhóm mà không phải tạo lại toàn bộ cấu trúc. Chính điều đó khiến nó rất có giá trị ở bậc đại học, nơi thành phần của các lần gom nhóm thường thay đổi trong suốt năm học (một chương trình đào tạo mới tham gia vào một khóa học chung, một nhóm con tách ra làm dự án). #### Khi nào nên dùng - Khóa học dùng chung cho nhiều chương trình đào tạo (trường kỹ thuật hoặc trường kinh doanh), - Các bài giảng chung liên khóa, hội thảo chuyên đề liên lớp, - Khóa học thuộc khối kiến thức chung trong đào tạo thường xuyên, - Các hoạt động giáo dục mở (tham quan, diễn giả bên ngoài). Một tiết học được gán cho nhóm của nhóm sẽ hiển thị (và chỉnh sửa được) từ từng lớp cha của các nhóm thành viên. #### Điểm đặc thù Nhóm của nhóm đặc biệt hữu ích khi thành phần người học thay đổi trong suốt năm học, hoặc khi bạn muốn tránh những ràng buộc đối xứng của một căn chỉnh nhóm. #### Xem thêm - [Căn chỉnh nhóm](#page-glossary.alignment) - [Khóa học dùng chung](#page-glossary.transverse-course) - [Chế độ lịch](#page-glossary.calendar-mode) - [Nhóm của nhóm](#page-core-concepts.groups-of-groups) ### Nhóm tự do *Source: `help/vi/glossary/free-group.md` · id: glossary.free-group · Updated: 2026-06-13* *Also known as : nhóm vệ tinh · nhóm bán tự chủ · nhóm mở · nhóm ghi danh mở* Một **nhóm tự do** là một **nhóm làm việc bán tự chủ**: một phần của lớp làm việc tự chủ, thường **trong cùng phòng học và với cùng giáo viên** của tiết học chính, song song với tiết học đó — một dạng **nhóm vệ tinh** của tiết học. Người lập thời khóa biểu muốn **cho nó hiện ra trên thời khóa biểu** mà không phải dựng thêm một phân vùng nhóm chính thức để đối ứng. Chữ **tự do** bắt nguồn từ đó: vì nhóm con này dùng chung phòng học và giáo viên của tiết học mà nó tách ra, một [nhóm](#page-glossary.group) thông thường (kể cả khi nằm trong một phân vùng) sẽ gây ra **lỗi tương thích về phòng học và giáo viên**. Nhóm tự do là **quân bài vạn năng** giúp **vô hiệu hóa mọi lỗi tương thích** — dù là với phần còn lại của lớp, với giáo viên hay với phòng học. Vì vậy nó cùng tồn tại với tiết học gốc của mình. Nhu cầu này thường gặp ở các **trường nghệ thuật** và các **chương trình đào tạo công tác xã hội**, nơi một phần thời gian diễn ra dưới dạng **làm việc tự chủ có giám sát**: một nhóm con tiếp tục dự án của mình ở một góc phòng trong khi phần còn lại của lớp vẫn theo tiết học chính. Rộng hơn, nhóm tự do mô hình hóa mọi nhóm có thành phần **không cố định**, mà không sinh ra lỗi tương thích. #### Khác biệt với nhóm thông thường Một nhóm thông thường được công cụ tạo tự động tính đến: nó kiểm tra rằng học sinh của nhóm không bị đặt trùng (hai tiết học cùng một lúc) và rằng **phòng học** cũng như **giáo viên** của nhóm đều còn trống. Đó chính là điều sẽ chặn nhóm vệ tinh: phòng học và giáo viên của tiết học chính đều đã bận. Nhóm tự do **gỡ bỏ những kiểm tra đó**. Nhờ vậy tiết học của nhóm có thể dùng chung phòng học và giáo viên với tiết học mà nó tách ra; và một học sinh có thể thuộc nhiều nhóm tự do chồng lấn nhau mà không có cảnh báo nào bật lên. #### Trên thực tế: đặt thủ công Việc tạo tự động **có hỗ trợ** nhóm tự do, nhưng **không nên** dùng nó cho trường hợp này: hãy **đặt và khóa bằng tay** tiết học chính cùng tiết học vệ tinh của nó vào khung giờ mong muốn. Công cụ tạo tự động không biết đâu là tiết học chính và đâu là tiết học vệ tinh — nếu bạn phó mặc cho nó, hai tiết học có thể rơi vào bất kỳ đâu. Vì tính chất rất riêng biệt và ít gặp của mình, nhóm tự do thuộc diện **thao tác thủ công**. #### Cách tạo Khi tạo nhóm, hãy tích vào tùy chọn “nhóm tự do” trên Thêm nhóm. Về mặt hiển thị, các nhóm này được đánh dấu trong giao diện để không bị nhầm với nhóm có ràng buộc. > _Premium_ Nhóm tự do là một chức năng của các tài khoản Premium. #### Xem thêm - [Nhóm](#page-glossary.group) - [Nhóm tự do](#page-core-concepts.free-groups) ### Phạm vi lập kế hoạch *Source: `help/vi/glossary/planning-domain.md` · id: glossary.planning-domain · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Vai trò tùy chỉnh** *Also known as : vùng dữ liệu lập kế hoạch* Một **phạm vi lập kế hoạch** gán cho một quản trị viên một **vùng dữ liệu** — phần dữ liệu người đó quản lý — và các **quyền** — những thao tác người đó được thực hiện trên vùng dữ liệu ấy. Trên một tài khoản gom nhiều [đơn vị](#page-glossary.campus), nhiều ngành đào tạo hay nhiều trường vào cùng một [thời khóa biểu](#page-glossary.timetable), mỗi người lập thời khóa biểu nhờ vậy chỉ làm việc trên phần của mình. Chừng nào một quản trị viên chưa có phạm vi nào, người đó vẫn giữ quyền truy cập đầy đủ vào tài khoản. #### Vùng dữ liệu Vùng dữ liệu được mô tả theo các chiều, từ rộng nhất đến chi tiết nhất: một bên là các đơn vị và các [môn học](#page-glossary.subject), bên kia là thời khóa biểu cùng các [cơ sở](#page-glossary.site) và các [phòng học](#page-glossary.classroom) của chúng, các [lớp](#page-glossary.class) và các [nhóm](#page-glossary.group) của chúng. Mỗi chiều được thu hẹp bằng một tiêu chí — đúng giá trị, tiền tố, giá trị có mặt trong tên gọi, ngưỡng số — và một [tiết học](#page-glossary.lesson) nằm trong vùng dữ liệu khi nó thỏa mãn tất cả các chiều đang bị ràng buộc. #### Các quyền Các quyền nói lên người lập thời khóa biểu làm được gì với vùng dữ liệu của mình: tạo, chỉnh sửa hay xóa các thực thể và các tiết học, và ở mức chỉnh sửa chi tiết là vị trí trên lưới thời gian, giáo viên, phòng học, hình thức, liên kết hội nghị truyền hình, trạng thái, khoảng thời gian, nhận xét và việc tạo tự động. Nguyên tắc ở đây là trừ dần: mặc định mọi quyền đều được cấp, bạn bỏ đánh dấu những gì phạm vi không cho phép. Còn quyền xem thì luôn mở: một phạm vi giới hạn những gì được ghi, chứ không bao giờ giới hạn những gì được thấy. #### Phạm vi hay vai trò tùy chỉnh Một [vai trò tùy chỉnh](#page-admin.customroles) quyết định một quản trị viên thực hiện **những thao tác nào** — trên mô-đun nào, ở mức xem, chỉnh sửa hay xóa. Một phạm vi quyết định người đó tác động **trên dữ liệu nào**. Bạn có thể gán cả hai cho cùng một người, và chúng bổ sung cho nhau. #### Nhiều phạm vi Một quản trị viên có thể nhận nhiều phạm vi, mỗi phạm vi có vùng dữ liệu và các quyền riêng. Chúng cộng lại chứ không hòa vào nhau: một thao tác được cho phép ngay khi có một phạm vi bao hàm nó. #### Xem thêm - [Phạm vi](#page-admin.planning-domains) - [Vai trò tùy chỉnh](#page-admin.customroles) - [Đơn vị](#page-glossary.campus) - [Cơ sở](#page-glossary.site) ### Phân vùng lớp *Source: `help/vi/glossary/class-division.md` · id: glossary.class-division · Updated: 2026-05-10* *Also known as : phân vùng nhóm · phân chia lớp* Một **phân vùng** gom nhiều [nhóm](#page-glossary.group) của **cùng một lớp** buộc phải **dùng chung cùng một khung giờ**. Cụ thể: không thể nhân đôi học sinh (cùng một học sinh không thể có mặt ở hai nơi cùng một lúc), nên nếu hai nửa nhóm Thực hành A và Thực hành B của bạn phải làm hai bài thực hành khác nhau cùng lúc, công cụ tạo tự động cần biết rằng chúng tạo thành một phân vùng. Khi đó nó biết cách: - xếp hai tiết thực hành vào cùng một khung giờ, - với hai phòng học khác nhau, - với hai giáo viên khác nhau, - mà không phát sinh cảnh báo lỗi tương thích. #### Khi nào cần tạo một phân vùng Mỗi khi cùng một khung giờ phải chứa những tiết học khác nhau dành cho các tập con rời nhau của một lớp: - nửa nhóm thực hành (Thực hành A / Thực hành B, nửa lớp Toán / nửa lớp Ngữ văn, v.v.), - nhóm ngoại ngữ (Ngoại ngữ 2 tiếng Nhật / tiếng Hàn), - môn tự chọn loại trừ nhau (Âm nhạc / Mỹ thuật), - nửa nhóm tin học (vì phòng máy tính chỉ có 15 máy). Tiêu chí hợp lệ: **không học sinh nào được thuộc về hai nhóm trong cùng một phân vùng**. Nếu không thì đó là một căn chỉnh nhóm chứ không phải một phân vùng (mà dù sao điều đó cũng không khả thi khi các nhóm thuộc cùng một lớp). #### Cách tạo một phân vùng Trên trang [các nhóm của một lớp](#page-core-concepts.classes-and-groups), hãy chọn các nhóm liên quan rồi nhấn vào Thêm phân vùng. Nhiều phân vùng có thể cùng tồn tại trong một lớp (một cho các tiết thí nghiệm khoa học, một cho ngoại ngữ, một cho các môn tự chọn nghệ thuật). #### Khác biệt với căn chỉnh nhóm Một **phân vùng** = các nhóm của **một lớp duy nhất** phải nằm ở cùng một khung giờ. Một [**căn chỉnh nhóm**](#page-glossary.alignment) = các nhóm thuộc **các lớp khác nhau** phải nằm ở cùng một khung giờ, **với cùng một giáo viên và cùng một phòng học**. #### Xem thêm - [Nhóm](#page-glossary.group) - [Căn chỉnh nhóm](#page-glossary.alignment) - [Trang đầy đủ về phân vùng](#page-core-concepts.class-divisions) ### Phòng học *Source: `help/vi/glossary/classroom.md` · id: glossary.classroom · Updated: 2026-06-13* *Also known as : phòng dạy học · giảng đường · room · phòng học dành riêng* **Phòng học** trong Omniscol là một phòng vật lý nơi có thể diễn ra một tiết học. Mỗi phòng học đều gắn với một [cơ sở](#page-glossary.site). Một phòng học mang: - một **tên** (“A102”, “Giảng đường Newton”, “Phòng thí nghiệm Hóa 3”), - một **sức chứa** (số học sinh có thể tiếp nhận; trường thông tin then chốt đối với công cụ tạo tự động), - có thể có một Số lớp tối đa khi đó là một **[phòng lớn](#page-glossary.large-room)** có khả năng chứa nhiều tiết học cùng lúc (phòng thi, hội trường, nhà thi đấu, bể bơi, khu vực ngoài trời), - có thể có một **[chuyên ngành](#page-glossary.classroom-specialization)** (hóa học, tin học, thể dục, đa phương tiện, v.v. — mỗi phòng học chỉ một nhãn), - có thể có các **thẻ** hoặc ghi chú tự do (bảng lật, máy chiếu cố định, ổ điện cho học sinh, v.v.), - có thể có một **tòa nhà**, - **giờ mở cửa** (hữu ích với những phòng học dùng chung với một trường khác, hoặc những phòng học chỉ mở vào một số ngày nhất định). #### Phân công phòng học cho tiết học Một tiết học có thể dùng một hoặc [nhiều phòng học](#page-glossary.multi-room). Khi bạn phân công phòng học thủ công, Omniscol: - **lọc trước** những phòng học không phù hợp (sai chuyên ngành, không đủ sức chứa, không khả dụng, sai cơ sở) bằng cách hiển thị chúng ở dạng mờ, - **sắp xếp** các phòng học phù hợp theo mức độ thích hợp (số sao: mức lấp đầy tối ưu, v.v.), - vẫn cho phép bạn áp đặt một phân công không nhất quán, nhưng đưa ra cảnh báo. #### Sức chứa và cách xác định Sức chứa là một trường thông tin then chốt. Nếu còn phân vân mà bạn chắc chắn phòng học sẽ đủ rộng, hãy nhập một con số lớn. Nếu khai báo thiếu, công cụ tạo tự động sẽ loại bỏ những phương án vốn hợp lệ, hoặc đưa ra cảnh báo. #### Phòng lớn: nhiều tiết học cùng lúc Trường **Số lớp tối đa** biến một phòng học thành **[phòng lớn](#page-glossary.large-room)**: phòng đó có thể chứa nhiều tiết học khác nhau vào cùng một thời điểm (với giáo viên và nhóm riêng biệt), trong giới hạn của con số này và của tổng sức chứa — điển hình là phòng thi, hội trường, nhà thi đấu, bể bơi hay một khu vực ngoài trời. Thiết lập này chỉ xuất hiện trên phòng học đã có **[chuyên ngành](#page-glossary.classroom-specialization)**. Nếu để trống, phòng học chỉ chứa một tiết học tại một thời điểm. #### Chuyên ngành **Chuyên ngành** (hóa học, tin học, thể dục, đa phương tiện, phòng tự học có giám thị…) là một nhãn tự do, mỗi phòng học chỉ một nhãn. Nhãn này sau đó dùng để nêu rõ, khi gán một môn học cho một lớp, rằng bắt buộc phải dùng một phòng học mang đúng nhãn đó. Công cụ tạo tự động tuân thủ nghiêm ngặt ràng buộc này. #### Phòng học dành riêng cho một lớp Nhiều trường tiểu học và trung học gắn cho mỗi lớp một phòng học riêng (các tiết học mặc định diễn ra ở đó, chỉ giáo viên phải di chuyển). Bạn có thể cấu hình điều này trên lớp (xem [tạo lớp](#page-timetables.creating-classes)). #### Phòng học trong hai cơ sở ảo Nếu bạn đã tạo hai [cơ sở](#page-glossary.site) ảo cho cùng một địa điểm vật lý (điển hình là một trường trung học cơ sở và một trường trung học phổ thông dùng chung một khu trường học), một phòng học chỉ có thể thuộc về một trong hai cơ sở tại một thời điểm. Để dùng được phòng đó ở cả phía trung học cơ sở **và** phía trung học phổ thông, hãy tạo bản sao của phòng trong cả hai cơ sở và **khai báo giờ mở cửa không chồng lấn nhau**. Omniscol không phân biệt được một phòng học dùng chung giữa hai cơ sở với hai phòng học trùng tên: hệ thống không tự đối chiếu hai mục này, và bạn là người phải tránh việc đặt trùng phòng vật lý ngoài thực tế. #### Xem thêm - [Cơ sở](#page-glossary.site) - [Đơn vị](#page-glossary.campus) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) - [Nhiều phòng học](#page-glossary.multi-room) - [Phòng lớn](#page-glossary.large-room) - [Tài nguyên](#page-glossary.resource) ### Phòng lớn (nhiều tiết học cùng lúc) *Source: `help/vi/glossary/large-room.md` · id: glossary.large-room · Updated: 2026-06-25* *Also known as : số lớp tối đa · phòng thi · nhà hát · nhà thi đấu · bể bơi · ngoài trời* **Phòng lớn** là một [phòng học](#page-glossary.classroom) có thể chứa **nhiều tiết học khác nhau vào cùng một thời điểm**, với những giáo viên khác nhau và những nhóm không có liên hệ gì với nhau. Bạn khai báo bằng cách điền trường **Số lớp tối đa** trên phòng học: con số này ấn định bao nhiêu tiết học riêng biệt được phép diễn ra song song tại đó. Ví dụ điển hình: một **phòng thi**, một **sảnh lớn**, một **khu vực ngoài trời** (sân trường, nhà hát, sân thể thao, bảo tàng...), một **nhà thi đấu**, một **bể bơi** — đều là những nơi có nhiều hoạt động độc lập cùng diễn ra. #### Chỉ dành cho phòng học có chuyên ngành Trường Số lớp tối đa chỉ xuất hiện trên phòng học đã có **[chuyên ngành](#page-glossary.classroom-specialization)**. Vì vậy trước tiên bạn phải gán chuyên ngành cho phòng học (thể thao, thi cử, bể bơi, ngoài trời…), rồi mới nhập số lớp tối đa cùng lúc. Điều này hợp lý: một phòng lớn dùng chung bao giờ cũng là không gian chuyên biệt cho một hoạt động nhất định, nên chuyên ngành đồng thời còn giúp hướng đúng những môn học vào đó. #### Cách Omniscol sử dụng thông tin này Ở mỗi khung giờ, [công cụ tạo tự động](#page-glossary.solver) và cơ chế phát hiện lỗi tương thích chấp nhận xếp vào phòng học số tiết học tối đa mà Số lớp tối đa cho phép, miễn là tổng sĩ số của chúng vẫn nằm trong **[sức chứa](#page-glossary.classroom)** của phòng học. Vượt quá một trong hai ngưỡng này — quá nhiều tiết học song song, hoặc vượt sức chứa — Omniscol báo một lỗi tương thích. Nếu để trống Số lớp tối đa, phòng học sẽ hoạt động như một phòng học thông thường: mỗi lần chỉ một tiết học. #### Phòng lớn hay nhiều phòng học? Hai khái niệm này cùng xoay quanh cặp phòng học ↔ tiết học, nhưng theo hai chiều ngược nhau: - một **phòng lớn** gom **nhiều tiết học vào cùng một phòng học**; - ngược lại, một tiết học được gán **[nhiều phòng học](#page-glossary.multi-room)** thì chiếm **nhiều phòng học cho cùng một tiết học** (khi đó sức chứa là tổng của những phòng học được phân công). #### Xem thêm - [Phòng học](#page-glossary.classroom) - [Chuyên ngành phòng học](#page-glossary.classroom-specialization) - [Nhiều phòng học](#page-glossary.multi-room) - [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) ### Quản lý nhân sự *Source: `help/vi/glossary/staffing.md` · id: glossary.staffing · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Quản lý nhân sự** *Also known as : lịch trực · lưới trực ban · lưới giám sát* Mô-đun **Quản lý nhân sự** xếp lịch **nhân sự theo nhiệm vụ** thay vì theo tiết học. Ban đầu mô-đun được thiết kế cho công tác quản sinh: các đội giám thị, cán bộ phụ trách nề nếp, nhân viên trực ban và những vị trí tương đương, trong suốt cả ngày bao quát sân trường, khu tiếp đón, hành lang, thư viện, nhà ăn, hoạt động thể dục ngoài trời, phòng tự học, v.v. Mô-đun này còn quản lý: - việc **coi thi** (các kỳ kiểm tra giữa kỳ, kỳ thi tốt nghiệp, kỳ thi tuyển sinh), - các **nhiệm vụ phụ trách không thường xuyên** (tham quan, dã ngoại, họp đánh giá kết quả của lớp), - các **phương pháp giáo dục tích cực** (Montessori), trong đó giáo viên được xếp lịch theo hoạt động thay vì theo tiết học. #### Mô hình dữ liệu - **Nhiệm vụ** = nhu cầu cần đáp ứng, xác định bằng địa điểm + khung giờ + số người + danh sách nhân viên được phép (nếu có). - **Lưới** = tập hợp các nhiệm vụ trong một khoảng ngày nhất định, thường có độ chi tiết đến từng 15 phút. - **Phân công** = gắn một thành viên nhân sự vào một ô của lưới. - **Bảng phân công** = bảng liệt kê nhiệm vụ theo từng người. #### Độc lập với các tiết học Quản lý nhân sự có thể được dùng: - **bổ sung** cho thời khóa biểu giảng dạy (nhiệm vụ trực ban được xếp thêm bên cạnh các tiết học trong cùng một tài khoản); - như một **sản phẩm độc lập**, không cần quản lý thời khóa biểu giảng dạy. #### Vai trò Nhân viên Vai trò **Nhân viên** được thiết kế cho đội ngũ quản sinh (cán bộ phụ trách nề nếp, giám thị, nhân viên trực ban, nhân viên bảo vệ): truy cập Quản lý nhân sự, các lần vắng mặt của chính mình và lịch làm việc cá nhân; không có quyền vào phần cấu hình chung. Vai trò này có thể kết hợp với vai trò Giáo viên khi cùng một người vừa giảng dạy vừa được xếp lịch trong Quản lý nhân sự. Xem [Người dùng và vai trò](#page-admin.users-and-roles). #### Xem thêm - [Tổng quan về mô-đun Quản lý nhân sự](#page-staffing.overview) - [Xây dựng lưới trực ban](#page-staffing.building-grids) - [Xác định các nhiệm vụ cần đảm nhận](#page-staffing.assignments) - [Phân công nhân viên](#page-staffing.planner) - [Bảng phân công](#page-staffing.roster) ### Tài nguyên *Source: `help/vi/glossary/resource.md` · id: glossary.resource · Updated: 2026-05-10* *Also known as : thiết bị di động · máy chiếu · va li · bộ dụng cụ* **Tài nguyên** trong Omniscol là một thiết bị **di động**, không gắn với một phòng học cụ thể nào. Mỗi tài nguyên mang một **tên** và một **số lượng khả dụng**. Ví dụ: ba máy chiếu xách tay, một va li chứa 30 máy tính bảng (va li tính là 1 chứ không phải 30 — bạn nhập số va li chứ không phải số máy tính bảng), một bộ micro, một bộ mô hình người thực hành sơ cứu. #### Tài nguyên được dùng thế nào Khi cấu hình một khóa học, bạn chỉ định những tài nguyên mà khóa học đó cần đến. Công cụ tạo tự động bảo đảm rằng **các tiết học diễn ra cùng lúc không đòi hỏi nhiều tài nguyên hơn số hiện có**: nếu bạn có 3 máy chiếu xách tay thì không bao giờ có quá 3 tiết học cùng lúc mà mỗi tiết đều cần một chiếc. #### Khác biệt với phòng học Một [phòng học](#page-glossary.classroom) gắn với một [cơ sở](#page-glossary.site) và không rời khỏi đó. Tài nguyên thì không gắn với phòng học nào (nhưng vẫn thuộc về một cơ sở, nên không thể dùng va li của cơ sở A cho một khóa học ở cơ sở B). #### Những trường hợp thường không cần khai báo tài nguyên Nhiều khóa học không khai báo tài nguyên nào — đó là mặc định. Chỉ khai báo một tài nguyên khi nó thực sự là **một giới hạn có thật**: nếu bạn có 30 máy chiếu xách tay mà nhiều nhất chỉ 4 tiết học diễn ra cùng lúc thì không cần mô hình hóa; nếu bạn chỉ có 3 chiếc và nhiều tiết học cùng cần đến chúng, bạn sẽ muốn công cụ tạo tự động đứng ra điều phối. #### Xem thêm - [Cơ sở](#page-glossary.site) - [Phòng học](#page-glossary.classroom) ### Thay thế / dạy thay *Source: `help/vi/glossary/substitution.md` · id: glossary.substitution · Updated: 2026-05-14* *Also known as : substitution · giáo viên thay thế · quy tắc thay thế* **Thay thế** là việc phân công một giáo viên khác cho một tiết học mà giáo viên chính đang [vắng mặt](#page-glossary.absence). #### Thay thế riêng lẻ Với một tiết học cụ thể, quản trị viên mở bảng quản lý giáo viên thay thế của lần vắng mặt và dùng Phân công Giáo viên thay thế. Phân công này chỉ có giá trị cho tiết học đã chọn và được ưu tiên hơn các quy tắc dài hạn. #### Quy tắc thay thế Với một đợt vắng mặt kéo dài, quản trị viên tạo một hoặc nhiều quy tắc bằng Phân công Giáo viên thay thế. Mỗi quy tắc có thể nêu rõ: - giáo viên thay thế; - ngày hiệu lực; - khung giờ; - môn học; - lớp; - một nhận xét. Các quy tắc được áp dụng theo thứ tự hiển thị. Nếu không có quy tắc nào bao phủ một tiết học, tiết học đó vẫn chịu ảnh hưởng từ việc giáo viên chính vắng mặt. #### Hiển thị việc thay thế Trên thời khóa biểu, giáo viên được thay thế vẫn hiển thị là giáo viên chính đang vắng mặt, còn giáo viên thay thế xuất hiện trên tiết học. Chi tiết về lý do và nhận xét của lần vắng mặt hiển thị tùy theo quyền xem. #### Xem thêm - [Vắng mặt](#page-glossary.absence) - [Chính sách thay thế](#page-absences.substitution-policies) - [Thay thế riêng lẻ cho một tiết học](#page-absences.single-lesson-replacement) ### Thời gian rảnh của giáo viên (nguyện vọng) *Source: `help/vi/glossary/wishes.md` · id: glossary.wishes · Updated: 2026-06-21* *Also known as : thời gian bận · khung giờ ưu tiên* **Thời gian rảnh** của một giáo viên cho phần mềm biết những khung giờ nào là **không thể** (đen, ràng buộc cứng), **không mong muốn** (đỏ, ràng buộc mềm) hay **được ưu tiên** (xanh lá). Ở bậc trung học, người ta còn gọi đây là **nguyện vọng** — vẫn là cùng một khái niệm, khi giáo viên khai báo thời gian rảnh lý thuyết hằng tuần của mình và nhà trường sử dụng dữ liệu đó để tạo thời khóa biểu (có thể sau khi đã chỉnh sửa hoặc gán trọng số). Công cụ tạo tự động tuân thủ **nghiêm ngặt** các khung giờ không thể và cố gắng hết mức để tôn trọng các khung giờ không mong muốn / được ưu tiên, tùy theo những ràng buộc khác. #### Hai chế độ tùy theo loại thời khóa biểu - **Thời khóa biểu hằng tuần** — thời gian rảnh được nhập trên tuần mẫu, được bộ phận quản trị xác nhận trước khi tạo tự động. Thay đổi về sau sẽ được báo hiệu nhưng không gây tác động. - **Thời khóa biểu dạng lịch** (trên các tài khoản Premium) — thời gian rảnh được nhập theo từng ngày, hợp nhất theo thời gian thực. Các lỗi tương thích được phát hiện ngay khi xuất hiện. #### Giáo viên tự nhập Giáo viên có thể tự nhập thời gian rảnh của mình từ tài khoản ([cổng thông tin giáo viên](#page-portal.teacher-portal)) — tiết kiệm thời gian đáng kể cho bộ phận quản trị. Họ cũng có thể nhận một **liên kết chia sẻ trực tiếp tới màn hình thời gian rảnh** (không cần đăng nhập), được tạo từ Tải xuống kèm ngày hết hạn. #### Xem thêm - [Giáo viên](#page-glossary.teacher) - [Công cụ tạo tự động](#page-glossary.solver) - [Thời gian rảnh và ràng buộc thời gian của giáo viên](#page-core-concepts.wishes-and-availability) - [Thời gian rảnh ở chế độ lịch](#page-timetables.calendar-wishes) ### Thời khóa biểu *Source: `help/vi/glossary/timetable.md` · id: glossary.timetable · Updated: 2026-06-13* *Also known as : lịch giảng dạy · lịch học hàng tuần · kế hoạch giảng dạy · lịch tiết học* Một **thời khóa biểu** trong Omniscol thể hiện toàn bộ cách tổ chức các tiết học của một trường trong một giai đoạn. Đây là đối tượng trung tâm của phần mềm. Một thời khóa biểu tập hợp: - các [lớp](#page-glossary.class) cùng [nhóm](#page-glossary.group) và [phân vùng](#page-glossary.class-division) của chúng, - các [giáo viên](#page-glossary.teacher) được phân công, - các [cơ sở](#page-glossary.site) cùng lưới thời gian, phòng học và tài nguyên của chúng, - các ràng buộc (thời gian rảnh, không tương thích, căn chỉnh nhóm), - các [tiết học](#page-glossary.lesson) (đã đặt vị trí hoặc chưa). #### Ba chế độ thời khóa biểu Khi tạo một thời khóa biểu, bạn chọn chế độ của nó: - **[Hằng tuần](#page-glossary.weekly-timetable)** — các tiết học tuân theo một tuần mẫu lặp lại. Thường gặp ở bậc tiểu học và trung học. - **[Theo chu kỳ](#page-glossary.cyclic-timetable)** — các tiết học lặp lại theo một số ngày tùy ý (5, 6, 7… tùy chu kỳ của bạn). Thường gặp ở các hệ thống giáo dục Bắc Mỹ. - **[Theo lịch](#page-glossary.calendar-mode)** — mỗi tiết học được gắn ngày riêng, như một cuốn lịch công tác. Thường gặp ở giáo dục đại học (trường kỹ thuật, đào tạo thường xuyên). #### Nhiều thời khóa biểu trong một trường Bạn có thể có nhiều thời khóa biểu song song trong cùng một tài khoản: - các **bản nháp** chưa công bố, - các thời khóa biểu cho những **giai đoạn** khác nhau (học kỳ 1 và học kỳ 2, bản chuẩn bị cho đầu năm học và bản đang dùng), - với bản Premium (hoặc, trong trường hợp ngoại lệ, trên một tài khoản Standard được kích hoạt theo thỏa thuận hợp đồng), các thời khóa biểu **hoạt động đồng thời** trên cùng những tuần đó (ví dụ một thời khóa biểu buổi sáng lặp lại + một thời khóa biểu buổi chiều ở chế độ lịch) — xem [Nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables). #### Vòng đời của một thời khóa biểu ``` Khởi tạo → Cấu hình → (Tạo tự động?) → Xem lại → Công bố → Thay đổi hằng ngày ``` - **Khởi tạo** — chọn chế độ, đặt nhãn, thiết lập các thông số cơ bản. - **Cấu hình** — cơ sở, phòng học, giáo viên, lớp, nhóm, môn học, tiết học. - **Tạo thời khóa biểu** — tự động bằng công cụ tạo tự động (dùng được ở cả ba chế độ: hằng tuần, theo chu kỳ, theo lịch) hoặc đặt vị trí thủ công. - **Xem lại** — kiểm tra trước khi công bố. - **Công bố** — thời khóa biểu trở thành bản đang hoạt động trên những tuần đã chọn của năm học. Mọi người dùng được phép đều nhìn thấy nó trong mô-đun *Thời khóa biểu*. - **Thay đổi hằng ngày** — trong suốt năm học (di chuyển tiết học, đổi phòng học, quản lý vắng mặt) mà không phải quay lại bước tạo tự động. #### Xem thêm - [Hằng tuần, theo chu kỳ hay theo lịch](#page-overview.timetable-modes) - [Khởi tạo một thời khóa biểu](#page-timetables.overview) - [Công bố một thời khóa biểu](#page-timetables.publication) ### Thời khóa biểu hằng tuần *Source: `help/vi/glossary/weekly-timetable.md` · id: glossary.weekly-timetable · Updated: 2026-05-15* *Also known as : tuần mẫu · lặp lại · lịch học hằng tuần* **Thời khóa biểu hằng tuần** dựa trên một **tuần mẫu**: các tiết học được khai báo là lặp lại vào các ngày trong tuần. Khi công bố, bạn chọn những **khoảng tuần** trong năm mà tuần mẫu được áp dụng. Đây là chế độ được dùng ở: - bậc tiểu học và trung học (trường tiểu học, trung học cơ sở, trung học phổ thông), - những năm đầu bậc đại học ở một số khoa, - trung tâm đào tạo ngoại ngữ có lịch học cố định. #### Tạo tự động Công cụ tạo tự động hoạt động ở chế độ này. Nó tìm vị trí tối ưu cho các tiết học trong tuần mẫu, đồng thời tôn trọng: - thời gian rảnh của các giáo viên, - chuyên ngành phòng học được yêu cầu, - phân vùng, căn chỉnh nhóm, các điểm không tương thích, - trọng số sư phạm (cân đối các môn học giữa các ngày). Xem [Công cụ tạo tự động](#page-glossary.solver). #### Tuần luân phiên Với chức năng [tuần luân phiên](#page-glossary.alternate-lessons), bạn có thể tạo những tiết học chỉ xuất hiện hai tuần một lần (hoặc ba tuần một lần, v.v.) — tuần A/B, 1/2, v.v. Cấu hình trong Lưu. #### Ngày nghỉ lễ và nhịp luân phiên Các ngày nghỉ lễ trong năm học có thể làm lệch nhịp luân phiên A/B. Nếu bạn đang ở tuần A ngay trước ngày nghỉ lễ và muốn tiếp tục bằng tuần B sau đó, bạn có thể tạo một **điểm dịch ảo** trên dải thời gian (nhấn vào các tuần liên quan). #### Thời gian rảnh được xác nhận trước Thời gian rảnh của các giáo viên được xác nhận từ trước (trước khi tạo tự động). Mọi thay đổi về sau của một giáo viên đều được báo hiệu nhưng không tác động đến thời khóa biểu đã tính xong. Điều này khác với [chế độ lịch](#page-glossary.calendar-mode), nơi thời gian rảnh được hợp nhất theo thời gian thực. #### Xem thêm - [Thời khóa biểu](#page-glossary.timetable) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) - [Tạo tự động](#page-glossary.solver) - [Tiết học luân phiên](#page-glossary.alternate-lessons) ### Thời khóa biểu theo chu kỳ *Source: `help/vi/glossary/cyclic-timetable.md` · id: glossary.cyclic-timetable · Updated: 2026-05-10* *Also known as : ngày đánh số* **Thời khóa biểu theo chu kỳ** xác định các tiết học lặp lại trên một chu kỳ gồm số ngày tùy ý (Day 1, Day 2, … Day 6, v.v.), không nhất thiết trùng khớp với tuần 5 hoặc 7 ngày. Cách tổ chức này thường gặp ở các **hệ thống giáo dục Bắc Mỹ** (chu kỳ 6 hoặc 8 ngày), ở một số trường quốc tế, và ít gặp hơn ở châu Âu. #### Khác biệt so với chế độ hằng tuần | Khía cạnh | Hằng tuần | Theo chu kỳ | | --- | --- | --- | | Đơn vị lặp lại | Tuần (5-7 ngày) | Chu kỳ N ngày | | Cách đánh số | Thứ Hai, thứ Ba… | Day 1, Day 2… | | Khi công bố | Chọn các tuần đang hoạt động | Chọn các ngày trong tuần mà chu kỳ được áp dụng | | Tạo tự động | Có | Có | #### Khi nào nên dùng Nếu trường của bạn vận hành theo chu kỳ 6 ngày (ví dụ Day 1 vào thứ Hai, Day 2 vào thứ Ba, Day 3 vào thứ Tư, Day 4 vào thứ Năm, Day 5 vào thứ Sáu, Day 6 vào thứ Hai tuần sau, Day 1 vào thứ Ba tuần sau…), chế độ hằng tuần không phù hợp — chế độ theo chu kỳ chính là dành cho trường hợp này. Nếu bạn ở châu Âu và có chu kỳ 5 ngày trùng khớp chặt chẽ với tuần, hãy giữ chế độ hằng tuần — cấu hình và công bố đều đơn giản hơn. #### Xem thêm - [Thời khóa biểu](#page-glossary.timetable) - [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) ### Tiết học / Giờ học *Source: `help/vi/glossary/lesson.md` · id: glossary.lesson · Updated: 2026-06-13* *Also known as : tiết dạy · khung giờ · giờ giảng · giờ thỉnh giảng* Một **tiết học** (hay *tiết học của một khóa học*) là đơn vị đã được xếp lịch, đặt trên lưới của một thời khóa biểu: đó chính là thứ bạn đặt vào, di chuyển, khóa, sửa, hủy hoặc thay thế. Mỗi tiết học mang theo: - một **lớp** hoặc một [nhóm](#page-glossary.group) (đối tượng người học), - một **[môn học](#page-glossary.subject)**, - một hoặc nhiều **giáo viên** ([đồng giảng dạy](#page-glossary.co-teaching)), - một hoặc nhiều **phòng học** (xem [nhiều phòng học](#page-glossary.multi-room)), - một hoặc nhiều **tài nguyên** (máy chiếu di động, va li máy tính bảng…), - một **thời lượng** (thường là 1 hoặc 2 đơn vị thời gian trên lưới thời gian của cơ sở), - có thể có một **loại tiết học** (lý thuyết, bài tập, thực hành, kiểm tra, v.v., được định nghĩa trong Tạo mới), - có thể có một **ghi chú** (nhận xét tự do, kèm giới hạn công bố: chỉ quản trị viên, quản trị viên + giáo viên, hoặc tất cả mọi người). #### Tiết học hay khóa học? Giao diện Omniscol dùng từ “tiết học” cho đơn vị đặt trên lưới thời gian. **[Khóa học](#page-glossary.course)** vẫn là từ đúng để chỉ bản thân việc giảng dạy — môn học được dạy cho một lớp, kèm khối lượng giờ và các thuộc tính của nó: người ta nói khóa học tiếng Anh, số giờ của khóa học, ngày học của khóa học, và cùng một khóa học sinh ra một hoặc nhiều tiết học trong thời khóa biểu. Nhãn Loại bài học được khai báo trên khóa học chứ không trên từng tiết học, còn khái niệm [tiết học phức hợp](#page-core-concepts.complex-lessons) mô tả những khóa học gắn nhiều tiết học lại với nhau. #### Cách gọi tùy theo ngữ cảnh - **Tiết học** — cách gọi trong giao diện cho đơn vị đã được xếp lịch, ở bất kỳ loại hình trường nào. - **Giờ học**, **tiết** — cách nói thông dụng ở bậc phổ thông. - **Giờ giảng** — cách nói quen thuộc ở bậc đại học: giảng viên thực hiện một giờ giảng (các trình kết nối Auriga và Aurion cũng dùng cách gọi này). - **Khung giờ** — chỉ vị trí thời gian trên lưới, chứ không phải tiết học đang chiếm vị trí đó. - Một **giờ thỉnh giảng** là tiết học do một giáo viên thỉnh giảng đảm nhiệm (khác với đội ngũ cơ hữu); đây không phải một loại tiết học khác, chỉ là người dạy thay đổi. #### Tiết học đơn giản, tiết học phức hợp Một tiết học đơn giản = một đối tượng người học, một giáo viên, một phòng học, trên một khung giờ. **Tiết học phức hợp** gắn nhiều tiết học lại với nhau: - **[Nối tiếp](#page-glossary.concatenated-lessons)** — hai tiết học đi liền nhau (một tiết thực hành 2 giờ = một tiết thực hành 1 giờ nối tiếp với một tiết thực hành 1 giờ nữa). - **[Liên hệ](#page-glossary.associated-lessons)** — các nhóm luân phiên trên hai tiết học liên tiếp (nhóm A học môn sinh học rồi đến môn vật lý, nhóm B học môn vật lý rồi đến môn sinh học). - **[Luân phiên](#page-glossary.alternate-lessons)** — những tiết học chỉ trở lại hai tuần một lần (tuần A và tuần B), ba tuần một lần, v.v. Được cấu hình trong Lưu. #### Tiết học và lớp ngoài khung giờ Theo mặc định, các tiết học khớp với các khung giờ trên lưới thời gian của cơ sở. Nhưng Omniscol cũng xử lý được những tiết học không vừa với lưới đó (một bài kiểm tra 2 giờ bắt đầu lúc 10h20 trên lưới có bước 50 phút). Xem [tiết học và lớp ngoài khung giờ](#page-timetables.off-grid-lessons). #### Xem thêm - [Khóa học](#page-glossary.course) - [Loại tiết học (lý thuyết, bài tập, thực hành…)](#page-glossary.lesson-type) - [Trạng thái của tiết học](#page-glossary.lesson-status) - [Hình thức của tiết học](#page-glossary.lesson-modality) - [Môn học](#page-glossary.subject) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Nhiều phòng học](#page-glossary.multi-room) ### Tiết học liên hệ (luân phiên nửa lớp) *Source: `help/vi/glossary/associated-lessons.md` · id: glossary.associated-lessons · Updated: 2026-05-10* *Also known as : tiết học kết nối · tiết liên hệ · nhóm luân phiên* **Tiết học liên hệ** là hai tiết học diễn ra đồng thời theo nửa lớp và **luân phiên nối tiếp nhau**. Trường hợp điển hình: ``` Khung giờ 1: nhóm A – sinh học, nhóm B – vật lý Khung giờ 2: nhóm A – vật lý, nhóm B – sinh học ``` Sau hai khung giờ, cả hai nhóm đều đã học đủ hai môn học, chỉ khác nhau ở thứ tự. Cấu trúc này rất phổ biến trong các môn khoa học thực nghiệm (tiết thực hành sinh học + tiết thực hành vật lý với hai giáo viên chuyên môn “xoay vòng” cho nhau), trong các môn nghệ thuật (một nửa lớp làm thực hành, nửa còn lại học lý thuyết, rồi đổi chỗ cho nhau), v.v. #### Cách tạo 1. Trước hết, hãy tạo hai [tiết học liền nhau](#page-glossary.concatenated-lessons) (tiết này nằm ngay dưới tiết kia). 2. Đưa con trỏ lên đường ranh giới giữa hai tiết: nút “Kết nối giữa các tiết học” hiện ra. 3. Nhấp vào nút đó và chỉ định **hai nhóm** cần luân phiên với nhau — tốt nhất là các nhóm đã được khai báo thành một [phân vùng](#page-glossary.class-division). #### Tính nhất quán với các nhóm Các nhóm dùng trong một liên hệ giữa các tiết học phải được khai báo thành **phân vùng** trong lớp — nếu không, công cụ tạo tự động sẽ sinh ra một cảnh báo về tính nhất quán (một nhóm không thể có mặt ở hai nơi cùng một lúc). #### Xem thêm - [Tiết học nối tiếp](#page-glossary.concatenated-lessons) - [Phân vùng lớp](#page-glossary.class-division) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) ### Tiết học luân phiên / Tuần A-B *Source: `help/vi/glossary/alternate-lessons.md` · id: glossary.alternate-lessons · Updated: 2026-05-10* *Also known as : tuần luân phiên · tuần A/B · tuần chẵn lẻ · luân phiên hàng tuần* **Tiết học luân phiên** là những tiết học không lặp lại hằng tuần, mà luân phiên với các tiết học khác trên cùng một khung giờ. Trường hợp kinh điển: một tiết học ở tuần A, một tiết học khác ở tuần B, cùng ngày và cùng giờ. #### Cấu hình nhịp luân phiên Nhịp luân phiên được cấu hình trong Lưu. Có ba lựa chọn: - **Tắt** — không luân phiên. - **Chữ cái** — tuần A, B (và C, D… nếu bạn thêm nữa). - **Chữ số** — tuần 1, 2 (và 3, 4… nếu bạn mở rộng). Omniscol không áp đặt chu kỳ hai tuần — bạn có thể luân phiên trên 3, 4 tuần hoặc nhiều hơn. #### Tạo một tiết học luân phiên Khi cấu hình phân bổ thời gian: 1. Đưa con trỏ chuột lên tiết học cần luân phiên. Một biểu tượng [plus] hiện ra ở góc trên bên phải, hãy nhấp vào đó. 2. Một ô trống mới được thêm vào cho tuần luân phiên. 3. Tạo tiết học tương ứng với ô trống mới này. 4. Định vị nó bằng nút ghim [thumbtack], rồi nhấp vào khung giờ ngày/giờ mong muốn trong số các chấm màu. Bạn có thể lặp lại thao tác này để thêm các tuần luân phiên khác cho cùng một tiết học. #### Kết hợp với các cấu hình phức hợp khác Một tiết học luân phiên có thể là: - **đơn giản** — luân phiên thuần túy giữa hai tiết học, - **[liền nhau](#page-glossary.concatenated-lessons)** — một tiết học vừa luân phiên vừa chiếm một khung giờ kép, - **[liên hệ](#page-glossary.associated-lessons)** — kết hợp với các tiết học liên hệ (hoán đổi nhóm: nhóm A học môn sinh học rồi đến vật lý, nhóm B học môn vật lý rồi đến sinh học). Hoán đổi nhóm là một cấu hình phức hợp **riêng biệt** so với luân phiên A/B, nhưng có thể kết hợp với nó. #### Dịch nhịp do ngày nghỉ lễ Nếu bạn đang ở tuần A ngay trước ngày nghỉ lễ và muốn tiếp tục bằng tuần B sau đó, hãy tạo một **điểm dịch ảo** trên dải thời gian các tuần trong năm (xem [năm học](#page-glossary.school-year)). Nếu không tạo điểm dịch, việc luân phiên chỉ tiếp tục theo chu kỳ bình thường. #### Xem thêm - [Tiết học / Giờ học](#page-glossary.lesson) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) - [Năm học và ngày nghỉ lễ](#page-glossary.school-year) ### Tiết học nối tiếp *Source: `help/vi/glossary/concatenated-lessons.md` · id: glossary.concatenated-lessons · Updated: 2026-05-10* *Also known as : tiết học liền nhau · tiết học liên tiếp · tiết học kép · khối tiết liền kề* **Tiết học nối tiếp** là hai tiết học phải được xếp **liên tiếp** trong cùng một ngày. Công cụ tạo tự động bảo đảm chúng nối liền nhau, không có gì xen vào giữa. Các trường hợp điển hình: - **tiết thực hành 2 giờ** ghép từ hai khối 1 giờ, - **tiết lý thuyết rồi đến tiết bài tập** (lý thuyết nhập môn, rồi bài tập vận dụng), - **bài kiểm tra kép** dài 2 giờ trên khung giờ 1 giờ × 2. #### Cách tạo Hãy kéo và thả một tiết học xuống dưới một tiết học khác trong màn hình phân bổ thời gian. Hai tiết học khi đó **dính liền nhau**, tiết này nằm ngay dưới tiết kia, tạo thành một khối duy nhất. #### Tách rời Nút “kéo cắt” xuất hiện khi bạn rê chuột lên ranh giới giữa hai tiết học nối tiếp. Nút này cho phép **gỡ bỏ** sự nối tiếp. Hai tiết học khi đó trở lại độc lập với nhau. #### Vì sao không tạo một tiết học duy nhất dài hơn? Câu hỏi hay. Có hai lý do chính để nối tiếp thay vì kéo dài: 1. Hai tiết học có thể thuộc **loại tiết học khác nhau** (tiết lý thuyết nối tiếp tiết bài tập), hoặc do **giáo viên khác nhau** phụ trách, hoặc diễn ra ở **phòng học khác nhau**. 2. Bạn muốn thống kê tính thành hai tiết học riêng biệt (hai dòng ghi trong sổ đầu bài) thay vì một. Nếu mọi thuộc tính đều giống nhau thì kéo dài một tiết học duy nhất sẽ đơn giản hơn. Nối tiếp mang lại sự linh hoạt ở những chỗ cần đến nó. #### Xem thêm - [Tiết học liên hệ](#page-glossary.associated-lessons) - [Tiết học phức hợp](#page-core-concepts.complex-lessons) ### Trạng thái của tiết học *Source: `help/vi/glossary/lesson-status.md` · id: glossary.lesson-status · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : trạng thái tiết học · đã lên kế hoạch · bản nháp · tiết học đã hủy · tiết học đã thực hiện* > _Premium_ Trên các tài khoản **Premium**, **Trạng thái** cho biết một [tiết học](#page-glossary.lesson) đang ở đâu trong chu trình xếp lịch. Bạn đặt trạng thái cho từng tiết học — qua biểu tượng Trạng thái — hoặc **hàng loạt** từ chế độ danh sách. Có bốn giá trị: - **Đã lên kế hoạch** — Trạng thái mặc định cho buổi học đã lên lịch. Đây là trạng thái của một tiết học thông thường, đã được đặt trên lưới thời gian. - **Bản nháp** — tiết học đang được chuẩn bị, **bị việc tạo tự động bỏ qua** và không tính vào **trang tổng quan**. Tiện lợi khi bạn muốn chuẩn bị trước một tiết học mà chưa áp đặt nó lên thời khóa biểu hay lên [công cụ tạo tự động](#page-glossary.solver). - **Đã hủy** — tiết học vẫn **hiển thị là đã hủy** (giữ lại để lưu vết) nhưng cũng **bị việc tạo tự động bỏ qua** và không tính vào **trang tổng quan**. - **Đã thực hiện** — tiết học được đánh dấu là **đã thực hiện**, và với thông tin đó, nó được đưa vào **trang tổng quan** của giáo viên, phục vụ việc **lập hóa đơn**. #### Hiển thị Khi được hiển thị trên lưới thời gian, những tiết học này được nhận ra qua cách trình bày: - một tiết học **Bản nháp** mang **viền cam nét đứt** và hơi mờ đi; - một tiết học **Đã hủy** bị **gạch ngang** và mờ hẳn — khi bạn rê chuột lên thì nó lại đọc được, nhờ vậy bạn giữ được dấu vết mà không làm rối lưới thời gian. #### Ảnh hưởng đến việc tạo tự động Các tiết học **Bản nháp** và **Đã hủy** được [công cụ tạo tự động](#page-glossary.solver) gạt sang một bên: nó không xếp chúng, và chúng cũng không tính vào các lỗi tương thích (phòng học bị chiếm, giáo viên trùng giờ, sức chứa). Các tiết học **Đã lên kế hoạch** vẫn là những tiết học thật mà việc tạo tự động sẽ xếp lịch. #### “Đã thực hiện”: chỉ có ở chế độ lịch Trạng thái **Đã thực hiện** chỉ có trên các thời khóa biểu kiểu **[lịch](#page-glossary.calendar-mode)**: chính ở đó, trên những tiết học gắn ngày cụ thể, việc đánh dấu một tiết học là đã thực sự diễn ra mới có ý nghĩa. Khi đó nó cung cấp dữ liệu cho phần **theo dõi số giờ giáo viên thực sự đã dạy** (trang tổng quan của giáo viên) và cho việc **lập hóa đơn** của họ. Trên thời khóa biểu theo tuần hoặc theo chu kỳ, trạng thái này không xuất hiện. #### Xem thêm - [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) - [Hình thức](#page-glossary.lesson-modality) - [Tiết học / Giờ học](#page-glossary.lesson) - [Chế độ lịch](#page-glossary.calendar-mode) ### Trang tổng quan *Source: `help/vi/glossary/dashboard.md` · id: glossary.dashboard · Updated: 2026-05-18* *Also known as : dashboard · thống kê · chỉ số* Mô-đun **Trang tổng quan** cung cấp các số liệu thống kê được tính trên thời khóa biểu thực tế (những tiết học đã được xếp, có tính đến vắng mặt, đã áp dụng thay thế) trong một khoảng thời gian được chọn: tuần, tháng, năm học, hoặc khoảng ngày tự chọn. #### Các chỉ số khả dụng Số liệu thống kê được tổ chức theo các trục phân tích: giáo viên, phòng học, tài nguyên, môn học, lớp và học sinh. Trang đầy đủ của mô-đun trình bày chi tiết các chỉ số khả dụng cho từng trục. #### Trường hợp sử dụng - **Báo cáo nhân sự** — bảng kê số giờ đã giảng dạy phục vụ tính lương, cấp chứng nhận, kiểm định. - **Tối ưu phòng học** — phát hiện những phòng học ít được sử dụng hoặc bị khai thác quá mức. - **Kiểm soát tài nguyên** — kiểm tra mức sử dụng thực tế của các thiết bị di động. - **Rà soát đào tạo** — kiểm tra xem toàn bộ khối lượng giờ đã dự kiến có thực sự được giảng dạy hay không. #### Xuất dữ liệu Nút In mở ra một bảng mà bạn có thể sao chép và dán, in, hoặc xuất ra CSV để xử lý bên ngoài (Excel, Power BI, v.v.). #### Cách tính Lưu ý quan trọng: Trang tổng quan tính toán trên **thời khóa biểu vận hành** (những tiết học thực sự đã được xếp và đã công bố, hợp nhất [nhiều thời khóa biểu cùng hoạt động song song](#page-timetables.multiple-active-timetables) nếu có) và **có tính đến những vắng mặt đã được duyệt cùng các thay thế**. Đây là phép tính trên thực tế, không phải trên cấu hình dự kiến. #### Xem thêm - [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) - [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) - [Thống kê giáo viên](#page-dashboard.teachers) - [Thống kê phòng học](#page-dashboard.classrooms) - [Thống kê môn học](#page-dashboard.subjects) - [Thống kê lớp](#page-dashboard.classes) ### Vắng mặt *Source: `help/vi/glossary/absence.md` · id: glossary.absence · Updated: 2026-05-14* *Also known as : không rảnh · nghỉ phép · nghỉ ốm · vắng mặt đơn lẻ* **Vắng mặt** trong Omniscol là việc khai báo rằng một thực thể sẽ không có mặt trong một khoảng thời gian nhất định. Các thực thể được quản lý là giáo viên, lớp, học sinh và, nếu Quản lý nhân sự đang hoạt động, cả thành viên nhân sự. Một lần vắng mặt đã được chấp nhận có thể làm thay đổi cách hiển thị các tiết học: - **giáo viên vắng mặt không có giáo viên thay thế**: tiết học được đánh dấu là bị ảnh hưởng, tên giáo viên bị gạch ngang; - **giáo viên vắng mặt có [giáo viên thay thế](#page-glossary.substitution)**: giáo viên thay thế hiển thị bên cạnh tên giáo viên chính bị gạch ngang; - **lớp vắng mặt**: các tiết học của lớp được gỡ khỏi phần hiển thị trong khoảng thời gian đó; - **học sinh vắng mặt**: phần theo dõi gắn với học sinh đó, không làm thay đổi các tiết học của cả lớp. #### Trạng thái của một lần vắng mặt - **Chấp nhận**: lần vắng mặt đã được xác nhận và được tính đến. - **Đang chờ xử lý**: yêu cầu do chính người dùng liên quan khai báo, chờ quản trị viên phê duyệt. - **Từ chối**: yêu cầu bị từ chối. - **Đã hủy**: yêu cầu do người khai báo tự hủy. Chỉ những lần vắng mặt ở trạng thái **Chấp nhận** mới tác động đến cách hiển thị thời khóa biểu. #### Các trường thông tin của một lần vắng mặt - **Thực thể**: giáo viên, lớp, học sinh hoặc nhân viên nếu mô-đun Quản lý nhân sự đang hoạt động. - **Khoảng thời gian**: ngày bắt đầu và ngày kết thúc. Một lần vắng mặt thực sự chưa có hạn kết thúc phải được theo dõi một cách tường minh; ngày kết thúc năm học có thể dùng làm mốc kỹ thuật nếu không có ngày kết thúc. - **Khung giờ**: cả ngày hoặc các khung giờ cụ thể. - **Bộ lọc**: lớp, môn học hoặc phân công tùy theo loại thực thể. - **Lý do**: chọn trong danh sách có sẵn; quản trị viên có thể nhập một lý do tùy chỉnh. - **Nhận xét**: đoạn văn bản tự do ngắn. - **Trạng thái**: chấp nhận, đang chờ xử lý, từ chối hoặc đã hủy. #### Xem thêm - [Thay thế / dạy thay](#page-glossary.substitution) - [Mô-đun Quản lý vắng mặt — tổng quan](#page-absences.overview) - [Khai báo vắng mặt](#page-absences.declaring) --- ## Index ### B - **Bảng thông tin** — [Definition](#page-glossary.panel) · [Hiển thị và UX](#page-faq.display-and-ux) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) ### C - **Căn chỉnh nhóm** — [Definition](#page-glossary.alignment) · [Căn chỉnh nhóm](#page-core-concepts.alignments) · [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) · [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhóm của nhóm](#page-core-concepts.groups-of-groups) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-k12.overview) - **Chẩn đoán** — [Definition](#page-glossary.diagnostic) · [Cách hoạt động của thuật toán](#page-faq.solver-behavior) · [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) · [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) · [Tạo tự động](#page-timetables.generation) - **Chế độ hiển thị thời khóa biểu** — [Definition](#page-glossary.schedule-view-mode) - **Chế độ lịch** — [Definition](#page-glossary.calendar-mode) · [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) · [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-higher-ed.overview) · [Tổng quan về mô-đun](#page-timetables.overview) · [Xây dựng thời khóa biểu](#page-faq.timetables) - **Chuyên ngành phòng học** — [Definition](#page-glossary.classroom-specialization) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - **Công bố / Kích hoạt thời khóa biểu** — [Definition](#page-glossary.publication) · [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Xây dựng thời khóa biểu](#page-faq.timetables) - **Công cụ tạo tự động** — [Definition](#page-glossary.solver) · [Cách hoạt động của thuật toán](#page-faq.solver-behavior) · [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) · [Khóa một tiết học](#page-timetables.lesson-lock) · [Omniscol là gì](#page-overview.what-is-omniscol) · [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) · [Tạo tự động](#page-timetables.generation) · [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) · [Triết lý chung của Omniscol](#page-overview.philosophy) · [Xây dựng thời khóa biểu](#page-faq.timetables) · [Xếp thủ công](#page-timetables.manual-placement) - **Cơ sở** — [Definition](#page-glossary.site) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Phạm vi](#page-admin.planning-domains) · [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) - **Cửa sổ ngày** — [Definition](#page-glossary.date-windows) ### D - **Dải thời gian** — [Definition](#page-glossary.timeline) · [Dải thời gian và điều hướng theo thời gian](#page-core-concepts.timeline-navigation) ### Đ - **Đồng giảng dạy** — [Definition](#page-glossary.co-teaching) · [Tiết học phức hợp](#page-core-concepts.complex-lessons) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) - **Đơn vị** — [Definition](#page-glossary.campus) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) · [Phạm vi](#page-admin.planning-domains) · [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) · [Thông số nâng cao và tùy chỉnh](#page-admin.advanced-parameters) ### G - **Giáo viên** — [Definition](#page-glossary.teacher) · [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) · [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) · [Điều kiện tiên quyết](#page-timetables.prerequisites) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Kiến trúc và vai trò](#page-overview.architecture-and-roles) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) · [Người dùng và vai trò](#page-admin.users-and-roles) · [Omniscol là gì](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) · [Phạm vi](#page-admin.planning-domains) · [Phân công giáo viên](#page-timetables.assigning-teachers) · [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) · [Thống kê giáo viên](#page-dashboard.teachers) · [Thống kê lớp](#page-dashboard.classes) · [Thống kê môn học](#page-dashboard.subjects) · [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) · [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) · [Tổ chức dữ liệu](#page-core-concepts.data-model) · [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) - **Giáo viên bên ngoài** — [Definition](#page-glossary.external-teacher) · [Phân công giáo viên](#page-timetables.assigning-teachers) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-higher-ed.overview) ### H - **Hình thức** — [Definition](#page-glossary.lesson-modality) - **Học sinh / Sinh viên / Người học** — [Definition](#page-glossary.student) · [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Kiến trúc và vai trò](#page-overview.architecture-and-roles) · [Mời và kích hoạt người dùng](#page-getting-started.inviting-users) · [Người dùng và vai trò](#page-admin.users-and-roles) · [Omniscol là gì](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) · [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) ### I - **iCal (xuất lịch)** — [Definition](#page-glossary.ical) · [Tổng quan về các tích hợp](#page-integrations.overview) ### K - **Khóa học** — [Definition](#page-glossary.course) - **Khóa học dùng chung** — [Definition](#page-glossary.transverse-course) - **Khối lớp** — [Definition](#page-glossary.level) · [Phạm vi](#page-admin.planning-domains) - **Không tương thích (giữa các môn học)** — [Definition](#page-glossary.incompatibility) · [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) ### L - **Liên kết chia sẻ** — [Definition](#page-glossary.share-link) · [Bảo mật và lưu trữ](#page-faq.security-and-hosting) · [Kiến trúc và vai trò](#page-overview.architecture-and-roles) · [Tổng quan về các tích hợp](#page-integrations.overview) - **Loại tiết học** — [Definition](#page-glossary.lesson-type) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Tổ chức dữ liệu](#page-core-concepts.data-model) - **Lỗi tương thích** — [Definition](#page-glossary.conflict) · [Cách hoạt động của thuật toán](#page-faq.solver-behavior) · [Chẩn đoán khi việc tạo thời khóa biểu thất bại](#page-timetables.diagnosing-generation) · [Khóa một tiết học](#page-timetables.lesson-lock) · [Lỗi tương thích và chẩn đoán](#page-timetables.conflicts) · [Omniscol là gì](#page-overview.what-is-omniscol) · [Tạo tự động](#page-timetables.generation) · [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) · [Triết lý chung của Omniscol](#page-overview.philosophy) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - **Lớp** — [Definition](#page-glossary.class) · [Kiến trúc và vai trò](#page-overview.architecture-and-roles) · [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Omniscol là gì](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) · [Phạm vi](#page-admin.planning-domains) · [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) · [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) · [Thống kê lớp](#page-dashboard.classes) · [Tổ chức dữ liệu](#page-core-concepts.data-model) - **Lưới thời gian** — [Definition](#page-glossary.timetable-grid) ### M - **Mã thông báo API** — [Definition](#page-glossary.api-token) · [API tiết học](#page-integrations.lessons-api) · [Bảo mật và lưu trữ](#page-faq.security-and-hosting) · [Kiến trúc](#page-integrations.architecture) · [Tổng quan về các tích hợp](#page-integrations.overview) · [Truy vấn nâng cao](#page-integrations.advanced-queries) - **Môn học** — [Definition](#page-glossary.subject) · [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) · [Điều kiện tiên quyết](#page-timetables.prerequisites) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Phạm vi](#page-admin.planning-domains) · [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) · [Thống kê lớp](#page-dashboard.classes) · [Thống kê môn học](#page-dashboard.subjects) · [Tổ chức dữ liệu](#page-core-concepts.data-model) · [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) ### N - **Năm học** — [Definition](#page-glossary.school-year) · [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) · [Điều kiện tiên quyết](#page-timetables.prerequisites) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Thiết lập tài khoản của trường](#page-getting-started.setup-school) · [Thông số chung](#page-admin.parameters) · [Tổ chức dữ liệu](#page-core-concepts.data-model) - **Ngày nghỉ lễ** — [Definition](#page-glossary.holidays) - **Ngoài khung giờ** — [Definition](#page-glossary.off-grid) - **Nhiều phòng học** — [Definition](#page-glossary.multi-room) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-higher-ed.overview) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - **Nhóm** — [Definition](#page-glossary.group) · [Căn chỉnh nhóm](#page-core-concepts.alignments) · [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) · [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) · [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhóm của nhóm](#page-core-concepts.groups-of-groups) · [Nhóm tự do](#page-core-concepts.free-groups) · [OneRoster](#page-integrations.oneroster) · [Phạm vi](#page-admin.planning-domains) · [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) · [Phân cấp nhóm](#page-core-concepts.group-hierarchy) · [Phân vùng lớp](#page-core-concepts.class-divisions) · [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) · [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) · [Thống kê lớp](#page-dashboard.classes) · [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) - **Nhóm của nhóm** — [Definition](#page-glossary.groups-of-groups) · [Các gói và tùy chọn của Omniscol](#page-overview.plans-and-options) · [Căn chỉnh nhóm](#page-core-concepts.alignments) · [Căn chỉnh nhóm và nhóm của nhóm](#page-timetables.alignments-and-groups-of-groups) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhóm của nhóm](#page-core-concepts.groups-of-groups) · [OneRoster](#page-integrations.oneroster) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-higher-ed.overview) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - **Nhóm tự do** — [Definition](#page-glossary.free-group) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhóm tự do](#page-core-concepts.free-groups) ### P - **Phạm vi lập kế hoạch** — [Definition](#page-glossary.planning-domain) · [Phạm vi](#page-admin.planning-domains) · [Vai trò tùy chỉnh](#page-admin.customroles) - **Phân vùng lớp** — [Definition](#page-glossary.class-division) · [Căn chỉnh nhóm](#page-core-concepts.alignments) · [Lớp, nhóm, nhóm con](#page-core-concepts.classes-and-groups) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Phân cấp nhóm](#page-core-concepts.group-hierarchy) · [Phân vùng lớp](#page-core-concepts.class-divisions) · [Tạo các lớp và nhóm của lớp](#page-timetables.creating-classes) · [Tình huống giáo dục đại học](#page-faq.higher-ed-cases) · [Tổng quan](#page-k12.overview) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) - **Phòng học** — [Definition](#page-glossary.classroom) · [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) · [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) · [Phạm vi](#page-admin.planning-domains) · [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) · [Thống kê môn học](#page-dashboard.subjects) · [Thống kê phòng học](#page-dashboard.classrooms) · [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) · [Tìm kiếm và bộ lọc](#page-core-concepts.search-and-filter) · [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) - **Phòng lớn** — [Definition](#page-glossary.large-room) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Phân bổ phòng học tự động](#page-timetables.auto-room-assignment) ### Q - **Quản lý nhân sự** — [Definition](#page-glossary.staffing) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) ### T - **Tài nguyên** — [Definition](#page-glossary.resource) · [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) · [Cơ sở, lưới thời gian, phòng học, tài nguyên](#page-timetables.sites-rooms) · [Cơ sở, phòng học, tài nguyên](#page-core-concepts.sites-rooms-resources) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) - **Thay thế / dạy thay** — [Definition](#page-glossary.substitution) · [Chính sách thay thế](#page-absences.substitution-policies) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Thống kê giáo viên](#page-dashboard.teachers) · [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview) - **Thời gian rảnh của giáo viên (nguyện vọng)** — [Definition](#page-glossary.wishes) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhóm của nhóm](#page-core-concepts.groups-of-groups) · [Phân công giáo viên](#page-timetables.assigning-teachers) · [Ràng buộc thời gian (cơ chế chung)](#page-core-concepts.time-constraints) · [Thời gian rảnh của giáo viên](#page-core-concepts.wishes-and-availability) - **Thời khóa biểu** — [Definition](#page-glossary.timetable) · [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) · [Công bố (kích hoạt) một thời khóa biểu](#page-timetables.publication) · [Hiển thị thời khóa biểu](#page-schedules.schedule-display) · [Hiển thị và UX](#page-faq.display-and-ux) · [Hướng dẫn làm quen](#page-getting-started.onboarding-tour) · [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) · [Omniscol là gì](#page-overview.what-is-omniscol) · [Phạm vi](#page-admin.planning-domains) · [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) · [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) · [Thống kê giáo viên](#page-dashboard.teachers) · [Thống kê phòng học](#page-dashboard.classrooms) · [Thông số chung](#page-timetables.general-settings) · [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) · [Tìm kiếm và bộ lọc](#page-core-concepts.search-and-filter) · [Tổng quan về mô-đun](#page-timetables.overview) · [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) · [Tra cứu và lọc](#page-schedules.consult-and-filter) · [Triết lý chung của Omniscol](#page-overview.philosophy) · [Xây dựng thời khóa biểu](#page-faq.timetables) - **Thời khóa biểu hằng tuần** — [Definition](#page-glossary.weekly-timetable) · [Cách hoạt động của thuật toán](#page-faq.solver-behavior) · [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) · [Tổng quan](#page-k12.overview) · [Tổng quan về mô-đun](#page-timetables.overview) · [Xây dựng thời khóa biểu](#page-faq.timetables) - **Thời khóa biểu theo chu kỳ** — [Definition](#page-glossary.cyclic-timetable) · [Chọn đúng loại thời khóa biểu](#page-overview.timetable-modes) · [Xây dựng thời khóa biểu](#page-faq.timetables) - **Tiết học / Giờ học** — [Definition](#page-glossary.lesson) · [Chỉnh sửa một tiết học](#page-timetables.lesson-edit) · [Chuẩn bị dữ liệu để nhập hàng loạt](#page-getting-started.preparing-data) · [Khóa một tiết học](#page-timetables.lesson-lock) · [Lưới thời gian, khung giờ và thời lượng](#page-core-concepts.timetable-grid) · [Mô hình dữ liệu đầy đủ](#page-integrations.data-model-full) · [Nhập hàng loạt khóa học từ bảng tính](#page-timetables.mass-import) · [Omniscol là gì](#page-overview.what-is-omniscol) · [Phạm vi](#page-admin.planning-domains) · [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) · [Tham quan có hướng dẫn trong năm phút](#page-overview.quick-tour) · [Thay đổi riêng lẻ](#page-schedules.ad-hoc-changes) · [Tiết học ngoài khung giờ](#page-timetables.off-grid-lessons) · [Tổ chức dữ liệu](#page-core-concepts.data-model) · [Tra cứu và lọc](#page-schedules.consult-and-filter) · [Trường hợp đặc biệt và cấu hình nâng cao](#page-faq.edge-cases) · [Xếp thủ công](#page-timetables.manual-placement) - **Tiết học liên hệ** — [Definition](#page-glossary.associated-lessons) · [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) · [Tiết học phức hợp](#page-core-concepts.complex-lessons) - **Tiết học luân phiên** — [Definition](#page-glossary.alternate-lessons) · [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) · [Thông số chung](#page-admin.parameters) · [Tiết học phức hợp](#page-core-concepts.complex-lessons) - **Tiết học nối tiếp** — [Definition](#page-glossary.concatenated-lessons) · [Phân bổ thời gian và tạo các tiết học](#page-timetables.hour-distribution) · [Tiết học phức hợp](#page-core-concepts.complex-lessons) - **Trạng thái** — [Definition](#page-glossary.lesson-status) - **Trang tổng quan** — [Definition](#page-glossary.dashboard) · [Sử dụng bảng và biểu đồ](#page-dashboard.tools-and-filters) · [Thống kê giáo viên](#page-dashboard.teachers) · [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) · [Thống kê lớp](#page-dashboard.classes) · [Thống kê môn học](#page-dashboard.subjects) · [Thống kê phòng học](#page-dashboard.classrooms) · [Tổng quan về mô-đun Trang tổng quan](#page-dashboard.overview) ### V - **Vắng mặt** — [Definition](#page-glossary.absence) · [Chính sách thay thế](#page-absences.substitution-policies) · [Khai báo vắng mặt](#page-absences.declaring) · [Thống kê giáo viên](#page-dashboard.teachers) · [Thống kê học sinh và tài nguyên](#page-dashboard.students-resources) · [Tổng quan về mô-đun Quản lý vắng mặt](#page-absences.overview)